1 个稳定版本

1.0.57 2023 年 12 月 26 日

#4 in #system76

73 个星标 & 17 个关注者

GPL-3.0-only

69KB
2K SLoC

system76-firmware

system76-firmware 软件包包含一个用于安装固件更新的 CLI 工具。还包括 system76-firmware-daemon 软件包,它提供了一个 systemd 服务,用于公开 DBUS API 以处理固件更新。

依赖项

  • cargo
  • dbus
  • rustc
  • systemd

构建目标

支持以下构建目标

  • make all - 编译所有二进制文件
  • make clean - 删除编译后的二进制文件
  • make install - 安装二进制文件和配置文件
  • make uninstall - 卸载二进制文件和配置文件
  • make vendor - 准备离线编译的源代码
  • make distclean - 删除准备好的源代码和编译后的二进制文件

安装

make
sudo make install

打包

为了打包此软件,您需要 cargo-vendor

cargo install cargo-vendor

然后您可以运行以下命令来创建一个具有离线能力的软件包

make vendor

现在您可以编译并安装软件包。

要清理供应商源代码,您可以运行此命令

make distclean

API

系统76-firmware-daemon会下载最新的固件包,如果已更改,并提供一个DBUS接口供用户查询当前固件状态、查询更新信息以及安排更新。

DBUS API如下:

  • Bios() -> (String model, String version) 查询BIOS型号和版本。
  • EmbeddedController(Boolean primary) -> (String project, String version) 查询嵌入式控制器项目版本。可选地,可以查询第二个嵌入式控制器。
  • ManagementEngine() -> (Boolean enabled, String version) 查询ME状态和版本。
  • Download() -> (String digest, String changelog) 下载最新的变更日志信息
  • Schedule(String digest) -> () 准备最新的固件更新以安装
  • Unschedule() -> () 取消安装最新的固件更新

依赖项

~9–22MB
~371K SLoC