Ubuntu – Is there way to achieve a better experience with the Bluetooth driver or an alternative driver

bluetoothdriversmouse

I have a bluetooth mouse. It works great on Mac. It works great on the exact same machine running Windows. Basically, exactly as you'd expect a bluetooth mouse to work.

On the same machine that runs the same physical bluetooth card / mouse pair just fine in Windows, under Ubuntu, the mouse only works if it's on the same plane as the computer, and beyond it. If I sit at a table or desk, and mouse around with my arm extended BEYOND the laptop, it works as expected.

If you move the mouse closer to you than the laptop, or mouse with the laptop in a different plane (not on the same table/desk), it barely works, or doesn't work at all.

This seems to be a problem with Ubuntu and its driver for Bluetooth. Are there alternative drivers? Can I basically run the Windows 10 driver under Ubuntu somehow?

Would really like to have my mouse functional in Ubuntu. The battery life is really awful also. But again, totally normal battery life under Windows 10, running on the same machine, where I play my games.

I'm on 16.10, same problem on 16.04.

output when I run
dmesg | grep -i blue

[    2.981336] Bluetooth: Core ver 2.21
[    2.981348] Bluetooth: HCI device and connection manager initialized
[    2.981351] Bluetooth: HCI socket layer initialized
[    2.981354] Bluetooth: L2CAP socket layer initialized
[    2.981360] Bluetooth: SCO socket layer initialized
[    2.993202] Bluetooth: HCI UART driver ver 2.3
[    2.993204] Bluetooth: HCI UART protocol H4 registered
[    2.993205] Bluetooth: HCI UART protocol BCSP registered
[    2.993205] Bluetooth: HCI UART protocol LL registered
[    2.993206] Bluetooth: HCI UART protocol ATH3K registered
[    2.993207] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    2.993241] Bluetooth: HCI UART protocol Intel registered
[    2.993256] Bluetooth: HCI UART protocol BCM registered
[    2.993257] Bluetooth: HCI UART protocol QCA registered
[    2.993257] Bluetooth: HCI UART protocol AG6XX registered
[    3.050308] Bluetooth: hci0: BCM: chip id 110
[    3.067434] Bluetooth: hci0: 93505
[    3.068075] Bluetooth: hci0: BCM (003.006.007) build 0000
[    3.070110] bluetooth hci0: Direct firmware load for brcm/BCM-0a5c-6412.hcd failed with error -2
[    3.070113] Bluetooth: hci0: BCM: Patch brcm/BCM-0a5c-6412.hcd not found
[    4.373158] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.373159] Bluetooth: BNEP filters: protocol multicast
[    4.373163] Bluetooth: BNEP socket layer initialized
[    7.028426] Bluetooth: RFCOMM TTY layer initialized
[    7.028433] Bluetooth: RFCOMM socket layer initialized
[    7.028436] Bluetooth: RFCOMM ver 1.11
[173551.245696] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[173551.245707] Bluetooth: HIDP socket layer initialized
[173592.302058] input: BORND Bluetooth Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/bluetooth/hci0/hci0:12/0005:0A5C:0001.0003/input/input19
[173592.302254] hid-generic 0005:0A5C:0001.0003: input,hidraw2: BLUETOOTH HID v1.29 Mouse [BORND Bluetooth Mouse] on 30:52:cb:80:18:a8
[173938.668279] input: BORND Bluetooth Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/bluetooth/hci0/hci0:11/0005:0A5C:0001.0004/input/input20
[173938.669636] hid-generic 0005:0A5C:0001.0004: input,hidraw2: BLUETOOTH HID v1.29 Mouse [BORND Bluetooth Mouse] on 30:52:cb:80:18:a8
[174088.538033] input: BORND Bluetooth Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/bluetooth/hci0/hci0:12/0005:0A5C:0001.0006/input/input22
[174088.538194] hid-generic 0005:0A5C:0001.0006: input,hidraw2: BLUETOOTH HID v1.29 Mouse [BORND Bluetooth Mouse] on 30:52:cb:80:18:a8

lspci -knn | grep Net -A2; lsusb

3a:00.0 Network controller [0280]: Broadcom Limited BCM4350 802.11ac Wireless Network Adapter [14e4:43a3] (rev 08)
    Subsystem: Dell BCM4350 802.11ac Wireless Network Adapter [1028:0023]
    Kernel driver in use: brcmfmac
    Kernel modules: brcmfmac
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:5682 Realtek Semiconductor Corp. 
Bus 001 Device 003: ID 04f3:20d0 Elan Microelectronics Corp. 
Bus 001 Device 002: ID 0a5c:6412 Broadcom Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Best Answer

You need to install the firmware. You can see how it is done in this answer.

The problem is that I do not have a recent Windows Broadcom bluetooth driver to get the new firmware file. If you have Windows, then you can find the firmware somwhere in Windows, I do not remember where it stores that stuff. Something like windows64.

Anoter note is that for kernel 4.8 you probably need to call the file BCM-0a5c-6412.hcd. Kernel maintainers confuse people by always changing file names.

Update: Broadcom finally made the driver available at thier site.

https://docs.broadcom.com/docs/12358521

Related Question