-
Notifications
You must be signed in to change notification settings - Fork 411
Getting involved
fwupd is a GLib based project that runs with a client-server architecture. The daemon runs with elevated permissions, typically managed by systemd. The client communicates with the daemon over dbus. All web communications are handled by the client at a reduced permissions level.
To make implementing a client simple, a library library implements and abstracts a majority of the client/server communications path.
Firmware is flashed by the daemon by a variety of plugins that communicate over the appropriate bus (USB, Udev, Hidraw, I2C, etc).
Documentation is available at https://fwupd.github.io.
Compilation instructions are maintained at https://github.com/fwupd/fwupd/wiki/Compilation To build test packages for distros, see https://github.com/fwupd/fwupd/tree/master/contrib.
A continuous integration service is maintained across a variety of distributions and compilation configurations at https://github.com/fwupd/fwupd/tree/master/contrib/ci.
To debug fwupd plugins, there are a few relevant debugging mechanisms built-in.
Launch the daemon with --verbose
as an argument and it will show as much debugging output as possible.
Launching with --daemon-verbose=$Domain
will show verbose output for the $Domain, which typically matches a particular plugin
Launching with --plugin-verbose=$PLUGIN
will show raw bus communication output for the $PLUGIN, which typically is very verbose.
Running # fwupdmgr modify-config VerboseDomains $DOMAIN
will set $DOMAIN
to be output in verbose mode next time the daemon is restarted.
All fwupd devices generate GUIDs that are built from instance-ID strings. These typically reference a logical connection to a device. To see the GUIDs for a device run fwupdmgr get-devices
. To see what string was used to build the GUIDs, run sudo fwupdmgr get-devices
.
As an example:
├─PC601 NVMe SK hynix 512GB:
│ Device ID: c6a0cfba7c7d81e253fce571e1d1e9f6003ae1c7
│ Summary: NVM Express Solid State Drive
│ Current version: 80002111
│ Vendor: SK hynix (NVME:0x1C5C)
│ Serial Number: SI94N052311304S07
│ Flags: internal|updatable|require-ac|registered|needs-reboot|no-auto-instance-ids
│ GUIDs: f5396862-8816-5437-823e-d7899a32e667 ← STORAGE-DELL-108788
│ dff8f310-d5db-11e8-9f8b-f2801f1b9fd1
In this case STORAGE-DELL-108788 was used to build the GUID f5396862-8816-5437-823e-d7899a32e667. If you are using this for metadata, placing this GUID in the XML file will allow matching the string STORAGE-DELL-108788