Ubuntu 18.04 LTS Bluetooth [0cf3:3004] обнаружение не работает

Я обновил Ubuntu 16.04 LTS до Ubuntu 18.04 LTS, и с тех пор Bluetooth не обнаруживает никаких устройств.

Вот шаги, которые я выполнил:

Включил Bluetooth в настройках (кажется, что отстает от перехода к опции Bluetooth, а не к другим настройкам).

По-прежнему не обнаруживаются никакие устройства, а для включения и выключения требуется слишком много времени, чтобы включить устройство для обнаружения, но в любом случае это не обнаружение устройств.

До понижения версии я попытался запустить Live Ubuntu 18.04 LTS, и это то, что я получаю, как на снимке:

Таким образом, в соответствии с переключателем Bluetooth он должен быть включен, но он по-прежнему говорит, что Bluetooth выключен и не сканирует любое устройство поблизости.

попытался выполнить некоторые из следующих команд:

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]# 

Ноутбук: Lenovo Z50-70


Обновить

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:~$ 

5 ответов

Решение

Блестящий разработчик по имени Takashi Iwai предложил решение, которое я включил в ядро ​​4.15

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
перезагружать

Для тех, кто пытался сделать это до 13 июня, вам может понадобиться

sudo -H gedit /usr/src/btusb-4.0/Makefile
Измените содержимое на
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

Для того, чтобы правильно построить с новыми ядрами

Редактировать: эта ошибка исправлена ​​в ядре 4.15.0-31, поэтому люди, которые установили это исправление, могут удалить, если захотят

sudo dkms remove btusb/4.0 -k $(uname -r)
sudo dkms remove btusb/4.0 --all

Проблема в том, что Atheros выпустил новое устройство ROME, используя тот же VID/PID, что и старое устройство AR3012. Коды [0cf3:3004].

Хороший способ узнать, какое устройство установлено, еще не найден.

Сопровождающие ядра изменили код для более нового устройства здесь http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/commit/drivers/bluetooth/btusb.c?id=c91729972ac67983a37270d0856f1ee93af54913

Это означает, что старое устройство пытается загрузить не ту прошивку. Это можно исправить, вернув этот патч.

Я использовал для сборки модулей DKMS для старых ядер и новых устройств, чтобы это исправить. Теперь похоже, что нам нужен модуль для новых ядер и старых устройств.

Проведя много времени в Интернете в поисках решения (также переустановленного 18.04) - на ноутбуке DELL 9550 (работает только Ubuntu), я наткнулся на эту ссылку

Я также обновил BIOS, используя флэш-диск (после загрузки с официальной ссылки на сайт драйверов DELL)

Я думаю, что решение, предоставленное из вышеупомянутой ссылки, сделало реальный трюк, который заключается в следующем (может быть проблема BIOS тоже, но не на 100% уверен - в любом случае это должно быть сделано):

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

Я надеюсь, что это помогает.

Я решил проблему, обновив ядро ​​Ubuntu до последней версии с помощью инструмента UKUU.

У меня только что была похожая проблема с моей материнской платой ASUS ROG STRIX X370-I, в которой есть чип Wi-Fi/Bluetooth Realtek 8822.

Обновление ядра до последней версии решило это для меня: https://www.kernel.org/

Другие вопросы по тегам