<msm8916>: Reduce rootfs size using new firmware packaging
Recently we switched to msm-firmware-loader for the msm8916-based devices: This has lots of advantages, including a smaller rootfs because we no longer need to redistribute all the firmware blobs. Unfortunately, devices can only partially benefit from this: There are still a lot of unusable firmware blobs included in all postmarketOS installations. The problematic dependency is linux-firmware-qcom
. While it sounds like a good idea at first to use linux-firmware packages directly, even the vendor-specific separation in Alpine (-qcom
, -intel
, etc) is not enough to filter out unused firmware.
MSM8916 devices with secure boot can only make use of 0.008 MiB of linux-firmware-qcom (the unsigned GPU firmware), while linux-firmware-qcom has a size of 60 MiB and it keeps growing. The major part are firmware blobs for completely unrelated SoCs.
This MR refactors the firmware packaging for all msm8916-based devices to instead install all firmware through separate packages. The GPU firmware is added to the existing firmware-qcom-db410c
, and linux-firmware-qcom
is no longer installed. On samsung-serranove this reduces the size for a minimal rootfs from 485 MiB
to 425 MiB
.
While at it, I made some cleanup and consistency fixes (partially already merged through !2613 (merged)). Also, I adjusted the firmware packages for new paths that were chosen upstream for DB410c and squash the firmware blobs using "pil-squasher" (This reduces the file count a bit, getting rid of the separate .b*
firmware files but otherwise makes little difference only...)
When reviewing this MR, I would strongly recommend looking at the commits separately rather than the combined diff. I separated it based on the same kind of changes with more details in the commit messages. Looking at the combined diff might cause brain damage. You have been warned.
Cc: @TravMurav