Linux has sadly many problems when it comes to Bluetooth, or at least, some specific distributions of it.

We have seen a case before where many Bluetooth devices were actually supported by the kernel, but an issue in USB power management caused these devices to not work for a very, very long time on various Linux distributions.

Today, it seems that there is another Bluetooth issue.

Some Bluetooth 5.0 adapters which use the rtl8761b firmware are not working correctly on Ubuntu 20.04 and 22.04 (Possibly other Linux distributions too), because of a bug in loading the correct driver for these devices.

In other words, the driver is there on the system and has no issue, but the only issue is that it is not loaded correctly when the Bluetooth device is plugged to the machine.

You can figure this out if you write the following command in the terminal (After inserting the Bluetooth device):

sudo dmesg | grep bluetooth

And you may see the following output:

mhsabbagh@ryzenpc:~$ sudo dmesg|grep bluetooth
[sudo] password for mhsabbagh:
[ 3.582143] bluetooth hci0: loading /lib/firmware/rtl_bt/rtl8761bu_config.bin failed with error -40
[ 3.582145] bluetooth hci0: Direct firmware load for rtl_bt/rtl8761bu_config.bin failed with error -40

This happens because the rtl8761bu firmware is being requested, but the system should have loaded the rtl8761b firmware, not the rtl8761bu one. The latter may not even exist on your system.

To fix this issue, luckily we don’t need to install or download anything! We just need to create a simple symbolic link to link rtl8761bu driver firmware to rtl8761b one. In this way, any time our system requests the rtl8761bu files it will be instead served the correct rtl8761b ones.

We can do it by applying the following commands in the terminal:

cd /lib/firmware/rtl_bt
sudo ln -s rtl8761b_config.bin rtl8761bu_config.bin
sudo ln -s rtl8761b_fw.bin rtl8761bu_fw.bin

After it, just remove the Bluetooth 5.0 adapter from the computer and plug it again (no restart required), and this time, it should be working.

This bug was first caught in Ubuntu on April 11, 2022, but still not fixed until this very day. Many thanks to the “Bert RAM Aerts” user for suggesting the possible fix.

If you have applied this fix and the Bluetooth adapter worked/didn’t work with you, then tell us in the comments below.

People reacted to this story.
Show comments Hide comments
Comments to: Fix Bluetooth rtl8761b Problem on Linux (Ubuntu 22.04)
  • July 14, 2022

    Using KDE Neon, I get ‘failed with error -2’. Your solution works just fine, thanks.

    Reply
    • September 21, 2022

      lib/firmware/rtl_bt$ sudo ln -s rtl8761b_fw.bin rtl8761bu_fw.bin
      ln: failed to create symbolic link ‘rtl8761bu_fw.bin’: File exists

      Reply
  • August 2, 2022

    Just a quick heads-up, these instructions do not work on 20.04 nor 22.04, as tested here with the adapter (B08LVH5BCP) from Amazon using this Realtek chip. The firmware file needed for this adapter apparently does not exist, not even from Realtek themselves. That’s a shame, but back into the return envelope it goes, only 10 minutes old.

    Reply
  • August 6, 2022

    I just renamed my current file name to the new one it was looking for and it worked.

    Reply
    • September 21, 2022

      whats the terminal code

      Reply
  • September 29, 2022

    Worked for Ugreen Bluetooth 5.0 USB Adapter, Ubuntu 20.04.5 LTS

    Reply
  • October 29, 2022

    The problem arose early this year after a kernel update on 20.04, tried a few things but they did not work.
    I now stumbled accros this solution.
    The problem persists, bluetooth does not allow connections to any device though it looks healthy.
    dmesg shows:

    [17284.463200] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_config.bin
    [17284.463212] Bluetooth: hci0: RTL: cfg_sz 6, total sz 17782
    [17284.561197] Bluetooth: hci0: RTL: fw version 0x09002b09
    [17286.661128] Bluetooth: hci0: command 0x2038 tx timeout

    Asus BT500 usb dongle.

    Reply
  • November 4, 2022

    So I tried this with a fresh install of Ubuntu 22.04.1 to attempt to install my Insignia adapter (https://www.bestbuy.ca/en-ca/product/insignia-usb-bluetooth-5-0-adapter-ns-pa3bt5a2b22-c-black-only-at-best-buy/15997293) and ran into the following:

    1. The adapter is recognized, but doesn’t detect any Bluetooth devices.

    2. I needed to change
    sudo dmesg | grep bluetooth
    to
    sudo dmesg | grep Bluetooth

    3. The symbolic link command returns the following message
    ln: failed to create symbolic link ‘rtl8761bu_config.bin’: File exists

    I checked and both the bu and b files are in /lib/firmware/rtl_bt

    I tried renaming the bu files and set up the symbolic links, but the adapter still did not work.

    Reply
    • November 5, 2022

      Had the same issue
      Fixed it by using the following :
      sudo rm rtl8761bu_config.bin
      sudo ln -s rtl8761b_config.bin rtl8761bu_config.bin
      sudo rm rtl8761bu_fw.bin
      sudo ln -s rtl8761b_fw.bin rtl8761bu_fw.bin

      Hope this helps

      Reply
      • November 8, 2022

        Thanks @poisonff, I tried that as well and it didn’t help, except I renamed the bu files to .bin2 so that I wouldn’t lose them.

        Reply
        • November 8, 2022

          There are many Bluetooth adapters in the market, and they may be using different drivers or different versions of the same drivers, which is why sometimes it may not work.

          These types of issues, however, should be addressed to either:
          – The main Linux kernel team if it is an upstream bug.
          – The Ubuntu team at Launchpad.net if it only affects Ubuntu.

          If I were you, I would see if another distribution like Fedora does have the same issue or not, so that I can figure out which place to report the bug to. After it, I would participate in reporting it.

          Reply
          • November 11, 2022

            very interesting idea, I tried it with a live disk version of Fedora and the same issue occurred

            therefore it’s likely a kernel issue

            I’m trying to track down how to report the kernel issue, but it’s pretty complicated to find the right venue to do that

          • November 11, 2022

            You can report a kernel bug from: https://bugzilla.kernel.org/

  • November 17, 2022

    I had to download the specific driver separately from some other website, and then put it in the path for Kubuntu 20.04

    Even then it’s not robust, first time connecting to BT devices after first boot works fine, then if switch BT device to anyother device like mobile and then try to connect to Kubuntu again then it won’t connect.

    Same issue with both my BT keyboard Logitech k480 and OnePlus Buds z.

    I wish Kubuntu is as robust as Windows in BT connections.

    In Win 10 same BT adapter is working seamlessly between devices.

    Reply
  • November 28, 2022

    I am having this problem with an Asus USB-BT-500. My terminal will only take the first line of above. (cd /lib/firmware/rtl_bt) It will not take other two lines. Any ideas?

    Reply
  • December 10, 2022

    The above fix perfectly worked for JBL TUNE500BT Bluetooth Adapter. Ubuntu Desktop (2022.10) displayed the Bluetooth icon enabled on the top bar and automatically powered-on upon startup. Nepal. Thanks a lot!!!!!

    Reply
  • January 9, 2023

    On Linux Mint 21.1 the suggested change worked, but before creating the links it is necessary to rename the files /lib/firmware/rtl_bt/rtl8761bu_bin and /lib/firmware/rtl_bt/rtl8761bu_config.bin, so that they are not overwritten by the link you will go to create.

    cd /lib/firmware/rtl_bt
    sudo cp rtl8761bu_bin rtl8761bu_bin-ex
    sudo cp rtl8761bu_config.bin rtl8761bu_config.bin-ex
    sudo ln -s rtl8761b_config.bin rtl8761bu_config.bin
    sudo ln -s rtl8761b_fw.bin rtl8761bu_fw.bin

    Reply
  • February 7, 2023

    Thank you very much. The tricks worked for me.

    Reply
  • February 13, 2023

    I think I am having a similar problem to what has been discussed. Ubuntu 22.04 LTS. I have used the new drivers as referenced in the bug report of 11 apr. My drivers changed from 0x999 to 0x9a9. should I be attempting to use bluetooth.service and /or bluez.service or are they seperate.

    bluetooth.service – Bluetooth service
    Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
    Active: active (running) since Mon 2023-02-13 20:27:59 NZDT; 2min 30s ago
    Docs: man:bluetoothd(8)
    Main PID: 1043 (bluetoothd)
    Status: “Running”
    Tasks: 1 (limit: 38335)
    Memory: 2.3M
    CPU: 196ms
    CGroup: /system.slice/bluetooth.service
    └─1043 /usr/lib/bluetooth/bluetoothd

    systemctl status snap.bluez.bluez.service
    × snap.bluez.bluez.service – Service for snap application bluez.bluez
    Loaded: loaded (/etc/systemd/system/snap.bluez.bluez.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Wed 2023-02-08 19:28:26 NZDT; 20min ago
    Main PID: 1541 (code=exited, status=1/FAILURE)
    CPU: 32ms

    Feb 08 19:28:26 Edward systemd[1]: snap.bluez.bluez.service: Failed with result ‘exit-code’.
    Feb 08 19:28:26 Edward bluetoothd[1541]: Unable to get on D-Bus
    Feb 08 19:28:26 Edward systemd[1]: snap.bluez.bluez.service: Scheduled restart job, restart counter is at 5.

    Not really sure where to go from here

    Reply
  • March 22, 2023

    Can you simply restart your Bluetooth though anytime you encounter inconsistencies with just “sudo service bluetooth restart” this helped me!!

    Reply

Write a response

Your email address will not be published. Required fields are marked *

Stay Informed

Keep up with the latest open source matters, away from blogspam, by following our social media accounts.