
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 udev
regra para desativar o Bluetooth interno.
Primeiro encontre o idVendor
e idProduct
do dispositivo USB que deseja desativar executando lsusb
e 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 0b05
e 179c
acima:
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 help
para comandos, rfkill list
para 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
, cut
etc para estar no lado seguro. Pode ser necessário instalar o pacote do rfkill
comando.
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 $INDEX
deve 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 lsmod
para listar os módulos atualmente carregados e dê uma olhada no dmesg
seu 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.d
para 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.