FWUPD Explores Improvement For Easier & More Robust Firmware Updating On Linux
Due to the weeks or months it takes Linux distributions to move to new FWUPD releases, it's not easy to get out a new quirks table for FWUPD even when no plug-in changes are required. That time needed before new FWUPD releases are adopted/widespread is one of the significant barriers to new devices enjoying firmware updating support under Linux. Lead developer of Fwupd and the Linux Vendor Firmware Service (LVFS), Richard Hughes of Red Hat, has been exploring an alternative in this area.
Rather than relying on a VID/PID quirks table for matching devices to FWUPD plug-ins, he's looking at the possibility of the device firmware supplying the necessary information itself so that it wouldn't require any quirks table additions. For the firmware to be able to communicate the FWUPD plug-in to the host system, he's looking at possibly using the Microsoft OS Descriptors specification. The Microsoft OS Descriptors specification allows IHVs to store in firmware information that can be used for helping to install/configure the device under Windows.
Richard is looking at possibly making use of the Microsoft OS 2.0 Descriptors Specification with descriptor sets so that firmware could communicate to the system what FWUPD plug-in or details are needed for firmware updating support. The 2.0 specification can be found on Microsoft Docs.
Of course, this requires hardware vendors to actually opt-in to making this information available via their firmware. Richard hopes that LVFS/FWUPD has enough traction now especially due to the Google ChromeOS use that IHVs will be more willing to make the firmware changes now to benefit this use-case. In turn for the vendors it would mean an easier roll-out of firmware updating support on Linux / Chrome OS when the existing plug-ins are suitable and avoiding the lengthy turnaround time on getting out new quirks table updates.
See Richard's blog on this new proposal and he indicated that he plans to start prototyping the new code next week if all goes well.