logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

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

Ceci est une ancienne révision du document !


Firmwares non-libres

Devient obsolète sous bookworm

Introduction

Qu'est-ce qu'un firmware par rapport à un programme ?

Un firmware, c'est un programme qui est chargé et s'exécute sur le périphérique. C'est différent d'un pilote qui est un programme qui s'exécute sur le processeur du système hôte pour communiquer avec le périphérique.

Merci raleur et robert2a sur le forum là :

Fonctionnement

Quand debian met un firmware de sid dans les backports c'est juste le .deb qui est modifié les binaires sont identiques.
Ce qui veut dire que l'on peut construire son propre “.deb” assez facilement et l'adapter à stable.

  1. La version du noyau est importante , c'est lui qui est demandeur du firmware.
  2. Un firmware n'a pas de notion de stable ou testing , ou il est bon ou il ne l'est pas.

De robert2a sur le forum là :

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 :

Lien sur le forum

Merci à calixtus06 et tous les intervenants sur ce post modeste mais génial ! ^_^

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 -u
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

Depuis Debian 11 bullseye

Depuis Debian 11 bullseye, à condition d'avoir installé auparavant les dépôts non-free à votre fichier /etc/apt/sources.list, un paquet permet de trouver et d'installer automatiquement les firmwares manquants : isenkram-cli
apt install isenkram-cli
isenkram-autoinstall-firmware

Avant Debian 11 bullseye

  • 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.1686144487.txt.gz · Dernière modification: 07/06/2023 15:28 par lagrenouille

Pied de page des forums

Propulsé par FluxBB