Debian – What are the differences between Debian Linux Kernel and Linux-libre

debianlinux-kernellinux-libre

What are the differences between Debian Linux Kernel and Linux-libre in terms of freedom related issues?

I know the Debian Linux Kernel can load non-free modules while in Linux-libre they have been blacklisted.

Best Answer

You've identified pretty much the only difference: the Debian kernel can load firmware, the Linux-libre kernel can't. Both kernels are free software, even as far as the Free Software Foundation is concerned — the FSF considers the Debian GNU/Linux distribution to be free software as long as no repositories are used beyond the main one; the issue they have with Debian is that Debian hosts non-free repositories on the same infrastructure.

Philosophically speaking, you could consider the difference to be as follows:

  • the Debian kernel doesn't include any non-free firmware (bugs aside), but it allows users to load non-free firmware if they wish to do so;
  • the Linux-libre kernel doesn't include any non-free firmware or anything looking like firmware, and it prevents users from loading non-free firmware even if they wish to do so.

Linux-libre is built by running a deblob script on the kernel source code. This goes through the kernel source code, and makes various firmware-related changes:

  • any firmware for which source code is available is preserved, but the script makes sure the source code is available;
  • any module requiring firmware is stripped of the ability to load the firmware;
  • any source code which looks like firmware (sequences of numbers) is removed;
  • any file containing only firmware (e.g. the contents of firmware/radeon) is removed.

Some extra work goes into Linux-libre to restore functionality in certain cases; for example, the radeon module is modified so that some r600-supported cards can still be used, even without firmware. (Look for "Something like this might work on other radeon cards too." in the deblob script.)

The Debian distribution includes one firmware package, firmware-linux-free; this contains only firmware for which source code is available. The non-free repositories also contain a number of firmware packages built from firmware-nonfree, but these aren't part of the main distribution.

Related Question