該專案旨在使 Linux 上的韌體更新自動、安全、可靠。
網站上提供了更多資訊。
此存儲庫中的 GitHub 問題和討論
Libera IRC 頻道#fwupd
。您可以透過 Libera 的 IRC 或透過 Matrix 上的 IRC 橋加入。
有關如何建置 fwupd 開發環境的信息,請參閱建置和偵錯。
注意:在大多數情況下,最終使用者不應從頭開始編譯 fwupd;這是一個複雜的項目,具有數十個依賴項(以及許多配置選項),而且有太多可能出錯的地方。
使用者應該只由他們的發行版安裝和更新 fwupd,由軟體包維護者管理和測試。該發行版還將對 fwupd 如何與系統上的其他軟體(例如使用 GNOME 軟體)互動進行一些測試。
使用 Snap 或使用 Flatpak 安裝 fwupd 可能有助於在命令列上更新需要前沿 fwupd 版本的特定設備,但不應將其視為發行版提供的系統版本的替代品。
Tartan 是一個 LLVM 靜態分析插件,用於分析 GLib 程式碼。可以使用以下命令安裝並運行它:
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
此專案預設配置為從 Linux 供應商韌體服務 (LVFS) 下載韌體。
所有希望將其韌體提供給 Linux 用戶的 OEM 和韌體創建者都可以使用此服務。
您可以在 fwupd 網站的硬體供應商部分找到有關創建韌體膠囊的技術細節的更多資訊。
如果您的裝置具有 fwupd 支援的固件,則可以透過以下方式檢查更新並使用 fwupd 的命令列工具套用它們。
# fwupdmgr get-devices
這將顯示 fwupd 偵測到的所有裝置。
# fwupdmgr refresh
這將從 LVFS 下載最新的元資料。
# fwupdmgr get-updates
如果系統上的任何裝置有可用更新,則會顯示它們。
# fwupdmgr update
這將為您的系統下載並套用所有更新。
可以即時應用的更新將立即完成。
啟動時執行的更新將在下次重新啟動時暫存。
您可以在 fwupd 網站的最終使用者部分找到有關更新工作流程的更多資訊。
如果也安裝並啟用了 Passim 項目,fwupd 將重新發布下載的元資料文件,預設在0.0.0.0:27500
上提供服務。
同一網路上的其他用戶端可以透過 mDNS/LLMNR 使用此功能來減少配置的遠端網路頻寬。
若要停用此功能,請在/etc/fwupd/daemon.conf
中設定P2pPolicy=none
、卸載 passim 軟體包或在終端機上使用systemctl mask passim.service
。
fwupd 將鼓勵使用者向 LVFS 報告成功和失敗的更新。 這是一項可選功能,但值得鼓勵,因為它為 LVFS 管理員和 OEM 開發人員提供了有關韌體更新過程效率的寶貴回饋。
有關此資料的隱私權政策可以在 lvfs readthedocs 網站上查看。
若要報告更新的狀態,請執行:
# fwupdmgr report-history
只有從 LVFS 分發的更新才會回報給 LVFS。
可以使用「核准的更新」功能在企業中控制更新流程。這允許網域管理員將可能的更新從中央伺服器(例如 LVFS 或鏡像)過濾到僅在您的組織中經過專門測試的韌體。
可以透過將ApprovalRequired=true
新增至遠端設定檔(例如lvfs.conf
來啟用已核准的更新清單。啟用後,可以使用逗號分隔清單在fwupd.conf
中設定核准的更新清單。
例如:
ApprovedFirmware=foo,bar
其中foo,bar
指的是與元資料檔案中的兩個更新相對應的容器校驗和。
此外,可以使用fwupdmgr set-approved-firmware baz
或使用 D-Bus 介面來補充已核准的韌體清單。
fwupdmgr 是一個命令列用戶端,但 fwupdmgr 手冊頁中列舉了各種其他圖形前端。
Coverity - 適用於 Java、C/C++、C#、JavaScript、Ruby 和 Python 程式碼的靜態分析器。
PVS-Studio - C、C++、C# 和 Java 程式碼的靜態分析器。