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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:materiel:firmwares-non-libres [06/11/2011 12:17] bract |
doc:materiel:firmwares-non-libres [23/09/2020 08:32] smolski Ajout de l'option -u |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ======Firmwares ====== | + | ======Firmwares non-libres ====== |
- | * Objet du tuto : Les firmwares non libres. | + | * Objet : Les firmwares non libres, |
- | * Niveau requis : AVISÉ | + | * Niveau requis :{{tag>débutant}} |
* Commentaires : //Trouver et installer les firmwares non libres.// | * Commentaires : //Trouver et installer les firmwares non libres.// | ||
- | * Débutant, à savoir : [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) |
+ | * Suivi : | ||
+ | * Création par [[user>bract]] le 06/11/2011, mise-à-jour le 09/05/2013 | ||
+ | * Testé par [[user>Ir0nsh007er]] le 25/05/2015 | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=4521 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
- | ===== Préambule ===== | + | ===== Introduction ===== |
- | Debian 6.0 "Squeeze" est publiée avec un noyau Linux complètement libre. | + | 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à : | ||
+ | * https://debian-facile.org/viewtopic.php?pid=235319#p235319 | ||
+ | |||
+ | ==== 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 a stable. | ||
+ | - La version du noyau est importante , c'est lui qui est demandeur du firmware. | ||
+ | - 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à : | ||
+ | * https://debian-facile.org/viewtopic.php?pid=290139#p290139 | ||
+ | ===== Installation ===== | ||
+ | |||
+ | Vous pouvez choisir d'installer d'après une iso stable comprenant les firmwares-linux-nonfree comme indiqué dans l'installation : | ||
+ | * [[:doc:install:| Stable - Manuel d'installation]] | ||
+ | |||
+ | Ou bien, les firmwares-linux-nonfree seuls sont sur cette page : | ||
+ | * [[http://packages.debian.org/search?keywords=firmware-linux-nonfree | firmware-linux-nonfree]] | ||
+ | |||
+ | ==== Lien sur le forum ==== | ||
+ | |||
+ | * [[https://debian-facile.org/viewtopic.php?id=20645]] | ||
+ | |||
+ | Merci à **calixtus06** et tous les //intervenants// sur ce post //modeste mais génial// ! ^_^ | ||
+ | ===== Préambule ===== | ||
+ | {{ /file-Rdcf422388101b26a8012b3c83afc7e47.png?130}} | ||
+ | Depuis Debian 6.0 "Squeeze", Debian est publiée avec un noyau Linux complètement libre. ((**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.))=>[[http://www.debian.org/News/2011/20110205a|Publication de Debian 6.0 "Squeeze"]] | ||
- | 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. | + | 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===== | ===== Définition===== | ||
Ligne 18: | Ligne 53: | ||
Généralement le pilote correspondant charge le firmware dans le périphérique au cours de son processus d’initialisation. | 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.\\ | + | 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). | 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.\\ | 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. | + | 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 | ||
+ | <code>/lib/udev/firmware.agent</code> | ||
+ | en réponse. | ||
==== Localisation des firmwares ==== | ==== Localisation des firmwares ==== | ||
- | Le script shell firmware.agent essaye de localiser un firmware avant de le renvoyer au noyau via une entrée sysfs. | + | 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 : | Les répertoires analysés sont les suivants : | ||
- | */lib/firmware/$(uname -r) Firmware spécifique d'un noyau, fourni par un paquet. | + | * ''/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. | + | * ''/lib/firmware'' =>Firmware valable pour tous les noyaux, fourni par un paquet. |
- | */usr/lib/hotplug/firmware Firmware spécifiques d'un noyau 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 ===== | ===== Introduction ===== | ||
- | 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).\\ | + | 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 : | 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 | e100: eth0: e100_request_firmware: Failed to load firmware "e100/d101m_ucode.bin": -2 | ||
Ligne 42: | Ligne 84: | ||
Cette information est également disponible via modinfo : | Cette information est également disponible via modinfo : | ||
- | # modinfo -F firmware /lib/modules/2.6.32-5-amd64/kernel/drivers/net/e100.ko | + | <code root>modinfo -F firmware /lib/modules/2.6.32-5-amd64/kernel/drivers/net/e100.ko</code> |
- | 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 : | + | <file config retour de la commande> |
- | image | + | e100/d102e_ucode.bin |
- | update-initramfs affiche également des avertissements similaires : | + | e100/d101s_ucode.bin |
- | update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64 | + | e100/d101m_ucode.bin</file> |
- | 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 | + | Si certains des firmwares requis ne sont pas présents sur le système, vous obtiendrez un message d’avertissement semblable à celui-ci :\\ |
- | W: Possible missing firmware /lib/firmware/e100/d101m_ucode.bin for module e100 | + | {{/file-Ra8af92cf40368c261f5e9fa94f0cfa91.png?400}} |
+ | |||
+ | update-initramfs affiche également des avertissements similaires | ||
+ | <code root>update-initramfs -u</code> | ||
+ | |||
+ | <file config 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</file> | ||
Ligne 60: | Ligne 108: | ||
*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. | *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 | + | <code user>apt-cache search d101m_ucode.bin |
- | firmware-linux-nonfree - Binary firmware for various drivers in the Linux kernel | + | firmware-linux-nonfree - Binary firmware for various drivers in the Linux kernel</code> |
<note important> | <note important> | ||
- | Si la commande précédente ne retourne rien, vous devrez probablement ajouter le dépôt non-free à votre /etc/apt/sources.list</note> | + | 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: [[:doc:systeme:apt:sources.list|manuel:apt:sources.list]]</note> | ||
- | *Vous pouvez rechercher le firmware dans le contenu des paquets via packages.debian.org. | + | *Vous pouvez rechercher le firmware dans le contenu des paquets via http://www.debian.org/distrib/packages. |
*Récupérer tous les firmwares sur : http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/ . | *Récupérer tous les firmwares sur : http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/ . | ||
- | <note tip>Il vous est maintenant possible d’installer le paquet requis, firmware-linux-nonfree dans l’exemple précédent.</note> | + | <note tip>Il vous est maintenant possible d’installer le paquet requis, **//firmware-linux-nonfree//** dans l’exemple précédent.</note> |
Ligne 74: | Ligne 123: | ||
Debian propose des images « netinst » non-officielles pour les architectures i386, amd64 et powerpc. \\ | 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/. | + | 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). | + | <note>L’installateur Debian, avec ces disques, trouvera immédiatement les firmwares requis, vous évitant d’avoir à les charger au moyen d’une clé USB. |
- | L’installateur Debian, avec ces disques, trouvera immédiatement les firmwares requis, vous évitant d’avoir à les charger au moyen d’une clé USB. | + | </note> |
===== Liens et remerciement : ===== | ===== Liens et remerciement : ===== |