Skip to content

Instantly share code, notes, and snippets.

@notnamed
notnamed / atheros-bluetooth-kernel-4.13.md
Created November 4, 2017 15:24
Fixing Atheros Killer / QCA Rome bluetooth chipset on kernel 4.13

Fixing Bluetooth on certain Atheros chipsets

The Atheros Rome bluetooth chipset has been a huge headache under Linux due to Qualcomm reusing an ID code for this and an older chipset: https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/1542743 among other sources

The fix for this in kernel 4.8 is available in that bug report, but it is not compatible with the new kernel 4.13.

Note: I didn't write any of this code, I'm just documenting a fix.

Included below is a modified version of btusb.c that is working. I've made some small patches based on the compile errors and the btusb.c from the 4.13 kernel. I did not patch everything; just the bits that were relevant to my install errors. You may wish to do a more complete patch if you experience stability issues. Install commands:

@notnamed
notnamed / atheros-bluetooth-kernel-4.8.md
Last active November 5, 2016 15:58
Fixing Atheros bluetooth chipset on kernel 4.8

Fixing Bluetooth on certain Atheros chipsets

The Atheros Rome bluetooth chipset has been a huge headache under Linux due to Qualcomm reusing an ID code for this and an older chipset: https://bbs.archlinux.org/viewtopic.php?id=201646 among other sources

The fix for this in kernel <4.8 is available in that Arch forum thread, but as of Ubuntu 16.10 we have another problem, that HCI_BREDR was renamed which prevents the new btusb.c from compiling: http://permalink.gmane.org/gmane.linux.bluez.kernel/67981

Note: I didn't write any of this code, I'm just documenting a fix.

To fix this, we will simply rename HCI_BREDR as HCI_PRIMARY per the upstream btusb.c - included below is the modified version of btusb.c that is working. Install commands from the Arch thread for posterity are to:

Keybase proof

I hereby claim:

  • I am notnamed on github.
  • I am notnamed (https://keybase.io/notnamed) on keybase.
  • I have a public key ASDtAVJ1FDtdftItTJx_Lcr622UpaWXK15wZRYrP30H8RAo

To claim this, I am signing this object: