ASUS Pro WS TRX50-SAGE WIFI bluetooth driver not working

I got myself a Ryzen Threadripper 7980X and a motherboard from Asus, Pro WS TRX50-SAGE WIFI. Most of the things work fine and after updating my Linux kernel to 6.7.0 and added the latest firmware patches from Mediatek I even got WiFi working.

The issue I have is that I can’t for the life of me get bluetooth working. When I contacted Asus support they just flat out told me they don’t support Linux which seems really stupid since it’s a workstation-class motherboard.

Does anyone have any ideas for what I can do to make bluetooth work? It seems to be a MediaTek mt7925 card and it seems to work under Windows. I have also tried applying patches to my kernel that seem relevant (patches from MediaTek mentioning mt7925) without any luck.

The error I see in dmesg is 16 (busy) on the device when sending the first command to it. hci0: Opcode 0x0c03 failed: -16

More info from my debugging sessions:

> usb-devices
T: Bus=07 Lev=01 Prnt=01 Port=10 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=13d3 ProdID=3602 Rev=01.00
S: Manufacturer=MediaTek Inc.
S: Product=Wireless_Device
S: SerialNumber=000000000
C: #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=125us
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 2 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E: Ad=0a(O) Atr=03(Int.) MxPS= 64 Ivl=125us
E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=125us
> rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
> bluetoothctl show
No default controller available
> hciconfig -a
hci0:   Type: Primary  Bus: USB
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN
        RX bytes:6 acl:0 sco:0 events:1 errors:0
        TX bytes:0 acl:0 sco:0 commands:1 errors:1
        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DH1 HV1
        Link policy:
        Link mode: PERIPHERAL ACCEPT
> hciconfig hci0 up   
Can't init device hci0: Device or resource busy (16)

Even more data if you want it:
I can’t include links but it’s a github gist that you can access: ulrikstrid/00d191405fdae72aa1cfd06acb69352f

2 Likes

I found a BT patch:

The BT firmware is separate from the WiFi firmware, you may have to fish it out of the Windows driver:
+#define FIRMWARE_MT7925 "mediatek/mt7925/BT_RAM_CODE_MT7925_1_1_hdr.bin"

I think that patch has already landed in 6.7.0 but I could be wrong, I will try adding this patch to my kernel to see what it says.
edit: Can confirm that the patch is already applied.

I’m on nixos and created a small package that pulls in the latest firmware from here: git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git. This gives me the following files:

> ls result/lib/firmware/mediatek/mt7925                                              
BT_RAM_CODE_MT7925_1_1_hdr.bin 
WIFI_MT7925_PATCH_MCU_1_1_hdr.bin 
WIFI_RAM_CODE_MT7925_1_1.bin

Is there a way to “force” it to load the firmware?
From my testing mt7925e module gets wifi working, which makes sense since it’s on the PCIe bus (as you pointed out in Discord @rv6502) but then logically the bluetooth should work with mt7825u which is the usb module, but it seems like it’s not pulling in the firmware with tat.

Did you found a solution for the non working Bluetooth?

Unfortunately I have the same exact problem.
Same motherboard, 7970x, there is no way to make the BT work

1 Like

Same problem under windows 10pro for me.
I also have a build thread over here

Hello, sorry I didn’t visit the forum in a bit. I “found” the solution by writing a patch to the Linux kernel that adds the card so that it loads the correct firmware. I’m not sure if this patch has landed in mainline yet but it was accepted by the bluetooth people.

Bluetooth is still “spotty” and the range on my bluetooth connection is much worse than on my laptop even though we have the “shark fin”. I assume this has to be fixed in the firmware however so nothing we as users can do.

Would you mind sharing your patch?
I cannot even find the right device model in the ASUS manual etc. Quite regret this motherboard, in general.

1 Like

I’m here 6 months later with the same problem running Debian 12. I just backported the kernel to 6.10.6 thinking the new drivers should be in there, but neither the Wi-Fi nor Bluetooth is being detected.

> lspci | grep Network
44:00.0 Network controller: MEDIATEK Corp. Device 7925
> bluetoothctl show
No default controller available

Does anyone know what I can do to get either of these working?

I’ve just run into the same issue - is there any update on the patch? Could you share it here?

So, it’s been a hot minute for this issue, but the 6.12.6 kernel has my Mediatek 7925 Bluetooth functioning on Z890; looks like it was commit 058067b73b9da46f69c374097ad249aa06cd19e2 that got thrown in with 6.12.5.

Kind of a long time for a “fix”, but it also appears that the MT7925 has become very common in both Intel and AMD desktop boards; the Gigabyte Z890 board I have appears to have multiple options depending on luck of the draw, and I just happened to get one with the Mediatek chip.

UPDATE:

My bluetooth is back on. I tried disabling bluetooth in the BIOS and (cold) restarting a couple times, with no effect.

What seems to have done the job was changing IOMMU in the BIOS from AUTO to ENABLED.

I am not totally confident this is the real solution because the problem appeared (that is, bluetooth disappeared) after months of working properly with kernel version 6.11, prior to any firmware updates.

As usual, the real solution is to never turn your computer off after it turns on with everything you need.


I have a similar story, but weirder.

My TRX50-SAGE’s bluetooth was working fine for months running Fedora 40. My last kernel version was 6.11.4-201.fc40.x86_64.

However, after a reboot, the bluetooth stopped working, which brought me to this thread.
I just upgraded to kernel 6.12.8 with no luck. I keep having the same issue reported here.

Does anyone have any updates or suggestions for debugging or solving the issue?

For specifics, the hardware:

$ lspci | grep Network
44:00.0 Network controller: MEDIATEK Corp. Device 7925

The error:

$ bluetooth show
bluetooth = none (no device)

The dmsg:

$ sudo dmesg | grep 44:00.0
[    0.724252] pci 0000:44:00.0: [14c3:7925] type 00 class 0x028000 PCIe Endpoint
[    0.724270] pci 0000:44:00.0: BAR 0 [mem 0x94a00000-0x94bfffff 64bit]
[    0.724281] pci 0000:44:00.0: BAR 2 [mem 0x94c00000-0x94c07fff 64bit]
[    0.724363] pci 0000:44:00.0: PME# supported from D0 D3hot D3cold
[    0.777758] pci 0000:44:00.0: Adding to iommu group 43
[   66.647566] mt7925e 0000:44:00.0: enabling device (0000 -> 0002)
[   66.656394] mt7925e 0000:44:00.0: ASIC revision: 79250000
[   66.729050] mt7925e 0000:44:00.0: sar cnt = 0
[   66.734450] mt7925e 0000:44:00.0: HW/SW Version: 0x8a108a10, Build Time: 20241104132949a
[   67.076373] mt7925e 0000:44:00.0: WM Firmware Version: ____000000, Build Time: 20241104133053
[   68.387641] mt7925e 0000:44:00.0 wlp68s0: renamed from wlan0

The kernel:

6.12.8-100.fc40.x86_64