Linux 5.3 Picks Up Support For Compressed Firmware Files - Measurable Storage Savings
With the growing number of devices requiring loadable firmware/microcode at run-time and Linux continuing to simply support a lot more hardware, the size of /lib/firmware has ballooned in recent years while now for the upcoming Linux 5.3 kernel release is the ability to compress these firmware files for fairly significant space savings.
SUSE's Takashi Iwai has been working on support for loading compressed firmware files and with the Linux 5.3 driver core patches there is this support. On his own system, he started out with /lib/firmware occupying over 400MB of the disk. When making use of XZ compression, this dropped to around 130MB in total. Thus easily being able to shave off several hundred megabytes from the disk due to all these firmware blobs is an easy win.
The firmware files remain compressed on disk while at firmware loading time into the kernel the decompression is done. Only XZ compression is currently supported. When the CONFIG_FW_LOADER_COMPRESS option is enabled, the kernel will first try to load a firmware file of the original name but otherwise falls back trying to load any file with the same name appended by the .xz extension.
This compressed firmware loading support was sent in as part of the driver core patches for the Linux 5.3 merge window that opened up this week.
SUSE's Takashi Iwai has been working on support for loading compressed firmware files and with the Linux 5.3 driver core patches there is this support. On his own system, he started out with /lib/firmware occupying over 400MB of the disk. When making use of XZ compression, this dropped to around 130MB in total. Thus easily being able to shave off several hundred megabytes from the disk due to all these firmware blobs is an easy win.
The firmware files remain compressed on disk while at firmware loading time into the kernel the decompression is done. Only XZ compression is currently supported. When the CONFIG_FW_LOADER_COMPRESS option is enabled, the kernel will first try to load a firmware file of the original name but otherwise falls back trying to load any file with the same name appended by the .xz extension.
This compressed firmware loading support was sent in as part of the driver core patches for the Linux 5.3 merge window that opened up this week.
11 Comments