40

I have upgraded ubuntu 16.04 LTS to ubuntu 18.04 LTS and since then bluetooth is not discovering any devices.

Here are the steps I performed:

Turned bluetooth on from settings (seems lag to moving towards bluetooth option rather then other settings).

It's still not discovering any devices and also toggle of on off takes too much time to turn on device to discover but anyhow it's not discovering devices.

Before downgrading I have tried to run live ubuntu 18.04 LTS and this is what I get as in snapshot:

enter image description here

So according to bluetooth toggle it should be turned on but it still says bluetooth is off and not scanning any nearby device.

tried to run some of the below commands:

ubuntu@ubuntu:~$ bluetoothctl
Agent registered
[bluetooth]# list
[bluetooth]# devices
No default controller available
[bluetooth]# scan on
No default controller available
[bluetooth]# power on
No default controller available
[bluetooth]# 

Laptop: Lenovo Z50-70


Update

jarvis@jarvis:~$ lspci -knn | grep Net -A3; lsusb
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter [168c:0036] (rev 01)
    Subsystem: Lenovo QCA9565 / AR9565 Wireless Network Adapter [17aa:4026]
    Kernel driver in use: ath9k
    Kernel modules: ath9k
03:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 840M] [10de:1341] (rev a2)
Bus 001 Device 002: ID 8087:8000 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 004: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
Bus 002 Device 003: ID 174f:14b2 Syntek 
Bus 002 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 002 Device 006: ID 093a:2532 Pixart Imaging, Inc. 
Bus 002 Device 005: ID 0781:5583 SanDisk Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
jarvis@jarvis:~$ dmesg | grep -i blue
[   27.147743] Bluetooth: Core ver 2.22
[   27.147759] Bluetooth: HCI device and connection manager initialized
[   27.147761] Bluetooth: HCI socket layer initialized
[   27.147764] Bluetooth: L2CAP socket layer initialized
[   27.147769] Bluetooth: SCO socket layer initialized
[   27.160218] Bluetooth: hci0: don't support firmware rome 0x31010000
[   31.361588] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   31.361590] Bluetooth: BNEP filters: protocol multicast
[   31.361593] Bluetooth: BNEP socket layer initialized
jarvis@jarvis:~$ 
Pilot6
  • 90,100
  • 91
  • 213
  • 324
Gahan
  • 543

5 Answers5

31

A brilliant developer named Takashi Iwai came up with a solution that I incorporated into the 4.15 kernel

sudo apt install git build-essential dkms
git clone https://github.com/jeremyb31/newbtfix-4.15.git
sudo dkms add ./newbtfix-4.15
sudo dkms install btusb/4.0
Reboot

For anyone that tried this before June 13, you may need to

sudo -H gedit /usr/src/btusb-4.0/Makefile
Change the contents to be
KVER ?= $(shell uname -r)
obj-m += btusb.o

all: make -C /lib/modules/$(KVER)/build M=$(PWD) modules

clean: make -C /lib/modules/$(KVER)/build M=$(PWD) clean

For it to build correctly with new kernels

Edit: this bug is fixed in kernel 4.15.0-31, so people that have installed this fix can remove if they wish with

sudo dkms remove btusb/4.0 -k $(uname -r)
sudo dkms remove btusb/4.0 --all
Jeremy31
  • 12,602
  • 10
  • 58
  • 114
  • just a day ago I rolled back to 16.04 LTS, though thanks for help but I need to run 18.04 again to check the solution. – Gahan Jun 03 '18 at 14:42
  • Does not work for my Razer Blade Pro. I guest Mr. Takashi is not as brilliant as Jeremy31 claims. Any real solutions out there? – Sileria Jun 18 '18 at 02:55
  • 9
    @Sileria ask your own question – Jeremy31 Jun 18 '18 at 11:40
  • @Jeremy31 thanks for your response, but this is same problem as mine. I have the same Bluetooth card: Bus 003 Device 007: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0 – Sileria Jun 22 '18 at 22:36
  • @Sileria but what kernel and wifi card? – Jeremy31 Jun 23 '18 at 09:56
  • not working for me too. – Parth Anjaria Jun 29 '18 at 06:47
  • i tried this , not working for me – vikrant Jul 18 '18 at 11:45
  • 1
    @vikrant Start your own question and include results from terminal for lspci -nnk | grep -iA3 net; lsusb; rfkill list; uname -r; dmesg | egrep -i 'blue|firm' – Jeremy31 Jul 18 '18 at 22:00
  • well, i don't know what happened , i checked just now, and the bluetooth was on, and showing devices. it was not working yesterday, then i put the computer to sleep, and today it is on and connecting to my bluetooth headset. although at first the sound was not coming, then i had to toggle the "profile" in "sound" settings. i will check it again after rebooting, it the problem persists, i will start a new question. – vikrant Jul 19 '18 at 03:51
  • edit: after rebooting , the problem persists. the bluetooth is not turning on , after i put the pc to sleep and wake it again, sometimes the bluetooth turns on. so i will be starting a new question. – vikrant Jul 19 '18 at 13:53
  • This answer helped me with Broadcom Corp. BCM2045 Bluetooth – Kos Mar 27 '19 at 18:24
  • can you please review? https://askubuntu.com/questions/1224993/bluetooth-on-a-lenovo-g500-stopped-listing-available-connection-results – Kar19 Apr 07 '20 at 12:45
  • Can confirm this worked for me when no other solution out there did! My built in adaptor didn’t work still but this worked for me when I used an external dongle. – Jonathan Lockley Jul 17 '20 at 20:57
2

The problem is that Atheros has released a new ROME device using the same VID/PID as an older AR3012 device. The codes are [0cf3:3004].

A good way to find out which device is install has not been found yet.

Kernel maintainers changed the code for the newer device here http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/commit/drivers/bluetooth/btusb.c?id=c91729972ac67983a37270d0856f1ee93af54913

This means that the older device is trying to load a wrong firmware. This can be fixed by reverting this patch.

I used to build DKMS modules for older kernels and newer devices to fix it. Now it looks like we need a module for new kernels and old devices.

Pilot6
  • 90,100
  • 91
  • 213
  • 324
1

After spending a lot of time online searching for the solution (also reinstalled 18.04) - on DELL 9550 laptop (running only Ubuntu) I came across this link

I also upgraded BIOS using a flash drive (after downloading it from official DELL drivers website link)

I think solution provided from above link did the actual trick, which is as follows (could be BIOS issue too but not 100% sure - anyway this must be done):

wget https://memcpy.io/files/2017-10-28/BCM-0a5c-6410.hcd
sudo cp BCM-0a5c-6410.hcd /lib/firmware/brcm/
sudo chmod 0644 /lib/firmware/brcm/BCM-0a5c-6410.hcd
sudo reboot

I hope it helps.

  • 1
    That will only work for Broadcom bluetooth devices with the ID 0a5c:6410 and won't do anything for Gahan because that bluetooth is Atheros with an ID of 0cf3:3004 which is the same bluetooth device my Ubuntu laptop has – Jeremy31 Jun 18 '18 at 21:10
  • The symptoms are the same on a Dell XPS so it is a legit answer. It does the trick on a Dell. – Sven Jun 29 '18 at 21:31
  • @Sven, the person asking the question has a Lenovo Z50-70, so how is this answer relevant? All Atheros bluetooth firmware is provided in the linux-firmware package – Jeremy31 Jul 12 '18 at 23:02
  • To what BIOS version did you update? – musicformellons Aug 22 '18 at 17:11
  • @Jeremy31,what is your opinion about : ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode),I mean which file should I download ? – Menai Ala Eddine - Aladdin Sep 29 '18 at 10:09
1

I solved the problem by upgrading the Ubuntu kernel to the most current version with the UKUU tool.

karel
  • 114,770
Rick M
  • 11
  • 2
    did not solve this for me (ubuntu 18.04, updated to kernel 4.18.4-041804-generic, broadcom bluetooth: 0a5c:216f Broadcom Corp. BCM20702A0). – musicformellons Aug 22 '18 at 19:19
0

I just had a similar problem with my ASUS ROG STRIX X370-I motherboard which has a Realtek 8822 Wi-Fi/Bluetooth chip.

Updating the kernel to newest version solved it for me: https://www.kernel.org/

seymar
  • 139