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.

24032009212.jpg

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