Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
Debian 6.0 “Squeeze” est publiée avec un noyau Linux complètement libre.
L’installation standard de Debian Squeeze est donc dépourvue de firmwares non libres, cependant certains périphériques exigent le chargement d'un microprogramme (firmware) pour fonctionner.
Un firmware est un ensemble de données indispensable au bon fonctionnement d’un matériel donné.
Généralement le pilote correspondant charge le firmware dans le périphérique au cours de son processus d’initialisation.
Au sein du noyau Linux, les pilotes utilisent tous la même interface normalisée (request_firmware) pour récupérer le firmware avant de l’envoyer au périphérique.
Cette standardisation permet d’embarquer ce dernier directement dans le noyau, ou de le charger à la demande depuis l’espace utilisateur (lorsqu’il est requis).
Debian, à l’instar de la plupart des autres distributions, a choisi la deuxième option.
Ainsi, lorsque le noyau a besoin d’un firmware, il envoie une requête en espace utilisateur : udev intercepte la demande (contenant le nom du firmware), et, grâce à sa configuration par défaut (cf. /lib/udev/rules.d/80-drivers.rules) exécute /lib/udev/firmware.agent en réponse.
Le script shell firmware.agent essaye de localiser un firmware avant de le renvoyer au noyau via une entrée sysfs. Les répertoires analysés sont les suivants :
L’installateur Debian détèctera, pour la bonne marche de l’installation, la nécessité d’utiliser des firmwares propriétaires, vous en informera et vous permettra de le lui passer via une clé USB (soit directement, soit grâce aux paquets correspondants).
Les messages du noyau vous disant qu’il essaye de charger un firmware, ressemblent à ceci :
e100: eth0: e100_request_firmware: Failed to load firmware "e100/d101m_ucode.bin": -2
Ceci étant, le système peut vous informer du problème plus tôt :
lorsque vous installez une nouvelle version du noyau Linux, le script de post-installation va parcourir tous les modules chargés (ceux listés par la commande lsmod) et vérifier si chacun de ces derniers, dans leurs versions installées par le dernier noyau, nécessitent ou pas des firmwares.
Cette information est également disponible via modinfo :
# modinfo -F firmware /lib/modules/2.6.32-5-amd64/kernel/drivers/net/e100.ko e100/d102e_ucode.bin e100/d101s_ucode.bin e100/d101m_ucode.bin
Si certains des firmwares requis ne sont pas présents sur le système, vous obtiendrez un message d’avertissement semblable à celui-ci : image update-initramfs affiche également des avertissements similaires :
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64 W: Possible missing firmware /lib/firmware/e100/d102e_ucode.bin for module e100 W: Possible missing firmware /lib/firmware/e100/d101s_ucode.bin for module e100 W: Possible missing firmware /lib/firmware/e100/d101m_ucode.bin for module e100
$ apt-cache search d101m_ucode.bin firmware-linux-nonfree - Binary firmware for various drivers in the Linux kernel
Debian propose des images « netinst » non-officielles pour les architectures i386, amd64 et powerpc.
Elles sont téléchargeables ici : http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/.
Un jeu de DVD avec les firmwares, et des CD/DVD multi-architectures avec firmwares, sont disponibles dans la boutique DVD de Raphael Hertzog : http://raphaelhertzog.com/go/debian-cd/ (uniquement i386 ou amd64).
Merci à Raphaël Hertzog pour son article qui a permit la réalisation de ce tuto:
Pages du wiki Debian traitant du problème des firmwares non libres :