Ubuntu 21.04-蓝牙 5.0 加密狗不工作,并显示没有固件

Ubuntu 21.04-蓝牙 5.0 加密狗不工作,并显示没有固件

我尝试让我的 USB 蓝牙适配器工作,但它却说没有固件

lsusb 输出:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:8771 Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 004: ID 413c:2113 Dell Computer Corp. KB216 Wired Keyboard
Bus 001 Device 003: ID 413c:301a Dell Computer Corp. Dell MS116 Optical Mouse
Bus 001 Device 007: ID 2717:ff80 Xiaomi Inc. Mi/Redmi series (RNDIS)
Bus 001 Device 002: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

命令的 dmesg 输出sudo dmesg | grep -i bluetooth

[    2.146047] usb 1-8: Product: Bluetooth Radio
[    3.386019] Bluetooth: Core ver 2.22
[    3.386031] Bluetooth: HCI device and connection manager initialized
[    3.386034] Bluetooth: HCI socket layer initialized
[    3.386035] Bluetooth: L2CAP socket layer initialized
[    3.386038] Bluetooth: SCO socket layer initialized
[    3.443247] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
[    3.444088] Bluetooth: hci0: RTL: rom_version status=0 version=1
[    3.444089] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761b_fw.bin
[    3.445239] bluetooth hci0: Direct firmware load for rtl_bt/rtl8761b_fw.bin failed with error -2
[    3.445242] Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8761b_fw.bin not found
[    8.604909] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    8.604912] Bluetooth: BNEP filters: protocol multicast
[    8.604915] Bluetooth: BNEP socket layer initialized

我尝试查找适用于 Ubuntu 21.04 的固件,但只有适用于 Ubuntu 20.04(https://gist.github.com/rometsch/dfd24fb09c85c1ad2f25223dc1481aaa)。因此我想寻求一个可能的解决方案。

答案1

rtl8761b如果您看到以下错误,则表示您的 Linux 发行版中缺少固件:

Direct firmware load for rtl_bt/rtl8761b_fw.bin failed with error -2
firmware file rtl_bt/rtl8761b_fw.bin not found

执行以下命令来安装缺失的固件:

cd /tmp
# Fetch rtl8761b_config and rtl8761b_fw from https://github.com/Realtek-OpenSource/android_hardware_realtek
wget https://raw.githubusercontent.com/Realtek-OpenSource/android_hardware_realtek/rtk1395/bt/rtkbt/Firmware/BT/rtl8761b_config
wget https://raw.githubusercontent.com/Realtek-OpenSource/android_hardware_realtek/rtk1395/bt/rtkbt/Firmware/BT/rtl8761b_fw
mv rtl8761b_config /lib/firmware/rtl_bt/rtl8761b_config.bin
mv rtl8761b_fw /lib/firmware/rtl_bt/rtl8761b_fw.bin
sudo modprobe btusb
sudo systemctl start bluetooth.service
hciconfig -a # will show that the bluetooth-device is up

如果您正在寻找更舒适的解决方案,这里有一个类似的基于脚本的解决方案,可以自动安装丢失的蓝牙固件,包括rtl8761bhttps://unix.stackexchange.com/a/643707/88252

答案2

我花了大半天时间研究这个问题。kernel.org 中的固件不起作用,从 rtl8761b_fw.bin 和 rtl8761b_config.bin 重命名/符号链接不起作用。

无论如何,我快速制作了一个 deb 文件(我买了几个适配器,可能需要在大多数计算机上安装它,所以这值得我花时间): https://www.dropbox.com/scl/fi/zf19jwjhg996xy5rsrnu7/rtl8761bufw.deb?rlkey=tb9b1y6b3vrkogvl9gafpttgx&dl=0

我可能会在某个阶段以更好的方式分享它(虽然这很愚蠢)。我找不到发布这些固件文件的许可条款,所以我将其描述为非免费。

无论如何,这是一种安装(和卸载)固件的简单方法(如果您好奇其中的内容,您可以随时使用 ar 来提取文件)。

相关内容