DOKK Library

Introducing Linux-libre-firmware

Authors Jason Self

License GPL-3.0-or-later


Introducing Linux-libre-firmware                                                           Home

Sun, 12 Nov 2017                                                                           Linux-libre
Version 4.14 of the kernel named Linux was released today. One of the changes is the
removal of the in-kernel firmware subtree. This, sadly, doesn't get rid of all of the      GitWeb
proprietary software inside the kernel but that wasn't really their goal anyway. It's
really just a cleaning up of something that wasn't being used anymore.                     How To
The kernel developers actually began moving some of the proprietary bits into a            Articles
separate location many years ago: The first commits to linux-firmware.git were in
2008, while 2009 marked the addition of a file to the kernel tree telling people not to
                                                                                           RSS Feed
add new stuff to the firmware subtree anymore. It seems that they just forgot to delete
that subtree once the transition was done. Well, they finally remembered.
                                                                                           About Me
We can tell that software freedom wasn't their motivating factor because they deleted
all of what little free firmware was in there too.                                         Contact Me
As Alexandre Oliva explains in his release announcement of Linux-libre 4.14, the
                                                                                           GPL enforced
actual location of the proprietary software doesn't really matter since there are some
indicators that they may very well be derivative works of the kernel, and a GPL
violation regardless.                                                                       If you appreciate any of the things I
                                                                                            am doing you can make a donation.
Since even what little free firmware existed was also removed and there wasn't really
a clean place to send people to get it (because linux-firmware.git primarily consists of
proprietary software), I took Alexandre's recommendation and started a replacement
that only would only consist of freely-licensed firmware, naming it linux-libre-

I quickly found that some of these free ones either weren't buildable from source, or
didn't run if they were, and had probably been like that for a long time. In one example
the assembler that was needed did build but immediately segfaulted. In another there
were some problems building the cross-compiling toolchain, which was a prerequisite
to building the actual firmware.

My guess was that most people probably didn't build these from source and instead
just grabbed the binaries from linux-firmware.git and so didn't notice when there were

As I continued looking into this I found that Debian had these firmwares and decided
to see how they were handling it, in case patches to fix the problems already existed
but had not migrated upstream. I found that Debian also didn't build them from source
either: They just re-used the same pre-compiled firmware files from and provided the
same (broken) source. I imagine that's probably a violation of their own DFSG.

In the end I was able to either locate patches or make them (and sent upstream) but
that's only part of it if no one actually ever bothers to compile the software from
source. I wonder how other distros handle it. I've not yet looked.

The git repository for linux-libre-firmware can be found at
libre-firmware.git and release tarballs will be shared through

This is probably a good time to remind everyone about the importance of free
firmware. If you compare the amount of stuff that's in linux-firmware.git to what is
actually free and available in linux-libre-firmware.git we are clearly losing the software
freedom battle here.

All contributions are welcome.

Copyright © 2017 Jason Self. See license.shtml for license conditions. Please copy and share.