@xnor: Naming rule of the firmware has been changed for some historical reasons...
* In 14.04, it is "/lib/firmware/brcm/fw-<VID>_<PID>.hcd". ( https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/trusty/tree/drivers/bluetooth/btusb.c#n1410 ) * In 16.04, it is "/lib/firmware/brcm/<CHIP_NAME>.hcd". ( https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial/tree/drivers/bluetooth/btbcm.c#n323 ) * In 18.04, it is either "/lib/firmware/brcm/<CHIP_NAME>.hcd" or "/lib/firmware/brcm/<CHIP_NAME>-<VID>-<PID>.hcd". ( https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/tree/drivers/bluetooth/btbcm.c#n478 and https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/tree/drivers/bluetooth/btbcm.c#n499 ) Unfortunately because of its incompatible license, we're not able to include the firmware in linux-firmware package. Even in the linux- firmware upstream, there are only a very small amount of such bluebooth firmware files and those should already be included in 18.04 linux- firmware package. ( https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux- firmware.git/tree/brcm ) If it used to work on 14.04 but stops working after upgrade, you may already have "/lib/firmware/brcm/fw-<VID>_<PID>.hcd" in your 14.04 installation (maybe either from a preload Ubuntu system or it was downloaded from somewhere). Filename of the firmware needs to be changed after upgrade so that driver can find it. In this case: $ sudo mv /lib/firmware/brcm/fw-0a5c_21e6.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd If you wiped the whole system before installing 18.04, you have to find the file elsewhere though. If you are not sure what the correct hcd filename is, please check the output of dmesg and you'll see the driver complaining about missing firmware. $ dmesg ----- For converting the hex formatted firmware to hcd, hex2hcd is included in newer bluez. In 18.04, simply install bluez then you'll have the tool: $ sudo apt-get install bluez Still you can use dmesg to determine the hcd filename to use: $ dmesg You'll have to find the hex firmware in Windows driver provided by laptop vendors, then convert it and place the output to the right place. For example: $ sudo hex2hcd -o /lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd <HEX_FILENAME> Hope this helps. -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1065400 Title: Support for loading Broadcom bluetooth firmware Status in linux package in Ubuntu: Fix Released Status in linux source package in Precise: Fix Released Status in linux source package in Quantal: Fix Released Status in linux source package in Raring: Fix Released Status in linux source package in Saucy: Fix Released Status in linux source package in Trusty: Confirmed Bug description: Broadcom bluetooth chips require a tool called patchram uploader [1] to load firmware. This applies to at least BCM20702 and BCM43142. Although some of the devices have an OTPROM that contains required firmware, but it is found that these devices would not have HFP/HSP support unless a upgraded firmware is loaded via patchram uploader. This tool requires hci device to do the firmware loading, but this may cause some race condition between patchram tool and bluetoothd or something that also works on hci interface. Also it needs some hooks to make firmware loads after bootup, s3, s4, rfkill, and device hotplug events. Implement this loader in kernel module would make things more easier. [1] http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1065400/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp