Ce projet vise à rendre la mise à jour du firmware sous Linux automatique, sûre et fiable.
Des informations supplémentaires sont disponibles sur le site Web.
Problèmes et discussions GitHub dans ce référentiel
Chaîne IRC Libera #fwupd
. Vous pouvez rejoindre via l'IRC de Libera ou via le pont IRC sur Matrix.
Voir Création et débogage pour savoir comment créer l'environnement de développement fwupd.
REMARQUE : Dans la plupart des cas, les utilisateurs finaux ne doivent pas compiler fwupd à partir de zéro ; c'est un projet compliqué avec des dizaines de dépendances (et autant d'options de configuration) et il y a tout simplement trop de choses qui peuvent mal tourner.
Les utilisateurs doivent simplement avoir fwupd installé et mis à jour par leur distribution, géré et testé par le responsable du package. La distribution aura également effectué des tests sur la façon dont fwupd interagit avec d'autres logiciels sur votre système, par exemple en utilisant le logiciel GNOME.
L'installation de fwupd à l'aide de Snap ou de Flatpak peut être utile pour mettre à jour un périphérique spécifique sur la ligne de commande qui nécessite une version de pointe de fwupd, mais elle ne doit pas être considérée comme un remplacement de la version système fournie par la distribution.
Tartan est un plugin d'analyse statique LLVM conçu pour analyser le code GLib. Il peut être installé puis exécuté en utilisant :
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
Ce projet est configuré par défaut pour télécharger le micrologiciel à partir du Linux Vendor Firmware Service (LVFS).
Ce service est disponible pour tous les OEM et créateurs de firmware qui souhaitent mettre leur firmware à la disposition des utilisateurs Linux.
Vous pouvez trouver plus d'informations sur les détails techniques de la création d'une capsule de micrologiciel dans la section des fournisseurs de matériel du site Web fwupd.
Si vous disposez d'un appareil avec un micrologiciel pris en charge par fwupd, voici comment vous pouvez rechercher les mises à jour et les appliquer à l'aide des outils de ligne de commande de fwupd.
# fwupdmgr get-devices
Cela affichera tous les appareils détectés par fwupd.
# fwupdmgr refresh
Cela téléchargera les dernières métadonnées de LVFS.
# fwupdmgr get-updates
Si des mises à jour sont disponibles pour des appareils du système, elles seront affichées.
# fwupdmgr update
Cela téléchargera et appliquera toutes les mises à jour de votre système.
Les mises à jour pouvant être appliquées en direct seront effectuées immédiatement.
Les mises à jour exécutées au démarrage seront préparées pour le prochain redémarrage.
Vous pouvez trouver plus d'informations sur le workflow de mise à jour dans la section utilisateurs finaux du site Web fwupd.
Si le projet Passim est également installé et activé, fwupd republiera le fichier de métadonnées téléchargé pour qu'il soit servi sur 0.0.0.0:27500
par défaut.
D'autres clients sur le même réseau peuvent l'utiliser via mDNS/LLMNR pour réduire la bande passante du réseau vers les télécommandes configurées.
Pour désactiver cette fonctionnalité, définissez P2pPolicy=none
dans /etc/fwupd/daemon.conf
, désinstallez le package passim ou utilisez systemctl mask passim.service
sur le terminal.
fwupd encouragera les utilisateurs à signaler les mises à jour réussies et échouées à LVFS. Il s'agit d'une fonctionnalité facultative, mais encouragée car elle fournit des commentaires précieux aux administrateurs LVFS et aux développeurs OEM concernant l'efficacité du processus de mise à jour du micrologiciel.
La politique de confidentialité concernant ces données est consultable sur le site lvfs readthedocs.
Pour signaler l'état d'une mise à jour, exécutez :
# fwupdmgr report-history
Seules les mises à jour distribuées à partir du LVFS seront signalées au LVFS.
Le flux des mises à jour peut être contrôlé dans l'entreprise grâce à la fonctionnalité « mises à jour approuvées ». Cela permet à l'administrateur de domaine de filtrer les mises à jour possibles depuis un serveur central (par exemple le LVFS ou un miroir) vers uniquement les micrologiciels qui ont été testés spécifiquement dans votre organisation.
La liste des mises à jour approuvées peut être activée en ajoutant ApprovalRequired=true
au fichier de configuration distant, par exemple lvfs.conf
. Une fois activée, la liste des mises à jour approuvées peut être définie dans fwupd.conf
à l'aide d'une liste délimitée par des virgules.
Par exemple:
ApprovedFirmware=foo,bar
Où foo,bar
fait référence aux sommes de contrôle du conteneur qui correspondraient à deux mises à jour dans le fichier de métadonnées.
De plus, la liste des micrologiciels approuvés peut être complétée à l'aide de fwupdmgr set-approved-firmware baz
ou à l'aide de l'interface D-Bus.
fwupdmgr est un client en ligne de commande, mais diverses interfaces graphiques supplémentaires sont énumérées dans la page de manuel de fwupdmgr.
Coverity - analyseur statique pour le code Java, C/C++, C#, JavaScript, Ruby et Python.
PVS-Studio - analyseur statique pour le code C, C++, C# et Java.