web-dev-qa-db-ja.com

ubuntu 18.04 LTS bluetooth [0cf3:3004]ディスカバリーが機能しない

Ubuntu 16.04 LTSをubuntu 18.04 LTSにアップグレードしましたが、それ以降、bluetoothはデバイスを検出しません。

実行した手順は次のとおりです。

設定からbluetoothをオンにしました(他の設定ではなくbluetoothオプションに向かって移動するのが遅れているようです)。

デバイスの検出はまだ行われておらず、オン/オフの切り替えは、デバイスをオンにして検出するのに時間がかかりすぎますが、とにかくデバイスを検出していません。

ダウングレードする前に、ライブubuntu 18.04 LTSを実行しようとしましたが、これはスナップショットのようになります。

enter image description here

ブルートゥースのトグルによると、オンにする必要がありますが、ブルートゥースはオフであり、近くのデバイスをスキャンしていません。

以下のコマンドのいくつかを実行しようとしました:

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

岩井隆史という名の素晴らしい開発者が、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

6月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
18
Jeremy31

ソリューションのオンライン検索に多くの時間を費やした後(18.04も再インストール)-Dell 9550ラップトップ(Ubuntuのみを実行)で このリンク

また、フラッシュドライブを使用してBIOSをアップグレードしました(公式のDellドライバーのWebサイトリンクからダウンロードした後)

上記のリンクから提供された解決策は、次のような実際のトリックを行ったと思います(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

役に立てば幸いです。

1
Nisarg Panchal

問題は、Atherosが古いAR3012デバイスと同じVID/PIDを使用して新しいROMEデバイスをリリースしたことです。コードは[0cf3:3004]です。

どのデバイスがインストールされているかを見つける良い方法はまだ見つかっていません。

カーネルメンテナーはここで新しいデバイスのコードを変更しました http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/commit/drivers/bluetooth/btusb.c?id=c91729972ac67983a37270d0856f1ee93af5491

これは、古いデバイスが間違ったファームウェアをロードしようとしていることを意味します。これは、このパッチを元に戻すことで修正できます。

以前は、古いカーネルと新しいデバイス用のDKMSモジュールをビルドして修正していました。現在、新しいカーネルと古いデバイス用のモジュールが必要なようです。

1
Pilot6

UKUU ツールを使用してUbuntuカーネルを最新バージョンにアップグレードすることで問題を解決しました。

1
Rick M

Realtek 8822 Wi-Fi/Bluetoothチップを搭載したASUS ROG STRIX X370-Iマザーボードでも同様の問題が発生しました。

カーネルを最新バージョンに更新することで解決しました: https://www.kernel.org/

0
Stijn Martens