![带有 Realtek RTL8821CU 芯片组的蓝牙适配器可以工作,但不能在 Ubuntu 上使用](https://linux22.com/image/1192252/%E5%B8%A6%E6%9C%89%20Realtek%20RTL8821CU%20%E8%8A%AF%E7%89%87%E7%BB%84%E7%9A%84%E8%93%9D%E7%89%99%E9%80%82%E9%85%8D%E5%99%A8%E5%8F%AF%E4%BB%A5%E5%B7%A5%E4%BD%9C%EF%BC%8C%E4%BD%86%E4%B8%8D%E8%83%BD%E5%9C%A8%20Ubuntu%20%E4%B8%8A%E4%BD%BF%E7%94%A8.png)
我的系统识别我的加密狗bluetoothctl
支持蓝牙,但我实际上无法在任何蓝牙控制界面( 、、btmgmt
图形蓝牙设置等)中使用它。
我在 Windows 机器上测试了该设备,它在那里可以工作,但当我将其放回 Ubuntu 机器上时却不行。
我收到的错误消息和情况如下:
$ sudo btmgmt
# power on
Set Powered for hci0 failed with status 0x03 (Failed)
$ sudo bluetoothctl
# list
[no output]
# show
No default controller available
该适配器支持蓝牙和 Wi-Fi,该公司表示,它们应该可以同时工作。该适配器上的 Wi-Fi 可在 Ubuntu 上使用。
系统信息
$ uname --all
Linux odroid 4.9.337-31 […] aarch64 GNU/Linux
$ cat /etc/issue
Ubuntu 22.04.1 LTS \n \l
$ bluetoothctl --version
5.64
$ lsusb
[other devices]
Bus 001 Device 004: ID 0bda:c820 Realtek Semiconductor Corp. 802.11ac NIC
[other devices]
$ hciconfig -a
hci0: Type: Primary Bus: USB
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:917 acl:0 sco:0 events:130 errors:0
TX bytes:33030 acl:0 sco:0 commands:131 errors:0
Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Packet type: DM1 DH1 HV1
Link policy:
Link mode: PERIPHERAL ACCEPT
$ rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
$ lsmod
Module Size Used by
[other modules]
btusb 45056 0
btrtl 16384 1 btusb
btbcm 16384 1 btusb
btintel 24576 1 btusb
8821cu 2256896 0
bluetooth 479232 8 btrtl,btintel,bnep,btbcm,btusb
[other modules]
我也有的结果lsusb -v
以防万一有帮助。
日志
当我手动运行btmon
并启动时bluetoothd
,这是我得到的结果btmon
(节选):
= New Index: 00:00:00:00:00:00 (Primary,USB,hci0)
= bluetoothd: Bluetooth daemon 5.64
@ MGMT Open: bluetoothd (privileged) version 1.14
= bluetoothd: Starting SDP server
@ MGMT Command: Read Management Version Information (0x0001) plen 0
@ MGMT Event: Command Complete (0x0001) plen 6
Read Management Version Information (0x0001) plen 3
Status: Success (0x00)
Version: 1.14
[a few other successful commands and events]
@ MGMT Command: Remove Advertisement Monitor (0x0053) plen 2
Handle: 0
@ MGMT Event: Command Status (0x0002) plen 3
Remove Advertisement Monitor (0x0053)
Status: Unknown Command (0x01)
= bluetoothd: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Unknown Command (0x01)
最后两行以红色打印。还请注意第一行的 mac 地址。监视器继续显示:
@ MGMT Command: Read Controller Information (0x0004) plen 0
@ MGMT Event: Command Complete (0x0001) plen 283
Read Controller Information (0x0004) plen 280
Status: Success (0x00)
Address: 00:00:00:00:00:00 (OUI 00-00-00)
Version: Bluetooth 4.2 (0x08)
Manufacturer: Realtek Semiconductor Corporation (93)
Supported settings: 0x000010bf
Powered
Connectable
Fast Connectable
Discoverable
Bondable
Link Security
BR/EDR
Debug Keys
Current settings: 0x00000080
BR/EDR
Class: 0x000000
Major class: Miscellaneous
Minor class: 0x00
Name:
Short name:
= bluetoothd: No Bluetooth address for index 0
最后一行也以红色打印。
如果我尝试运行sudo hciconfig hci0 up
,我会得到以下信息:
Can't init device hci0: Cannot assign requested address (99)
如果我遗漏了任何相关日志或系统信息,请告诉我。
編輯
$ cat etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
我知道问题不在于我尝试连接的蓝牙设备,因为:
- 我甚至无法启动
bluetoothctl
控制加密狗的会话,而且 - 当我将加密狗插入 Windows 机器时,它就可以工作并连接到相关设备。
我问美国机器人,产品经销商,寻求帮助。他们提供的帮助范围是告诉我设备应该可以工作,并推迟到相关帖子在 ODROID 论坛上。
该论坛帖子不包含任何对我有帮助的提示,而且我也在那里发帖寻求帮助。