24/03/2010

Installation de la carte BCM4312 sous openSUSE 11.2

Avoir une carte wifi, c'est bien, pouvoir la faire marcher, c'est encore mieux... de préférence sur le système qui nous intéresse. Dans mon cas, je suis censé travailler avec une carte de chez Broadcomm, et comme très souvent avec ces cartes, c'est un peu compliqué... mais bon, vous allez voir, on va s'en sortir avec openSUSE, bon gré mal gré.

Installation sur le noyau de base

Première approche : Broadcomm, contre toute attente, fournit un pilote pour le noyau par défaut de SUSE. Bonne nouvelle, donc, qui s'accompagne de deux mauvaises nouvelles : le pilote est fermé (pouah pouah pouah) et nécessite de changer de noyau. Donc on perd les optimisations desktop du noyau par défaut.

Attention ça va aller très vite :
Ajoutez le dépôt Packman, présent dans les dépôts communautaires.
Cherchez le paquet broadcomm-wl, ou installez le directement avec
zypper in broadcomm-wl

Le solveur de dépendances va vous proposer d'installer d'autres paquets, notamment un kernel-debug, dans la bonne architecture. Faites, redémarrez sur le noyau débug qui s'est automatiquement ajouté dans le grub, et c'est à peu près tout...

Vous aurez peut-être à blacklister deux pilotes : ssb et b43. Pas de chance si vous avez besoin de ssb pour votre carte ethernet, donc, ce sera soit l'une, soit l'autre...

Vous aurez peut être besoin de blacklister des choses... a priori ça se fait tout seul, sinon, ça se passe dans

50-broadcom-wl-blacklist.conf

dans le mien on trouvera des choses genre :

# modules blacklisted for broadcom-wl
blacklist bcm43xx
blacklist ssb
blacklist b43
blacklist ndiswrapper


Installation avec un nouveau noyau

Ça vous a plu? Ben c'est pas fini... Comme dit plus haut, wl, c'est pas libre, bouh! et surtout, le pilote ne permet pas de passer la carte en mode Moniteur, indsipensable notamment pour fiare un peu d'audit wifi. Qu'à cela ne tienne, on va changer de noyau, pour avoir un pilote qui va bien. C'est aussi possible de patcher celui qu'on utilise actuellement, mais c'est moins intéressant, moins formateur, et beaucoup trop rapide.

Changement de noyau, donc... permière chose, récupérer des sources. Pour ça, il nous faut un dépôt qui va bien, en l'occurence, le dépôt

http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.2/

Ca peut bien entendu se faire par yast, ou par zypper avec

zypper ar http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.2/

Après, il faut récupérer les sources du kernel qui nous intéresse, genre un 2.6.33 (ou une rc d'un 2.6.34, mais c'est un peu plus risqué, c'est une rc ;) ) en l'installant par yast (par zypper c'est un peu plus long, faut être précis et attentif ;) )

Compilation, donc, je vais passer très vite...
cd /usr/src/linux2.6.****/
make clean
make mrproper
make menuconfig


Là vous êtes dans la partie chiante de la manipulation. Vous allez devoir sélectionner les bouts du kernel que vous voulez intégrer ... ça comprend des pilotes, mais aussi des bouts indispensables, genre les couches réseau... prenez bien le temps de lire les docs, l'utilisation de l'interface ncurses est assez simple. Comptez une bonne heure de lecture, et peut être une ou deux tentatives pour que le kernel tourne ;)

avant de pouvoir l'utiliser, après avoir sauvé le fichier .config ;) il reste à compiler et installer la chose. Donc
make
make modules_install
make install


De ce que j'ai pu voir, pas besoin de modifier de fichier pour le grub, un reboot et ça repart... choisissez le bon kernel, si ça passe c'est bon. J'espère que vous n'avez pas oublié ssb et b43 dans la config sinon faudra recommencer...

Reste donc à récupérer un firmware qui va bien :
install_bcm43xx_firmware
s'occupe de ça pour vous.

Ensuite, un petit
rmmod b43
rmmod ssb
modprobe b43


suivi d'un
iwlist scan devrait vous donner de bonnes nouvelles.

Amusez vous!

Aucun commentaire: