System Information
uname -r
:
4.4.0-57-generic
lsusb
:
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
Bus 003 Device 004: ID 0461:4d0f Primax Electronics, Ltd HP Optical Mouse
Bus 003 Device 002: ID 13d3:5170 IMC Networks
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb
(detailed):
Bus 003 Device 003: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0cf3 Atheros Communications, Inc.
idProduct 0x3004 AR3012 Bluetooth 4.0
bcdDevice 0.02
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
rfkill list
:
0: ideapad_wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: ideapad_bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
3: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
11/01/2017: Upon Jeremy31's instruction, lspci -nnk | grep -iA2 net
yields:
08:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller [10ec:8136] (rev 07)
Subsystem: Lenovo RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller [17aa:3803]
Kernel driver in use: r8169
Kernel modules: r8169
09:00.0 Network controller [0280]: Qualcomm Atheros AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Subsystem: Lenovo AR9485 Wireless Network Adapter [17aa:3218]
Kernel driver in use: ath9k
Kernel modules: ath9k, wl
11/01/2017: usb-devices | awk '/3004/' RS=
yields [as asked by Jeremy (wa113y3s) here]:
T: Bus=03 Lev=01 Prnt=01 Port=06 Cnt=03 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0cf3 ProdID=3004 Rev=00.02
S: Manufacturer=Atheros Communications
S: Product=Bluetooth USB Host Controller
S: SerialNumber=Alaska Day 2006
C: #Ifs= 2 Cfg#= 1 Atr=e0 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
This seems to be a non-Rome version according to what Jeremy posted.
Problem Solving
Default behavior
On fresh boot, I am able to switch on my bluetooth and connect to my bluetooth speakers. During this time, systemctl status bluetooth.service
outputs:
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-01-05 17:15:22 IST; 8min ago
Docs: man:bluetoothd(8)
Main PID: 894 (bluetoothd)
Status: "Running"
CGroup: /system.slice/bluetooth.service
└─894 /usr/lib/bluetooth/bluetoothd
Jan 05 17:15:23 z510 bluetoothd[894]: Not enough free handles to register service
Jan 05 17:15:23 z510 bluetoothd[894]: Sap driver initialization failed.
Jan 05 17:15:23 z510 bluetoothd[894]: sap-server: Operation not permitted (1)
Jan 05 17:15:33 z510 bluetoothd[894]: Failed to set mode: Blocked through rfkill (0x12)
Jan 05 17:16:00 z510 bluetoothd[894]: Endpoint registered: sender=:1.55 path=/MediaEndpoint/A2DPSource
Jan 05 17:16:00 z510 bluetoothd[894]: Endpoint registered: sender=:1.55 path=/MediaEndpoint/A2DPSink
Jan 05 17:16:06 z510 bluetoothd[894]: Failed to set mode: Blocked through rfkill (0x12)
Jan 05 17:16:26 z510 bluetoothd[894]: Failed to set mode: Blocked through rfkill (0x12)
Jan 05 17:16:51 z510 bluetoothd[894]: Failed to set mode: Blocked through rfkill (0x12)
Jan 05 17:16:59 z510 bluetoothd[894]: /org/bluez/hci0/dev_88_C6_26_6C_35_6B/fd0: fd(22) ready
After about 3 to 4 minutes, bluetooth shows that it's still connected but stops working. At this point, systemctl status bluetooth.service
returns the exact same output as above. There is nothing new in the above logs.
Problem Solving
Restarting the bluetooth service via systemctl restart bluetooth.service
outputs the following in the logs:
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-01-05 17:23:44 IST; 2s ago
Docs: man:bluetoothd(8)
Main PID: 3760 (bluetoothd)
Status: "Running"
CGroup: /system.slice/bluetooth.service
└─3760 /usr/lib/bluetooth/bluetoothd
Jan 05 17:23:44 z510 bluetoothd[3760]: Not enough free handles to register service
Jan 05 17:23:44 z510 bluetoothd[3760]: Not enough free handles to register service
Jan 05 17:23:44 z510 bluetoothd[3760]: Current Time Service could not be registered
Jan 05 17:23:44 z510 bluetoothd[3760]: gatt-time-server: Input/output error (5)
Jan 05 17:23:44 z510 bluetoothd[3760]: Not enough free handles to register service
Jan 05 17:23:44 z510 bluetoothd[3760]: Not enough free handles to register service
Jan 05 17:23:44 z510 bluetoothd[3760]: Sap driver initialization failed.
Jan 05 17:23:44 z510 bluetoothd[3760]: sap-server: Operation not permitted (1)
Jan 05 17:23:44 z510 bluetoothd[3760]: Endpoint registered: sender=:1.55 path=/MediaEndpoint/A2DPSource
Jan 05 17:23:44 z510 bluetoothd[3760]: Endpoint registered: sender=:1.55 path=/MediaEndpoint/A2DPSink
If I try to toggle via taskbar or Bluetooth in the System settings, it doesn't work. This is what I get:
Running systemctl status bluetooth.service
now shows an error (due to switching the toggle):
Jan 05 17:23:55 z510 bluetoothd[3760]: Failed to set mode: Failed (0x03)
Next, I check what hciconfig hci0
has to say:
hci0: Type: BR/EDR Bus: USB
BD Address: A4:DB:30:D1:E5:52 ACL MTU: 1022:8 SCO MTU: 183:5
DOWN
RX bytes:115191 acl:36 sco:0 events:15936 errors:0
TX bytes:9622901 acl:15651 sco:0 commands:280 errors:9
Seeing as it is DOWN, I try to start it: sudo hciconfig hci0 up
and receive the following message:
Can't init device hci0: Connection timed out (110)
Checking the bluetooth service logs again after trying to init hci0
, there is nothing new.
Solutions Tried
I have tried the following already with little success:
Pilot6's answer to Bluetooth not working in Ubuntu 16.04 with [0cf3:3004] Atheros adapter
The version mentioned here does not work at all for me. The bluetooth icon disappears from wingpanel and bluetooth itself does not work at all.
Then, I tried version 0.2 (latest revision here -- btusb-lp1653843-dkms
) by Pilot6. This seemed to work at first, but stopped working 3 to 4 minutes later, as it does on an untouched kernel.
I have also disabled Secure Boot (requested when installing btusb-lp1542743-dkms/0.1
), but that did not help the issue in any way.
Update 11/01/2017: However, The behaviour seems to be inconsistent. btusb-lp1653843-dkms/0.2
worked for a few days (05/01/2017 to 11/01/2017) but stopped working altogether now, after my laptop woke up from sleep.
Links to Related Discussions
There are several discussions regarding this bluetooth chip online but they are beyond my scope:
https://bbs.archlinux.org/viewtopic.php?id=201646
https://ask.fedoraproject.org/en/question/88030/bluetooth-headset-stops-working-suddenly/
https://bugzilla.kernel.org/show_bug.cgi?id=99371
https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/1542743
Additional Notes
My internal audio has bugged out and the only way to get audio to work is to either connect headphones/speakers via a cable or use bluetooth audio. Both of them work, but I prefer the latter for portability. Currently, I have plugged in the bluetooth speakers via a 3.5mm cable and it works fine. However, I'd still like to be able to use bluetooth and avoid the hassle.
Any help would be appreciated.
lspci -nnk | grep -iA2 net
Pilot6's answer would only fix bluetooth on the new QCA chipsets that use the ath10k_pci modulelspci -nnk | grep -iA2 net
andusb-devices | awk '/3004/' RS=
to the original question. Please check.