GPL (GNU General Public License)    
3.6/5 22
The official 'vanilla' Linux kernel from Linus Torvalds





Linux-libre is a version of the official Linux kernel with the non-free software removed. The the official "vanilla" Linux kernel from Linus that gets distributed on has non-free software in it. Here is one example from linux-2.6.24/drivers/net/tg3.c:


* tg3.c: Broadcom Tigon3 ethernet driver.
* Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (
* Copyright (C) 2001, 2002, 2003 Jeff Garzik (
* Copyright (C) 2004 Sun Microsystems Inc.
* Copyright (C) 2005-2007 Broadcom Corporation.
* Firmware is:
* Derived from proprietary unpublished source code,
* Copyright (C) 2000-2003 Broadcom Corporation.
* Permission is hereby granted for the distribution of this firmware
* data in hexadecimal or equivalent format, provided this copyright
* notice is accompanying it.

It then has screenfulls of non-free code like this:

0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000,
0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd4000, 0x03a0f021, 0x3c100800,
0x26100000, 0x0e000010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe,
0xafbf0018, 0x0e0005d8, 0x34840002, 0x0e000668, 0x00000000, 0x3c030800,
0x90631b68, 0x24020002, 0x3c040800, 0x24841aac, 0x14620003, 0x24050001,
0x3c040800, 0x24841aa0, 0x24060006, 0x00003821, 0xafa00010, 0x0e00067c,
0xafa00014, 0x8f625c50, 0x34420001, 0xaf625c50, 0x8f625c90, 0x34420001,
0xaf625c90, 0x2402ffff, 0x0e000034, 0xaf625404, 0x8fbf0018, 0x03e00008,
0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe0, 0xafbf001c,
0xafb20018, 0xafb10014, 0x0e00005b, 0xafb00010, 0x24120002, 0x24110001,
0x8f706820, 0x32020100, 0x10400003, 0x00000000, 0x0e0000bb, 0x00000000,
0x8f706820, 0x32022000, 0x10400004, 0x32020001, 0x0e0001f0, 0x24040001,
0x32020001, 0x10400003, 0x00000000, 0x0e0000a3, 0x00000000, 0x3c020800,
0x90421b98, 0x14520003, 0x00000000, 0x0e0004c0, 0x00000000, 0x0a00003c,
0xaf715028, 0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 0x03e00008,
0x27bd0020, 0x27bdffe0, 0x3c040800, 0x24841ac0, 0x00002821, 0x00003021,
0x00003821, 0xafbf0018, 0xafa00010, 0x0e00067c, 0xafa00014, 0x3c040800,
0x248423d8, 0xa4800000, 0x3c010800, 0xa0201b98, 0x3c010800, 0xac201b9c,
0x3c010800, 0xac201ba0, 0x3c010800, 0xac201ba4, 0x3c010800, 0xac201bac,
0x3c010800, 0xac201bb8, 0x3c010800, 0xac201bbc, 0x8f624434, 0x3c010800,
0xac221b88, 0x8f624438, 0x3c010800, 0xac221b8c, 0x8f624410, 0xac80f7a8,
0x3c010800, 0xac201b84, 0x3c010800, 0xac2023e0, 0x3c010800, 0xac2023c8,

Why Linus Torvalds tolerates and distributes this I have no idea. He surely has some rationale buried in a LKML flamewar somewhere, but it doesn't change the fact that there is clearly non-Free code in the Linux kernel.

A little over three years ago BLAG made a commitment[2] to RMS to only distribute software that met the Free Software Definition. Since then, I have learned about the issues with the non-Free Linux kernel (IIRC around the time gnewsense popped up). I kept punting the issue hoping it would just go away and upstream would solve it. They haven't and the blobs remained in the kernel.

After talking to Jaromil from dynebolic, looking at the gnewsense approach (which has to remove additional non-free blobs that ubuntu adds), and debian's approach I felt a single clean source tarball would be of benefit to everyone who wants a truly Free Linux kernel. This new cleaned kernel source has been dubbed "linux-libre" and I am its janitor.

If you actually go there, you'll see a TESTING directory--currently that is where the tarballs are stored, but once everything is finalized they'll be in the main directory. One issue I wanted to settle before moving things from TESTING was a version numbering system that we could live with long term. I have settled on the following approach, which is subject to change if anyone comes up with good objections: I'm adding a last digit to show the "libre" release based on the upstream kernel. Examples:

Linus version Linux Libre version
2.6.24 first libre release
2.6.24 second libre release first libre release second libre release sixth libre release

So the latest linux-libre release is second spin based on upstream's In sum, the last digit is mine, the previous digits match upstream.

The `deblob` script used to clean the kernel is in the scripts/ directory of the tarball and can be used to clean other kernels.

Now that there is a nice tarball to use as a base, BLAG will be building it's own kernels based upon that and not distributing any Fedora kernels. We have unreleased ISOs spun that are using this new kernel and kernel RPMs are hitting the repository. "Real-soon-now" we'll have new BLAG releases.
Last updated on August 9th, 2010

0 User reviews so far.