Bluetooth broken on boot. Needs module reload.

For a few weeks now (I can't really tie that to any event or change in particular) I need to reload the btusb module in order for my Bluetooth to work.
The hardware itself is an Intel AC8260 Wifi/Bluetooth combo card.

When looking through dmesg I see the following event happening :

> $ sudo dmesg | grep Blue                                                                                                                                                                                                                  
[    5.280768] Bluetooth: Core ver 2.22
[    5.280783] Bluetooth: HCI device and connection manager initialized
[    5.280785] Bluetooth: HCI socket layer initialized
[    5.280787] Bluetooth: L2CAP socket layer initialized
[    5.280790] Bluetooth: SCO socket layer initialized
[    5.431282] Bluetooth: hci0: Bootloader revision 0.0 build 2 week 52 2014
[    5.437260] Bluetooth: hci0: Device revision is 5
[    5.437261] Bluetooth: hci0: Secure boot is enabled
[    5.437263] Bluetooth: hci0: OTP lock is enabled
[    5.437263] Bluetooth: hci0: API lock is enabled
[    5.437264] Bluetooth: hci0: Debug lock is disabled
[    5.437265] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    5.438392] Bluetooth: hci0: Found device firmware: intel/ibt-11-5.sfi
[    5.589501] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    5.589502] Bluetooth: BNEP filters: protocol multicast
[    5.589506] Bluetooth: BNEP socket layer initialized
[    6.407289] Bluetooth: hci0: Failed to send firmware data (-38)
[    6.407301] Bluetooth: hci0: Intel reset sent to retry FW download

When reloading btusb module it seems to work fine though...:

> $ sudo modprobe -r btusb && sudo modprobe btusb                                                                                                                                                                                                                                                                                                                                                                                                                 > $ sudo dmesg | grep Blue                                                                                                                                                                                                                  
[  907.393617] Bluetooth: hci0: Bootloader revision 0.0 build 2 week 52 2014
[  907.399653] Bluetooth: hci0: Device revision is 5
[  907.399655] Bluetooth: hci0: Secure boot is enabled
[  907.399657] Bluetooth: hci0: OTP lock is enabled
[  907.399658] Bluetooth: hci0: API lock is enabled
[  907.399660] Bluetooth: hci0: Debug lock is disabled
[  907.399662] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[  907.399953] Bluetooth: hci0: Found device firmware: intel/ibt-11-5.sfi
[  909.260530] Bluetooth: hci0: Waiting for firmware download to complete
[  909.260638] Bluetooth: hci0: Firmware loaded in 1823865 usecs
[  909.260828] Bluetooth: hci0: Waiting for device to boot
[  909.271749] Bluetooth: hci0: Device booted in 10788 usecs
[  909.278282] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-11-5.ddc
[  909.281852] Bluetooth: hci0: Applying Intel DDC parameters completed
[  909.283768] Bluetooth: hci0: Firmware revision 0.0 build 10 week 41 2018
[  909.355441] Bluetooth: RFCOMM TTY layer initialized
[  909.355445] Bluetooth: RFCOMM socket layer initialized
[  909.355449] Bluetooth: RFCOMM ver 1.11

Does anyone know a fix for that? I've tried to create some systemd units and even KDE autostart-script for that but none seems to work...

I would try blacklisting btusb in /etc/modprobe.d

Then I would write a startup service that triggers after network-online target.

In the service modprobe the btusb module and then restart the bluetooth service (perhaps with a 10 second delay).

1 Like

It seems to have worked fine! Thanks!

1 Like

I wasn't sure that would help, but apparently that wasn't a bad guess.

So glad that fixed things for you, and you're very welcome.

If it wouldn't be too much trouble, could you please post your steps for others benefit. I will then link your service on my systemd thread so others can find it easier.

Sure!

My modprobe blacklist file (/etc/modprobe.d/bt_blacklist.conf):

blacklist btrtl
blacklist btbcm
blacklist btintel
blacklist btusb

The systemd unit file (/etc/systemd/system/load-bluetooth-modules.service):

[Unit]
Description=Loads btusb kernel module
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/loadbtusb

[Install]
WantedBy=multi-user.target

To enable it :
systemctl daemon-reload
systemctl enable load-bluetooth-modules

The executable it triggers (don't forget chmod +x):

#!/bin/bash
modprobe btusb
sleep 10
systemctl restart bluetooth.service

Actually for me it works without reloading bluetooth service but I left it here just for good mesure. Also I guess YMMV depending on your actual config.

1 Like

Thank you for posting your service version.

I linked to your service on my systemd thread so others may find it easier. I also had another service similar to this on my systemd thread that you can view:

Hello,
I have the problem that at login screen no bluetooth mouse no keyboard works.
Can you help?
geert

Please open a new topic, don't hijack a topic of another user ( a solved one at that).
Also please don't request some other forum member directly to help you personally.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by