I am looking to integrate the Void Linux's kernels firmware collection into the kernels made for Kennel Linux variants and ultimatley be able to produce a fdrv SFS for use with usrmerge and non-usrmerge Puppy Linux systems.
The different firmware groups (Intel, AMD for example) have separate packages for Void Linux so very hardware specific firmware collection can be used, but with a collection covering a lot of different devices in Void Linux can be around 880 M in size!
In woof-CE kernel-kit
there seems to be a mechanism to filter the firmware and create smaller fdrv SFS of around 68-100 M in size. This filtering seems to based on the size of the firmware files but not sure yet on how this is actually achieved.
The plan is to take the Void Linux /usr/lib/firmware
and trim it down to a smaller size fdrv SFS. A balanced fdrv SFS that can be used by huge kernels found in Puppy Linux and kernels huge or Void Linux type used in KLV's.
Not much yet discovered but here is something that perhaps gets things started.
Code: Select all
lsmod | cut -d ' ' -f 1 | tr '_' '?' | xargs -I % find /lib/modules/ -name "%.*" | xargs -I % modinfo % | awk '$1 == "firmware:" { print $2}'
seems to do this:
Lists loaded modules (keep in mind any builtin kernel module that requires a firmware is left-out here)
extract first column, and replace '_' in names with single-char wildcard, as often filenames will instead use '-'
find said module-file, and hand in to modinfo to derive a list of firmware blobs