Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pop-os/system76-firmware
System76 Firmware Tool and Daemon
https://github.com/pop-os/system76-firmware
Last synced: about 1 month ago
JSON representation
System76 Firmware Tool and Daemon
- Host: GitHub
- URL: https://github.com/pop-os/system76-firmware
- Owner: pop-os
- License: gpl-3.0
- Created: 2018-03-28T16:04:03.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-16T22:26:51.000Z (about 2 months ago)
- Last Synced: 2024-10-29T18:08:13.564Z (about 1 month ago)
- Language: Rust
- Homepage:
- Size: 421 KB
- Stars: 75
- Watchers: 18
- Forks: 28
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- SSD-Guide - System76 Firmware - line inferface) tool for installing firmware updates. Also, included is the system76-firmware-daemon package, which has a systemd service that exposes a DBUS API for handling firmware updates. (Firmware Tools, Libraries, and Frameworks)
- CPLD-Guide - System76 Firmware - line inferface) tool for installing firmware updates. Also, included is the system76-firmware-daemon package, which has a systemd service that exposes a DBUS API for handling firmware updates. (Firmware Tools, Libraries, and Frameworks)
- VHDL-Guide - System76 Firmware - line inferface) tool for installing firmware updates. Also, included is the system76-firmware-daemon package, which has a systemd service that exposes a DBUS API for handling firmware updates. (Firmware Tools, Libraries, and Frameworks)
README
# system76-firmware
The system76-firmware package has a CLI tool for installing firmware updates. Also included is the system76-firmware-daemon package, which has a systemd service that exposes a DBUS API for handling firmware updates.
## Dependencies
- cargo
- dbus
- rustc
- systemd## Make Targets
The following make targets are supported:
- `make all` - compile all binaries
- `make clean` - remove compiled binaries
- `make install` - install binaries and configuration files
- `make uninstall` - uninstall binaries and configuration file
- `make vendor` - prepare source for offline compilation
- `make distclean` - remove prepared source and compiled binaries## Installation
```
make
sudo make install
```## Packaging
In order to package this, you need `cargo-vendor`:
```
cargo install cargo-vendor
```You can then run the following to create an offline-capable package:
```
make vendor
```Now you can compile and install the package.
To clean out the vendor source, you can run this command:
```
make distclean
```## API
The system76-firmware-daemon will download the latest firmware package, if it has
changed, and will provide a DBUS interface for a user to query the current firmware
status, query the update information, and schedule an update.The DBUS API is as follows:
- `Bios() -> (String model, String version)`
Query the BIOS model and version.
- `EmbeddedController(Boolean primary) -> (String project, String version)`
Query the embedded controller for project and version. Optionally, a second
embedded controller can be queried.
- `ManagementEngine() -> (Boolean enabled, String version)`
Query the ME status and version.
- `Download() -> (String digest, String changelog)`
Download the latest changelog information
- `Schedule(String digest) -> ()`
Prepare the latest firmware update for installation
- `Unschedule() -> ()`
Cancel installation of the latest firmware update