49 votes

Bluetooth Broadcom 43142 ne fonctionne pas

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

Sortie 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

Sortie de lsusb :

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

Comment puis-je y remédier ?

91voto

user167850 Points 230

Vous devez installer le micrologiciel.

La distribution des microprogrammes Broadcom n'est pas autorisée par la licence Broadcom. Vous devez donc l'obtenir vous-même. C'est un peu complexe, mais il n'y a pas d'autre solution. juridique manière.

  1. Télécharger Pilote Broadcom Windows 8 o D'ICI .

    Si votre appareil ne figure pas dans la liste de ces pilotes, vous devrez en trouver une version plus récente quelque part. Broadcom a retiré les derniers pilotes de son site pour rendre la tâche plus difficile.

    Certains fournisseurs d'ordinateurs portables proposent des pilotes Bluetooth sur leurs sites, mais certains d'entre eux ne sont pas décompressables. Il s'agit donc d'une quête. J'ai pu télécharger les derniers pilotes Broadcom sur leur site, mais ils ne sont plus là.

  2. Ouvrez ce fichier à l'aide du Gestionnaire d'archives et trouvez-y bcbtums-win8x86-brcm.inf fichier. Le nom du fichier peut être différent dans certains pilotes. Il peut s'agir de bcbtums.inf situé dans le répertoire Win32 ou Win64. Le téléchargement n'a pas d'importance pour les versions 32 ou 64 bits.

  3. Rechercher le VID_ dans ce fichier 0A5C &PID_ 21D7 . Ces numéros proviennent de votre lsusb sortie

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

    Commentaire : Certains appareils ne sont pas reconnus comme étant des Broadcom BT dans l'application lsusb . Si vous n'êtes pas sûr de l'identité de votre appareil BT, exécutez la commande usb-devices Elle fournira des informations plus détaillées. Vous y trouverez les identifiants du produit et du fournisseur.

    Vous verrez des lignes se terminant par RAMUSB21D7

    Recherchez dans ce fichier RAMUSB21D7. Vous y trouverez une section de ce type :

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

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

  4. Extrayez maintenant le micrologiciel à partir du même fichier cab.

    Vous devez ensuite convertir ce fichier du format hexagonal au format hcd.

  5. Télécharger l'outil pour cela

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

    Vous obtiendrez hex2hcd dans votre répertoire personnel.

  6. 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 votre adaptateur de lsusb .

    Important : Pour les noyaux 4.2+, vous appelez ce fichier en tant que BCM.hcd au lieu de cela.

    ~/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 .

    Pour le noyau 5.0, le nom du fichier est à nouveau BCM43142A0-0a5c-21d7.hcd

    Il suffit maintenant de copier BCM43142A0-0a5c-21d7.hcd ou un autre fichier en fonction de la version du noyau à /lib/firmware/brcm répertoire 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 . Un message d'erreur s'affiche si le fichier n'est pas trouvé.

    Si le nom de fichier demandé ne correspond pas au fichier que vous avez créé, renommez le fichier hcd fichier.

  7. Eteignez et rallumez votre ordinateur. Pas seulement un redémarrage !

    Votre adaptateur sera doté d'un micrologiciel et le bluetooth devrait fonctionner.

Tout cela semble compliqué, mais ça l'est Broadcom Les avocats sont à blâmer pour cela. La plupart des autres fournisseurs autorisent la redistribution du firmware à condition qu'elle soit accompagnée de la licence.

Cela permet aux responsables de Linux d'inclure des microprogrammes dans les distributions.

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

De nombreuses personnes pourraient convertir tous les fichiers hexagonaux en fichiers hcd et les mettre à disposition. Ou simplement les ajouter à la base de données linux-firmware d'Ubuntu.

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

20voto

Vincent Gerris Points 942

Voici un projet qui vise à automatiser un peu le processus : https://github.com/winterheart/broadcom-bt-firmware

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

Sur la version 4.8, je n'ai pas eu besoin de redémarrer, j'étais simplement dans un terminal :

sudo modprobe -r btusb
sudo modprobe btusb

dmesg | grep -i blu

devrait s'afficher s'il est chargé. Assurez-vous que l'ID du matériel correspond au fichier. Il peut être trouvé avec :

lsusb

qui s'affiche sur mon Lenovo (uniquement cette ligne) :

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

J'espère que cela vous aidera :)

16voto

call0fcode Points 471

C'est tout ce dont vous avez besoin : https://github.com/winterheart/broadcom-bt-firmware

Sur ce dépôt, vous pouvez trouver plus d'informations et de renseignements. 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 tutoriel est destiné à faire fonctionner la carte réseau sans fil/bluetooth Broadcom Corporation BCM43142 802.11b/g/n (rev 01) (Device ID : 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).

Cette procédure pourrait ne pas fonctionner pour d'autres appareils, mais elle ne devrait pas trop s'écarter de cette procédure pour d'autres appareils Broadcom. Les pilotes Broadcom nécessaires se trouvent sur ce site Dossier de dépôt de GitHub au format .hcd.

  1. Entrez la commande suivante pour découvrir le nom du pilote que le noyau recherche lorsqu'il charge les lecteurs au moment du démarrage :

    dmesg | grep -i 'firmware load'

    Essayez celui-ci s'il ne trouve rien :

    dmesg | grep -i 'bluetooth'

    Le résultat devrait ressembler à 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ù les pilotes Broadcom sont censés se trouver. 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) dans votre répertoire personnel (/home/YourUsername/) et exécutez la commande suivante afin de le déplacer dans le dossier que le noyau recherche lors du démarrage :

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

    Vous devez utiliser le pilote correspondant à votre périphérique et le renommer si le noyau le demande.

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

1voto

Kaushal Bhatol Points 142

Toujours confronté à des erreurs de firmware ?

  • Après avoir essayé Cette solution découle de la réponse ci-dessus plusieurs fois, échec de la création du fichier hex2hcd.

  • Mes erreurs sont comme :

    $ dmesg | egrep -i 'blue|firm' [ 0.108524] Spectre V2 : Enabling Restricted Speculation for firmware calls [ 0.144995] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored [ 4.768278] thinkpad_acpi: ThinkPad firmware release H1EC34WW doesn't match the known patterns [ 4.808333] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked [ 5.267304] Bluetooth: Core ver 2.22 [ 5.267329] Bluetooth: HCI device and connection manager initialized [ 5.267333] Bluetooth: HCI socket layer initialized [ 5.267335] Bluetooth: L2CAP socket layer initialized [ 5.267339] Bluetooth: SCO socket layer initialized [ 5.405755] Bluetooth: hci0: BCM: chip id 70 [ 5.406559] Bluetooth: hci0: BCM: features 0x06 [ 5.422570] Bluetooth: hci0: BCM43142A [ 5.422575] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000 [ 5.424415] Bluetooth: hci0: BCM: firmware Patch file not found, tried: [ 5.424420] Bluetooth: hci0: BCM: 'brcm/BCM43142A0-105b-e065.hcd' [ 5.424421] Bluetooth: hci0: BCM: 'brcm/BCM-105b-e065.hcd' [ 7.441899] Bluetooth: hci0: command 0x1003 tx timeout [ 7.443566] Bluetooth: hci0: unexpected event for opcode 0x1003 [ 17.500493] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 17.500496] Bluetooth: BNEP filters: protocol multicast [ 17.500501] Bluetooth: BNEP socket layer initialized [ 38.846123] Bluetooth: RFCOMM TTY layer initialized [ 38.846129] Bluetooth: RFCOMM socket layer initialized [ 38.846136] Bluetooth: RFCOMM ver 1.11

  • Je viens de trouver une autre méthode de entendre

La méthode est :

  • téléchargement brcm/BCM43142A0-105b-e065.hcd à partir de broadcom-bt-firmware
  • Et le coller dans /lib/firmware/brcm dossier.
  • Pour ce faire, utilisez les commandes suivantes.

COMMANDE :

sudo apt-get update && sudo apt-get install wget

sudo wget https://github.com/winterheart/broadcom-bt-firmware/raw/master/brcm/BCM43142A0-105b-e065.hcd -P /lib/firmware/brcm
  • Redémarrez votre PC :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X