Replies: 1 comment 3 replies
-
I think you're asking for a "best known configuration". i.e. https://blogs.gnome.org/hughsie/2021/11/29/firmware-best-known-configuration-in-fwupd/ -- tell me if that might work. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Description
Recently I have been working on embedding firmware for custom peripherals or any peripheral in OS images.
This is especially useful for Edge systems, where some parts of the system could be peripherals (i.e., a radar, imaging device, sensors, controls, actuators) very specific to the system.
Having this capability, when the system image is updated (via OTA or any other means, USB stick, for example), the firmware for those peripherals is contained in the image.
In this type of environment, having fwupd update selected peripherals at boot would be useful. Even thinking further, in systems (like ostree based) that support A/B images, in this case via greenboot checks, it could be useful to let configuration mandate downgrades, for example:
scenario 1
a) System boots on version A, attached device y has firmware version 1.00, the system contains .cab for y in 1.00, fwupd boots normally nothing happens.
b) System reboots to version B, attached device y has firmware version 1.00, the system contains .cab for y 1.10, fwupd updates y to 1.10, then finishes booting. The application passes checks, greenboot declares all good. The system stays in B.
scenario 2, system update failure in A/B system
a) System boots on version A, attached device y has firmware version 1.00, the system contains .cab for y in 1.00, fwupd boots normally nothing happens.
b) System reboots to version B, attached device y has firmware version 1.00, the system contains .cab for y 1.10, fwupd updates y to 1.10, then finishes booting. The application fails, greenboot declares bad and tries to boot B again, but fails again.. System reboots to A.
c) System boots on version A, attached device y has firmware version 1.10, the system contains a .cab for y in 1.00, and configuration says downgrade for y is mandatory, fwupd downgrades y to 1.00 and finishes booting.
Proposal
Under those scenarios, a configuration similar to this is proposed:
under '/etc/fwupd/auto-updates.d/'
device-a.conf
device-b.conf
Notes
Upgrade or downgrade is always performed into the latest version available on the selected remote.
Keywords
remote
: allows specification of the remote to source the latest version available for a device, for example, if we want to avoid network sources to be effective for this purpose.guid
(mandatory) specifies the GUID of the device being referencesupdate
(defaults to true) enables the update for this device. An update is performed if the remote's latest version for the device GUID is > the device version.downgrade
(defaults to false) enables the downgrade for this device if the remote latest version for the device GUID is < than the device version.Beta Was this translation helpful? Give feedback.
All reactions