我双启动 Lunar Lobster Ubuntu 23.04 和 Windows 11。我有 Razer Opus X 蓝牙无线耳机。当我使用 Windows 11 启动时,它在我的移动设备上连接得非常好。
蓝牙已打开,并且 bluez 已安装。
我使用 Realtek 蓝牙无线电(USB 适配器)。它的 ID 是 6655::8771。根据我的理解,这意味着它使用 rtl8761b_fw.bin 和 rtl8761_config.bin 来工作蓝牙。据我所知,直到最近才发现这个问题,今年六月的某个时候修复了这个问题:https ://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1968604 我已经关注了该线程上的每条线索都没有让我的蓝牙正常工作。
尽管显然不再需要它,但我什至尝试将 rtl8761bu_fw.bin 和 rtl8761bu_config.bin 符号链接文件制作为其非 bu 对应文件(分别为 rtl8761b_fw.bin 和 rtl8761_config.bin ),但这没有任何作用。
结果来自sudo dmesg | grep -i Bluetooth
:
[ 1.497932] usb 1-8: Product: Bluetooth Radio
[ 4.198735] Bluetooth: Core ver 2.22
[ 4.198763] NET: Registered PF_BLUETOOTH protocol family
[ 4.198764] Bluetooth: HCI device and connection manager initialized
[ 4.198768] Bluetooth: HCI socket layer initialized
[ 4.198770] Bluetooth: L2CAP socket layer initialized
[ 4.198774] Bluetooth: SCO socket layer initialized
[ 5.228342] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 5.228343] Bluetooth: BNEP filters: protocol multicast
[ 5.228346] Bluetooth: BNEP socket layer initialized
[ 5.229257] Bluetooth: MGMT ver 1.22
[ 7.309061] Bluetooth: RFCOMM TTY layer initialized
[ 7.309065] Bluetooth: RFCOMM socket layer initialized
[ 7.309067] Bluetooth: RFCOMM ver 1.11
[ 774.438702] usb 1-8: Product: Bluetooth Radio
[ 774.512974] Bluetooth: MGMT ver 1.22
来自hciconfig -a
:
hci0: Type: Primary Bus: USB
BD Address: 70:3E:97:EA:E0:9E ACL MTU: 1021:6 SCO MTU: 255:12
UP RUNNING
RX bytes:1614 acl:0 sco:0 events:161 errors:0
TX bytes:5584 acl:0 sco:0 commands:148 errors:0
Features: 0xff 0xff 0xff 0xfe 0xdb 0xfd 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: PERIPHERAL ACCEPT
Name: 'LAX-B760-Pro-RS'
Class: 0x7c0104
Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
Device Class: Computer, Desktop workstation
HCI Version: 5.1 (0xa) Revision: 0xb
LMP Version: 5.1 (0xa) Subversion: 0x8761
Manufacturer: Realtek Semiconductor Corporation (93)
蓝牙已打开、启用并正在运行。当我打开设置中的蓝牙选项卡时,它似乎正在主动搜索设备。尝试使用 bluetoothctl 在终端中连接到我的耳机(或任何与此相关的蓝牙设备)也不会产生任何结果。我什至确保它的某些部分不会被 rfkill 命令阻止。
我已经完成并尝试了很多其他事情,尽管它们与我的问题并没有真正相关,但我拼命地试图让某些事情发挥作用。我已经重新安装了linux固件,我已经尝试安装blueman,我已经禁用然后重新启用蓝牙,我已经打开/关闭蓝牙,我已经尝试重新启动我的计算机,我已经尝试拔掉然后重新插上在我的蓝牙 USB 适配器中,我尝试关闭计算机,启动 Windows,关闭,然后启动 Ubuntu。这些都没有产生任何效果。
我已经在这里呆了大约六个小时了,我完全不知所措,所以我在这里注册了一个帐户只是为了询问这个问题。我知道 RealTek 蓝牙并未明确支持 ubuntu,但网上的人似乎没有任何问题,特别是在 6 月份最新的 Linux 固件更新之后。我的所有其他蓝牙设备都可以很好地相互连接,甚至可以与我的计算机连接(除了当我使用 Ubuntu 启动时),所以我不认为是它们的问题。
如果我应该在此处发布有关我的计算机的任何其他命令或其他任何可以使这更容易帮助我的命令,请告诉我。我的内核是 6.2.0-36-generic
您提到在同一设备上双启动 Windows。这带来了并发症。
当您配对几个蓝牙设备时,它们会产生一个随机共享链接密钥,并将其与其他设备的蓝牙 MAC 地址一起记住。因此,您的 Windows 注册表中有一个条目显示“MAC AA:BB:CC:DD:EE:FF 耳机的链接密钥是 XX:XX:XX:XX:XX:XX:XX:XX:XX”。并且您的耳机有一个条目显示“MAC QQ:WW:EE:RR:TT:YY 的计算机的链接密钥是 XX:XX:XX:XX:XX:XX:XX:XX:XX”。然后你重新启动到 Ubuntu,并尝试连接,耳机会认为“嘿,我认识这个 MAC 地址,这是我朋友的计算机,所以链接密钥是 XXX”,但 Ubuntu 不会在另一个分区上的 Windows 注册表,它有自己的数据存储(/var/lib/bluetooth 中的文本文件),因此它拒绝连接。
如果您在耳机上启动配对模式,您应该能够将其与 Ubuntu 配对,Ubuntu 将在 /var/lib/bluetooth 中存储新的链接密钥 YY:YY:YY:YY:YY:YY:YY:YY,然后耳机将在 Ubuntu 下工作,并且当您重新启动到 Windows 时将无法连接。
这不是最佳的。
幸运的是,一旦您将耳机与两个操作系统配对,您就可以直接使用 regedit (Windows) 或 sudoedit (Ubuntu) 编辑链接密钥,如果您这样做,耳机现在将可以毫无问题地与两个操作系统配合使用。请务必将链接密钥从最后一个与耳机配对的操作系统复制到另一操作系统。
我有一个半成品的 Python 脚本,可以自动执行此过程的某些部分(并描述了自述文件中链接密钥存储的确切位置和数据格式):https: //github.com/mgedmin/btdualboot
事实证明,从 Lunar Lobster 升级到 Mantic Minotaur (Ubuntu 23.10) 完全解决了这个问题。我想这是因为 Mantic Minotaur 最近更新了 Realtek 蓝牙固件。
我可以启动 Windows,在那里配对并连接我的耳机,然后使用 ubuntu 重新启动,然后配对并连接我的耳机(尽管有点尴尬:必须重新启动蓝牙)
所以,如果您发现自己处于与我类似的情况,您已经在每个论坛上尝试了几乎所有的方法,也许可以尝试升级到 Mantic Minotaur?