Configuration pilote B43

De Gentoo-Quebec.

Index Wifi et sécurité


configuration d'un wifi avec le pilote Broadcom B43


Sommaire

Introduction

Introduit en Janvier 2002, le processeur BCM4301 a propulsé la compagnie Broadcom dans le marché des cartes sans-fil. Ce processeur est apparu rapidement dans des PCMCIA, PCI et équipe surtout des portables bon marché. Les processeurs BCM43xx sont ainsi devenus très populaires, très rapidement.

Ils sont une solution à bas prix et ont un excellent support côté microsoft.

Par contre, sous Linux c'est une autre histoire, car le support a été longtemps tout simplement inexistant. Avant la sortie du pilote B43, la seule manière d'utiliser une carte basée sur le processeur BCM43xx était d'utiliser le package ndiswrapper qui en fin de compte, utilise le pilote Windows XP.

La nécessité d'utiliser ndiswrapper n'a plus été requise avec la venue du noyau 2.6.24 qui était la première version utilisant le pilote b43 provenant du noyau.

Au début, le pilote b43 était très lent côté performance réseau et surtout instable, mais avec la venue du noyau 2.6.27, le pilote b43 a commencé à être utilisable et surtout il a été considéré comme stable.

Vérification de votre carte pour savoir si elle est supportée par Linux

Attention !
Le pilote B43 ne supporte pas toutes les cartes Broadcom B43

Le pilote B43 supporte les cartes suivantes : (les cartes 14e4:4301 et 14e4:4306 sont supportées par le pilote b43legacy)

Liste des cartes sans-fil Broadcom
Numéro du fabriquant Supportée
(14e4:4307) bcm4306Oui
(14e4:4311) bcm4311Oui
(14e4:4312) bcm4312Supporte seulement le 802.11g
(14e4:4318) bcm4318Oui
(14e4:4319) bcm4319Oui
(14e4:4320) bcm4320Oui
(14e4:4321) à 14e4:432bNon
(14e4:4301) Oui mais utilise le pilote b43legacy
(14e4:4306) Oui mais utilise le pilote b43legacy

Vous pouvez obtenir la liste de vos composantes en lançant la commande suivante :

# lspci -n

Résultat de la commande lspci -n

00:00.0 0600: 8086:2e20 (rev 03)
00:01.0 0604: 8086:2e21 (rev 03)
00:1a.0 0c03: 8086:3a37
00:1a.1 0c03: 8086:3a38
00:1a.2 0c03: 8086:3a39
00:1a.7 0c03: 8086:3a3c
00:1b.0 0403: 8086:3a3e
00:1c.0 0604: 8086:3a40
00:1c.4 0604: 8086:3a48
00:1c.5 0604: 8086:3a4a
00:1d.0 0c03: 8086:3a34
00:1d.1 0c03: 8086:3a35
00:1d.2 0c03: 8086:3a36
00:1d.7 0c03: 8086:3a3a
00:1e.0 0604: 8086:244e (rev 90)
00:1f.0 0601: 8086:3a16
00:1f.2 0106: 8086:3a22
00:1f.3 0c05: 8086:3a30
01:00.0 0300: 10de:05e2 (rev a1)
02:00.0 0200: 11ab:4364 (rev 12)
03:00.0 0101: 11ab:6121 (rev b1)
05:02.0 0200: 11ab:4320 (rev 14)
05:03.0 0c00: 11c1:5811 (rev 70)


Maintenant, avec ce résultat vous pouvez visiter le site suivant pour obtenir le détail complet de votre ordinateur.

Si vous carte est supportée, vous pouvez aller à l'étape suivante.

Configuration du noyau

Configuration de la section Networking

Configuration des options nécessaires, section Networking

--- Wireless
{M}   Improved wireless configuration API (NEW)
-*-   Wireless extensions
[*]     Wireless extensions sysfs files (NEW)               
<M>   Common routines for IEEE802.11 drivers                                                                                       
<M>   Generic IEEE 802.11 Networking Stack (mac80211)                                                                   
Rate control algorithm selection  --->                                                                                     
[*]Enable LED triggers (NEW)        


Configuration des options nécessaires, section Networking

--- Wireless
<M>   RF switch subsystem support  --->   
        <M>   Input layer to RF switch connector   


Configuration de la section Wireless LAN

Configuration des options nécessaires, section Wireless LAN

Section Device Drivers
--> Network Device Support
  --> Wireless LAN


Configuration de la section Wireless LAN

Configuration des options nécessaire section Wireless LAN

[*] Wireless LAN (IEEE 802.11)
<M>   Broadcom 43xx wireless support (mac80211 stack)


Configuration de la section Cryptographic API

Ce sont les algorithmes d'encryptions que le pilote Intel pour utiliser selon votre utilisation.

Configuration des options nécessaire section Cryptographic API

Section Cryptographic API
-*-   Cryptographic algorithm manager   
-*-   Authenc support           
-*-   CBC support   
{*}   ECB support   
-*-   HMAC support             
-*-   MD5 digest algorithm
<M>   Michael MIC keyed digest algorithm     
-*-   SHA1 digest algorithm 
<M>   SHA224 and SHA256 digest algorithm         
{*}   AES cipher algorithms         
<M>   AES cipher algorithms (x86_64)       
{*}   ARC4 cipher algorithm           
-*-   DES and Triple DES EDE cipher algorithms   


Configuration de la Sonics Silicon Backplane

Configuration des options nécessaire section Sonics Silicon Backplane

Section Device Drivers
--> Sonics Silicon Backplane 

{M} Sonics Silicon Backplane support
-*- Support for SSB on PCI-bus host
[ ] SSB debugging
-*- SSB PCI core driver


Recompilation du noyau si nécessaire

Si vous avez fait un changement au niveau du noyau, il est conseillé de lire ceci et surtout de redémarrer votre ordinateur.

Vérification du fonctionnement

Si tout est correct, lorsque vous devriez voir ceci :

# dmesg

Exécution de la commande dmesg

b43-pci-bridge 0000:06:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
b43-pci-bridge 0000:06:00.0: setting latency timer to 64
ssb: Sonics Silicon Backplane found on PCI device 0000:06:00.0
b43-phy0: Broadcom 4311 WLAN found (core revision 10)
phy0: Selected rate control algorithm 'minstrel'
Broadcom 43xx driver loaded [ Features: P, Firmware-ID: FW13 ]


Si c'est le cas, vous pouvez continuer.

Attention !
Si vous êtes chanceux et que votre carte est détectée par votre noyau, vous pouvez vous rendre directement à cette section du Wiki

Installationd'un firmware en cas de pépins

Si pour une raison ou pour une autre, votre carte Wifi n'est toujours pas détectée, vous devez utiliser un firmware qui va activer le support de votre carte Wifi manuellement.

# emerge net-wireless/b43-fwcutter

De plus, vous devez télécharger le firmware en lisant la documentation ici car dépendament de la version du noyau que vous utilisé, vous aller devoir télécharger le fichier broadcom correspondant qui devra être compatible avec votre noyau.

Installation du firmware

Maintenant vous devez aller dans le dossier où vous avez télécharger le fichier bz2.

$ cd /home/votre_usager
$ tar xvjpf broadcom-wl-4.80.53.0.tar.bz2
$ cd /home/votre_usager/broadcom-wl-4.80.53.0/kmod
# b43-fwcutter -w /lib/firmware wl_apsta.o

Si tout va bien, la commande suivante :

# ls -l /lib/firmware/b43

devrait vous retourner ceci :

Exécution de la commande ls -l /lib/firmware/b43

otal 168
-rw-r--r-- 1 root root    18 2009-08-27 17:42 a0g0bsinitvals4.fw
-rw-r--r-- 1 root root   158 2009-08-27 17:42 a0g0bsinitvals5.fw
-rw-r--r-- 1 root root  2680 2009-08-27 17:42 a0g0initvals4.fw
-rw-r--r-- 1 root root  1858 2009-08-27 17:42 a0g0initvals5.fw
-rw-r--r-- 1 root root   158 2009-08-27 17:42 a0g1bsinitvals13.fw
-rw-r--r-- 1 root root   158 2009-08-27 17:42 a0g1bsinitvals5.fw
-rw-r--r-- 1 root root  2056 2009-08-27 17:42 a0g1initvals13.fw
-rw-r--r-- 1 root root  1858 2009-08-27 17:42 a0g1initvals5.fw
-rw-r--r-- 1 root root   158 2009-08-27 17:42 b0g0bsinitvals13.fw
-rw-r--r-- 1 root root    18 2009-08-27 17:42 b0g0bsinitvals4.fw
-rw-r--r-- 1 root root   158 2009-08-27 17:42 b0g0bsinitvals5.fw
-rw-r--r-- 1 root root  2056 2009-08-27 17:42 b0g0initvals13.fw
-rw-r--r-- 1 root root  2680 2009-08-27 17:42 b0g0initvals4.fw
-rw-r--r-- 1 root root  1858 2009-08-27 17:42 b0g0initvals5.fw
-rw-r--r-- 1 root root   158 2009-08-27 17:42 lp0bsinitvals13.fw
-rw-r--r-- 1 root root  2052 2009-08-27 17:42 lp0initvals13.fw
-rw-r--r-- 1 root root  1320 2009-08-27 17:42 pcm4.fw
-rw-r--r-- 1 root root  1320 2009-08-27 17:42 pcm5.fw
-rw-r--r-- 1 root root 26600 2009-08-27 17:42 ucode11.fw
-rw-r--r-- 1 root root 24424 2009-08-27 17:42 ucode13.fw
-rw-r--r-- 1 root root 20080 2009-08-27 17:42 ucode4.fw
-rw-r--r-- 1 root root 22088 2009-08-27 17:42 ucode5.fw


Attention !
Le package net-wireless/b43-fwcutter est utile seulement lorsqu'on installe ce pilote la première fois ou lorsque le firmware est mise à jour.

Mise en place de la connexion réseau

Maintenant que votre noyau est correctement configuré, vous allez pouvoir soit utiliser un gestionnaire de connection automatique du style Networkmanager,Wicd ou vous allez vouloir utiliser la méthode manuelle.

Si vous voulez utiliser la méthode manuelle, vous allez devoir procéder ainsi.

Tout d'abord, vous devez vérifier si votre interface réseau wlan0 et wmaster existent.

# ifconfig -a

Retour de la commande ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:22:15:52:aa:df 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:31 Base address:0x4000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

sit0      Link encap:IPv6-in-IPv4 
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:1f:3b:a4:79:9f 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wmaster0  Link encap:UNSPEC  HWaddr 00-1F-3B-A4-79-9F-6C-6F-00-00-00-00-00-00-00-00 
          [NO FLAGS]  MTU:0  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


L'interface wlan0 et wmaster0 vous indique qu'au moins votre configuration du noyau est adéquate.

Création du lien symbolique net.wlan0

La prochaine étape consiste à créer le lien symbolique net.wlan0 qui va vous permettre de démarrer manuellement votre connexion sans-fil.

# cd /etc/init.d
# ln -sfn net.lo net.wlan0
# ls -la

Si tout va bien, vous allez obtenir ceci :

Retour de la commande ls -la suite à la création du lien symbolique net.wlan0

lrwxrwxrwx  1 root root     6 mar 30 19:19 net.eth0  -> net.lo
lrwxrwxrwx  1 root root     6 mar 30 19:19 net.wlan0 -> net.lo
-rwxr-xr-x  1 root root 30696 mar 30 19:19 net.lo


Installation de wireless-tools

# emerge -av wireless-tools

Vérification des réseaux autour de chez-vous

Si tout est fonctionnel, vous allez être en mesure de détecter les réseaux autour de votre résidence en lançant la commande suivante :

# ifconfig wlan0 up
# iwlist scan

Si tout va bien, vous allez obtenir un résultat dans ce genre :

Exécution de la commande iwlist scan

    lo Interface doesn't support scanning.


    irda0 Interface doesn't support scanning.


    sit0 Interface doesn't support scanning.


    wmaster0 Interface doesn't support scanning.

wlan0 Scan completed :

    Cell 01 - Address: 00:1D:5A:E4:6C:D9

        ESSID:"BELL887"

        Mode:Master

        Channel:1

        Frequency:2.412 GHz (Channel 1)

        Quality=69/100 Signal level=-64 dBm Noise level=-71 dBm

        Encryption key:on

        Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s

            11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s

            48 Mb/s; 54 Mb/s

        Extra:tsf=00000054d16f134f

    Cell 02 - Address: 00:1A:70:62:40:88

        ESSID:"gentoonet"

        Mode:Master

        Channel:6

        Frequency:2.437 GHz (Channel 6)

        Quality=93/100 Signal level=-36 dBm Noise level=-71 dBm

        Encryption key:on

        Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s

            24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s

            12 Mb/s; 48 Mb/s

        Extra:tsf=0000002a20b44885

    Cell 03 - Address: 00:1B:11:40:D6:58

        ESSID:"ChC)rie"

        Mode:Master

        Channel:6

        Frequency:2.437 GHz (Channel 6)

        Quality=69/100 Signal level=-64 dBm Noise level=-71 dBm

        Encryption key:on

        Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s

            11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s

            48 Mb/s; 54 Mb/s

        Extra:tsf=0000000279c69cb9


Installation de WPA_Supplicant

L'installation d'un client WPA va vous permettre de gérer vos connexions réseau à votre convenance. En effet, malgré le nom, le client WPA_Supplicant permet de gérer les différents types de réseaux sans-fil présentement.

# emerge -av wpa_supplicant

Configuration du fichier /etc/wpa_supplicant/wpa_supplicant.conf

Par défaut le fichier est presque vide, par contre il est conseillé d'utiliser une configuration standard comme celle-ci :

Configuration standard de WPA_Supplicant

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
ap_scan=0
#update_config=1

network={
	ssid="votre_réseau"
	psk="votre_mot_de_passe"
	proto=WPA2
	key_mgmt=WPA-PSK
	pairwise=CCMP
	group=CCMP
	priority=5
}


Dans cet exemple, nous utilisons le protocole WPA2 en utilisant l'algorithme CCMP.

Configuration du fichier /etc/conf.d/net

Une dernière étape consiste à configurer le fichier /etc/conf.d/net pour que celui-ci prenne en compte l'utilisation de la carte réseau sans-fil via le client WPA_Supplicant.

Pour ce faire, vous devez ajouter ceci dans votre fichier :

Ajouter les informations suivantes


#WPA_SUPPLICANT
modules=( "wpa_supplicant" )
wpa_supplicant_wlan0="-Dwext"
config_wlan0=( "dhcp" )


Le moment de vérité

La dernière étape consiste à lancer la connexion réseau sans-fil manuellement.

# /etc/init.d/net.wlan0 start
# dmesg | tail
# iwconfig
# wpa_cli status

Si tout est fonctionnel, vous allez obtenir le résultat suivant :

Résultat de la commande wpa_cli status

Selected interface 'wlan0'
bssid=00:1A:70:62:40:88
ssid=Gentoonet
id=0
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA-PSK
wpa_state=COMPLETED
ip_address=192.168.1.100 


Note !
Ce document est une traduction du document écrit spécialement pour Gentoo-Québec.org par Robert Raitz connu sous le nom de Pappy Mcfae.

Source de documentation : http://linuxwireless.org/en/users/Drivers/b43 et http://www.broadcom.com/press/release.php?id=248966&industry_id=2


Outils personnels