There is no "official" documentation for every piece of hardware there is and the firmware files that it requires, unfortunately. But, it is possible to know exactly what firmware files are needed by your hardware via hacking a bit on the Linux kernel build system.
More over, even if you do discover exactly what firmware files your hardware uses, you will get eventually a not-too-short list of files, that will need to be updated frequently - after pretty much every release (git tag) of https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/. This means that you won't be able to reliably filter out firmware files straight from the list that you'll soon learn to generate.
If you are still interested in this, follow this steps:
- Download the latest release of the kernel from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ .
- Run:
make localmodconfig
.
- This will generate a
.config
file that will contain a list of build parameters according to your current kernel.
- Run
make
.
- This will build the kernel, so it might take a while.
- You'll might need to install some dependencies to make the build finish.
- After
make
will finish, you'll have a bunch of .ko
files which are kernel module files.
- Run this command:
find -name '*.ko' -exec modinfo {} \; | awk '$1 == "firmware:" { print $2}'
The last command prints a list of firmware files which will probably be found in your distro's linux-unfree-firmware
package. These are the files your hardware needs.
Credits: https://lists.kernelnewbies.org/pipermail/kernelnewbies/2020-May/020818.html