このプロジェクトは、Linux 上のファームウェアの更新を自動、安全、信頼性の高いものにすることを目的としています。
追加情報はウェブサイトでご覧いただけます。
このリポジトリでの GitHub の問題とディスカッション
Libera IRC チャネル#fwupd
。 Libera の IRC または Matrix の IRC ブリッジ経由で参加できます。
fwupd 開発環境を構築する方法については、「構築とデバッグ」を参照してください。
注:ほとんどの場合、エンド ユーザーは fwupd を最初からコンパイルしないでください。これは数十の依存関係 (および同様に多くの構成オプション) を含む複雑なプロジェクトであり、問題が発生する可能性のあることが多すぎます。
ユーザーは、自分のディストリビューションによって fwupd をインストールおよび更新し、パッケージ メンテナによって管理およびテストされるだけで済みます。このディストリビューションでは、たとえば GNOME ソフトウェアを使用して、fwupd がシステム上の他のソフトウェアとどのように対話するかについてのテストも行われます。
Snap または Flatpak を使用して fwupd をインストールすると、最先端の fwupd バージョンを必要とする特定のデバイスをコマンド ラインで更新する場合に便利ですが、ディストリビューションが提供するシステム バージョンの代替として考慮すべきではありません。
Tartan は、GLib コードを分析するために構築された LLVM 静的分析プラグインです。以下を使用してインストールして実行できます。
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
このプロジェクトは、デフォルトで Linux Vendor Firmware Service (LVFS) からファームウェアをダウンロードするように構成されています。
このサービスは、Linux ユーザーがファームウェアを利用できるようにしたいすべての OEM およびファームウェア作成者が利用できます。
ファームウェア カプセルの作成に関する技術的な詳細については、fwupd Web サイトのハードウェア ベンダー セクションを参照してください。
fwupd でサポートされているファームウェアを備えたデバイスをお持ちの場合、fwupd のコマンド ライン ツールを使用してアップデートを確認し、適用することができます。
# fwupdmgr get-devices
これにより、fwupd によって検出されたすべてのデバイスが表示されます。
# fwupdmgr refresh
これにより、LVFS から最新のメタデータがダウンロードされます。
# fwupdmgr get-updates
システム上のデバイスでアップデートが利用可能な場合は、それらが表示されます。
# fwupdmgr update
これにより、システムのすべてのアップデートがダウンロードされて適用されます。
ライブで適用できる更新はすぐに行われます。
起動時に実行される更新は、次回の再起動に向けてステージングされます。
更新ワークフローの詳細については、fwupd Web サイトのエンド ユーザー セクションを参照してください。
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
メタデータ ファイル内の 2 つの更新に対応するコンテナー チェックサムを指します。
さらに、承認されたファームウェアのリストはfwupdmgr set-approved-firmware baz
または D-Bus インターフェイスを使用して追加できます。
fwupdmgr はコマンド ライン クライアントですが、さまざまな追加のグラフィカル フロントエンドが fwupdmgr のマニュアル ページに列挙されています。
Coverity - Java、C/C++、C#、JavaScript、Ruby、Python コード用の静的アナライザー。
PVS-Studio - C、C++、C#、および Java コード用の静的アナライザー。