Qualcomm Atheros Bluetooth 4.0 not working on Ubuntu 16.04

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

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!