Configuration pilote Broadcom-sta

De Gentoo-Quebec.

Index Wifi et sécurité


configuration d'un wifi avec le pilote Broadcom-sta


Sommaire

Introduction

Dans Linux, le support des adaptateurs Wifi Broadcom a connu des hauts et des bas. Durant une période, la seule façon de les faire fonctionner était par le biais de ndiswrapper et des pilotes XP. Malheureusement, ndiswrapper était considéré une bidulle pas propre qui fonctionnait avec un pilote windows et il y avait également des problèmes liés au copyright et licences. Le support pour ndiswrapper a été rompu dans le noyau 2.6.23 et supprimé dans le 2.6.24. Et bien qu'il ait été rétabli dans le noyau 2.6.25, la qualité n'a jamais été la même. Les connexions était faible, et la vitesse, qui était excellente avec le 2.6.22.19 et ndiswrapper, continuait de se dégrader. Les mêmes problèmes se retrouvait au niveau de la stabilité.

Heureusement, avec le noyau 2.6.24 est apparu le pilote b43. Il s'agissait d'un driver composé de deux éléments. Il vous fallait activer le pilote au niveau du noyau et il nécessitait également un micro-code. Malheureusement, il a fallu du temps avant que le b43 fonctionne correctement ou plus rapidement que 1MB/s. C'est tout à fait compréhensible dans la mesure où, Broadcom se montrait très discret concernant leur puce et les pilotes qui les faisaient fonctionner. Cela prit du temps, mais finalement, le pilote b43 se stabilisa et devint très populaire si on prend en compte le nombre d'adaptateur Wifi Broadcom existant.

Finalement, en janvier 2009, Broadcom prit la décision de publier un pilote Linux propriétaire(firmware) pour leurs adaptateurs Wifi. Dans le monde Linux, cela fit beaucoup d'heureux parmi les utilisateurs de produit Broadcom. Cependant, à l'arrivée du noyau 2.6.29, en mars 2009, un petit problème apparu. Une partie importante dans l'infrastructure du noyau nécessaire au fonctionnement du pilote broadcom-sta fut supprimée. L'infrastructure en question avait était marquée dépréciée depuis un certain temps.

Quelques correctifs et quelques pilotes plus tard, le pilote broadcom-sta semble avoir complètement surmonté les anciens problèmes, comprenez ici, les "kernel panics" qui se produisait parfois n'existent plus.

Installation

Heureusement pour les utilisateurs de Gentoo, l'installation du pilote broadcom-sta est très simple. La seule chose à prendre en compte est la version du noyau que vous utilisez. A cause de la suppresion de l'infrastructure mentionnée précédemment, le pilote broadcom-sta utilise deux configurations différentes selon la version du noyau que vous utilisez.

Si vous utilisez une version antérieure à la version 2.6.29, vous devez utilisez la configuration suivante dans le noyau:

Configuration du noyau < 2.6.29

--- Wireless
<*>   Improved wireless configuration API
[*]     nl80211 new netlink interface support
[ ]   Old wireless static regulatory definitions
-*-   Wireless extensions
[*]     Wireless extensions sysfs files
< >   Generic IEEE 802.11 Networking Stack (mac80211)
<*>   Generic IEEE 802.11 Networking Stack (DEPRECATED)
[ ]     Enable full debugging output
<M>     IEEE 802.11 WEP encryption (802.1x)
<M>     IEEE 802.11i CCMP support
<M>     IEEE 802.11i TKIP encryption


Si vous utilisez la version 2.6.29 ou une version plus récente, vous devez utilisez la configuration suivante.

Configuration du noyau >= 2.6.29

--- Wireless
<*>   Improved wireless configuration API
[ ]     cfg80211 regulatory debugging
[ ]   Old wireless static regulatory definitions
[*]   Wireless extensions
[*]     Wireless extensions sysfs files
<*>   Common routines for IEEE802.11 drivers


Une fois la configuration du noyau effectuée, assurez vous que le lien symbolique /usr/src/linux pointe bien vers le noyau que vous désirez utiliser. En effet, comme le pilote broadcom-sta est compilé par rapport a un noyau déterminé, il lui faut connaitre ce noyau.

# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.30-gentoo-r5
[2] linux-2.6.30-gentoo-r6 *

# eselect kernel set numéro_du_kernel_choisi

Une fois ceci effectué:

Vous devez accepter la licence de Broadcom en ajoutant cette ligne dans votre fichier /etc/make.conf

Ajout de la licence Broadcom dans le fichier /etc/make.conf

# nano /etc/make.conf 

ACCEPT_LICENSE="Broadcom"


# emerge -av broadcom-sta

Ensuite, redémarrer l'ordinateur et vérifiez le bon fonctionnement du sans-fil.

En assumant que votre point d'accès est configuré et opérationnel, la commande iwconfig devrait produire un résultat similaire à celui-ci.

Résultat de la commande iwconfig

# iwconfig
lo        no wireless extensions.

wlan0      IEEE 802.11bg  ESSID:"pappynet"  Nickname:""
          Mode:Managed  Frequency:2.437 GHz  Access Point: 00:AA:BB:CC:BB:EE
          Bit Rate=54 Mb/s   Tx-Power:32 dBm
          Retry min limit:7   RTS thr:off   Fragment thr:off
          Power Managementmode:All packets received
          Link Quality=5/5  Signal level=-33 dBm  Noise level=-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:4  Invalid misc:0   Missed beacon:0


Note !
Le pilote broadcom-sta est actuellemnt listé ~arch. Ceux qui utilisent Gentoo stable (arch) doivent ajouter la ligne "net-wireless/braodcom-sta ~<arch>" à /etc/portage package.keywords où <arch> est votre architecture, x86 ou amd64

Pour un Gentoo/Funtoo stable 32Bits:

# echo "net-wireless/broadcom-sta ~x86" >> /etc/portage/package.keywords

Pour un Gentoo/Funtoo stable 64Bits:

# echo "net-wireless/broadcom-sta ~amd64" >> /etc/portage/package.keywords

Du fait que le pilote b44 utilise le modules sbb, les pilotes broadcom-sta et b44 (Broadcom 440x/47xx ethernet support) vont entrer en conflit. Si vous avez une carte qui nécessite le b44, vous devrez également utilisé le b43.

Si vous passez du module b43 au module broadcom-sta, assurez-vous de désactiver le module ssb care puisque celui-ci rend le pilote broadcom-sta instable et non-fonctionnel.

Lors des test que j'ai personnellement effectués, le pilote broadcom-sta était constamment plus rapide que le b43 mais toujours plus lent que ndiswrapper. Tout bien considéré, le pilote broadcom-sta est LE pilote pour votre adaptateur Wifi Broadcom.

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.

Outils personnels