Vous êtes ici : Accueil / Ubuntu GNU/Linux / Système / Configurer une carte Wifi / Bluetooth BCM43142 sur Ubuntu

Configurer une carte Wifi / Bluetooth BCM43142 sur Ubuntu

Par Pierre-Yves Landuré Dernière modification 26/11/2016 12:25

Ce guide présente quelques éléments de configuration à mettre en place pour pleinement disposer des fonctionnalités de la carte hybride Wifi / Bluetooth Broadcom BCM43142 sur Ubuntu.

Ce guide est testé sur:

  • Ubuntu 15.10 Wily Werewolf

Installation

Installation des pilotes WiFi

Installez les pilotes WiFi pour la carte Wifi BCM43142:

sudo apt-get install bcmwl-kernel-source

Mise en place du firmware Bluetooth

Installez les logiciels nécessaires à l'extraction du firmware depuis les pilotes Windows:

sudo apt-get install cabextract bluez

Remarque: le paquet bluez contient le logiciel hex2hcd.

Détectez le modèle de carte Bluetooth (normalement BCM43142A0):

bluetoothModel="$(command lsusb \
  | command grep --max-count=1 'BCM' \
  | command sed -e 's/^.*\(BCM[^ ]*\) .*$/\1/')"

Détectez l'id matériel de la carte Bluetooth:

bluetoothId="$(command lsusb \
  | command grep --max-count=1 "${bluetoothModel}" \
  | command cut -c 24-32)"

Déterminez le nom du fichier firmware correspondant au modèle:

firmwareFile="${bluetoothModel}-${bluetoothId//:/-}.hcd"

Détectez le modèle spécifique de la carte Bluetooth:

bluetoothModelSearchString="$(command dmesg \
  | command grep -i 'BCM (' \
  | command tail -n 1 \
  | command sed -e 's/^.*BCM (\([^)]*\)) build \(.*\)$/\1.*.\2/g')"

Téléchargez les pilotes Bluetooth pour Microsoft Windows:

cabFile="/tmp/20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab"
command wget 'http://download.windowsupdate.com/d/msdownload/update/driver/drvs/2014/07/20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab' \
  --output-document="${cabFile}"

Décompressez le fichier cab:

command mkdir -p '/tmp/cabContents'
command cabextract -d '/tmp/cabContents' "${cabFile}"

Détectez le nom du fichier firmware correspondant au modèle:

bluetoothFirmware="$(command find '/tmp/cabContents' -name "${bluetoothModel}_${bluetoothModelSearchString}.hex")"

Si le fichier firmware a été trouvé, convertissez le au format hcd et mettez le en place:

[[ -e "${bluetoothFirmware}" ]] && command hex2hcd --output "/tmp/${firmwareFile}" "${bluetoothFirmware}"

Si le fichier hcd a été créé avec succès, mettez le en place:

[[ -e "/tmp/${firmwareFile}" ]] && sudo cp "/tmp/${firmwareFile}" "/lib/firmware/brcm/${firmwareFile}"

Créez un lien symbolique vers le fichier BCM.hcd si le module btusb n'arrive pas a détecter correctement le modèle de la carte Bluetooth:

[[ -e "/lib/firmware/brcm/${firmwareFile}" ]] && sudo ln -s "/lib/firmware/brcm/${firmwareFile}" "/lib/firmware/brcm/BCM.hcd"

Rechargez le module btusb pour prendre en compte le firmware:

sudo modprobe -r btusb;
sudo modprobe btusb;

Vérifiez la mise en place du module:

command dmesg | command egrep -i 'usbcore|bluetooth'

Problèmes connus

WiFi inactif en sortie de veille

Sur certains modèles de PC portables (à priori ceux disposant de l'USB 3 et utilisant le pilote xhci_hcd), le WiFi n'est pas disponible en sortie de veille. Une hypothèse sur le sujet est que cela est du à la disparition de la carte USB Bluetooth présente sur la carte Wifi.

Une solution de contournement de ce problème est de configurer l'ordinateur pour hiberner lorsque le capot est fermé au lieu de se mettre en veille, comme décrit par Activer l'hibernation sur Ubuntu.

Remerciements