Utiliser un firmware pendant l’installation de Debian

À la main pour offrir une seconde vie à un serveur IBM.

Voici un petit article qui pourrait vous servir si vous avez un jour la chance comme moi de récupérer un serveur (un vrai de vrai, qui fait autant de bruit qu’il est plat).

Il s’agit d’un serveur IBM x306m que j’ai récupéré au HAUM, composé d’un processeur Pentium D de deux cœurs cadencé à 3 GHz et de 1 Go de RAM. Celui-ci date donc de 2005, ce qui lui fait tout de même un age de 11 ans au moment où j’écris ces lignes.

Venons en aux faits.

Installation d’une distribution Linux

Après avoir remplacé le disque SAS 15k hors service par un disque dur SATA classique, je me lance donc dans l’installation d’une distribution Linux sur la machine afin de pouvoir commencer à l’utiliser.

J’ai choisi Debian pour me changer un peu de Archlinux qui a envahi jusqu’à ma Raspberry Pi avec ArchlinuxARM.

Cependant, lors du lancement de la procédure d’installation, voici le petit message que l’installateur Debian m’affiche :

Microcode manquant aic94xx-seq.fw dans l’installeur Debian

Oups, on dirait qu’il manque un fichier de microcode

Ce fichier de microcode manquant (traduction de firmware en français) est donc réclamé par le module noyau aic94xx afin de pouvoir communiquer avec le contrôleur de disques.

En effet, lors du boot, on peut observer les lignes suivantes :

Adaptec Serial Attached SCSI (SAS)
Controller #00: Adaptec SAS/SATA at PCI Slot:00

Le module aic94xx permet donc de communiquer avec des cartes PCI de contrôle de disques SAS/SATA de la marque Adaptec mais il lui faut le code propriétaire du constructeur, le firmware, afin de pouvoir fonctionner correctement.

Si vous décidez de ne pas donner de firmware au module, ce que j’ai essayé dans un premier temps, Linux sera incapable de voir les disques présents sur le système car il ne pourra pas communiquer correctement avec le contrôleur et le seul disque de destination que l’installateur Debian vous proposera sera alors votre clé USB.

Récupération du firmware

Trouver ce fichier de firmware s’avère plutôt simple en utilisant un moteur de recherche, je pense qu’il n’est pas intégré par défaut dans l’installateur pour des raisons de droits de distribution.

Une fois ce fichier récupéré sur votre machine, il suffit simplement de le transférer sur une autre clé USB que celle qui vous sert actuellement pour l’installation qui est bloquée sur cette étape.

L’installateur de Debian vous propose de détecter automatiquement la présence du firmware sur une clé USB et de le charger pour vous. Malheureusement cette étape n’a pas fonctionné pour moi, peut-être parce que j’avais déposé le fichier de microcode dans un répertoire et non pas à la racine de ma clé.

Il va donc falloir charger le microcode manuellement.

Chargement du microcode

Tout d’abord, on ouvre un TTY en appuyant sur ALT+F2 et en appuyant sur la touche entrée afin d’activer un terminal en tant que root sur le live-USB.

Ensuite, on va pouvoir effectuer la suite de commandes suivantes :

# mount /dev/sda1 /mnt # Monte la clé USB
# cd /mnt/firmwares/
# modprobe -r aic94xx # On décharge le module avant de copier le firmware
# mkdir -p /lib/firmware
# cp aic94xx-seq.fw /lib/firmware # On copie le firmware
# modprobe aic94xx # On recharge le module

Et voilà ! Le noyau peut désormais parler à votre contrôleur en utilisant le module aic94xx qui va faire appel au firmware que vous avez fourni.

Retour dans l’installateur avec ALT+F1 et demandez lui de trouver le fichier manquant automatiquement. Même si il ne va pas y arriver, il va de nouveau vérifier la présence du fichier sur le système et se rendre compte que le fichier est désormais disponible.

Les étapes suivantes vous conforteront dans le fait que tout fonctionne en arrivant à l’étape de partitionnement et en observant avec joie que le disque branché sur le contrôleur de disques Adaptec est désormais listé.

Conclusion

C’est la première fois que j’ai eu affaire à un problème de firmware et vu que j’ai un peu bloqué dessus au dessus j’espère que cet article vous fera gagner du temps le jour où ça vous arrivera !

Une question ou remarque ? N'hésitez pas à me contacter en envoyant un mail à microjoe, suivi d'un arobase, puis encore microjoe et enfin un « point org ».