
Después de 5 años mi portátil está en perfecto estado (aún).
Pero mi bluetooth incorporado ya no es lo que solía ser (gracias a su uso extensivo) y prácticamente no se carga al arrancar. Debido al uso extensivo, opté por comprar un dispositivo bluetooth de 10 dólares que se hizo cargo del trabajo del integrado.
Sin embargo, el incorporado generalmente no está encendido, pero a veces todavía emite una chispa. En esos momentos, a veces es realmente molesto porque simplemente arruina mi configuración y sobrescribe varias cosas.
Mi pregunta: ¿cómo puedo asegurarme de que el bluetooth incorporado esté permanentemente desactivado mientras el dispositivo USB aún puede enviar mi audio/dispositivos señaladores/...?
Sistema: Linux Mint 18 (Base: Ubuntu 16.04)
salida 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
Actualización: salida de prueba
(según lo 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
Respuesta1
Puede crear una udev
regla para desactivar el Bluetooth interno.
Primero busque el idVendor
y idProduct
del dispositivo USB que desea desactivar ejecutando lsusb
y localizando la línea correcta. Por ejemplo, en mi sistema esta es la línea correspondiente al adaptador que quería desactivar:
Bus 004 Device 006: ID 0b05:179c ASUSTek Computer, Inc. Bluetooth Adapter
Entonces, coloque lo siguiente en /etc/udev/rules.d/81-bluetooth-hci.rules
, observe los valores 0b05
y 179c
de arriba:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="179c", ATTR{authorized}="0"
En este punto, puede simplemente reiniciar y su dispositivo ya no debería aparecer en la salida de hciconfig -a
, y cualquier otro dispositivo bluetooth que conecte (¡suponiendo que no sea del mismo proveedor + ID de producto!) aparecerá como hci0
.
Si no desea reiniciar, puede intentar reinicializar los dispositivos, desconectando primero cualquier otro adaptador Bluetooth y luego, como root, ejecute:
udevadm trigger
rmmod btusb
Ahora conecte su nuevo adaptador bluetooth y disfrute de su tiempo de actividad preservado (¡o reinicie de todos modos si no funcionó!).
Solución encontrada enPreguntar a Ubuntu.
Respuesta2
Opción 1: Usar rfkill
.
Esto deshabilitará la transmisión en el dispositivo que está bloqueado y, por lo general, también pondrá a los controladores en un estado "inactivo". rfkill help
para comandos, rfkill list
para enumerar dispositivos que pueden ser eliminados, rfkill block <index>|<type>
para bloquearlos. Es posible que necesite un índice, y no sé si los índices se mantienen consistentes en todos los arranques, por lo que probablemente necesitará escribir un pequeño script con grep
, cut
etc. para estar seguro. Es posible que necesite instalar el paquete para el rfkill
comando.
Editar: Si le preocupa cambiar los índices, haga algo como
HCI=`hcitool dev | grep '00:11:22:33:44:55' | cut -f2`
INDEX=`rfkill list | grep $HCI | cut -d: -f1`
(pero por supuesto con la dirección MAC de su adaptador bluetooth interno), y $INDEX
debe contener su índice. No puedo probar esto porque no tengo hardware con más de un adaptador bluetooth.
Otra forma sería utilizarudevreglas para crear nombres especiales para los adaptadores conocidos, pero eso probablemente sea más difícil de entender que usar las dos líneas anteriores.
Al final, no hay otra alternativa que usar elmatarfunciones del kernel para desactivar completamente una radio bluetooth, aunque puede haber otras interfaces de línea de comandos que no conozco.
Opción 2: módulo del kernel de lista negra
Si después del arranque el dispositivo bluetooth incorporado está en estado deshabilitado y el controlador del kernel está compilado como un módulo, puede evitar que el controlador se cargue y habilite el dispositivo incluyéndolo en la lista negra. Úselo lsmod
para enumerar los módulos actualmente cargados y eche un vistazo a dmesg
su registro del sistema después del arranque para identificar el controlador de su dispositivo bluetooth integrado. Incluirlo en la lista negra depende de la distribución que utilice, por ejemplo, en Debian (y probablemente también en Ubuntu), cree un archivo /etc/modprobe.d/
que contenga la línea blacklist <modulname>
. Ver man modprobe.d
para más detalles.
Si el dispositivo Bluetooth incorporado arranca en estado habilitado, incluir el controlador en la lista negra le impedirá usarlo, pero si está roto, aún puede transmitir cosas.