Bluetooth Broadcom 43142 ne fonctionne pas

28

Bluetooth est activé mais ne peut pas être trouvé ou trouvé par d'autres appareils.

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

lsusb

Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0

Comment puis-je résoudre ce problème?

    
posée Guja1501 04.06.2015 - 20:45
la source

3 réponses

62

Vous devez installer le micrologiciel.

La distribution du firmware Broadcom n’est pas autorisée par la licence Broadcom. Donc, vous devez l'obtenir vous-même. C'est un peu complexe, mais il n'y a pas d'autre moyen légal .

  1. Télécharger Pilote Broadcom Windows 8 ou DEPUIS ICI .

Si votre appareil n'est pas répertorié dans ces pilotes, vous devrez en trouver une version plus récente quelque part. Broadcom a supprimé les derniers pilotes de son site pour le rendre plus difficile.

Certains fournisseurs d’ordinateurs portables disposent de pilotes Bluetooth sur leurs sites, mais certains ne peuvent pas être supprimés. Donc, c'est une quête. Je pourrais télécharger les derniers pilotes Broadcom depuis leur site, mais ce n’est plus là.

  1. Ouvrez ce fichier par Archive Manager et recherchez le fichier bcbtums-win8x86-brcm.inf . Le nom du fichier peut différer dans certains pilotes. Il peut s'agir de bcbtums.inf situé dans le répertoire Win32 ou Win64. Ce n'est pas grave 32 ou 64 bits à télécharger.
  2. Recherchez ce fichier pour VID_ 0A5C & PID_ 21D7 . Ces chiffres proviennent de votre sortie lsusb

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

Commentaire: Certains appareils ne sont pas reconnus en tant que Broadcom BT dans lsusb . Si vous ne savez pas quel est votre périphérique BT, exécutez la commande usb-devices , cela vous donnera des informations plus détaillées. Vous pouvez y trouver des identifiants de produits et de fournisseurs.

Vous verrez une ligne se terminant par RAMUSB21D7

Recherchez ce fichier pour RAMUSB21D7. Vous trouverez une section comme celle-ci:

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

C'est ce que nous recherchons. Nom du fichier de firmware.      BCM43142A0_001.001.011.0122.0126.hex

  1. Maintenant, extrayez ce firmware du même fichier cab.

    Ensuite, vous devez convertir ce fichier du format hexadécimal au format hcd.

  2. Téléchargez l'outil pour cela

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

    Vous obtiendrez le dossier hex2hcd dans votre répertoire personnel.

  3. Placez le fichier du micrologiciel dans votre dossier personnel et exécutez

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

    Vous voyez que 0a5c-21d7 est l’identifiant de l’adaptateur depuis lsusb .

Important: Pour les noyaux 4.2 et plus, vous appelez ce fichier en tant que BCM.hcd .

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

Pour les noyaux 4.8+, le nom du fichier doit être BCM-<VID>-<PID>.hcd , comme BCM-0a5c-21d7 .

  1. Maintenant, copiez simplement BCM43142A0-0a5c-21d7.hcd ou un autre fichier en fonction de la version du noyau dans le répertoire /lib/firmware/brcm par

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

Pour les noyaux 4.2 +

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

Pour les noyaux 4.8 +

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

Vous pouvez toujours vérifier si le nom du fichier est correct en exécutant dmesg | grep -i blue . Il y aura un message d'erreur si le fichier n'est pas trouvé.

  1. Éteignez et rallumez votre ordinateur. Pas seulement redémarrer!

    Votre adaptateur recevra le micrologiciel et le bluetooth devrait fonctionner.

Tout cela semble compliqué, mais ce sont les avocats de Broadcom qui sont responsables de cela. La plupart des autres fournisseurs permettent de redistribuer le micrologiciel à condition qu’il soit accompagné de la licence.

Cela permet aux responsables Linux d’inclure le micrologiciel dans les distributions.

Mais pas dans le cas de Broadcom. C'est pourquoi ce n'est pas facile.

Beaucoup de gens pourraient convertir tous les fichiers hexadécimaux en hcd et les rendre disponibles. Ou ajoutez-les simplement au package linux-firmware d'Ubuntu.

Mais ce n’est pas légal : - ((

    
réponse donnée Pilot6 04.06.2015 - 21:03
la source
12

Voici un projet qui vise à automatiser un peu le processus: lien

copier le BCM dans le bon répertoire / nom en fonction du noyau (comme décrit ci-dessus).

Sur 4.8, je n’avais pas besoin de redémarrage, simplement dans un terminal:

sudo modprobe -r btusb
sudo modprobe btusb

dmesg | grep -i blu

devrait indiquer s’il est chargé. Assurez-vous que l'ID de matériel correspond au fichier. On peut le trouver avec:

lsusb

qui montre ceci sur mon Lenovo (seulement cette ligne):

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

J'espère que ça aide:)

    
réponse donnée Vincent Gerris 13.12.2016 - 12:12
la source
2

C'est tout ce dont vous avez besoin: lien

Sur ce référentiel, vous trouverez plus d’informations et tous les pilotes de carte sans fil Broadcom nécessaires .

Pour être plus concret, je vous donne les instructions que j'ai écrites pour moi-même:

Ce didacticiel est destiné à faire fonctionner la carte réseau sans fil / Bluetooth Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (ID de périphérique: 0a5c: 216d) sur les systèmes Linux (je l’ai essayé sur Elementary OS 0.4.1 Loki, basé sur Ubuntu 16.04.3 LTS).

Cela ne pourrait pas fonctionner avec d’autres appareils, mais cette procédure ne devrait pas trop varier pour les autres appareils Broadcom. Les pilotes Broadcom nécessaires se trouvent dans ce dossier de repos de GitHub au format .hcd.

  1. Entrez la commande suivante pour découvrir le nom du pilote recherché par le noyau lors du chargement des lecteurs lors du démarrage:

    dmesg | grep -i 'firmware load'
    

    Essayez celui-ci s'il ne trouve rien:

    dmesg | grep -i 'bluetooth'
    

    Le résultat devrait être quelque chose comme ceci:

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

    Explication: dans mon cas, le noyau recherche le fichier BCM.hcd sous le répertoire /lib/firmware/brcm où sont attendus les pilotes Broadcom. Si le noyau recherche un autre nom de pilote, vous devez renommer le fichier du pilote ( BCM43142A0-0a5c-216c.hcd dans mon cas pour le BCM43142 (0a5c: 216d)) au nom requis par le noyau.

  2. Déplacez le pilote renommé (BCM.hcd) vers votre répertoire personnel (/ home / YourUsername /) et exécutez la commande suivante pour le déplacer dans le dossier que le noyau est en train de démarrer lors du démarrage:

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

    Vous devez utiliser le pilote correspondant en fonction de votre appareil et le renommer à la demande du noyau.

  3. Redémarrez votre ordinateur et cela devrait fonctionner! * (vous pouvez entrer dmesg | grep -i 'bluetooth' une fois de plus pour voir si le pilote a été chargé)

réponse donnée Juan Gómez Carrillo 10.12.2017 - 18:41
la source

Lire d'autres questions sur les étiquettes