3

I bought a Bluetooth dongle (LogiLink BT0054), and want to get it working on Linux.  Whenever I plug it in, these messages appear in the output of dmesg:

[ 6185.169440] usb 1-4: new full-speed USB device number 9 using xhci_hcd
[ 6185.417009] usb 1-4: New USB device found, idVendor=0bda, idProduct=8771
[ 6185.417012] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6185.417013] usb 1-4: Product: Bluetooth Radio
[ 6185.417014] usb 1-4: Manufacturer: Realtek
[ 6185.417015] usb 1-4: SerialNumber: 00E04C239987
[ 6185.431031] Bluetooth: hci0: rtl: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
[ 6185.431034] Bluetooth: hci0: rtl: loading rtl_bt/rtl8761a_config.bin
[ 6185.431050] bluetooth hci0: Direct firmware load for rtl_bt/rtl8761a_config.bin failed with error -2
[ 6185.431052] Bluetooth: hci0: rtl: loading rtl_bt/rtl8761a_fw.bin
[ 6185.434008] Bluetooth: hci0: rom_version status=0 version=1
[ 6185.434013] Bluetooth: hci0: cfg_sz 0, total size 20204
[ 6187.921147] Bluetooth: hci0: command 0xfc20 tx timeout
[ 6195.921559] Bluetooth: hci0: download fw command failed (-110)

Relevant output of usb-devices:

T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#=  9 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0bda ProdID=8771 Rev=02.00
S:  Manufacturer=Realtek
S:  Product=Bluetooth Radio
S:  SerialNumber=00E04C239987
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

I searched for solutions, and the best hit I found was this post by Jeronimo17 at Linux Mint Forums — although the chipset (idVendor and idProduct) seems to match with my hardware, I am quite unsure if those drivers are usable for me (since my dongle is manufactured from a completely different company).

The forum post mentions a kernel patch that seems to be necessary, which (from what they write) is present only in the mainstream kernel 5.8 — since I am using Ubuntu 18.04 LTS (Bionic Beaver), my kernel version is 4.15.0-136.  What is necessary to get it working?

1

2 Answers 2

3

After some further hours of researching, I got it working. For anyone wondering how everything is put together, here is what I found out: This kernel patch is not (yet) available inside the Ubuntu-4.15 kernel. It patches the Bluetooth-USB module responsible for loading the correct firmware, because the current module identifies the chipset as rtl8761a, even though it is revision b... This leads to loading the wrong firmware.

Now, anyone wanting to get this working has two options:

  • install a kernel with modules which has the linked patch applied
  • replace the kernel module btusb.ko by a different one

The linked drivers (from MPOW) work by implementing the second step - they rename the original module btusb.ko to btusb_bak, and install their own module instead. The new module identifies the chip correct, and searches for the correct firmware.

Once I copied rtl8761bu_config and rtl8761bu_fw to /lib/firmware, my bluetooth dongle worked like a charm.

4
  • I have exactly the same product and I use ubuntu. Can you help me to work it correctly? I downloaded the drivers but they are for windows. How did you install them then? Jun 29, 2021 at 14:30
  • 1
    You need the drivers for linux. Go to the mpow download page ( xmpow.com/pages/download ), click on "USB Adapters" -> "Drivers", choose a USB adapter, and download the linux drivers...
    – Martin
    Jun 30, 2021 at 7:41
  • How can i find what chipset i have on bluetooth Logilink BT0054? Bluetooth USB Adapter BH519, BH456A and BH079A presents the page! What i must download? Jul 1, 2021 at 16:03
  • 1
    read the linked forum post; as far as I know, the Logilink BT0054 has the chipset rtl8761bu. The forum post suggests to download the drivers for MPOW BH456A; I downloaded the driver for BH519, it seems to work either way.
    – Martin
    Jul 1, 2021 at 16:23
3

Note 1: You need "Bluetooth USB" instructions, not "Bluetooth Device" instructions. HCI tools (as I read) are useful for hardware devices, e.g., motherboards, cards, etc.—not for USB devices.

Note 2: 1 min and 20 seconds to transfer a single image file (~7 megabytes).

  • Faster way to transfer files wirelessly from Android to Linux Desktop / PC (and much more) is by using KDE Connect
  • In some seconds, I transferred at 50 Mbit/s to my Linux desktop.

KDE Connect: wireless transfer files between Android and Linux desktop

I had also bought a LogiLink BT0054. It didn't work. What I did with the help of @Martin:

  • sudo add-apt-repository ppa:hanipouspilot/bluetooth
  • sudo apt install bluetooth blueman bluez bluez-tools rfkill libbluetooth-dev
  • sudo apt update
  • sudo apt upgrade
  • sudo apt install btrtl-rtl8723de-dkms

Then...

  • Go to xmpow.com/pages/download as suggested by Martin
  • Click on "USB Adapters" -> "Drivers", choose a USB adapter, and download the Linux drivers as suggested by Martin (I chose one at random)
  • Unzip content at Download folder
  • Find a folder named something like this "20200610_LINUX_BT_DRIVER"
  • cd ~/20200610_LINUX_BT_DRIVER and sudo make install INTERFACE=usb

Then...

  • Restart
  • Make again - sudo apt update & sudo apt upgrade
  • sudo modprobe rtk_btusb && dmesg | grep rtk
  • Run Bluetooth Manager.
  • Make it "permanent visible" in the Adapter menu, if you like, for easier detection.
  • Caution! Don't forget when opening your Bluetooth that hackers may exist!

Useful commands for detection of Bluetooth:

  • sudo modprobe btusb "not found" appears to me while bluetooth works
  • lsmod | grep bluetooth
bluetooth             520192  41 hci_uart,bnep,rtk_btusb,rfcomm
ecdh_generic           24576  2 bluetooth
  • modinfo rtk_btusb
filename:       /lib/modules/4.15.0-144-generic/kernel/drivers/bluetooth/rtk_btusb.ko
license:        GPL
version:        3.1.897f3bb.20201202-173003
description:    Realtek Bluetooth USB driver ver 3.1.897f3bb.20201202-173003
author:
srcversion:     3522FC1E4EC17E8C6EC22B3
alias:          usb:v1358p*d*dc*dsc*dp*icE0isc01ip01in*
alias:          usb:v0489p*d*dc*dsc*dp*icE0isc01ip01in*
alias:          usb:v13D3p*d*dc*dsc*dp*icE0isc01ip01in*
alias:          usb:v0BDAp*d*dc*dsc*dp*icE0isc01ip01in*
depends:        bluetooth
retpoline:      Y
name:           rtk_btusb
vermagic:       4.15.0-144-generic SMP mod_unload modversions
  • lsusb

Bus 003 Device 004: ID 0bda:8771 Realtek Semiconductor Corp.

  • uname -a; lspci -nnk | grep -iA2 net; lsusb; dmesg | grep -i bluetooth; dmesg | grep -i firmware; lsmod | grep bluetooth

        Linux eliasc 4.15.0-144-generic #148-Ubuntu SMP Sat May 8 02:33:43 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
        03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)
            Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet [1458:e000]
            Kernel driver in use: r8169
            Kernel modules: r8169
        Bus 002 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub
        Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
        Bus 001 Device 002: ID 8087:8008 Intel Corp. Integrated Rate Matching Hub
        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
        Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
        Bus 003 Device 004: ID 0bda:8771 Realtek Semiconductor Corp.
    

    .............

        Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
        [    1.944846] usb 3-9: Product: Bluetooth Radio
        [   90.765641] Bluetooth: Core ver 2.22
        [   90.765653] Bluetooth: HCI device and connection manager initialized
        [   90.765655] Bluetooth: HCI socket layer initialized
        [   90.765656] Bluetooth: L2CAP socket layer initialized
        [   90.765659] Bluetooth: SCO socket layer initialized
        [   91.222481] Bluetooth: HCI UART driver ver 2.2.74e8f89.20201202-173004
        [   91.222482] Bluetooth: HCI H4 protocol initialized
        [   91.222482] Bluetooth: HCI Realtek H5 protocol initialized
        [  100.773759] rtk_btusb: Realtek Bluetooth USB driver ver 3.1.897f3bb.20201202-173003
        [  128.036009] Modules linked in: kvm_intel(+) kvm snd_hda_codec_realtek
    

    .......

        [  142.968927] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
        [  142.968928] Bluetooth: BNEP filters: protocol multicast
        [  142.968930] Bluetooth: BNEP socket layer initialized
        [  189.741194] Bluetooth: RFCOMM TTY layer initialized
        [  189.741200] Bluetooth: RFCOMM socket layer initialized
        [  189.741208] Bluetooth: RFCOMM ver 1.11
        [    0.024000] Spectre V2 : Enabling Restricted Speculation for firmware calls
        [    0.046260] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
        [  100.786121] rtk_btusb: load_firmware start
        [  101.062116] rtk_btusb: load_firmware: New gEVersion 1
        [  101.062125] rtk_btusb: load_firmware done
        [  145.113188] rtk_btusb: Firmware already exists
        bluetooth             520192  41 hci_uart,bnep,rtk_btusb,rfcomm
    
    • sudo rfkill list

0: hci0: Bluetooth Soft blocked: no Hard blocked: no

  • sudo service bluetooth status
bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor

preset: enabled)
   Active: active (running) since Fri 2021-07-02 09:36:12 EEST; 45min ago
     Docs: man:bluetoothd(8)

 Main PID: 1283 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/bluetooth.service
           └─1283 /usr/lib/bluetooth/bluetoothd

Jul 02 09:36:11 eliasc systemd[1]: Starting Bluetooth service...
Jul 02 09:36:11 eliasc bluetoothd[1283]: Bluetooth daemon 5.48
Jul 02 09:36:12 eliasc systemd[1]: Started Bluetooth service.
Jul 02 09:36:12 eliasc bluetoothd[1283]: Starting SDP server
Jul 02 09:36:14 eliasc bluetoothd[1283]: Bluetooth management interface
     1.14 initialized
Jul 02 09:37:00 eliasc bluetoothd[1283]: Endpoint registered:
     sender=:1.38 path=/MediaEndpoint/A2DPSource
Jul 02 09:37:00 eliasc bluetoothd[1283]: Endpoint registered:
     sender=:1.38 path=/MediaEndpoint/A2DPSink
Jul 02 09:49:28 eliasc bluetoothd[1283]: Unable to get io data for Object

Push: getpeername: Transport endpoint is not connected (107)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .