Broadcom wireless (Français)
From FrugalWiki
Dansk – Deutsch – English – Español – Français – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Polski – Português – Română – Slovenský – Suomi – Svenska – Türkçe – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어
Contents |
Introduction
Broadcom a été très célèbre par rapport à son support pour ses cartes wifi sous Linux. Jusqu'à récemment, la plupart les chipsets Broadcom étaient non-supportés ou obligeaient l'utilisateur à bricoler avec le firmware. Un certain nombre de chipsets sans fil étaient supportés par des pilotes issus du reverse-engineering (brcm4xxx, b43...). Le pilote b43 est intégré au noyau depuis la version 2.6.24.
En août 2008, Broadcom a sorti le pilote pour Linux, qui supporte, officiellement, le matériel sans fil sous Linux. Ce sont des pilotes sous licence, mais Broadcom a promis de travailler à une ouverture de ses pilotes dans le futur. Les pilotes ne fonctionnent pas avec les réseaux cachés.
En septembre 2010, Broadcom a finally sorti ses pilotes entièrement ouverts pour son matériel. Ce pilote, brcm80211, est intégré au noyau depuis la version 2.6.37.
A l'heure de l'écriture de cet article, les utilisateurs disposant de matériel sans fil Broadcom ont trois possibilités :
- brcm80211
- broadcom-wl
- b43
Déterminer le pilote dont vous avez besoin/que vous pouvez utiliser
Tout d'abord, déterminez l'ID-PCI de votre carte. Tapez la commande suivante (sensible à la casse) dans une console :
$ lspci -vnn | grep 14e4
Si votre carte est dans la liste suivante, vous pouvez utiliser le brcmsmac pilote brcm80211 :
PCI-ID | Name |
---|---|
[14e4:4727] | BCM4313 |
[14e4:4353] | BCM43224 |
[14e4:4357] | BCM43225 |
Si votre carte est dans la liste suivante, vous pouvez utiliser le brcmfmac pilote SDIO :
Name |
---|
BCM4329 |
Une liste plus à jour peut être trouvée [ici.
Si votre carte n'est pas dans les listes précédentes, vous devez utiliser l'ancien pilote b43 ou b43legacy, qui supporte les cartes suivantes.
PCI-ID | Name | Notes |
---|---|---|
[14e4:4301] | BCM4301 | legacy-only |
[14e4:4306] | BCM4306 | ?legacy |
[14e4:4307] | BCM4306 | |
[14e4:4311] | BCM4311 | |
[14e4:4312] | BCM4311 | |
[14e4:4313] | BCM4311 | |
[14e4:4315] | BCM4312 | Not in kernel26-lts |
[14e4:4318] | BCM4318 | |
[14e4:4319] | BCM4318 | |
[14e4:4320] | BCM4306 | ?legacy |
[14e4:4321] | BCM4321 | Not in kernel26-lts |
[14e4:4324] | BCM4306 | legacy-only |
[14e4:4325] | BCM4306 | legacy-only |
[14e4:4328] | BCM4321 | Not in kernel26-lts |
[14e4:4329] | BCM4321 | Not in kernel26-lts |
[14e4:432a] | BCM4321 | |
[14e4:432b] | BCM4322 | Not in kernel26-lts |
[14e4:432c] | BCM4322 | |
[14e4:432d] | BCM4322 | |
[14e4:4358] | BCM43227 | |
[14e4:4359] | BCM43228 |
?legacy signifie qu'il y a des cartes avec des PCI-IDs identiques, mais avec un matériel différent. Certaines fonctionnent avec le pilote b43, mais certaines demandent le pilote b43legacy . legacy-only signifie que vous devez utiliser le pilote b43legacy.
une liste plus à jour peut être trouvée ici.
Si votre carte est dans la liste suivante, vous pouvez utiliser le broadcom-wl pilote: :
PCI-ID | Name |
---|---|
[14e4:4311] | BCM4311 |
[14e4:4312] | BCM4311 |
[14e4:4313] | BCM4311 |
[14e4:4315] | BCM4312 |
[14e4:4727] | BCM4313 |
[14e4:4328] | BCM4321 |
[14e4:4329] | BCM4321 |
[14e4:432a] | BCM4321 |
[14e4:432b] | BCM4322 |
[14e4:432c] | BCM4322 |
[14e4:432d] | BCM4322 |
[14e4:4353] | BCM43224 |
[14e4:4357] | BCM43225 |
[14e4:4358] | BCM43227 |
[14e4:4359] | BCM43228 |
Encore une fois, une liste plus à jour est disponible ici.
Récupérer le pilote
brcmsmac (brcm80211)
Le pilote brcm80211 est inclus dans le noyau depuis la 2.6.37, mais a été renommé en brcmsmac (pour les cartes PCI) et brcmfmac (pour SDIO)dans la version 2.6.39.
broadcom-wl
Pour les utilisateurs du pilote broadcom-wl, il y a un paquet à installer :
Ajoutez ensuite ces lignes au fichier /etc/sysconfig/blacklist :
blacklist b43 blacklist ssb blacklist lib80211
Et ajoutez ceci à votre fichier /etc/sysconfig/modules :
lib80211_crypt_tkip wl
Ensuite, redémarrez votre ordinateur. Vous devriez voir voir une nouvelle nouvelle interface réseau, nommée eth1 par exemple.
b43/b43legacy
Ces pilotes sont inclus dans le noyau depuis la version 2.6.24.
Charger le module du noyau b43/b43legacy
Tout d'abord, installez l'outil firmware :
Depuis la version 2.6.24, le pilote bcm43xx est déprécié et remplacé par les modules b43 et b43legacy.
Le module devrait être chargé automatiquement. Si ce n'est pas le cas, faites-le manuellement :
ou (suivant le modèle de votre matériel) :
N'oubliez pas d'ajouter le module correct dans le fichier /etc/sysconfig/modules.
Redémarrez votre ordinateur et configurez votre matériel normalement. Après le redémarrage, vous devriez voir une nouvelle interface réseau, nommée wlan0 par exemple.
b43 avec le pilote open-source
Introduction
Grâce au projet OpenFWWF, vous pouvez dorénavant utiliser un pilote open-source pour votre carte b43 au lieu du pilote propriétaire. Vous trouverez ici un guide, étape par étape, pour qu'il marche convenablement avec votre carte. Ne soyez pas effrayé par la longueur, le processus en lui-même prend seulement deux minutes.
Vous allez devoir installer différents outils durant la procédure, tels que git, make, flex, bison et d'autres. Installez-les quand vous avez une erreur. Je pense que vous aurez besoin d'une version assez récente du noyau pour utiliser ce firmware, mais il devrait marcher avec des versions plus anciennes (par exemple, il fonctionne avec le live-cd Ubuntu 9.04). Pour éviter les erreurs, vous n'aurez pas besoin de b43-fwcutter pour que ça fonctionne.
Cela a très bien marché pour moi, également avec le WPA2. Si les distributions commençaient à fournir ce firware 'out-of-box', ces cartes ne pourraient fonctionner sans plonger les mains dans le cambouis. Depuis que ce firmware est open-source, il ne devrait pas y avoir de problèmes légaux, à l'inverse des firmwares propriétaires.
Spécifité Acer
J'ai eu un Acer Aspire 3023 WLMi, qui nécessitait acer_wmi pour activer la fonctionnalité WiFi. Sur la plupart des distributions, vous n'avez pas à vous préoccuper de ça. Sur Frugalware, Ubuntu et Debian, il est chargé automatiquement. Le matériel de cet ordinateur est le suivant :
06:05.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
Construction de l'assembleur
Procurez-vous une version à jour de b43-tools, une collection d'outils relative au pilote b43.
git clone http://git.bu3sch.de/git/b43-tools.git
Ensuite, compilez l'assembleur :
cd b43-tools/assembler make
Assembler le firmware
Téléchargez les dernières sources de OpenFWWF depuis SVN :
cd ../.. svn export svn://svn.berlios.de/fullstory/openfwwf/trunk openfwwf
Mainentant, assemblez le firmware avec l'assembleur que vous venez de construire :
cd openfwwf PATH=$PATH:../b43-tools/assembler make
Installation du firmware
Si tout se passe correctement, vous devriez avoir trois fichiers de firmware (.fw). Maintenant, copiez ces fichiers au bon endroit, en tant que superutilisateur (root) :
mkdir /lib/firmware/b43 cp *.fw /lib/firmware/b43
Maintenant, vous devez désactiver QoS et la cryptographie matérielle accélerée pour le module b43 (pour le moment, le module open-source ne supporte pas ces fonctionnalités). Pour cela, vous devez créer un fichier de configuration pour le module b43, qui sera placé dans /etc/modprobe.d :
echo -e 'options b43 qos=0\noptions b43 nohwcrypt=1' > /etc/modprobe.d/b43.conf
En d'autres termes, insérez les deux lignes suivantes dans le fichier /etc/modprobe.d/b43.conf (vous devrez probablement le créer avec votre éditeur préféré) :
options b43 qos=0 options b43 nohwcrypt=1
Utilisation
Pour que les changements soient effectifs, vous devez recharger le module b43 :
modprobe -r b43 modprobe b43
C'est tout. Maintenant, vous devez configurer l'interface réseau, qui est le plus souvent wlan0. Utilisez les différents outils (comme netconfig). Si votre réseau fonctionne, vous pouvez supprimer les répertoires b43-tools et openfwwf.
Dépannage
Si vous avez un problème, vous pouvez vérifier ce qu'il se passe avec le pilote :
dmesg | grep b43
Notes
Sur Debian, j'ai eu des problèmes lorsque le câble ethernet était branché au démarrage de la machine. Cela avait pour conséquence que la carte WiFi était incapable de générer du traffic, bien qu'elle ait obtenu une adresse IP via DHCP si la carte ethernet était activée en premier.Je ne sais pas si le problème était lié au pilote ou aux scripts réseau de Debian (et les autres distributions).
Le driver fonctionne apparemment sans désactivement manuellement la cryptograpthie matérielle :
b43-phy0: Loading OpenSource firmware version 410.31754 (Hardware crypto not supported)
Il y a un commit SVN qui dit :
* talk about nohwcrypt=1 for kernels << 2.6.30.
Cela peut être la raison de pourquoi cela a marché sur un noyau 2.6.29.
Il semble qu'il ne soit plus nécessaire de se préoccuper de QoS depuis le noyau 2.6.30. En effet, b43 devrait être en mesure de vérifier si votre matériel prend ou non en charge QoS.
Le patch peut être trouvé parmis les liens donnés. Il es, en théorie, intégré dans les derniers noyaux. Je l'ai testé avec le noyau 2.6.30-rc4 et le patch, mon WiFi a fonctionné. J'ai donc supprimé /etc/modprobe.d/b43.conf :
b43-phy0: Loading OpenSource firmware version 410.31754 b43-phy0: Hardware crypto acceleration not supported by firmware b43-phy0: QoS not supported by firmware
Veuillez noter que ce patch devrait avoir été intégré en amont et qu'il n'est plus nécessaires, à part pour des tests.
Dépannage
La carte WiFi ne s'affiche pas
- Si vous utilisez le pilote broadcom-wl, vérifiez que vous utilisez bien les bons modules. Vous pourriez avoir besoin de blacklister les modules brcm80211, b43 et ssb pour qu'ils ne soient pas chargés automatiquement dans /etc/sysconfig/modules.
blacklist brcm80211 blacklist b43 blacklist ssb
Notez que si vous n'avez pas blacklisté le pilote brcm80211, depuis le 20.06.2011, il faut d'abord charger le module brcm80211 avant le pilote WL, pour éviter que ce dernier ne soit utilisé.