Saltar al contenido

Bluetooth Broadcom 43142 no funciona

Nuestros programadores estrellas agotaron sus depósitos de café, en su búsqueda diariamente por la solución, hasta que Cecilia encontró la solución en Gogs así que ahora la compartimos contigo.

Solución:

Necesita instalar el firmware.

La distribución del firmware de Broadcom no está permitida por la licencia de Broadcom. Así que debes conseguirlo tú mismo. Es un poco complejo, pero no hay otro legal camino.

  1. Descargue el controlador Broadcom Windows 8 o DESDE AQUÍ.

    Si su dispositivo no figura en estos controladores, deberá buscar una versión más reciente en alguna parte. Broadcom eliminó los controladores más recientes 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 se pueden descomprimir. Entonces es una búsqueda. Podría descargar los controladores Broadcom más recientes de su sitio, pero ya no está allí.

  2. Abra este archivo con Archive Manager y busque allí bcbtums-win8x86-brcm.inf Archivo. El nombre del archivo puede diferir en algunos controladores. Puede ser bcbtums.inf ubicado en el directorio Win32 o Win64. No importa 32 o 64 bits para descargar.

  3. Busque este archivo para VID_0A5C& PID_21D7. Estos números son de su lsusb producción

    0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

    Comentario: Algunos dispositivos no se reconocen como Broadcom BT en lsusb. Si no está seguro de cuál es su dispositivo BT, ejecute usb-devices comando, dará información más detallada. Allí puede encontrar ID de productos y proveedores.

    Verás una línea que termina con RAMUSB21D7

    Busque este archivo para RAMUSB21D7. Allí encontrará una sección así:

    [RAMUSB21D7.CopyList]
    bcbtums.sys
    btwampfl.sys
    BCM43142A0_001.001.011.0122.0126.hex
    

    Eso es lo que buscamos. Nombre del archivo de firmware.
    BCM43142A0_001.001.011.0122.0126.hex

  4. Ahora extraiga ese firmware del mismo archivo cab.

    Luego, debe convertir este archivo de formato hexadecimal a hcd.

  5. Descarga la herramienta para eso

    git clone git://github.com/jessesung/hex2hcd.git
    cd hex2hcd
    make
    

    Conseguirás hex2hcd carpeta en su directorio personal.

  6. Coloque el archivo de firmware en su carpeta de inicio y ejecute

    ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM43142A0-0a5c-21d7.hcd
    

    Tu ves eso 0a5c-21d7 es la identificación de su adaptador de lsusb.

    Importante: Para kernels 4.2+, llama a este archivo como BCM.hcd en lugar de.

    ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM.hcd
    

    Para kernels 4.8+, el nombre del archivo debe ser BCM--.hcd, me gusta BCM-0a5c-21d7.

    Para el kernel 5.0, el nombre del archivo es nuevamente BCM43142A0-0a5c-21d7.hcd

    Ahora solo copia BCM43142A0-0a5c-21d7.hcd, u otro archivo según la versión del kernel para /lib/firmware/brcm directorio por

    sudo cp ~/BCM43142A0-0a5c-21d7.hcd /lib/firmware/brcm
    

    Para kernels 4.2+

    sudo cp ~/BCM.hcd /lib/firmware/brcm
    

    Para kernels 4.8+

    sudo cp ~/BCM-0a5c-21d7.hcd  /lib/firmware/brcm
    

    Siempre puedes comprobar 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.

  7. Apague su computadora y vuelva a encenderla. ¡No solo reiniciar!

    Su adaptador obtendrá firmware y bluetooth debería funcionar.

Todo esto parece complicado, pero es Broadcom abogados a los que culpar por eso. La mayoría de los demás proveedores permiten redistribuir el firmware con la condición de que se realice 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 forma sencilla.

Mucha gente podría 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 : – ((

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 kernel (como se describe arriba).

En 4.8 no necesitaba reiniciar, simplemente en una terminal:

sudo modprobe -r btusb
sudo modprobe btusb

dmesg | grep -i blu

debería mostrar si está cargado. Asegúrese de que el ID de hardware coincida con el archivo. Se puede encontrar con:

lsusb

que muestra esto en mi Lenovo (solo esa línea):

Bus 001 Device 006: ID 105b:e065 Foxconn International, Inc. BCM43142A0 Bluetooth module

Espero que eso ayude 🙂

Eso es todo lo que necesita: 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 les 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 necesarios de Broadcom se encuentran en la carpeta de repositorio de este GitHub en formato .hcd.

  1. Ingrese el siguiente comando para descubrir qué nombre de controlador busca el kernel al cargar las unidades durante el arranque:

    dmesg | grep -i 'firmware load'
    

    Pruebe este si no encuentra nada:

    dmesg | grep -i 'bluetooth'
    

    El resultado debería ser algo como esto:

    bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2
    

    Explicación: en mi caso, el kernel está buscando el archivo BCM.hcd bajo el directorio /lib/firmware/brcm donde se espera que estén los conductores de Broadcom. Si el kernel busca 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 kernel.

  2. 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 kernel está mirando mientras arranca:

    sudo mv ~/BCM.hcd /lib/firmware/brcm
    

    Debe utilizar el controlador correspondiente según su dispositivo y cambiarle el nombre si se solicita para el kernel.

  3. ¡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)

Si te ha sido provechoso este artículo, agradeceríamos que lo compartas con más entusiastas de la programación y nos ayudes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *