Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Firmwares non-libres

Installation

Vous pouvez choisir d'installer d'après une iso stable comprenant les firmwares-linux-nonfree comme indiqué dans l'installation :

Ou bien, les firmwares-linux-nonfree seuls sont sur cette page :

Préambule

Depuis Debian 6.0 “Squeeze”, Debian est publiée avec un noyau Linux complètement libre. 2)Publication de Debian 6.0 "Squeeze"

L’installation standard de Debian Wheezy est donc dépourvue de firmwares non libres, cependant certains périphériques exigent le chargement d'un microprogramme (firmware) pour fonctionner.

Définition

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.

Localisation des firmwares

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 :

  • /lib/firmware/$(uname -r) ⇒Firmware spécifique d'un noyau, fourni par un paquet.
  • /lib/firmware ⇒Firmware valable pour tous les noyaux, fourni par un paquet.
  • /usr/local/lib/firmware ⇒Firmware installé manuellement.
  • /usr/lib/hotplug/firmware ⇒Firmware spécifiques d'un noyau fourni par un paquet.

Introduction

L’installateur Debian détectera, 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
retour de la commande
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 :

update-initramfs affiche également des avertissements similaires

update-initramfs
retour de la commande
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

Trouver et installer les firmwares manquants

  • Vous connaissez le nom du firmware manquant, la description des paquets contient le nom des fichiers de firmwares qu’ils proposent.
    Ainsi « apt-cache search <nom_du_firmware> » ramènera ainsi la liste des paquets le contenant.
apt-cache search d101m_ucode.bin
firmware-linux-nonfree - Binary firmware for various drivers in the Linux kernel

Si la commande précédente ne retourne rien, vous devrez probablement ajouter le dépôt non-free à votre fichier /etc/apt/sources.list
voir: manuel:apt:sources.list

Il vous est maintenant possible d’installer le paquet requis, firmware-linux-nonfree dans l’exemple précédent.

Images CD ou DVD comprenant les firmwares non libres 

Debian propose des images « netinst » non-officielles pour les architectures i386, amd64 et powerpc.
Elles sont téléchargeables ici :

L’installateur Debian, avec ces disques, trouvera immédiatement les firmwares requis, vous évitant d’avoir à les charger au moyen d’une clé USB.

Liens et remerciement :

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 :

1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2) Extrait de l'annonce:
Une autre nouveauté est le noyau Linux complètement libre, qui ne contiendra plus aucun microprogramme (“firmware”) problématique. Les fichiers problématiques ont été séparés pour être inclus dans de nouveaux paquets hors de l'archive principale de Debian, dans la partie non libre de notre archive, qui n'est pas activée par défaut. De cette façon, les utilisateurs Debian pourront obtenir un système d'exploitation complètement libre, tout en gardant la possibilité d'utiliser des fichiers de microprogramme non libres en cas de besoin. Les fichiers de microprogramme nécessaires pendant l'installation peuvent être chargés par le système d'installation ; des images de CD spécifiques ainsi que des archives permettant l'installation par support USB sont également disponibles.
doc/materiel/firmwares-non-libres.txt · Dernière modification: 29/09/2015 18:54 par milou

Pied de page des forums

Propulsé par FluxBB