Desative permanentemente o bluetooth integrado e use USB

Desative permanentemente o bluetooth integrado e use USB

Após 5 anos, meu laptop está em perfeitas condições (ainda).

Mas meu bluetooth integrado não é mais o que costumava ser (graças ao uso extensivo dele) e praticamente não carrega na inicialização. Devido ao uso extensivo, optei por comprar um stick bluetooth de 10 dólares que substituiu o integrado.

No entanto, o integrado geralmente não está ligado, mas às vezes ainda dá uma faísca. Nessas horas às vezes é muito chato porque simplesmente estraga minhas configurações e sobrescreve várias coisas.

Minha pergunta: como posso ter certeza de que o bluetooth integrado está permanentemente desativado enquanto o dispositivo USB ainda é capaz de enviar meu áudio/dispositivos apontadores/... através.

Sistema: Linux Mint 18 (Base: Ubuntu 16.04)

Saída 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

Atualização: saída de teste

(conforme solicitado por Dirkt)

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

Responder1

Você pode criar uma udevregra para desativar o Bluetooth interno.

Primeiro encontre o idVendore idProductdo dispositivo USB que deseja desativar executando lsusbe localizando a linha correta. Por exemplo, no meu sistema esta é a linha correspondente ao adaptador que eu queria desabilitar:

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

Então coloque o seguinte em /etc/udev/rules.d/81-bluetooth-hci.rules, observe os valores 0b05e 179cacima:

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

Neste ponto, você pode simplesmente reiniciar e seu dispositivo não deverá mais aparecer na saída de hciconfig -a, e qualquer outro dispositivo bluetooth que você conectar (supondo que não seja do mesmo fornecedor + ID do produto!) aparecerá como hci0.

Se não desejar reiniciar, você pode tentar reinicializar os dispositivos, primeiro desconectando quaisquer outros adaptadores Bluetooth e, em seguida, como root, execute:

udevadm trigger
rmmod btusb

Agora conecte seu novo adaptador Bluetooth e aproveite seu tempo de atividade preservado (ou reinicie mesmo assim, se não funcionar!).

Solução encontrada emPergunte ao Ubuntu.

Responder2

Opção 1: usar rfkill.

Isso desabilitará a transmissão no dispositivo que está bloqueado e geralmente também colocará os drivers no estado "inativo". rfkill helppara comandos, rfkill listpara listar dispositivos que podem ser rfkill'ed, rfkill block <index>|<type>para bloqueá-los. Você pode precisar de um índice, e não sei se os índices permanecem consistentes nas inicializações, então provavelmente você precisará escrever um pequeno script com grep, cutetc para estar no lado seguro. Pode ser necessário instalar o pacote do rfkillcomando.

Editar: Se você está preocupado em alterar os índices, faça algo como

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

(mas é claro com o endereço MAC do seu adaptador bluetooth interno) e $INDEXdeve conter o índice dele. Não posso testar isso porque não tenho hardware com mais de um adaptador bluetooth.

Outra forma seria usarudevregras para criar nomes especiais para os adaptadores conhecidos, mas isso provavelmente é mais difícil de descobrir do que usar as duas linhas acima.

No final, não há alternativa a não ser usar orfkillrecursos do kernel para desabilitar completamente um rádio bluetooth, embora possa haver outras interfaces de linha de comando que eu não conheço.

Opção 2: módulo de kernel da lista negra

Se após a inicialização o dispositivo Bluetooth integrado estiver desativado e o driver do kernel for compilado como um módulo, você poderá impedir que o driver carregue e ative o dispositivo colocando-o na lista negra. Use lsmodpara listar os módulos atualmente carregados e dê uma olhada no dmesgseu syslog após a inicialização para identificar o driver do seu dispositivo bluetooth integrado. A colocação na lista negra depende da distribuição que você usa, por exemplo, no Debian (e provavelmente no Ubuntu também), crie um arquivo /etc/modprobe.d/que contenha a linha blacklist <modulname>. Veja man modprobe.dpara detalhes.

Se o dispositivo Bluetooth integrado inicializar no estado ativado, colocar o driver na lista negra impedirá que você o use, mas se estiver quebrado, ele ainda poderá transmitir coisas.

informação relacionada