Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bluetooth hci0: firmware: failed to load brcm/BCM20702A1-0a5c-21e6.hcd

1,178 views
Skip to first unread message

inkbottle

unread,
May 30, 2017, 12:00:06 PM5/30/17
to
Dear all, (debian/sid)

Because I had this error in journalctl:
Mar 09 15:17:09 pluto kernel: Bluetooth: hci0: BCM20702A
Mar 09 15:17:09 pluto kernel: Bluetooth: hci0: BCM20702A1 (001.002.014) build
0000
Mar 09 15:17:09 pluto kernel: bluetooth hci0: firmware: failed to load brcm/
BCM20702A1-0a5c-21e6.hcd (-2)
Mar 09 15:17:09 pluto kernel: bluetooth hci0: Direct firmware load for brcm/
BCM20702A1-0a5c-21e6.hcd failed with error -2
Mar 09 15:17:09 pluto kernel: Bluetooth: hci0: BCM: Patch brcm/
BCM20702A1-0a5c-21e6.hcd not found

And because my BT was working... But not so well...

And after taking advices on #debian-next...

(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831592)

I followed the instructions there:
https://github.com/winterheart/broadcom-bt-firmware

and simply copied the file:
BCM20702A1-0a5c-21e6.hcd
there:
/lib/firmware/brcm

=====

After that, and some reboot, I didn't have any bluetooth at all anymore:
The only thing BT in journalctl was:
May 30 17:18:03 pluto dbus[416]: [system] Failed to activate service
'org.bluez': timed out

And no trace anymore of the mere string "BCM20702" (ignore case option...)

I did even thought that it had "burnt" my chipset

=====

So I removed the file BCM20702A1-0a5c-21e6.hcd altogether,

And rebooted,

And now I do have BT again;

Though minimalist and not working well...
(actually can't be used, broken; can be use 1 minute, with difficulties...)

=====

I would appreciate help to have that working.


Best,
Chris

inkbottle

unread,
May 30, 2017, 1:20:05 PM5/30/17
to
(note: that chipset is probably used by all recent thinkpad, which probably
show that when iphones have no jack anymore, BT might not be so much used by
Linux users)

If I do a "modprobe" (https://ubuntuforums.org/showthread.php?t=2346879)
modprobe -r btusb
modprobe btusb

I get that:

May 30 18:53:06 pluto kernel: usbcore: deregistering interface driver btusb
May 30 18:53:06 pluto kernel: Bluetooth: hci0 urb ffff8de95167e600 failed to
resubmit (2)
May 30 18:53:06 pluto systemd[1]: Starting Load/Save RF Kill Switch Status...
May 30 18:53:06 pluto bluetoothd[457]: Endpoint unregistered: sender=:1.33
path=/MediaEndpoint/A2DPSource
May 30 18:53:06 pluto systemd[1]: bluetooth.target: Unit not needed anymore.
Stopping.
May 30 18:53:06 pluto bluetoothd[457]: Endpoint unregistered: sender=:1.33
path=/MediaEndpoint/A2DPSink
May 30 18:53:06 pluto systemd[1]: Stopped target Bluetooth.
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:06 pluto systemd[1]: Started Load/Save RF Kill Switch Status.
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:11 pluto systemd[1]: Reached target Bluetooth.
May 30 18:53:11 pluto kernel: usbcore: registered new interface driver btusb
May 30 18:53:11 pluto kernel: Bluetooth: hci0: BCM: chip id 63
May 30 18:53:11 pluto kernel: Bluetooth: hci0: ChromeLinux_8A81
May 30 18:53:11 pluto kernel: Bluetooth: hci0: BCM20702A1 (001.002.014) build
0000
May 30 18:53:11 pluto kernel: bluetooth hci0: firmware: direct-loading
firmware brcm/BCM20702A1-0a5c-21e6.hcd
May 30 18:53:12 pluto kernel: Bluetooth: hci0: BCM20702A1 (001.002.014) build
1757
May 30 18:53:12 pluto kernel: Bluetooth: hci0: Broadcom Bluetooth Device


root@pluto:/lib/firmware/brcm# hciconfig -a
hci0: Type: Primary Bus: USB
BD Address: 9C:2A:70:82:50:FB ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:3374 acl:0 sco:0 events:409 errors:0
TX bytes:36217 acl:0 sco:0 commands:408 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

Seems nice, but actually, I do not have any adapter anymore:

root@pluto:/lib/firmware/brcm# bluetoothctl
[bluetooth]# list
[bluetooth]#


You can see that here too:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801084

====

I also did that:
sudo cp /lib/firmware/brcm/BCM43142A0-0a5c-21e6.hcd /lib/firmware/brcm/BCM.hcd

Then modprobe -r and modprobe btusb

And then the result: "bluetooth.target: Unit not needed anymore. Stopping"

May 30 18:53:06 pluto kernel: usbcore: deregistering interface driver btusb
May 30 18:53:06 pluto kernel: Bluetooth: hci0 urb ffff8de95167e600 failed to
resubmit (2)
May 30 18:53:06 pluto systemd[1]: Starting Load/Save RF Kill Switch Status...
May 30 18:53:06 pluto bluetoothd[457]: Endpoint unregistered: sender=:1.33
path=/MediaEndpoint/A2DPSource
May 30 18:53:06 pluto systemd[1]: bluetooth.target: Unit not needed anymore.
Stopping.
May 30 18:53:06 pluto bluetoothd[457]: Endpoint unregistered: sender=:1.33
path=/MediaEndpoint/A2DPSink
May 30 18:53:06 pluto systemd[1]: Stopped target Bluetooth.
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:06 pluto systemd[1]: Started Load/Save RF Kill Switch Status.
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:06 pluto dbus[458]: [system] Rejected send message, 3 matched
rules; type="error", sender=":1.33" (uid=1000 pid=1859 comm="/usr/bin/
pulseaudio --start --log-target=syslog ") in
May 30 18:53:11 pluto systemd[1]: Reached target Bluetooth.
May 30 18:53:11 pluto kernel: usbcore: registered new interface driver btusb
May 30 18:53:11 pluto kernel: Bluetooth: hci0: BCM: chip id 63
May 30 18:53:11 pluto kernel: Bluetooth: hci0: ChromeLinux_8A81
May 30 18:53:11 pluto kernel: Bluetooth: hci0: BCM20702A1 (001.002.014) build
0000
May 30 18:53:11 pluto kernel: bluetooth hci0: firmware: direct-loading
firmware brcm/BCM20702A1-0a5c-21e6.hcd
May 30 18:53:12 pluto kernel: Bluetooth: hci0: BCM20702A1 (001.002.014) build
1757
May 30 18:53:12 pluto kernel: Bluetooth: hci0: Broadcom Bluetooth Device
May 30 18:55:41 pluto wpa_supplicant[570]: wlan1: WPA: Group rekeying
completed with 7c:03:d8:81:d2:53 [GTK=CCMP]
May 30 18:56:48 pluto kernel: Bluetooth: hci0: BCM: chip id 63
May 30 18:56:48 pluto kernel: Bluetooth: hci0: Broadcom Bluetooth Device
May 30 18:56:48 pluto kernel: Bluetooth: hci0: BCM20702A1 (001.002.014) build
1757
May 30 18:56:48 pluto kernel: bluetooth hci0: firmware: direct-loading
firmware brcm/BCM20702A1-0a5c-21e6.hcd
May 30 18:56:49 pluto kernel: Bluetooth: hci0: BCM20702A1 (001.002.014) build
1757
May 30 18:56:49 pluto kernel: Bluetooth: hci0: Broadcom Bluetooth Device
May 30 19:02:43 pluto systemd[1]: Starting Load/Save RF Kill Switch Status...
May 30 19:02:44 pluto kernel: usbcore: deregistering interface driver btusb
May 30 19:02:43 pluto systemd[1]: bluetooth.target: Unit not needed anymore.
Stopping.
May 30 19:02:43 pluto systemd[1]: Stopped target Bluetooth.
May 30 19:02:43 pluto systemd[1]: Started Load/Save RF Kill Switch Status.

Things couldn't be worse.

inkbottle

unread,
May 30, 2017, 8:00:04 PM5/30/17
to
It might be that the heart of the problem could be:
# hciconfig hci0 up
Can't init device hci0: Invalid request code (56)
And that consequently, at some point, "btusb" could be unloaded, with the
consequence that
hciconfig --all
wouldn't show anything anymore.

If I put that point aside... Some things are working:

# systemctl status bluetooth
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor
preset: enabled)
Active: active (running) since Wed 2017-05-31 01:45:22 CEST; 7min ago
Docs: man:bluetoothd(8)
Main PID: 12520 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 4915)
CGroup: /system.slice/bluetooth.service
└─12520 /usr/lib/bluetooth/bluetoothd

May 31 01:45:22 pluto systemd[1]: Stopping Bluetooth service...
May 31 01:45:22 pluto systemd[1]: Stopped Bluetooth service.
May 31 01:45:22 pluto systemd[1]: Starting Bluetooth service...
May 31 01:45:22 pluto bluetoothd[12520]: Bluetooth daemon 5.43
May 31 01:45:22 pluto systemd[1]: Started Bluetooth service.
May 31 01:45:22 pluto bluetoothd[12520]: Starting SDP server
May 31 01:45:22 pluto bluetoothd[12520]: Bluetooth management interface 1.14
initialized

# hciconfig --all
hci0: Type: Primary Bus: USB
BD Address: 9C:2A:70:82:50:FB ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:10122 acl:0 sco:0 events:1227 errors:0
TX bytes:108651 acl:0 sco:0 commands:1224 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

But hci0 can't be brought up, and therefore nobody can see it,
starting with bluetoothctl.

I might have gathered sufficient information to take that issue to bluez-devel
mailing list.
0 new messages