u/-AlgoTrader-

Symptoms here: Ryzen 9 7950X, X670E Aorus Master, MediaTek MT7921. WiFi (PCIe) loads fine, Bluetooth (USB) times out with usb 1-9: device descriptor read/64, error -110 — adds 60+ seconds to boot, leaves Bluetooth dead until cold boot.

Root cause: USB devices retain power state through warm reboots. The MT7921's BT half stays in a confused post-firmware-load state, and the kernel can't re-init it cleanly on next boot. Cold boot drains the USB rail and resets the chip, which is why it works.

Fix — systemd service that deauthorizes the USB device before shutdown. Forces a clean state for the next boot.

Create /etc/systemd/system/bt-cleanup.service:

[Unit]
Description=Reset MT7921 Bluetooth USB before shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'modprobe -r btusb btintel btmtk 2>/dev/null; echo 0 > /sys/bus/usb/devices/1-9/authorized 2>/dev/null; sleep 1; true'
RemainAfterExit=yes

[Install]
WantedBy=halt.target reboot.target shutdown.target

Then:

sudo systemctl daemon-reload
sudo systemctl enable bt-cleanup.service

Find your USB path: Run lsusb -t and look for the MediaTek device. If yours isn't 1-9, replace the path in the service file.

Tested on Ubuntu 24.04, kernel 6.17, BIOS Aorus F42b. Survives warm reboots cleanly, no more 60-second USB enumeration delay, Bluetooth comes up immediately.

reddit.com
u/-AlgoTrader- — 7 days ago
▲ 6 r/Ubuntu

Workaround for MT7921 Bluetooth USB timeout on warm reboot

Same symptoms here: Ryzen 9 7950X, X670E Aorus Master, MediaTek MT7921. WiFi (PCIe) loads fine, Bluetooth (USB) times out with usb 1-9: device descriptor read/64, error -110 — adds 60+ seconds to boot, leaves Bluetooth dead until cold boot.

Root cause: USB devices retain power state through warm reboots. The MT7921's BT half stays in a confused post-firmware-load state, and the kernel can't re-init it cleanly on next boot. Cold boot drains the USB rail and resets the chip, which is why it works.

Fix — systemd service that deauthorizes the USB device before shutdown. Forces a clean state for the next boot.

Create /etc/systemd/system/bt-cleanup.service:

[Unit]
Description=Reset MT7921 Bluetooth USB before shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'modprobe -r btusb btintel btmtk 2>/dev/null; echo 0 > /sys/bus/usb/devices/1-9/authorized 2>/dev/null; sleep 1; true'
RemainAfterExit=yes

[Install]
WantedBy=halt.target reboot.target shutdown.target

Then:

sudo systemctl daemon-reload
sudo systemctl enable bt-cleanup.service

Find your USB path: Run lsusb -t and look for the MediaTek device. If yours isn't 1-9, replace the path in the service file.

Tested on Ubuntu 24.04, kernel 6.17, BIOS Aorus F42b. Survives warm reboots cleanly, no more 60-second USB enumeration delay, Bluetooth comes up immediately.

reddit.com
u/-AlgoTrader- — 9 days ago