Qualcomm Atheros Bluetooth 4.0 not working on Ubuntu 16.04

8,802

Solution 1

After fiddling with this problem for quite some time, I found this solution:

I installed linux-generic-hwe-16.04 to get a more recent kernel, because 04ca:3014 was added in version 4.6.

Then I noticed that ID 04ca:3014 Lite-On Technology Corp. was being disconnected after loading acer_wmi, so I blacklisted it:

/etc/modprobe.d/btconfig.conf:

blacklist acer_wmi

(Also, I thought it better to add btcoex_enable=1 and bt_ant_diversity=1 to ath9k in that same file: options ath9k btcoex_enable=1 bt_ant_diversity=1.)⁽¹⁾

Then I ran update-initramfs -c -k all, I rebooted the system, and voi-là, the adapter is up and working.

⁽¹⁾ https://wireless.wiki.kernel.org/en/users/Drivers/ath9k

Solution 2

Considering how much time (man-hour) I spent trying to make my built-in Bluetooth adapter work on Linux, I decided it would be cheaper and faster to buy an USB adapter that actually works on Linux. So, I went out home with my laptop, tested an USB adapter and bought it. It is really small and cheap, it costed me R$ 30,00 (something between $9 and $10, according to today's exchange rates). It is able to transfer files and play music. Its package says Babbage Bluetooth Version 3.0 BM-BT01, it was made in China. On lsusb, it shows as Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode):

# lsusb

Bus 003 Device 002: ID 8087:8001 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 003: ID 1bcf:2c81 Sunplus Innovation Technology Inc. 
Bus 001 Device 011: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# usb-devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh=11
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.11
S:  Manufacturer=Linux 4.11.4-1.gcba98ee-default xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=16 #Cfgs=  1
P:  Vendor=0a12 ProdID=0001 Rev=01.34
C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1bcf ProdID=2c81 Rev=00.05
S:  Manufacturer=NC2141103M50708908LM05
S:  Product=HD WebCam
C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo

T:  Bus=01 Lev=01 Prnt=01 Port=07 Cnt=03 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=0bda ProdID=0129 Rev=39.60
S:  Manufacturer=Generic
S:  Product=USB2.0-CRW
S:  SerialNumber=20100201396000000
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=50 Driver=rtsx_usb

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 4
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev=04.11
S:  Manufacturer=Linux 4.11.4-1.gcba98ee-default xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 2
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.11
S:  Manufacturer=Linux 4.11.4-1.gcba98ee-default ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:1d.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 8
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=8087 ProdID=8001 Rev=00.03
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

It does not work flawlessly as I think it should be. Pairing works on a trial and error basis, but once devices are paired, they work as expected. At least now I have a Bluetooth adapter that works on Linux.

Anyways, I'm thankful for the time you spent trying to help me and giving me directions. Thank you!

Share:
8,802

Related videos on Youtube

Antônio Medeiros
Author by

Antônio Medeiros

Updated on September 18, 2022

Comments

  • Antônio Medeiros
    Antônio Medeiros over 1 year

    Acer Aspire E15 laptop (model number E5-573-54ZV) with Windows 10 and Bluetooth 4.0 adapter out of the box. While using Windows, I'm able to use the Bluetooth adapter.

    I've installed Ubuntu 16.04 in dual boot. While using Ubuntu, the Bluetooth adapter is the only piece of hardware that does not work.

    I've already tried other Q&A here at Ask Ubuntu, but all of them refer to different versions of Ubuntu and/or different Bluetooth adapters. For me, it seems like Linux is not even seeing my laptop's Bluetooth adapter.

    A report made using AIDA64 for Windows shows:

    04CA 3014   Qualcomm Atheros Bluetooth 4.0
    

    Is there any way I could make that Bluetooth adapter work on Ubuntu 16.04?

    I don't know if that helps, but my laptop also has an Atheros Wi-Fi adapter, which the AIDA report shows as Atheros AR9565 802.11b/g/n Wireless Network Adapter, a PCI device with ID 168C-0036.

    EDIT: as requested in the comments, here is some more info:

    $ lspci -knn | grep Net -A2; lsusb
    03:00.0 Network controller [0280]: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter [168c:0036] (rev 01)
        Subsystem: Lite-On Communications Inc QCA9565 / AR9565 Wireless Network Adapter [11ad:0803]
        Kernel driver in use: ath9k
        Kernel modules: ath9k
    Bus 001 Device 002: ID 8087:8001 Intel Corp. 
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 002 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
    Bus 002 Device 004: ID 1bcf:2c81 Sunplus Innovation Technology Inc. 
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    
    $ uname -a
    Linux viny-notebook 4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    vinicius@viny-notebook:~$
    

    EDIT: a friend of mine suggested running:

    $ dmesg | grep -i bluetooth
    [   20.905534] Bluetooth: Core ver 2.21
    [   20.905548] Bluetooth: HCI device and connection manager initialized
    [   20.905551] Bluetooth: HCI socket layer initialized
    [   20.905553] Bluetooth: L2CAP socket layer initialized
    [   20.905557] Bluetooth: SCO socket layer initialized
    [   21.477624] Bluetooth: Can't change to loading configuration err
    [   21.477654] Bluetooth: Loading patch file failed
    [  124.347977] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [  124.347980] Bluetooth: BNEP filters: protocol multicast
    [  124.347985] Bluetooth: BNEP socket layer initialized
    
    • Pilot6
      Pilot6 almost 8 years
      Please edit your question and add output of lspci -knn | grep Net -A2; lsusb terminal command.
    • Jeremy31
      Jeremy31 almost 8 years
      Post the result of uname -a as this should have been fixed in 4.4.0-22
    • Antônio Medeiros
      Antônio Medeiros almost 8 years
      Done. I edited my question with the information you requested.
    • Jeremy31
      Jeremy31 almost 8 years
      You will probably need to file a bug report @ bugs.launchpad.net/ubuntu/ against package linux as the kernel can't see your bluetooth device for some reason and that is why it doesn't work. Pilot6 was the one that submitted the patch upstream so this device will work but only if it shows in lsusb results. I would check for BIOS updates also
    • Antônio Medeiros
      Antônio Medeiros almost 8 years
    • Antônio Medeiros
      Antônio Medeiros almost 8 years
      I'm currently using the latest BIOS/UEFI firmware available for my laptop. Problem persists. Just in case anyone hitting this page needs: acer.com/drivers
    • Antônio Medeiros
      Antônio Medeiros almost 8 years
      I did that bug report running on terminal: $ ubuntu-bug linux
  • Antônio Medeiros
    Antônio Medeiros over 6 years
    I'm now using Linux Mint 18.2 (based on Ubuntu 16.04 LTS) and what you did precisely solved my problem! Thank you!
  • Antônio Medeiros
    Antônio Medeiros over 6 years
    I'm not going to post a new answer based on yours, but I would like to add some things, for future reference, just in case anyone needs. I installed the HWE (Hardware Enablement) kernel using sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04
  • Antônio Medeiros
    Antônio Medeiros over 6 years
    I'm not sure that contributed to the final result (Bluetooth adapter working), but I installed the linux-firmware package: sudo apt-get install linux-firmware
  • Antônio Medeiros
    Antônio Medeiros over 6 years
    For reference, I'm using the Linux kernel version 4.10, uname -a outputs Linux mint-pc 4.10.0-37-generic #41~16.04.1-Ubuntu SMP Fri Oct 6 22:42:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  • Antônio Medeiros
    Antônio Medeiros over 6 years
    Also, not sure this is a part of the solution, I installed all the updates available using apt-get update and apt-get dist-upgrade. I believe this is a good habit.