Solution communautaire

Comment ajouter en toute sécurité le micrologiciel manquant d’un appareil à ZimaOS

A DVB-S2 tuner needed a Hauppauge firmware blob; IceWhale said users could not add host firmware directly and agreed to integrate the requested file into a release.

ZimaOS ne prend pas en charge l’installation ponctuelle de micrologiciels du noyau hôte avec des commandes de type Ubuntu telles que apt install linux-firmware-.... ZimaOS est un système de type appliance, et IceWhale a explicitement indiqué que les micrologiciels de l’hôte devaient être intégrés à la version du système d’exploitation plutôt que copiés manuellement.

Le cas d’origine concernait un tuner USB DVB-S2 Hauppauge WinTV-NOVA-S2 qui avait besoin d’un fichier binaire de micrologiciel avant que Tvheadend ou Plex puisse l’utiliser. IceWhale a accepté d’intégrer le micrologiciel dans une prochaine version et a demandé à l’utilisateur de le tester.

Pourquoi les commandes Ubuntu ne s’appliquent pas directement

Les gestionnaires de paquets Ubuntu peuvent écrire des micrologiciels dans un système de fichiers hôte modifiable. ZimaOS n’est pas une installation Debian générique utilisant le même mode de gestion des paquets.

Le micrologiciel du noyau doit être disponible sur l’hôte

De nombreux périphériques DVB, Wi-Fi et autres demandent un micrologiciel au noyau de l’hôte lors de leur initialisation. Un conteneur Docker ne peut pas résoudre ce problème si l’hôte n’initialise jamais le matériel.

Étape 1 : identifiez précisément le périphérique et le fichier binaire manquant

lsusb
dmesg | grep -i -E 'firmware|dvb|usb'

Notez les identifiants USB/PCI, le nom du pilote et le nom exact du fichier manquant.

Étape 2 : confirmez la source et la licence du micrologiciel

Fournissez la source officielle du fournisseur ou de kernel-firmware ainsi que les informations relatives à la redistribution lorsque vous demandez à IceWhale de l’inclure.

Étape 3 : demandez l’intégration au système d’exploitation

IceWhale a indiqué que, pour des raisons de sécurité, les utilisateurs ne pouvaient pas ajouter eux-mêmes de micrologiciels à l’hôte, et que l’équipe pouvait intégrer un fichier binaire précis en présence d’un cas d’usage clairement établi.

Étape 4 : testez après la publication d’une version qui l’inclut

Reconnectez le périphérique et inspectez dmesg. Vous devez vous assurer que le pilote s’initialise sans erreur « fichier de micrologiciel introuvable » avant de configurer Tvheadend ou Plex.

Passez le périphérique à l’application séparément

Après que l’hôte a reconnu un tuner DVB, une application Docker peut encore avoir besoin du micrologiciel approprié /dev/dvb périphériques associés au conteneur. Le micrologiciel de l’hôte et l’accès du conteneur sont deux couches distinctes.

Ne confondez pas le micrologiciel de l’espace utilisateur avec celui du noyau

Certaines applications chargent leurs propres modèles ou fichiers de données, qui peuvent être montés dans un conteneur. Le micrologiciel demandé par un pilote du noyau est différent.

Le guide de dépannage matériel aide à structurer le rapport.

Fonctionnement du chargement des micrologiciels sous Linux

Lorsqu’un pilote du noyau initialise le matériel, il peut appeler le chargeur de micrologiciel Linux et demander un binaire nommé dans les chemins de micrologiciel de l’hôte. Si ce fichier est manquant, le pilote peut ne se lier que partiellement ou refuser d’exposer le nœud final du périphérique.

La {A("https://docs.kernel.org/driver-api/firmware/request_firmware.html","documentation du chargeur de micrologiciel Linux","Comprendre comment les pilotes du noyau demandent le micrologiciel au système d’exploitation hôte")} en amont explique ce mécanisme au niveau de l’hôte.

Confirmer l’existence du pilote avant de demander uniquement le micrologiciel

Un binaire de micrologiciel ne peut pas aider si ZimaOS ne dispose pas du pilote du noyau pour le périphérique. Vérifiez dmesg et les informations sur le module afin de déterminer si le pilote se charge puis demande le micrologiciel, ou si le matériel n’est pas pris en charge plus tôt dans la pile.

Le transfert vers le conteneur vient après la détection par l’hôte

Pour Tvheadend, Plex ou une autre application, vérifiez d’abord que l’hôte expose le tuner sous /dev/dvb. Ce n’est qu’ensuite que vous devez configurer les mappages de périphériques Docker et les autorisations des applications.

Retester après chaque mise à niveau de ZimaOS

Si IceWhale intègre le micrologiciel dans une version, vérifiez que le tuner s’initialise toujours après les mises à jour majeures ultérieures. Conservez les identifiants matériels exacts dans vos notes afin que les rapports de régression puissent être reproduits.

Comprendre le chargeur de micrologiciel Linux

Les pilotes du noyau demandent souvent un binaire de micrologiciel nommé lors de l’initialisation du périphérique. La documentation amont du chargeur de micrologiciel Linux explique que cela se produit au niveau du noyau hôte, avant que la plupart des conteneurs d’applications puissent utiliser le périphérique.

Si le pilote est présent mais que le binaire demandé est manquant, une mise à jour du micrologiciel intégrée au système d’exploitation est la solution appropriée. Si le pilote lui-même est manquant, l’ajout du seul binaire ne permettra pas au matériel de fonctionner.

FAQ

Puis-je installer linux-firmware avec apt sur ZimaOS ?

Ne traitez pas ZimaOS comme Ubuntu ; la position d’IceWhale était d’intégrer le micrologiciel requis à l’hôte.

Docker peut-il inclure le micrologiciel manquant ?

Pas si le noyau hôte en a besoin avant que le périphérique n’existe pour le conteneur.

Que dois-je vérifier après l’intégration ?

Utiliser dmesg et l’énumération du matériel pour confirmer une initialisation correcte.

Le micrologiciel nécessite-t-il une interface graphique de bureau ?

Non. Le micrologiciel du noyau et des périphériques fonctionne sur un serveur sans interface graphique.