Sur mon CentOS, un yum update
fait apparaître les éléments suivants:
(6/38): iwl1000-firmware-39.31.5.1-62.el7_39.31.5.1-62.2.el7_5.noarch.drpm
(7/38): iwl105-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(8/38): iwl135-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(9/38): iwl2000-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(10/38): iwl2030-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(11/38): iwl3160-firmware-22.0.7.0-62.el7_22.0.7.0-62.2.el7_5.noarch.drpm
etc.
Ce sont des «progiciels de micrologiciel». Par exemple, trouvons-en quelques-uns qui sont installés:
rpm --query --all | grep firmware
puis interrogez ses informations:
rpm --query --info iwl105-firmware-18.168.6.1-62.2.el7_5.noarch
et nous obtenons:
Summary : Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters
Description :
This package contains the firmware required by the iwlagn driver
for Linux to support the iwl105 hardware. Usage of the firmware
is subject to the terms and conditions contained inside the provided
LICENSE file. Please read it carefully.
OK bien.
Je n'ai même pas ce genre de matériel, car c'est une machine virtuelle.
Alors, question:
Que font réellement les progiciels?
S'agit-il d'installations "à un coup" qui exécutent un exécutable opaque (immédiatement? Au prochain démarrage?) Qui vérifie si le matériel existe, pompe du code binaire dans le flash du matériel si le matériel est là (peut-être en demandant à l'utilisateur; sur Windows à au moins, le flashage du matériel est toujours chargé de fenêtres DOS qui apparaissent, de CLUF à cliquer et de barres de progression à endurer), puis marque le package comme "installé".
Modifient-ils les initramfs pour qu'un blob binaire soit chargé par un module du noyau ou que quelque chose se passe au prochain démarrage?
la source
Réponses:
Les micrologiciels chargeables ne sont généralement pas des installations "à un coup" qui sont écrites sur la mémoire flash de l'appareil. Le micrologiciel est chargé dans un stockage volatile sur l'appareil et doit être fait à chaque fois que l'ordinateur hôte est allumé. L'appareil ne fonctionne pas avant le chargement du firmware. Le micrologiciel peut être écrit dans la RAM de l'appareil, auquel cas il contient du code et des données pour le processeur de l'appareil, mais il peut également s'agir d'un flux binaire définissant la logique d'une matrice logique programmable sur le terrain (FPGA), ou de certains combinaison des deux.
D'un autre côté, le micrologiciel dans la mémoire flash est généralement préprogrammé sur les appareils et ne doit être réécrit qu'en cas de mise à jour du micrologiciel par le fabricant. Cela se fait généralement via d'autres mécanismes, comme un exécutable distinct exécuté par l'utilisateur.
Il existe plusieurs raisons pour lesquelles les fabricants souhaitent utiliser la RAM au lieu de la mémoire flash. Tout d'abord, il permet de concevoir une seule version du matériel, mais en même temps de livrer plusieurs versions du produit (pour différents marchés par exemple). Si le produit doit être fréquemment mis à niveau sur le terrain, il peut être plus facile de gérer les mises à niveau du micrologiciel de cette façon que de passer par la difficulté de créer un programme de mise à niveau de la mémoire flash sur l'appareil. Ce programme doit avoir une interface utilisateur agréable et être conçu pour être aussi convivial que possible, car il est généralement destiné à être exécuté par l'utilisateur final du produit. Certains appareils avec stockage flash exécutent souvent du code à partir de la RAM de toute façon, et ils copient simplement le contenu du flash sur la RAM lorsque l'appareil est démarré,
la source
Comme Anthony Geoghegan le mentionne , qu'est-ce que le "firmware" dans la terminologie Linux? et Pourquoi certains pilotes nécessitent-ils toujours un micrologiciel? fournir un contexte utile.
Les packages de micrologiciel sont des packages qui contiennent des fichiers de firmware, c'est- à- dire des fichiers qui contiennent du code destiné à être exécuté sur des appareils dans ou connectés à votre système - des exemples courants incluent les chipsets wifi, comme dans votre cas. Ce ne sont pas des installateurs uniques et ils se moquent de savoir si le matériel est disponible. Les fichiers qu'ils mettent à disposition sont utilisés par les pilotes du noyau correspondants, si le matériel concerné est présent: les pilotes chargent le firmware dans la mémoire attachée au matériel cible, qui exécute ensuite le firmware pour fonctionner.
Ces packages de micrologiciel ne sont pas liés aux installateurs de micrologiciel auxquels vous pensez, qui chargent les mises à jour du micrologiciel dans la mémoire flash (ce qui ne doit être fait que lorsqu'une mise à jour est requise). Ce processus est en effet long, souvent complexe et apparemment lourd de dangers (du moins si vous basez vos impressions sur les avertissements du fabricant). Les packages de micrologiciel inclus dans les distributions Linux contiennent le micrologiciel qui est nécessaire à chaque démarrage du système, car il est chargé dans la mémoire volatile.
la source
Ajout aux réponses déjà excellentes.
Les fichiers du micrologiciel, alias blobs binaires propriétaires, sont chargés dans votre micrologiciel au moins au moment du redémarrage à froid de l'appareil.
L'appareil a donc été conçu pour obtenir le firmware en RAM au lieu d'avoir une ROM + RAM pour réduire les coûts de production. Par exemple, vous avez des chipsets wifi Broadcom et des chipsets de commutateurs internes qui fonctionnent de cette façon.
Répondre à l'autre point de votre question de l'utilisation des fichiers de firmware dans une machine virtuelle.
Comme vous avez affaire à une VM, vous n'avez pas besoin de fichiers de firmware. Ils ne seront chargés nulle part; beaucoup moins de fichiers "firmware" ethernet ou wifi.
De même, étant donné que le micrologiciel n'est pas nécessaire dans un environnement de machine virtuelle, c'est une grande idiosyncrasie ayant dans Debian les dépendances d'un paquet de fichiers de micrologiciel générique dans le noyau Linux.
la source
firmware-linux-free
etirqbalance
- sont inutiles dans la plupart des déploiements de nos jours.)apt
afin qu'il n'installe pas de recommandations par défaut ...