Skip to content

<msm8916>: Reduce rootfs size using new firmware packaging

Administrator requested to merge 8916-majorfw into master

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

Merge request reports

Loading