「Fwupd」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎インストール: 一部翻訳)
(→‎トラブルシューティング: 再起動時にスタックを翻訳して追加)
105行目: 105行目:
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
  +
  +
=== 再起動時にスタック ===
  +
  +
{{ic|fwupdmgr update}} はエラーを報告しませんが、再起動を促すと電源ボタンを押したまま動かなくなり、何の反応もありません。電源を切るか、リセットボタン (ノートパソコンの場合、背面の穴) を押して、強制的に再起動してみてください。
  +
 
=== エラーは出ないが再起動後も更新されない ===
 
=== エラーは出ないが再起動後も更新されない ===
   

2023年2月26日 (日) 01:48時点における版

関連記事

fwupd はデバイスのファームウェアをアップデートするためのシンプルなデーモンです。fwupdate で UEFI BIOS をアップデートできます。

サポートされているデバイスは [1][2] に記載されています。

インストール

fwupd パッケージをインストールしてください。

fwupdate を使用する場合は #UEFI BIOS のアップグレードを見てください。

グラフィカルフロントエンド

デスクトップ環境によっては fwupd が標準でサポートされています:

  • GNOME SoftwareGNOME 環境上で動作します。バックグラウンドで定期的に更新を確認しダウンロードを行います。ファームウエアがダウンロードされると GNOME Software に更新の実行確認を行うポップアップが表示されます。
https://wiki.gnome.org/Apps/Software || gnome-software
  • KDE DiscoverPlasma 上で動作します。KDE Plasma 5.14 以降では KDE Discover 上で fwupd バックエンドが実装されました。他のシステムのアップデートと同様にファームウエアの更新も表示されます。
https://userbase.kde.org/Discover || discover
  • GNOME Firmware — fwupd がサポートするデバイスのファームウェアをアップグレード、ダウングレード、再インストールするためのアプリケーションです。ロックされた fwupd デバイスのロック解除、サポートされているデバイスのファームウェアの検証、fwupd デバイスの全リリースを表示することができます。
https://gitlab.gnome.org/hughsie/gnome-firmware-updater || gnome-firmware

使用方法

fwupd に検出されたデバイスを確認するには:

$ fwupdmgr get-devices
ノート: 上記のコマンドで出力されるデバイスの一部は fwupd でアップデートできない場合があります。例えば Intel の内蔵グラフィックはアップデートできません。

利用可能なアップデートのメタデータを更新するには:

$ fwupdmgr refresh

システムのアップデート一覧を確認するには:

$ fwupdmgr get-updates

アップデートをインストールするには:

$ fwupdmgr update
ノート:
  • 再起動が必要ない更新はただちに適用されます。
  • 起動時に実行される更新は次回再起動時に行なわれます。
  • アップデートによっては root 権限が必要になることがあります。

UEFI のアップグレードのセットアップ

警告: UEFI ファームウエアの更新によりブートローダーが破棄される可能性があります。更新完了後に NVRAM エントリを efibootmgr などで再生成する必要が生じる場合があります。

アップグレードする前に以下を確認してください:

  • マシンが UEFI モードで起動していることを確認してください。BIOS モードでは正しく動作しません。
  • EFI 変数にアクセスできることを確認してください。
  • EFI システムパーティション (ESP) が正しくマウントされていることを確認してください。この記事では ESP のマウントポイントを esp として表記します。

ESP の準備

fwupd は必要なファイルを esp 以下にコピーします。'EFI' デイレクトリが存在しない場合は作成してください:

# mkdir esp/EFI/
警告: 'EFI' ディレクトリは全て大文字でなければなりません。fwupd が espesp/efi/ と誤認識し esp/efi/EFI/ 以下を検索する可能性があります。

作成後、fwupd サービスを再起動してください。

# systemctl restart fwupd.service

そののち、$ fwupdmgr refresh$ fwupdmgr update を実行すると、再起動が促されファームウエアが更新されます。

セキュアブート

セキュアブートが有効な環境で fwupd EFI バイナリをチェーンロードするには shim が正しくインストールされていることが必要です。

自己署名証明書を使う

ファームウエア更新に使われる UEFI バイナリ /usr/lib/fwupd/efi/fwupdx64.efi を手動で署名する方法もあります。

sbsigntools を使うと署名されたバイナリ /usr/lib/fwupd/efi/fwupdx64.efi.signed が生成されます。

# sbsign --key <keyfile> --cert <certfile> /usr/lib/fwupd/efi/fwupdx64.efi

Pacman フックを使うと fwupdx64.efi の更新時に自動で署名できます:

/etc/pacman.d/hooks/sign-fwupd-secureboot.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Path
Target = usr/lib/fwupd/efi/fwupdx64.efi

[Action]
When = PostTransaction
Exec = /usr/bin/sbsign --key <keyfile> --cert <certfile> /usr/lib/fwupd/efi/fwupdx64.efi
Depends = sbsigntools

<keyfile><certfile> は対応する鍵と証明書へのパスに置き換えます。

pacman hook を使わず、/usr/lib/fwupd/efi/fwupdx64.efi から /usr/lib/fwupd/efi/fwupdx64.efi.signed へシンボリックリンクを作成し /etc/sbupdate.confEXTRA_SIGN に追加する方法もあります。

最後に、/etc/fwupd/uefi.confDisableShimForSecureBoottrue に変更し fwupd.service サービスを再起動してください。

ノート: fwupd 1.4 以前を使う場合は設定オプションの名前が微妙に異なります。

さらなる詳細は GitHub Issue を参照してください。

トラブルシューティング

再起動時にスタック

fwupdmgr update はエラーを報告しませんが、再起動を促すと電源ボタンを押したまま動かなくなり、何の反応もありません。電源を切るか、リセットボタン (ノートパソコンの場合、背面の穴) を押して、強制的に再起動してみてください。

エラーは出ないが再起動後も更新されない

現象: fwupdmgr update は正常に終了し (UEFI の更新などで) 再起動を求められた。しかし再起動してもファームウエア更新は行なわれなかった。

考えられる原因: 起動順序がBIOS で正しく設定されていない。

読み取り専用ファイルシステムエラー

少なくとも、fwupdmgr 1.5.2 は、もし bind が esp/boot [3] にマウントするために使用された場合、間違ったマウントポイントが推測されます。その結果、UEFI 更新ファイル /boot/EFI/arch/fw の書き込みに失敗します(fwupdmgresp/EFI/arch/fw に書き込みます)。これにより、(誤解を招く) "file system is read-only" というエラーメッセージが表示されます。Discover (またはその他の fwupd 対応アップデート GUI ) によって更新が実行された場合は、エラーや誤解を招くようなエラーは表示されない場合があります。

回避策としては、以前に esp/EFI/arch にバインドマウントされていた場合は最初に umount /boot を実行し、その後 fwupdmgr update を実行して UEFI 更新ファイルを esp/EFI/arch/fw に書き込み、mount /boot してシステムを再起動して UEFI 更新を実行します。