Dieses Projekt zielt darauf ab, die Aktualisierung der Firmware unter Linux automatisch, sicher und zuverlässig zu machen.
Weitere Informationen finden Sie auf der Website.
GitHub-Probleme und Diskussionen in diesem Repository
Libera IRC-Kanal #fwupd
. Sie können über Liberas IRC oder über die IRC-Brücke auf Matrix beitreten.
Informationen zum Erstellen der fwupd-Entwicklungsumgebung finden Sie unter Erstellen und Debuggen.
HINWEIS: In den meisten Fällen sollten Endbenutzer fwupd nicht von Grund auf kompilieren; Es ist ein kompliziertes Projekt mit Dutzenden Abhängigkeiten (und ebenso vielen Konfigurationsoptionen) und es gibt einfach zu viele Dinge, die schief gehen können.
Benutzer sollten lediglich fwupd von ihrer Distribution installieren und aktualisieren lassen, verwaltet und vom Paketbetreuer getestet. Die Distribution wird auch einige Tests durchgeführt haben, um zu untersuchen, wie fwupd mit anderer Software auf Ihrem System interagiert, beispielsweise mit der GNOME-Software.
Die Installation von fwupd mit Snap oder Flatpak kann nützlich sein, um ein bestimmtes Gerät über die Befehlszeile zu aktualisieren, das eine aktuelle fwupd-Version benötigt, sollte aber nicht als Ersatz für die von der Distribution bereitgestellte Systemversion betrachtet werden.
Tartan ist ein statisches LLVM-Analyse-Plugin, das zur Analyse von GLib-Code entwickelt wurde. Es kann installiert und dann ausgeführt werden mit:
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
Dieses Projekt ist standardmäßig zum Herunterladen von Firmware vom Linux Vendor Firmware Service (LVFS) konfiguriert.
Dieser Service steht allen OEMs und Firmware-Erstellern zur Verfügung, die ihre Firmware Linux-Benutzern zur Verfügung stellen möchten.
Weitere Informationen zu den technischen Details zum Erstellen einer Firmware-Kapsel finden Sie im Abschnitt „Hardwareanbieter“ der fwupd-Website.
Wenn Sie ein Gerät mit von fwupd unterstützter Firmware haben, können Sie auf diese Weise nach Updates suchen und diese mithilfe der Befehlszeilentools von fwupd anwenden.
# fwupdmgr get-devices
Dadurch werden alle von fwupd erkannten Geräte angezeigt.
# fwupdmgr refresh
Dadurch werden die neuesten Metadaten von LVFS heruntergeladen.
# fwupdmgr get-updates
Wenn Updates für Geräte im System verfügbar sind, werden diese angezeigt.
# fwupdmgr update
Dadurch werden alle Updates für Ihr System heruntergeladen und angewendet.
Updates, die live angewendet werden können, werden sofort durchgeführt.
Updates, die beim Booten ausgeführt werden, werden für den nächsten Neustart bereitgestellt.
Weitere Informationen zum Update-Workflow finden Sie im Endbenutzerbereich der fwupd-Website.
Wenn das Passim-Projekt ebenfalls installiert und aktiviert ist, veröffentlicht fwupd die heruntergeladene Metadatendatei erneut, um sie standardmäßig unter 0.0.0.0:27500
bereitzustellen.
Andere Clients im selben Netzwerk können dies über mDNS/LLMNR nutzen, um die Netzwerkbandbreite auf konfigurierte Remotes zu reduzieren.
Um diese Funktionalität zu deaktivieren, legen Sie entweder P2pPolicy=none
in /etc/fwupd/daemon.conf
fest, deinstallieren Sie das passim-Paket oder verwenden Sie systemctl mask passim.service
auf dem Terminal.
fwupd wird Benutzer dazu ermutigen, sowohl erfolgreiche als auch fehlgeschlagene Updates an LVFS zu melden. Dies ist eine optionale Funktion, die jedoch empfohlen wird, da sie LVFS-Administratoren und OEM-Entwicklern wertvolles Feedback zur Wirksamkeit des Firmware-Aktualisierungsprozesses liefert.
Die Datenschutzbestimmungen zu diesen Daten können auf der Website von lvfs readthedocs eingesehen werden.
Um den Status eines Updates zu melden, führen Sie Folgendes aus:
# fwupdmgr report-history
Nur Updates, die vom LVFS verteilt wurden, werden dem LVFS gemeldet.
Mit der Funktion „Genehmigte Updates“ kann der Update-Fluss im Unternehmen gesteuert werden. Dadurch kann der Domänenadministrator die möglichen Updates von einem zentralen Server (z. B. dem LVFS oder einem Spiegel) nur auf Firmware filtern, die speziell in Ihrer Organisation getestet wurde.
Die Liste der genehmigten Updates kann aktiviert werden, indem ApprovalRequired=true
zur Remote-Konfigurationsdatei hinzugefügt wird, z. B. lvfs.conf
. Nach der Aktivierung kann die Liste der genehmigten Updates in fwupd.conf
mithilfe einer durch Kommas getrennten Liste festgelegt werden.
Zum Beispiel:
ApprovedFirmware=foo,bar
Dabei bezieht sich foo,bar
auf die Containerprüfsummen, die zwei Aktualisierungen in der Metadatendatei entsprechen würden.
Darüber hinaus kann die Liste der zugelassenen Firmware mit fwupdmgr set-approved-firmware baz
oder über die D-Bus-Schnittstelle ergänzt werden.
fwupdmgr ist ein Befehlszeilen-Client, aber verschiedene zusätzliche grafische Frontends werden in der fwupdmgr-Manpage aufgeführt.
Coverity – statischer Analysator für Java-, C/C++-, C#-, JavaScript-, Ruby- und Python-Code.
PVS-Studio – statischer Analysator für C-, C++-, C#- und Java-Code.