Bluetooth está activado pero ningún otro dispositivo puede encontrarlo ni encontrarlo.
Salida de sudo service bluetooth status
:
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since ხუთ 2015-06-04 22:33:18 GET; 13min ago
Main PID: 26678 (bluetoothd)
CGroup: /system.slice/bluetooth.service
└─26678 /usr/sbin/bluetoothd -n
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
Salida de lsusb
:
Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
¿Cómo puedo arreglarlo?
Respuestas:
Necesitas instalar el firmware.
La distribución de firmware Broadcom no está permitida por la licencia Broadcom. Entonces necesitas obtenerlo tú mismo. Es un poco complejo, pero no hay otra forma legal .
Descargue el controlador Broadcom Windows 8 o DESDE AQUÍ .
Si su dispositivo no figura en la lista de estos controladores, deberá encontrar una versión más nueva en algún lugar. Broadcom eliminó los últimos controladores de su sitio para hacerlo más difícil.
Algunos proveedores de computadoras portátiles tienen controladores Bluetooth en sus sitios, pero algunos de ellos no son descomprimibles. Entonces es una búsqueda. Podría descargar los últimos controladores de Broadcom de su sitio, pero ya no está allí.
Abra este archivo con Archive Manager y busque el
bcbtums-win8x86-brcm.inf
archivo. El nombre del archivo puede diferir en algunos controladores. Se puedebcbtums.inf
ubicar en el directorio Win32 o Win64. No importa 32 o 64 bits para descargar.Busque este archivo para VID_ 0A5C y PID_ 21D7 . Estos números son de su
lsusb
salida0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.
Comentario: algunos dispositivos no se reconocen como Broadcom BT in
lsusb
. Si no está seguro de cuál es su dispositivo BT, ejecute elusb-devices
comando, le dará información más detallada. Allí puede encontrar identificaciones de productos y proveedores.Verá alguna línea que termina con RAMUSB21D7
Busque este archivo para RAMUSB21D7. Encontrará una sección así:
Eso es lo que estamos buscando. Nombre del archivo de firmware. BCM43142A0_001.001.011.0122.0126.hex
Ahora extraiga ese firmware del mismo archivo de cabina.
Luego debe convertir este archivo de formato hexadecimal a hcd.
Descargue la herramienta para eso
Obtendrá hex2hcd carpeta en su directorio personal.
Coloque el archivo de firmware en su carpeta de inicio y ejecute
Verá que 0a5c-21d7 es la identificación de su adaptador de lsusb .
Importante: Para los núcleos 4.2+ llama a este archivo como en su
BCM.hcd
lugar.Para los núcleos 4.8+, el nombre del archivo debe ser
BCM-<VID>-<PID>.hcd
, comoBCM-0a5c-21d7
.Para el kernel 5.0, el nombre del archivo es nuevamente
BCM43142A0-0a5c-21d7.hcd
Ahora solo copie
BCM43142A0-0a5c-21d7.hcd
u otro archivo de acuerdo con la versión del kernel al/lib/firmware/brcm
directorio porPara granos 4.2+
Para granos 4.8+
Siempre puedes consultar si el nombre del archivo es correcto ejecutando
dmesg | grep -i blue
. Habrá un mensaje de error si no se encuentra el archivo.Si el nombre del archivo solicitado no coincide con el archivo que creó, cambie el nombre del
hcd
archivo.Apague y encienda su computadora nuevamente. ¡No solo reiniciar!
Su adaptador obtendrá firmware y Bluetooth debería funcionar.
Todo esto parece complicado, pero es Broadcom culpa de los abogados de . La mayoría de los otros proveedores permiten redistribuir el firmware con la condición de que se haga junto con la licencia.
Eso permite a los mantenedores de Linux incluir firmware en las distribuciones.
Pero no en el caso de Broadcom. Por eso no se hace de una manera fácil.
Muchas personas podrían convertir todos los archivos hexadecimales a hcd y ponerlos a disposición. O simplemente agréguelos al
linux-firmware
paquete de Ubuntu.Pero no es legal : - ((
fuente
sudo modprobe -r btusb
) y volver a cargarlo (sudo modprobe btusb
) para que blueooth vuelva a funcionar. bugzilla.kernel.org/show_bug.cgi?id=81821dmesg
para saber mi archivo correcto. Ejemplo de salida de dmesg:[ 3.479417] bluetooth hci0: Direct firmware load for brcm/BCM-0a5c-6410.hcd failed with error -2 [ 3.479421] Bluetooth: hci0: BCM: Patch brcm/BCM-0a5c-6410.hcd not found
.hex
archivo, que puede copiar a su sistema Linux. Después de eso, siga los pasos 5-8. Esta respuesta es excelente, por cierto.Aquí hay un proyecto que tiene como objetivo automatizar un poco el proceso: https://github.com/winterheart/broadcom-bt-firmware
copie el BCM en el directorio / nombre correcto según el núcleo (como se describió anteriormente).
En 4.8 no necesitaba reiniciar, simplemente en un terminal:
debería mostrar si está cargado. Asegúrese de que la identificación del hardware coincida con el archivo. Se puede encontrar con:
que muestra esto en mi Lenovo (solo esa línea):
Espero que eso ayude :)
fuente
hcitool dev
todavía no mostraban ningún dispositivo y hubo un error en syslog. Encontré otro controlador en plugable.com/2014/06/23/… que funcionó.Eso es todo lo que necesitas: https://github.com/winterheart/broadcom-bt-firmware
En este repositorio puede encontrar más información y todos los controladores de tarjeta inalámbrica Broadcom necesarios .
Para ser más concreto, te doy las instrucciones que escribí para mí:
Este tutorial está destinado a hacer que la tarjeta de red inalámbrica / bluetooth Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (ID de dispositivo: 0a5c: 216d) funcione en sistemas Linux (lo probé en Elementary OS 0.4.1 Loki, basado en Ubuntu 16.04.3 LTS).
No podría funcionar para otros dispositivos, pero no debería variar demasiado de este procedimiento para otros dispositivos Broadcom. Los controladores Broadcom necesarios están en la carpeta de reposo de este GitHub en formato .hcd.
Ingrese el siguiente comando para descubrir qué nombre de controlador busca el núcleo al cargar las unidades durante el arranque:
Pruebe este si no encuentra nada:
El resultado debería ser algo como esto:
Explicación: en mi caso, el núcleo está buscando el archivo
BCM.hcd
en el directorio/lib/firmware/brcm
donde se espera que estén los controladores de Broadcom. Si el núcleo está buscando otro nombre de controlador, debe cambiar el nombre del archivo del controlador (BCM43142A0-0a5c-216c.hcd
en mi caso para el BCM43142 (0a5c: 216d)) al nombre requerido por el núcleo.Mueva el controlador renombrado (BCM.hcd) a su directorio de inicio (/ home / YourUsername /) y ejecute el siguiente comando para moverlo a la carpeta que el núcleo está mirando durante el arranque:
Debe usar el controlador correspondiente según su dispositivo y cambiarle el nombre si se lo solicita para el núcleo.
¡Reinicie su computadora y debería funcionar! * (Puede ingresar
dmesg | grep -i 'bluetooth'
una vez más para ver si el controlador se ha cargado)fuente