Ajouter un driver “non-free” dans l’initrd du netboot Debian

S’il vous arrive d’installer des serveurs, notamment équipés de cartes réseaux Broadcom, vous avez surement déjà dû rencontrer ce genre de problème:

debian installer missing firmware

Ici, il s’agit d’une carte réseau WiFi Ralink rt2860 qui équipe mes petites EeeBox Asus b202, néanmoins, la procédure est valable pour n’importe quel firmware, y compris les bnx2-….

Evidemment, l’installation ne se fait pas par WiFi, mais ma procédure automatisée avec preseed plante lors de la détection de la carte. Il existe surement un moyen de contourner cela dans le fichier preseed.cfg, mais j’ai opté pour l’ajout du firmware manquant… pour l’exercice.



Pour commencer, créez un répertoire temporaire et copiez le fichier initrd.gz dedans

# mkdir /tmp/initrd
# cd /tmp/initrd
# cp /srv/tftp/debian-installer/i386/initrd.gz .

Décompressez le fichier, effacez le, puis créez le répertoire “lib/firmware”

# gunzip <initrd.gz | cpio --extract --preserve --verbose
# rm -f initrd.gz
# mkdir lib/firmware

Téléchargez l’archive firmware-nonfree_xx.tar.gz depuis http://ftp.de.debian.org/debian/pool/non-free/f/firmware-nonfree/ dans /tmp, puis décompressez la

# cd /tmp
# wget http://ftp.de.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-nonfree_0.43.tar.gz
# tar xzf firmware-nonfree_0.43.tar.gz

Copiez le fichier rt2860.bin dans le répertoire firmware créé précédemment

# cp -Rav firmware-nonfree/ralink/rt2860.bin initrd/lib/firmware/

*Notez que pour les firmwares Broadcom suffit de copier les fichiers bnx2*

# cp -Rav firmware-nonfree/bnx2/bnx2* initrd/lib/firmware/

Il ne reste plus qu’à repackager le fichier initrd.gz et remplacer l’original

# cd initrd/
# find . | cpio --create --format='newc' | gzip >../initrd.gz
# cp ../initrd.gz /srv/tftp/debian-installer/i386/

@++

Leave a Reply

Your email address will not be published.