ubuntu 18.04 LTS bluetooth [0cf3:3004] discovery not working
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
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.