Opção 1: use rfkill
.
Isso desabilitará a transmissão no dispositivo bloqueado e, geralmente, também colocará os drivers em um estado "inativo". rfkill help
para comandos, rfkill list
para listar dispositivos que podem ser rfkill, rfkill block <index>|<type>
para bloqueá-lo. Você pode precisar de um índice, e eu não sei se os índices permanecem consistentes nas inicializações, então você provavelmente precisará escrever um pequeno script com grep
, cut
etc para estar no lado seguro. Você pode precisar instalar o pacote para o comando rfkill
.
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, pois não tenho hardware com mais de um adaptador bluetooth.
Outra maneira seria usar as regras udev 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 para usar os recursos do kernel rfkill para desativar completamente um rádio bluetooth, embora possa haver outras interfaces de linha de comando para ele que eu não conheça.
Opção 2: módulo do kernel da lista negra
Se, após a inicialização, o dispositivo Bluetooth integrado estiver em um estado desativado e o driver do kernel estiver 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 em dmesg
ou seu syslog após a inicialização para identificar o driver para seu dispositivo Bluetooth integrado. A lista negra depende da distribuição que você usa, por exemplo no Debian (e provavelmente no Ubuntu também), faça um arquivo em /etc/modprobe.d/
que contenha a linha blacklist <modulname>
. Veja man modprobe.d
para detalhes.
Se o dispositivo bluetooth integrado inicializar no estado ativado, a lista negra do driver impedirá que você o use, mas se ele estiver quebrado, ele ainda poderá transmitir informações.