fwupd/plugins
Richard Hughes 90112823df udev: Manally call fu_device_setup() to convert the instance IDs
The udev plugin is somewhat special as it uses a non-subclassed FuDevice that
never gets 'opened'.

This means that we never automatically call fu_device_setup() and thus the
instance IDs are not converted into GUIDs before the device is added.
2019-02-07 11:26:50 -06:00
..
altos trivial: Add the missing protocol IDs to the plugin READMEs 2019-01-29 22:28:09 +00:00
amt Add fwupd_guid_from_string() to drop dep on uuid 2019-02-06 14:48:04 +00:00
ata Add fwupd_guid_from_string() to drop dep on uuid 2019-02-06 14:48:04 +00:00
colorhug trivial: Add the missing protocol IDs to the plugin READMEs 2019-01-29 22:28:09 +00:00
csr trivial: Add the missing protocol IDs to the plugin READMEs 2019-01-29 22:28:09 +00:00
dell Add fwupd_guid_from_string() to drop dep on uuid 2019-02-06 14:48:04 +00:00
dell-dock Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
dell-esrt Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
dfu dfu: Fill holes when reading SREC files 2019-02-06 14:48:48 +00:00
ebitdo trivial: Add the missing protocol IDs to the plugin READMEs 2019-01-29 22:28:09 +00:00
fastboot fastboot: Use a much longer timeout as the removal delay 2019-02-01 10:26:43 +00:00
flashrom trivial: Add the missing protocol IDs to the plugin READMEs 2019-01-29 22:28:09 +00:00
nitrokey trivial: Fix potential compile failures for high -j values 2019-02-01 16:52:16 +00:00
nvme Add fwupd_guid_from_string() to drop dep on uuid 2019-02-06 14:48:04 +00:00
redfish trivial: Fix potential compile failures for high -j values 2019-02-01 16:52:16 +00:00
rts54hid trivial: Add the missing protocol IDs to the plugin READMEs 2019-01-29 22:28:09 +00:00
rts54hub trivial: Add the missing protocol IDs to the plugin READMEs 2019-01-29 22:28:09 +00:00
steelseries Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
superio Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
synapticsmst Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
test Allow a plugin to set _ANOTHER_WRITE_REQUIRED to run more than one plugin 2019-02-04 14:54:54 +00:00
thunderbolt Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
thunderbolt-power Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
udev udev: Manally call fu_device_setup() to convert the instance IDs 2019-02-07 11:26:50 -06:00
uefi Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
unifying Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
upower trivial: upower: correct a logic error from ed021ab 2019-01-31 14:56:08 -06:00
wacom-raw wacom-raw: Check the InstanceID rather than GUID 2019-02-06 08:02:16 +00:00
wacom-usb trivial: Fix the spelling of 'module' in wac-usb 2019-02-06 14:48:48 +00:00
meson.build Do not use efivar just to print a mixed endian GUID 2019-02-04 15:19:57 +00:00
README.md trivial: Clarify our position on proprietary plugins 2019-01-18 12:21:46 -06:00

Adding a new plugin

An extensible architecture allows for providing new plugin types (for reading and writing different firmware) as well as ways quirk their behavior.

You can find more information about the architecture in the developers section of the fwupd website.

If you have a firmware specification and would like to see support in this project, please file an issue and share the spec. Patches are also welcome.

We will not accept plugins that upgrade hardware using a proprietary Linux executable, library, or DBus interface.

Plugin interaction

Some plugins may be able to influence the behavior of other plugins. This includes things like one plugin turning on a device, or providing missing metadata to another plugin.

The ABI for these interactions is defined in: https://github.com/hughsie/fwupd/blob/master/src/fu-device-metadata.h

All interactions between plugins should have the interface defined in that file.