Quirks are defined by creating an INI style file in the compiled in quirk location (typically /usr/share/fwupd/quirks.d
).
The quirk is declared by creating a group based upon the DeviceInstanceId
or GUID
and then mapping out values to keys.
All fwupd devices support the following quirks:
Sets the plugin to use for a specific hardware device.
DeviceInstanceId=USB\VID_0763&PID_2806
csr
Assigns optional quirks to use for a 8bitdo device
DeviceInstanceId=USB\VID_0763&PID_2806
is-bootloader
none
: no device quirksis-bootloader
: device is in bootloader modeSets a summary for a specific hardware device.
DeviceInstanceId=USB\VID_0763&PID_2806
An open source display colorimeter
Adds an icon name for a specific hardware device.
DeviceInstanceId=USB\VID_0763&PID_2806
media-removable
Sets a name for a specific hardware device.
DeviceInstanceId=USB\VID_0763&PID_2806
ColorHug
Adds an extra GUID for a specific hardware device. If the value provided is not already a suitable GUID, it will be converted to one.
DeviceInstanceId=USB\VID_0763&PID_2806
537f7800-8529-5656-b2fa-b0901fe91696
Adds an counterpart GUID for a specific hardware device. If the value provided is not already a suitable GUID, it will be converted to one. A counterpart GUID is typically the GUID of the same device in bootloader or runtime mode, if they have a different device PCI or USB ID. Adding this type of GUID does not cause a “cascade” by matching using the quirk database.
DeviceInstanceId=USB\VID_0763&PID_2806
537f7800-8529-5656-b2fa-b0901fe91696
Adds an extra GUID to mark as the parent device. If the value provided is not already a suitable GUID, it will be converted to one.
DeviceInstanceId=USB\VID_0763&PID_2806
537f7800-8529-5656-b2fa-b0901fe91696
Adds one or more virtual devices to a physical device. To set the object type of the child device use a pipe before the object type, for instance: FuRts54xxDeviceUSB\VID_0763&PID_2806&I2C_01
If the type of device is not specified the parent device type is used. If the values provided are not already suitable GUIDs, they will be converted.
DeviceInstanceId=USB\VID_0763&PID_2806
Sets a vendor name for a specific hardware device.
DeviceInstanceId=USB\VID_0763&PID_2806
Hughski Limited
Sets a vendor ID for a specific hardware device.
DeviceInstanceId=USB\VID_0763&PID_2806
USB:0x123A
Sets a version for a specific hardware device.
DeviceInstanceId=USB\VID_0763&PID_2806
1.2
Sets the minimum allowed firmware size.
DeviceInstanceId=USB\VID_0763&PID_2806
512
Sets the maximum allowed firmware size.
DeviceInstanceId=USB\VID_0763&PID_2806
1024
Sets the estimated time to flash the device
DeviceInstanceId=USB\VID_0763&PID_2806
60
Sets the version format the device should use for conversion.
DeviceInstanceId=USB\VID_0763&PID_2806
quad
Plugins may add support for additional quirks that are relevant only for those plugins. View them by looking at the README.md
in plugin directories.
Here is an example as seen in the CSR plugin.
[DeviceInstanceId=USB\VID_0A12&PID_1337] Plugin = csr Name = H05 Summary = Bluetooth Headphones Icon = audio-headphones Vendor = AIAIAI [DeviceInstanceId=USB\VID_0A12&PID_1337&REV_2520] Version = 1.2
Additional samples can be found in other plugins.