Ubuntu 15.10 - USB 蓝牙不工作

Ubuntu 15.10 - USB 蓝牙不工作

我已经看过一些其他答案,但它们似乎都不适用或没有解决任何问题。

我在 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/locateBCM20702A1-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 也能修复这个问题 - 虽然我还没有重启,所以我不知道它能否在重启后继续存在。

相关内容