fwupd (简体中文) - ArchWiki

# fwupd (简体中文)

From ArchWiki
Jump to navigation Jump to search

相关文章

- Secure Boot (简体中文)
- Unified Extensible Firmware Interface (简体中文)

翻译状态： 本文是 Fwupd 的本地化版本。上次翻译日期：2020-05-27。如果英文版本有所更改 ，则您可以帮助同步翻译。

fwupd 是一个简单的守护程序，允许更新某些设备的固件，包括用于多数计算机的 UEFI。

支持的设备列表请查看这里，更多厂商支持计划请查看这里。

## 安装

安装 fwupd。

如果您将其用于 UEFI 固件升级，请参阅 #UEFI 升级设置。

### 图形化前端

某些桌面环境前端解决方案具有内置的 fwupd 支持：

- GNOME Software — 将定期检查更新，并在 GNOME 的后台自动下载固件。下载固件后，将在 Gnome Software 中显示一个弹出窗口以执行更新。

  https://wiki.gnome.org/Apps/Software || gnome-software

- KDE Discover — 与 Plasma 一起使用的软件中心。随着 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

注意: 列表中的部分设备可能不能使用该工具更新，例如 Intel 核芯显卡，可以替代地提供的供应商解决方案。

刷新可用更新元数据：

    $ fwupdmgr refresh

列出系统上任何设备可用的更新：

    $ fwupdmgr get-updates

要安装更新：

    $ fwupdmgr update

注意:

- 可以实时应用的更新将立即完成。
- 在启动时运行的更新将为下一次重新启动做好准备。
- 可能需要使用 root 用户执行特定设备的更新。

## UEFI 升级设置

警告: UEFI 固件更新可能会损坏您的引导程序，成功安装固件更新后，可能需要重新创建 NVRAM 条目（例如，使用 efibootmgr）

1. 确保您使用 UEFI 模式启动系统，它将无法在旧版启动模式下工作。
2. 验证 您的 EFI 变量是否可以获取。
3. 正确挂载你的 EFI 系统分区 (ESP)，`esp` 用于表示此部分中的挂载点。

### 准备 ESP 目录

fwupd 会将所有必需的文件复制到 "esp" 上，但是要使其正常工作，"esp" 上必须存在基本的文件夹布局。

注意: 根据您所使用的引导加载程序或其他操作系统的存在，此目录可能已经存在。

这会在 esp 目录创建 'EFI' 目录 。

    mkdir esp/EFI/

警告: 'EFI' 目录必须全部大写。如果使用小写字母，则 fwupd 可能会将 esp 检测为 esp/efi/，并开始寻找 esp/efi/EFI/

创建后，您必须重新启动 fwupd 服务。

    systemctl restart fwupd.service

您现在可以 `$ fwupdmgr refresh` 和 `$ fwupdmgr update`。它将要求重新启动，现在应该自动重新启动到固件更新程序。

### 安全启动

在安全启动开启的系统下，fwupd 使用 shim 来引导 fwupd EFI 文件。 使用前请确保正确安装 shim。

#### 用自己的密钥

或者，您必须手动签名用于执行升级的 UEFI 可执行文件，该文件位于 `/usr/lib/fwupd/efi/fwupdx64.efi`。 已签名的 UEFI 可执行文件应放在 `/usr/lib/fwupd/efi/fwupdx64.efi.signed`. 使用 sbsigntools，可以通过运行以下命令来实现：

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

为了使安装或者升级时自动签名，使用 Pacman 挂钩：

    /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 挂钩，您也可以创建从 `/usr/lib/fwupd/efi/fwupdx64.efi` 到 `/usr/lib/fwupd/efi/fwupdx64.efi.signed` 的符号链接，并将文件添加到 `/etc/sbupdate.conf` 中的 `EXTRA_SIGN` 列表中。

最后，您必须将 `/etc/fwupd/uefi.conf` 中包含 `DisableShimForSecureBoot` 的行更改为 `DisableShimForSecureBoot=true` 并重新启动 `fwupd.service`。

注意: 如果在 fwupd 1.4 之前进行了此设置，请注意配置选项的名称已更改。

查阅此 GitHub issue，以获取更多讨论此问题的信息。

Category:

- Hardware (简体中文)