What is the minimal set of firmware files I need for my hardware?

Doron Behar doron.behar at gmail.com
Mon May 4 08:56:40 EDT 2020


On Mon, May 04, 2020 at 12:45:55PM +0200, Greg KH wrote:
> On Mon, May 04, 2020 at 01:26:35PM +0300, Doron Behar wrote:
> > I hope this question fits to this List.
> > 
> > Today I learned that my distro's `linux-unfree-firmware` package is 491
> > Mb in size. I'm pretty sure my hardware doesn't need all of these files.
> > Maybe different Linux distros call this package differently, but I'm talking
> > about the firmware files that come from:
> > https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/
> > 
> > I think I can reduce this disk usage if I'll only know what files
> > I can exclude from there.
> > 
> > Is there any official documentation, that states exactly what files from
> > That git repo are needed per device / computer model? Perhaps the official
> > documentation of my Computer's hardware will state that? There's a Linux
> > from scratch webpage[1] that gives some info for popular hardware, but I'm
> > wondering if there's a bit more "official" information available
> > somewhere.
> > 
> > [1]: http://linuxfromscratch.org/blfs/view/svn/postlfs/firmware.html
> 
> The kernel macro MODULE_FIRMWARE() will show the firmware file that a
> specific kernel module needs.  So if you look a the output of modinfo
> for all of the modules that your system needs, you will see a "firmware"
> line that shows the name that your hardware needs for that specific
> driver/module.

Thanks for replying greg,

So I have the command `modinfo` available, should I just iterate _all_
the files in /usr/lib/modules/5.6.7/kernel ? For example:

```
$ modinfo /usr/lib/modules/5.6.7/kernel/net/ieee802154/ieee802154.ko.xz
filename:       /usr/lib/modules/5.6.7/kernel/net/ieee802154/ieee802154.ko.xz
author:         Dmitry Eremin-Solenikov
description:    IEEE 802.15.4 configuration interface
license:        GPL v2
depends:        
retpoline:      Y
intree:         Y
name:           ieee802154
vermagic:       5.6.7 SMP mod_unload 
sig_id:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   unknown
signature:      
```

Doesn't seem informative regarding firmware files. Should I expect other
.ko.xz files to give a line with `firmware: `?

Plus, how do I know what modules does my system need and which it
doesn't?

Doron.



More information about the Kernelnewbies mailing list