内蔵Bluetoothを永久に無効にし、USBを使用してください。

内蔵Bluetoothを永久に無効にし、USBを使用してください。

5年が過ぎた今でも私のノートパソコンは状態が良好です(まだ)。

ただし、内蔵のBluetoothは(広範な使用のために)以前のように動作せず、起動時にほとんど読み込まれません。広く使用されているので、内蔵のBluetoothスティックの役割に代わる10ドルのBluetoothスティックを購入することにしました。

しかし、組み込まれたものはほとんど火が入らないが、時には火花が発生することがあります。私の設定を破壊して内容を上書きするので、時には本当に迷惑です。

私の質問:USBデバイスはまだ私のオーディオ/ポインティングデバイス/…送信中に内蔵Bluetoothが永久に無効になっていることを確認するにはどうすればよいですか?

システム:Linux Mint 18(基本:Ubuntu 16.04)

lsusb出力:

jeroen@laptop ~ $ lsusb
Bus 002 Device 002: ID 5986:02ac Acer, Inc 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 138a:0018 Validity Sensors, Inc. Fingerprint scanner
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
(Built-in BT) Bus 003 Device 004: ID 0a5c:21b4 Broadcom Corp. BCM2070 Bluetooth 2.1 + EDR
(USB-BT) Bus 003 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

アップデート:テスト出力

(デクターの要求に応じて)

jeroen@laptop ~ $ sudo hcitool dev
Devices:
    hci0    00:1B:DC:0F:73:5D
    hci1    CC:52:AF:A8:71:B5
## Plugged out the USB-BT dongle
jeroen@laptop ~ $ sudo hcitool dev
Devices:
    hci1    CC:52:AF:A8:71:B5
## Plugged in the USB-BT dongle
jeroen@laptop ~ $ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
5: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
6: hci1: Bluetooth
    Soft blocked: no
    Hard blocked: no
8: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
jeroen@laptop ~ $ sudo rfkill block 5
jeroen@laptop ~ $ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
5: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
6: hci1: Bluetooth
    Soft blocked: no
    Hard blocked: no
8: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
jeroen@laptop ~ $ sudo rfkill block 6
jeroen@laptop ~ $ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
5: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
6: hci1: Bluetooth
    Soft blocked: yes
    Hard blocked: no
8: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
jeroen@laptop ~ $ sudo rfkill block 8
jeroen@laptop ~ $ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
5: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
6: hci1: Bluetooth
    Soft blocked: yes
    Hard blocked: no
8: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no
jeroen@laptop ~ $ sudo rfkill unblock 8
jeroen@laptop ~ $ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
5: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
6: hci1: Bluetooth
    Soft blocked: no
    Hard blocked: no
8: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
jeroen@laptop ~ $ sudo rfkill unblock 6
jeroen@laptop ~ $ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
5: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
6: hci1: Bluetooth
    Soft blocked: no
    Hard blocked: no
8: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
jeroen@laptop ~ $ sudo rfkill unblock 5
jeroen@laptop ~ $ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
5: hp-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
6: hci1: Bluetooth
    Soft blocked: no
    Hard blocked: no
8: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

答え1

udev内部Bluetoothを無効にするルールを作成できます。

まず、正しい行を実行して、無効にしたいUSBデバイスを見つけますidVendor。たとえば、私のシステムで無効にしたいアダプタと一致する行は次のようになります。idProductlsusb

Bus 004 Device 006: ID 0b05:179c ASUSTek Computer, Inc. Bluetooth Adapter

次に、 を に入れて/etc/udev/rules.d/81-bluetooth-hci.rules上記の0b05合計を記録しておきます。179c

SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="179c", ATTR{authorized}="0"

この時点で再起動することができ、デバイスは出力に表示されなくなり、接続されている他のhciconfig -aBluetoothデバイス(サプライヤ+製品IDが同じではないと仮定)が表示されますhci0

再起動したくない場合は、デバイスを再初期化し、まず別のBluetoothアダプタを取り外してからrootとして実行してください。

udevadm trigger
rmmod btusb

今すぐ新しいBluetoothアダプタを接続し、保存された稼働時間をお楽しみください(または機能しない場合は再起動してください!)。

解決策は次のとおりです。Ubuntuに尋ねる

答え2

オプション1:を使用してくださいrfkill

これにより、ブロックされたデバイスの転送が無効になり、通常ドライバが「オフ」状態になります。rfkill helpコマンドの場合、これをブロックするためにrfkill listrfkillできるデバイスを一覧表示しますrfkill block <index>|<type>。インデックスが必要な場合や、起動するたびにインデックスが一貫しているかどうかわからないため、安全のgrepためなどを使用して小さなスクリプトを作成する必要があります。このコマンドのパッケージをcutインストールする必要があるかもしれません。rfkill

編集する処置: 索引の変更が心配な場合は、次のようにします。

HCI=`hcitool dev | grep '00:11:22:33:44:55' | cut -f2`
INDEX=`rfkill list | grep $HCI | cut -d: -f1`

(もちろん、内蔵BluetoothアダプタのMACアドレス)$INDEXインデックスが含まれている必要があります。複数のBluetoothアダプタを持つことができるハードウェアがないため、これをテストできません。

別の方法はウデブ既知のアダプタの特殊名を生成するルールですが、上記の2行を使用するよりも理解するのが難しい場合があります。

結局使うしかないですねrfkillBluetoothラジオを完全に無効にするカーネル機能がありますが、これには他のコマンドラインインターフェイスはありません。

オプション2:ブラックリストカーネルモジュール

起動後に内蔵Bluetoothデバイスが無効になり、カーネルドライバがモジュールにコンパイルされている場合は、ブラックリストに登録してドライバがデバイスをロードして有効にするのを防ぎます。lsmod現在ロードされているモジュールを一覧表示し、dmesg起動後にシステムログを確認して、内蔵Bluetoothデバイス用のドライバを識別するために使用されます。ブラックリストの作成は、使用しているディストリビューションによって異なります(例:Debian(おそらくUbuntu))。/etc/modprobe.d/インクルード行を作成します。blacklist <modulname>man modprobe.d

内蔵のBluetoothデバイスが有効になって起動した場合、ドライバをブラックリストに登録すると、そのデバイスが利用できなくなりますが、コンテンツが破損している場合でもコンテンツを転送できます。

関連情報