Saving the quirks in the GResource section worked well, but it made the build system very complicated and also meant the .data section was duplicated in both `fwupd` and `fwupdtool` -- negating a lot of the hard-fought savings. Simplify this feature so that we just `cat` all the quirk files together, then gzip them into a single file. This means that at startup fwupd only needs to check the mtime of one file, and weirdly it's actually faster to load a smaller compressed file from disk that it is to load multiple uncompressed files. |
||
|---|---|---|
| .. | ||
| fu-mtd-device.c | ||
| fu-mtd-device.h | ||
| fu-plugin-mtd.c | ||
| fu-self-test.c | ||
| meson.build | ||
| mtd.quirk | ||
| README.md | ||
MTD
Introduction
The Memory Technology Device (MTD) interface is a way of abstracting flash devices as if they were normal block devices.
See http://www.linux-mtd.infradead.org/doc/general.html for more details.
This plugin supports the following protocol ID:
- org.infradead.mtd
GUID Generation
These devices use custom DeviceInstanceId values built from the device NAME and DMI data, e.g.
MTD\NAME_FactoryMTD\VENDOR_foo&NAME_bazMTD\VENDOR_foo&PRODUCT_bar&NAME_baz
If the FirmwareGType quirk is set for the device then the firmware is read back from the device at
daemon startup and parsed for the version number.
In the event the firmware has multiple child images then the device GUIDs are used as firmware IDs.
Update Behavior
The MTD device is erased in chunks, written and then read back to verify.
Vendor ID Security
The vendor ID is set from the system vendor, for example DMI:LENOVO
External Interface Access
This plugin requires read/write access to /dev/mtd.