我在使用蓝牙时遇到问题。
# uname -a
Linux alpine 4.19.98-0-vanilla #1-Alpine SMP Thu Jan 23 10:17:11 UTC 2020 x86_64 Linux
如您所见,hciconfig 显示适配器已启动:
# hciconfig hci0
hci0: Type: Primary Bus: USB
BD Address: 5C:F3:70:62:65:B6 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:2144 acl:0 sco:0 events:91 errors:0
TX bytes:1111 acl:0 sco:0 commands:75 errors:0
bluetoothctl 显示一切似乎都正常:
[bluetooth]# show
Controller 5C:F3:70:62:65:B6 (public)
Name: BlueZ 5.54
Alias: BlueZ 5.54
Class: 0x00000000
Powered: yes
Discoverable: no
DiscoverableTimeout: 0x000000b4
Pairable: yes
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0536
Discovering: no
Advertising Features:
ActiveInstances: 0x00
SupportedInstances: 0x05
SupportedIncludes: tx-power
SupportedIncludes: appearance
SupportedIncludes: local-name
但每当我尝试启用扫描时,我都会收到相同的错误:
[bluetooth]# scan on
Failed to start discovery: org.bluez.Error.InProgress
dmesg 显示 tx 命令超时:
# dmesg | grep Bluetooth
[ 2.709741] Bluetooth: Core ver 2.22
[ 2.709758] Bluetooth: HCI device and connection manager initialized
[ 2.709769] Bluetooth: HCI socket layer initialized
[ 2.709771] Bluetooth: L2CAP socket layer initialized
[ 2.709775] Bluetooth: SCO socket layer initialized
[ 2.843398] Bluetooth: hci0: BCM: chip id 63
[ 2.847554] Bluetooth: hci0: BCM: features 0x07
[ 2.901177] Bluetooth: hci0: BlueZ 5.54
[ 2.905321] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
[ 2.922080] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21e8.hcd not found
[ 9.240210] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 9.240211] Bluetooth: BNEP filters: protocol multicast
[ 9.240214] Bluetooth: BNEP socket layer initialized
[ 172.932277] Bluetooth: hci0: command 0x200b tx timeout
[ 1150.828537] Bluetooth: hci0: command 0x2005 tx timeout
一切似乎都充满活力,但它只是拒绝启用扫描,无论重新启动多少次,或重新启动蓝牙服务,或关闭并打开适配器电源。
有什么建议 ?
答案1
作为对我有用的发现属性设置的肮脏解决方法(Bluez 5.50 + RTL8192DU)
>hciconfig hci0 up
>hciconfig hci0 reset
>bluetoothctl
#menu scan
#transport auto
#back
#scan on
...
答案2
自从我购买了新的蓝牙 USB 适配器以来,我遇到了同样的问题。但我能够在随机多次尝试重新启动蓝牙服务、关闭和打开蓝牙电源、尝试连接后进行连接,所以我创建了这个程序给我做这个无聊的工作。
使用它:
$ bluetoothctl devices
Device 94:CC:56:E5:72:85 WH-1000XM4
$ java -jar linux-bluetooth-connection-fix.jar 94:CC:56:E5:72:85
关于蓝牙问题根本原因:
我无法找到蓝牙问题的真正解决方案,看起来它甚至不存在,所有人都建议最后购买新硬件,然后我制作了这个程序作为解决方法。
相关问题