My Bluetooth isn’t working. It’s not even detected by the rfkill list command. Since installing various Linux distributions, I’ve had persistent Wi-Fi issues. To fix those, I used this repository: repo: https://github.com/lwfinger/rtw88.

Important: This rtw88 repository is for Wi-Fi only. The kernel drivers btusb and btrtl (located in the drivers/bluetooth directory) are used for Realtek Bluetooth devices.

While Bluetooth works after manually loading btusb, it doesn’t load automatically. Here’s my question:

  • How can I configure btusb to load automatically at boot?
  • Alternatively, what might be causing btusb not to load automatically?
  • @cybersandwich
    link
    English
    21 month ago

    Having wifi and Bluetooth issues sucks!

    I don’t know why it’s not loading automatically. Maybe something is blacklisting that driver? You could dmesg | grep Bluetooth and see what it might show.

    Starting it at boot should be easy though.

    create a new configuration file in /etc/modules-load.d/. This directory is specifically for loading kernel modules during the boot process. You can name the file something descriptive, like btusb.conf or whyisfuckingbluetoothstillaproblemin2024.conf

    Inside the file, add the name of the module you wish to load automatically. In your case, you only need to write btusb on a new line. Save and reboot and it should be loaded.

    You can check with: lsmod | grep btusb

    • @lastone007OP
      link
      English
      11 month ago

      I tried your suggestions, but the issue persists.

      The btusb module is blacklisted because the Wi-Fi module (rtw88_8822be) doesn’t work when btusb is loaded at boot time. It seems rtw88_8822be and btusb have a conflict and can’t be loaded together.

      My suspicion is that the ideapad_laptop module isn’t properly disabling Wi-Fi during shutdown, causing this conflict. This could be why the rtw88_8822be module is needed. Unfortunately, resolving this conflict might be complex and may not have a simple solution.

      Thanks though.

      • @cybersandwich
        link
        English
        11 month ago

        Interesting.

        A quick and dirty way to do it on each boot is to run a script on a Cron job or set up a system d service that only loads it after 5 minutes.

        sleep 300
        modprobe btusb
        

        That’s not an ideal solution by any stretch but it might bridge the gap for now…