fwupd,Linux 中管理固件更新的卓越工具

Fwupd 标志。

最近公布了 发布工具 fwupd 2.0 开源 用于管理和更新Linux中各种设备的固件。 其目的是促进硬件上固件的安装和更新,而无需访问制造商特定的工具或重新启动到不同的操作系统。

转发 使用LVFS固件更新服务 (Linux 供应商固件服务),制造商上传其固件更新。目前,LVFS 目录包括来自 1,600 个制造商的 160 多个设备的固件。

萨尔瓦多使用 这个集中目录消除了制造商为每个发行版生成特定包的需要,允许他们以包含附加元数据的“.cab”文件传输固件,类似于发布 Windows 固件时所做的操作。

MGI 用户可以直接从其发行版下载并安装这些更新 Linux,促进了大量的进程,因为它既支持自动固件更新模式,也支持确认后执行操作的选项。

主要特征 从 fwupd 中脱颖而出,我们可以发现以下内容:

  • 支持多种设备(UEFI、USB、Thunderbolt、显示器等)。
  • 无需重新启动或离开工作环境即可安装和更新固件。
  • 与包管理器和系统更新集成。
  • 与许多 Linux 发行版兼容
  • 这是保持固件更新的便捷且安全的解决方案
  • 它与 GNOME Software 和 KDE Discover 应用程序管理器兼容。
  • 不仅限于桌面系统,还适用于智能手机、平板电脑、服务器、物联网设备等设备上的固件更新。

fwupd 2.0 有什么新功能?

在这个新版本的 fwupd 2.0 中, 将后台进程从使用 GUsb 的 GObject 挂钩移至直接访问 libusb 和 sysfs。 此更改使得可以将设备模拟移至 libfwupdplugin 库,并在虚拟 hidraw 和 nvme 设备上实现固件更新模拟,类似于使用虚拟 USB 设备执行的模拟。借助此功能,我们能够执行额外的测试,以识别对 fwupd 进行某些更改后可能出现的更新问题。

同时, GUdev 库, 它通过 libudev 提供 GObject 绑定, 已被从该处所移走。相反,fwupd 进程现在创建一个 netlink 套接字 分析通过它传输的 udev 事件。这个改变 显着降低了内存消耗和 CPU 负载 在启动和操作过程中,除了简化 ueventd 支持的合并之外,这将允许 fwupd 与 Android 平台兼容。

已进行优化以减少内存消耗 将固件从文件传输到设备时;现在不再将固件复制到内存,而是通过文件描述符进行传输。还 添加了对各种新设备的支持。

另外, 对旧元数据和固件验证格式的支持已停止, 以前不推荐使用的命令行实用程序已被删除。还 添加了 API 以在 gnome-firmware 中加载报告 构建系统现在包括对 Darwin 平台的支持。

最后,我们添加了以 JSON 格式显示 ESP 文件列表的功能(使用 fwupdtool esp-list –json 命令),并添加了在配置中指定模拟设备的选项。

最后,如果您有兴趣能够了解更多,可以在 以下链接。

如何在 Linux 上安装 fwupd?

对于那些对安装 fwupd 感兴趣的人,您应该知道,在大多数发行版中,它已经预安装了。但是,如果您尚未安装它,您可以根据您的发行版使用以下命令来完成此操作:

Ubuntu 及其衍生产品:

sudo apt install fwupd

Fedora的:

sudo dnf install fwupd

Arch Linux 以及基于它的:

sudo pacman -S fwupd

如何使用fwupd?

使用 fwupd 的方法非常简单,基于执行命令和 正确的方法是始终更新数据库 在继续更新设备固件之前,请先了解可用固件的信息。我们可以通过输入以下内容来做到这一点:

sudo fwupdmgr refresh

查看哪些设备支持 fwupd以及其当前状态,如果有可用更新,则可以使用以下命令进行更新:

fwupdmgr get-devices

一旦您列出了设备,他们就可以 检查固件更新 可以通过运行:

fwupdmgr get-updates

如果有可用的固件更新, 你可以通过运行来应用它们:

sudo fwupdmgr update

显示已安装的固件更新列表 通过 fwupd,您可以使用以下命令来完成此操作:

fwupdmgr history