내장 Bluetooth를 영구적으로 비활성화하고 USB를 사용합니다.

내장 Bluetooth를 영구적으로 비활성화하고 USB를 사용합니다.

5년이 지난 지금도 내 노트북은 상태가 양호합니다(여전히).

하지만 내 내장 블루투스는 (광범위한 사용으로 인해) 예전처럼 작동하지 않고 시작 시 거의 로드되지 않습니다. 널리 사용됨에 따라 내장된 Bluetooth 스틱의 역할을 대신하는 10달러짜리 Bluetooth 스틱을 구입하기로 결정했습니다.

그러나 내장된 것들은 대부분 불이 들어오지 않지만 때때로 스파크가 발생할 수 있습니다. 내 설정을 파괴하고 내용을 덮어쓰기 때문에 때로는 정말 짜증스럽습니다.

내 질문: USB 장치가 여전히 내 오디오/포인팅 장치/…를 보낼 수 있는 동안 내장 블루투스가 영구적으로 비활성화되었는지 어떻게 확인할 수 있습니까?

시스템: 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

업데이트: 테스트 출력

(Decter의 요청에 따라)

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 -a, 연결한 다른 블루투스 장치(공급업체 + 제품 ID가 동일하지 않다고 가정)는 로 표시됩니다 hci0.

재부팅하지 않으려면 장치를 다시 초기화하고 먼저 다른 Bluetooth 어댑터를 분리한 다음 루트로 실행해 보세요.

udevadm trigger
rmmod btusb

이제 새 Bluetooth 어댑터를 연결하고 보존된 가동 시간을 즐기십시오(또는 작동하지 않으면 재부팅하십시오!).

해결책은 다음에서 찾았습니다.우분투에 물어보세요.

답변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 어댑터를 가질 수 있는 하드웨어가 없기 때문에 이것을 테스트할 수 없습니다.

또 다른 방법은우데브알려진 어댑터에 대한 특수 이름을 생성하는 규칙이지만 위의 두 줄을 사용하는 것보다 알아내기가 더 어려울 수 있습니다.

결국 사용할 수밖에 없군요rfkillBluetooth 라디오를 완전히 비활성화할 수 있는 커널 기능이 있지만 이것이 가능한 다른 명령줄 인터페이스는 없습니다.

옵션 2: 블랙리스트 커널 모듈

부팅 후 내장 Bluetooth 장치가 비활성화되고 커널 드라이버가 모듈로 컴파일된 경우, 블랙리스트에 등록하여 드라이버가 장치를 로드하고 활성화하는 것을 방지할 수 있습니다. lsmod현재 로드된 모듈을 나열하고 dmesg시작 후 시스템 로그를 확인하여 내장 Bluetooth 장치용 드라이버를 식별하는 데 사용됩니다 . 블랙리스트 작성은 사용 중인 배포판에 따라 다릅니다(예: Debian(아마도 Ubuntu)) . /etc/modprobe.d/포함 줄 을 만듭니다.blacklist <modulname>man modprobe.d

내장된 Bluetooth 장치가 활성화된 상태로 부팅되는 경우 드라이버를 블랙리스트에 등록하면 해당 장치를 사용할 수 없지만 콘텐츠가 손상된 경우 여전히 콘텐츠를 전송할 수 있습니다.

관련 정보