web-dev-qa-db-ja.com

Bluetoothデバイスを機能させるにはどうすればよいですか?

Bluetoothの問題についてサポートが必要です。 USB Bluetoothデバイスを使用できません。 bluetooth UIはアダプターがないとだけ言っています。

私はubuntu 19.04を実行していますが、すべてが最新です。

私はlsusbに従ってこのデバイスを持っています、

Bus 001 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

dmesg | grep Bluetooth

[ 6.137963] Bluetooth: Core ver 2.22
[ 6.137977] Bluetooth: HCI device and connection manager initialized
[ 6.137980] Bluetooth: HCI socket layer initialized
[ 6.137982] Bluetooth: L2CAP socket layer initialized
[ 6.137984] Bluetooth: SCO socket layer initialized
[ 8.208995] Bluetooth: hci0: command 0x2003 tx timeout
[ 10.224994] Bluetooth: hci0: command 0x2007 tx timeout
[ 15.063638] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 15.063639] Bluetooth: BNEP filters: protocol multicast
[ 15.063642] Bluetooth: BNEP socket layer initialized
[ 1069.727317] Bluetooth: hci0: command 0x2003 tx timeout
[ 1071.743434] Bluetooth: hci0: command 0x2007 tx timeout
[ 1346.401282] Bluetooth: hci0: command 0x2003 tx timeout
[ 1348.417451] Bluetooth: hci0: command 0x2007 tx timeout
[ 1487.968981] Bluetooth: hci0: command 0x2003 tx timeout
[ 1489.984757] Bluetooth: hci0: command 0x2007 tx timeout
[ 2258.267934] Bluetooth: hci0: command 0x2003 tx timeout
[ 2260.287907] Bluetooth: hci0: command 0x2007 tx timeout

hciconfig -a hci0

hci0: Type: Primary Bus: USB
BD Address: 33:03:30:09:E8:9D ACL MTU: 360:4 SCO MTU: 0:0
DOWN 
RX bytes:3318 acl:0 sco:0 events:168 errors:0
TX bytes:2208 acl:0 sco:0 commands:180 errors:0
Features: 0xff 0xff 0xcd 0xfa 0xdb 0xbf 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
Link policy: RSWITCH HOLD SNIFF PARK 
Link mode: SLAVE ACCEPT 

Sudo hciconfig hci0 up

Can't init device hci0: Operation not supported (95)

ここで他に何をすべきかわかりませんか?

興味深いことに、このデバイスを購入したのは、Raspberry Piで動作するとのことでした。そのため、他のLinuxディストリビューションでも動作すると思いました。ここで言及されています

https://elinux.org/RPi_USB_Bluetooth_adapters

1
peter

どうやら偽のCSRドングルがたくさんあります。 Linuxはそれを処理するためのコードを持っていますが、すべての偽のドングルでは動作しないようです。偽のものには、btDelete Stored Link Key関数の不正な戻りコードがあります。これが当てはまるかどうかを確認するには、次のコマンドを実行します。

_Sudo btmon
_

1つのターミナルで、実行中に

_Sudo hciconfig hci0 up
_

そしてbtmonDelete Stored Link Keyの後に次のようなエラーを表示するはずです:

_Status: Unsupported Feature or Parameter Value
_

これを修正するために、_btusb.c_を編集し、_btusb.ko_カーネルモジュールを再コンパイルしました。ソースコードを現在のディレクトリに入れるには:

_apt-get source linux
_

ビルドしてインストールするには、この answer を参照してください。上書きする前に/lib/modules/$(uname -r)/kernel/drivers/bluetooth/btusb.koをバックアップする必要があります。

次のように、_btusb.c_の2つのifステートメントをコメントアウトして、条件付きコードを強制的に実行する必要があります(可能であればifステートメントを修正してみてください)。

_/* Fake CSR devices with broken commands */
// if (bcdDevice <= 0x100 || bcdDevice == 0x134)
_

そして

_/* Detect controllers which aren't real CSR ones. */
/* if (le16_to_cpu(rp->manufacturer) != 10 ||
    le16_to_cpu(rp->lmp_subver) == 0x0c5c) */  {
_

このハッキングされたbtusb modは、CSRがすべて偽物であると想定しており、私のものは機能している。新しいクローンは異なる番号を使用していると思います。残念ながら、新しいカーネルを入手するたびに_btusb.ko_をコピーまたは再構築する必要があります。

1
user1020113

Lenovo Yoga 900に19.04をインストールした後、Bluetoothアダプターをオンにできませんでした。古いバージョンのUbuntuで提案されたいくつかの解決策を試しましたが、どれもうまくいきませんでした。

これらのコマンドを使用してカーネルモジュールをリロードすると、問題が解決しました。

Sudo rmmod btusb
Sudo modprobe btusb
Sudo service bluetooth restart

再起動するたびにこれを行う必要があるようです。

0
Jon Miller