direct-loading firmware BCM20702A1-0a5c-21e6.hcd

For my Thinkpad X1 Carbon 3460 I finally picked apart the bluetooth driver supplied by Lenovo.

Just to get rid of these pesky bootmessages:

Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
bluetooth hci0: firmware: failed to load brcm/BCM20702A1-0a5c-21e6.hcd (-2)
bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2
Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21e6.hcd not found

Thanks to Robby Workman over at SlackWiki and the always excellent ThinkWiki, that both detail how to do this.

Here is my own short summary, based on these explanations:

To prepare, download the firmware supplied by Lenovo, and, as root, create the target directory, and install the innoextract tool:

mkdir /lib/firmware/brcm
apt install innoextract

As normal user, unpack the driver, find the right hex file, and convert it.

innoextract g4wh01ww.exe
cd app/Win32
hex2hcd BCM20702A1_001.002.014.1483.1669.hex

Lastly, as root, copy the file while giving it the right name:

cp app/Win32/BCM20702A1_001.002.014.1483.1669.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd