Linux : Debian/Lenny Drivers réseau broadcom & firmware bnx2-06-4.0.5.fw
Par Yoann le mercredi, 25 mars 2009, 11:51 - L1nuX and c0 - Lien permanent
L'equipe Debian à supprimer le module bnx2 du kernel à cause d'une restriction sur la license des firmware broadcom.
Nous pouvons comprendre cette démarche, car la phylosophie 1ère de Debian est d'être un système d'exploitation reposant sur les principes du logiciel libre, et donc de n'inclure que des modules, programmes, ... étant en accord avec celle-ci.
Ne pas pouvoir charger le firmware de sa carte réseau à l'installation, via un CD netinstall ou via Boot PXE est totalement bloquant.
Si vous avez une carte réseau Broadcom NetXtreme II NIC, je vous explique dans ce billet comment contourner le problème dans 3 cas de figure :
- Installation via le CD net-install
- Installation via PXE
- Mise-à-jour du syteme (etch vers lenny)
Installation via le CD net-install
Le système d'installation de Debian, detecte que votre matériel requière un firmware "non-free" c'est a dire ne respectant pas l'etique de Debian.

Sur la capture précédente, on vous demande si vous souhaitez fournir le firmware via un media amovible (Clef USB, floppy ??, etc ..)
Il vous suffit alors de télécharger le package firmware-bnx2, et de le mettre à la racine d'une clef USB, et de continuer votre installation.
Ce package est multi-plateforme (identique que ca soit en 32 ou 64 bits)
Installation via PXE
Si vous n'avez qu'une machine à installer vous pouvez suivre la même procedure que pour l'installation via le CD Net-Install, vous devrez donc mettre sur votre clef USB le package non-free.
Si vous avez plusieurs machine à installer cela peux devenir très vite fastitueux, et de surcroit perdre tout l'avantage de pouvoir faire des installations 100% automatique, mais il existe une solution :-)
Lorsque vous booter votre machine via PXE pour lancer une installation, celle-ci recupère via TFTP le fichier initrd.gz en plus du kernel. (Regarder le fichier de configuration boot-screens) Si vous utilisez PXE, je ne devrais pas vous l'apprendre ;-)
C'est donc ce fichier initrd.gz que nous allons modifier, en y ajoutant le firmware manquant.
Récupérer la derniere version du fichier initrd.gz (attention ici il faut faire la différence entre la version 32 & 64 bits)
cd /tmp/ wget http://ftp.fr.debian.org/debian/dists/lenny/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
Nous décompressons le fichier initrd.gz en faisant attention a bien ce mettre dans un dossier "propre" :
mkdir /tmp/temp/ cd /tmp/temp/ zcat ../initrd.gz | cpio -iv
Telecharger le package firmware-bnx2 :
cd /tmp/ wget http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.16_all.deb
Extraire le contenu du package dans le dossier /tmp/temp/:
dpkg-deb -x firmware-bnx2_0.16_all.deb /tmp/temp/
Recrompression du fichier initrd.gz :
cd /tmp/temp/ find . -print0 | cpio -0 -H newc -ov | gzip -c > ../initrd.gz
Vous voila maintenant avec un fichier initrd.gz dans /tmp/ qu'il ne vous reste plus qu'a copier sur votre serveur PXE pour remplacer l'actuel afin de support les cartes reseau broadcom !!
Si vous utilisez un fichier de preseeding n'oublier pas de rajouter cette ligne :-) :
d-i pkgsel/include string openssh-server firmware-bnx2
Comme a mon habitude, je vous met a dispo. le fichier initrd.gz incluant le package non-free firmware-bnx2 en version 2_0.14:
Mise-à-jour du syteme (etch vers lenny)
Plusieurs recommandations :
1°/ Ne soyez pas trop loin du serveur physiquement au cas où.
2°/ Vérifier que vous avez la partie non-free dans votre fichier sources.list
3°/ Avant la mise à jours, télécharger le package firmware-bnx2 sur votre serveur (autre part que dans /tmp/ qui est effacer a chaque reboot)
cd /root/ wget http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.16_all.deb
4°/ Lancer l'upgrade :
aptitude update aptitude install apt dpkg aptitude aptitude full-upgrade
5°/ Si pendant le dist-upgrade, vous voyez des erreurs bnx, ne redemarrer pas votre serveur sans avoir installer le package au risque de ne plus avoir de reseau
dpkg -i firmware-bnx2_0.16_all.deb
Ressources
Commentaires
Merci beaucoup, je me suis retrouver face a ce problème, mais, malheureusement pour moi je m'en suis rendu compte qu'après avoir fait la mise à jour.