我已经看过一些其他答案,但它们似乎都不适用或没有解决任何问题。
我在 15.10 上安装了 USB 蓝牙。它以前工作正常。今天我去配对耳机,发现无法打开蓝牙。
服务状态
$ sudo systemctl status bluetooth -l
bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2016-03-20 23:09:56 EDT; 3min 8s ago
Docs: man:bluetoothd(8)
Process: 1847 ExecStart=/usr/lib/bluetooth/bluetoothd (code=exited, status=203/EXEC)
Main PID: 1847 (code=exited, status=203/EXEC)
Mar 20 23:09:56 brian-htpc systemd[1]: Starting Bluetooth service...
Mar 20 23:09:56 brian-htpc systemd[1]: bluetooth.service: Main process exited, code=exited, status=203/EXEC
Mar 20 23:09:56 brian-htpc systemd[1]: Failed to start Bluetooth service.
Mar 20 23:09:56 brian-htpc systemd[1]: bluetooth.service: Unit entered failed state.
Mar 20 23:09:56 brian-htpc systemd[1]: bluetooth.service: Failed with result 'exit-code'.
系统盘
$ lsusb
Bus 002 Device 003: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
杀戮
$ rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
消息
$ sudo dmesg | grep -i bluetooth
[ 3.200940] Bluetooth: Core ver 2.20
[ 3.200957] Bluetooth: HCI device and connection manager initialized
[ 3.200963] Bluetooth: HCI socket layer initialized
[ 3.200966] Bluetooth: L2CAP socket layer initialized
[ 3.200973] Bluetooth: SCO socket layer initialized
[ 3.220752] Bluetooth: hci0: BCM: chip id 63
[ 3.223753] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
[ 3.369865] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e8.hcd failed with error -2
[ 3.369875] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21e8.hcd not found
因此,似乎由于某种原因缺少驱动程序或固件。我该如何重新安装它?是否有 apt 包可以解决这个问题?
我尝试过find
/locate
和BCM20702A1-0a5c-21e8.hcd
通配符变体来查看它是否只是在错误的位置,但似乎并非如此 - 我相信它在某个时候以某种方式被删除了。
更新
按照林培恩和杰里米31的评论:
- 从其他线程安装固件并不能解决我的问题,并且
lsusb
不再检测到 BT 单元。hciconfig -a
没有返回任何输出。 - 我删除了固件文件(
*.hcd
)并重新启动,我的蓝牙装置再次出现在lbusb
,结果sudo hciconfig -a
是:
$ sudo hciconfig -a
hci0: Type: BR/EDR Bus: USB
BD Address: 5C:F3:70:77:02:F7 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:616 acl:0 sco:0 events:34 errors:0
TX bytes:380 acl:0 sco:0 commands:34 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT
Name: 'BCM20702A'
Class: 0x000000
Service Classes: Unspecified
Device Class: Miscellaneous,
HCI Version: 4.0 (0x6) Revision: 0x1000
LMP Version: 4.0 (0x6) Subversion: 0x220e
Manufacturer: Broadcom Corporation (15)
然而,该装置仍然没有“工作”,所以我似乎又回到了原点。
答案1
我已经通过 apt 重新安装 BT 堆栈(bluez)解决了我自己的问题。
sudo apt-get install --reinstall bluez
所以你有它 - 如果你的 BT 设备被检测到并且似乎工作正常但只是没有显示,请尝试重新安装蓝牙堆栈。
答案2
如果其他人遇到这个问题,那我肯定也遇到过类似的问题。无论出于什么原因,在我的系统上
/usr/lib/bluetooth/bluetoothd
不可执行,因此显然无法启动。
所以,
sudo chmod a+x /usr/lib/bluetooth/bluetoothd
修复了这个问题,至少在下次重启之前。重新安装 bluex 也能修复这个问题 - 虽然我还没有重启,所以我不知道它能否在重启后继续存在。