GNU Linux-libre, Free as in Freedo
Linux, the kernel developed and distributed by Linus Torvalds et al, contains non-Free Software, i.e., software that does not respect your essential freedoms, and it induces you to install additional non-Free Software that it doesn't contain.
Free System Distributions, removing software that is included without source code, with obfuscated or obscured source code, under non-Free Software licenses, that do not permit you to change the software so that it does what you wish, and that induces or requires you to install additional pieces of non-Free Software.is a project to maintain and publish 100% Free distributions of Linux, suitable for use in
Our releases can be easily adopted by 100% Free GNU/Linux distros, as well as by their users, by distros that want to enable their users to choose freedom, and by users of those that don't.
Free Software Foundation Latin America (FSFLA) joined the (then non-GNU) Linux-libre project as part of its campaign dubbed "¡Sé Libre!", to encourage and enable users to go beyond using some Free Software, and rather seek and choose freedom.
- releases: source tarballs tracking upstream releases, from which we removed blobs and code that induces users to install non-Free Software.
- SIGNING-KEY: The GnuPG keys used to sign source tarballs, patches, Freed-ora packages, and the keys that sign other repositories. For each repository R, there's a corresponding SIGNING-KEY.R in the download tree.
- planet: .debs for 32-bit x86 of recent sources. Read more.
- freesh: .debs for various architectures of the latest sources available. Read more.
- rt: .debs of recent sources with real-time support. Read more.
- freed-ora: .rpms packages tracking Fedora kernel builds. Read more.
- lemote/gnewsense: .debs for gNewSense/mipsel, for Lemote Yeeloong laptops. Read more.
- freed-ebian: (OBSOLETE) .debs tracking Debian kernel builds. Mirrored from Robert Millan's repository.
- Mirrors: The repositories above are available from our network of mirrors too.
- Other binaries: There are other distributions of GNU Linux-libre binaries from third parties. We maintain a list.
2014-10-05 - GNU Linux-libre 3.17-gnu
Disabled blob loading in the drivers for Intel QuickAssist Technology, Silicon Labs Si2157 and si2165, Broadcom IEEE802.11n PCIE FullMAC WLAN, xHCI support for Renesas R-Car SoCs. Adjusted cleaning up of go7007 driver, moved out of staging. Dropped deblobbing of wlags49h2, wlags49h25, keucr; the drivers were removed. Updated blob names in radeon, si2168, code v4l, s5p_mfc, xc4000, ti-st, ath6kl, brcmfmac, p54, and iwlwifi drivers.
2014-08-07 - GNU Linux-libre 3.16-gnu
Lots of new blobs and blob requests had to be removed for this release: ast_dp501, radeon, drx39xyj, m88ds3103, si2168, s5k5baf, iwlwifi, rsi_91x, rtl8192ee, rtl8723au, rtl8723be, rtl8821ae, bt_nokia_h4p, mxuport, adau1761, and adau1781; dgap and sst-acpi are back after rewrites that required new deblobbing patterns too.
2014-06-08 - GNU Linux-libre 3.15-gnu
Upstream dropped it913x and dgap drivers and added a few new blob names and corresponding requests, all deblobbed in 3.15-gnu. Nouveau and radeon also grew new longish sequences that turned out not to be blobs, so those are explicitly retained.
2014-03-31 - GNU Linux-libre 3.14-gnu: “Freedom Pi”
Dropped checks for aic7xxx_old and cs46xx firmware and sources. Added reject_firmware_direct. Adjusted deblobbing of moved microcode loaders. Updated deblobbing of bnx2x, bt_mrvl, cs46xx. Dropped deblobbing of btmtk (removed upstream).
2014-01-20 - GNU Linux-libre 3.13-gnu
Deblobbed cx24117, vpdma, wcn36xx, and btmrvl. Updated deblobbing of rtl8188eu, em28xx, ath10k, brcmfmac, iwlwifi, readon, and wl1251.
2013-11-03 - GNU Linux-libre 3.12-gnu
Deblobbed msm, pn544_i2c, r8188eu, and dgap drivers. Updated deblobbing of s5p_mfc, bna, and bfa, and added expressions to match several new or modified false positives.
Linked to gdnewhat and slack-n-free as sources of packages.
2013-09-02 - GNU Linux-libre 3.11-gnu: “Linux for freedom-loving Workgroups”
Updated deblobbing of nouveau, radeon, comedi, x86 early microcode loaders. Deblobbed ath10k, cw1200, iwlmvm, mtmtk. Dropped csr_wifi.
2013-07-01 - GNU Linux-libre 3.10-gnu
Updated deblobbing of iwlwifi, csiostor, go7007, siano sms1xxx, and radeon. Disabled non-Free firmware loading of newly-added drivers for btusb, ims-pcu, exynos4 fimc-is, and rtl8188ee. Fixed a deblobbing bug in radeon that affected cayman variants since 2.6.39.
2013-04-28 - GNU Linux-libre 3.9-gnu
Restored the (now Free) firmware loading in ath9k (thanks, Jason Self, for the patches and for the firmware build!). Deblobbed Intel early microcode loader, s5c73m3, rp2, lp5521, lp5523, lattice ecp3, ca0132 dsp. Updated imx sdma, m920x, bnx2x, qlcnic, iwlwifi, mwifiex, wl18xx, wm_adsp deblobbing.
2013-02-19 - GNU Linux-libre 3.8-gnu
Disabled non-Free firmware requests in newly-added drivers xrx200, ar5523, rtl8723ae, csiostor, and wm_adsp, and the new non-Free firmware requests in ath9k and nouveau (falcon). Updated deblobbing of lpfc and gdm72xx. Drop dabusb firmware removal, now removed upstream.
2012-12-11 - GNU Linux-libre 3.7-gnu
Tolerate non-executable deblob-check script, and detect other likely error scenarios that would produce empty files. Fix detection of presence of source files along with pre-built binary counterparts within the source tree. Introduce conditional ihex firmware loading. Adjust for tree reorg within drivers/media. Adjust deblobbing for arm ixp4xx-npe and imx dts, nouveau, rtl8192e, wlcore, gdm72xx, s5k4ecgx, s5p_mfc, xc5000, bfad, ueagle-atm, and tda10071. Deblob daqboard2000, me_daq, ni_pcidio, ezusb_fx2, ste_modem_rproc and wm0010. Drop some of computone, cxgb3, keyspan_pda and whiteheat deblobbing and cleanups.
2012-09-30 - GNU Linux-libre 3.6-gnu
Make deblobbing scripts immune to locale settings. Deblob csr-wifi and wl18xx. Adjust bcm, iwlwifi, wlcore, wl12xx, WiMAX i2400m, Comedi JR3, em28xx-dvb, and r8169. Drop iwmc3200.
2012-07-21 - GNU Linux-libre 3.5-gnu: “Free and a half!”
Deblob af9035 and wlcore. Adjusted deblobbing for nouveau, libertas, wl1251, wl12xx, gdm72xx, r8169, ath6kl, and mwifiex. Dropped 3c359, smctr and tms380tr.
2012-05-21 - GNU Linux-libre 3.4-gnu
Deblobbing news: new az6007 and nfc wilink drivers needed cleaning up; radeon got new blob dependencies; xc5000, lmedm04, em28xx, bna, bnx2x, brcmfmac, iwlwifi, wl12xx, ath6kl and qla2xxx required deblobbing adjustments.
2012-05-18 - New mirror at gnulinux.tv
Jan Prunk set up a new mirror. The server is located in California, USA. Thanks!
2012-04-20 - real-time support in the rt apt repository
Juan Jacobo Nájera has built Linux-libre with real-time support for quite a while, but he's now started uploading his 32- and 64-bit x86 binaries to an apt repository on our servers. To get easy access to the packages, add the following line to your sources.list:
deb http://linux-libre.fsfla.org/pub/linux-libre/rt squeeze main
2012-03-19 - 3.3-gnu: “3.3 as in freedom.freedom”
Linux-libre joins the GNU Project, becoming GNU Linux-libre. This release, 3.3-gnu, marks the transition, although upcoming stable releases based on earlier -libre releases may become -gnu releases as well. Deblobbing scripts now support .gz, .lz and .xz compressed inputs, in addition to .bz2 and uncompressed ones, and tarballs are now named linux-libre--gnu.tar. Few deblobbing changes were required for this release: deblobbing of drivers for arm imx, dib0700, it913x, em28xx-dvb, brcmfmac, iwl3945, iwl4965, and rtl8192e needed some adjusting, while wl12xx-sdio-test and snd-intel-sst are no longer present, and sigmadsp code moved about in the tree.
2012-01-05 - gen5 - 3.2-libre
Cleaned up newly-added drivers it913x, ath6kl, mwifi_pcie, usbduxsigma, as102 and r8192e_pci. Adjusted deblobbing for ethernet drivers, moved within the tree, and s5p-mfc. Fixed deblobbing typos in bt8xx, iwlwifi, libertas usb8xxx, vxge, and pcxhr.
2011-10-31 - Wheezy mipsel binaries
James Turner maintains binary .debs of recent Linux-libre releases for Lemote Yeeloong (mipsel) netbooks.
2011-10-24 - gen5 - 3.1-libre
Newly-added xc4000, drxk_hard, em28xx-dvb, s5p-mfc, rtl8192de, adau1701, and sigma cleaned up. Fixed minor deblobbing bug in iwlwifi. Accept nouveau's new built-in FUC with accompanying source code (some nv cards remain limited by the lack of Free microcode). Dropped deblobbing for removed westbridge, ip2main, and myri_sbus drivers. Adjusted deblobbing for mach-imx, ft1000, brcmsmac, brcmfmac, mwifiex, dib7000p, and others.
2011-09-12 - Freesh binaries
Jason Self's Freesh apt repository carries binary .debs for 32- and 64-bit x86 systems, and support for more architectures is planned. Thanks!
2011-07-22 - gen5 - 3.0-libre
Newly-added mwifiex, rtl8192se, vub300, lpfc and wm8994 cleaned up. Updated deblobbing of ath6k, drxd, bnx2x, brcmfmac, rtl8192ce and rtl8192cu. Dropped deblobbing for upstream-removed rt2860 and rt2870.
2011-06-11 - New mirror in Turkey
Gökdeniz Karadağ tells us linux.org.tr is a new Linux-libre mirror. Thanks!
2011-05-19 - gen5 - 2.6.39-libre
Newly-added technisat-usb2, fm_drv (WL128X), rtl8192cu, ums-eneub6250, and snd-usb-6fire cleaned up. Adjusted deblobbing of computone, cyclades, isi moxa_intellio, dib0700, cx23885, bnx2, brcmsmac, iwlegacy, iwlagn, rtl8192ce, rtl8192u, r8712u, and atmel-mxt. Dropped deblobbing of dabusb (driver removed from upstream, with blobs left over) and dx-sep.
2011-03-15 - gen5 - 2.6.38-libre
Nouveau requested blobs again, large ones this time; radeon required more blobs for new cards; newly-added wl1273, rtl8192ce, can_softing, and re-introduced dx_sep depended on blobs; bnx2 and bnx2x had updated blobs as usual; r8169's blobs were moved out of the sources; dabusb, vicam, wl1xx, serial_cs, icom, and serial_qe were moved about in the tree; bcm_wimax and snd_intel_sst required deblobbing updates; 3c359 had its harmlessly-buggy cleaning-up fixed.
2011-01-09 - gen5 - Updated 22.214.171.124
The README blurb, the loading of PCMCIA CIS files and the fix for the message that recommended the installation of non-Free Software were all backported to the following releases: 126.96.36.199-libre1, 188.8.131.52-libre3, 184.108.40.206-libre2, 220.127.116.11-libre1, 18.104.22.168-libre2, 22.214.171.124-libre4, 126.96.36.199-libre3, 188.8.131.52-libre3, 184.108.40.206-libre5, 220.127.116.11-libre5, as well as their baselines 2.6.36-libre1, 2.6.35-libre3, 2.6.34-libre2, 2.6.33-libre1, 2.6.32-libre2, 2.6.31-libre4, 2.6.30-libre3, 2.6.29-libre3, 2.6.28-libre5, 2.6.27-libre5. The deblobbing scripts in 2.6.37-libre were updated with cosmetic changes that did not change the output. Patch files between base releases and from base to patch release are now GPG-signed, compressed with both bzip2 and lzip. The tarballs for older releases, containing the Free Bait freedom bug, were removed, and the xdeltas and scripts moved to old/gen4.
2011-01-05 - gen5 - 2.6.37-libre
New README blurb about Linux-libre, re-enabled loading of PCMCIA CIS files found to be available under Free with sources elsewhere, adjusted Libertas drivers to accept user-specified firmware, fixed error message that recommended the installation of non-Free Software, removed the newly-introduced blobs from 5 new drivers, disabled requests for blobs from 10 new drivers, updated the cleaning up of 5 drivers, removed the deblobbing of 1 blob-dependent and 1 blob-in-sources driver dropped from staging.
2010-11-07 - Linux-libre/planet .debs
Aurélien Desbrières's Linux-libre binaries are now available at an apt repository on our servers and mirrors. To get easy access to them, add the following line to your sources.list:
deb http://linux-libre.fsfla.org/pub/linux-libre/planet planet main
2010-10-21 - 2.6.36-libre
Deblobbed 2 new blob-dependent drivers, adjusted the deblobbing of 3 others, dropped deblobbing of nouveau, now blob-free, and of a dropped driver. Read the announcement.
2010-08-22 - 2.6.35-libre2
Fixed a deblobbing error in drivers/net/e100.c.
2010-08-03 - 2.6.35-libre1
Fixed a deblobbing error in drivers/media/video/s2255drv.c.
2010-08-02 - 2.6.35-libre, 2.6.34-libre1
Cleaned up 4 new blob-dependent drivers in 2.6.35, fixed a deblobbing error that caused compile errors in r8192S_firmware.c in 2.6.34-libre.
2010-05-18 - 2.6.34-libre
Cleaned up 9 new blob-dependent drivers in 2.6.34, updated cleaning up of a couple others.
2010-02-24 - 2.6.33-libre, generation 4
New, much faster deblob-check, based on Python, GNU awk, PERL or GNU sed, at your choice. Updated for 2.6.33. Blobs are growing faster than Linux. Read the announcement.
2009-12-13 - Linux-libre for Lemote Yeeloong with Freedo
Linux-libre binaries (.deb) for gNewSense metad/mipsel (for Lemote Yeeloong) are available. Compared with the gNewSense binaries, they add a number of modules, and display Freedo as the boot-time logo. Add this line to sources.list:
deb http://linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense metad main
2009-12-10 - gen3 - 2.6.27-libre3
Released 2.6.27 baseline and 18.104.22.168 deblobbed with updated deblob-check and deblob-2.6.27 scripts.
2009-12-08 - gen3 - 2.6.32-libre, 2.6.31-libre2, 2.6.30-libre1
Updated for 2.6.32, fixed deblobbing bugs (some cosmetic issues, some compile errors in a few drivers in staging, such as ME4000, RT2670, RT2680, and RT3070) in 2.6.31 and 2.6.30. Backported the newer deblobbing of Radeon, R128, and BNX2X to 2.6.30. Untested backports to earlier kernel releases are in the SVN repository.
2009-09-21 - gen3 - 2.6.31-libre1
Fixes deblobbing errors in usbdux staging drivers, reworks the deblobbing of Radeon, R128 and MGA drivers, in preparation for removal of the firmware from upstream, and improves operation with --force for better operation with already-deblobbed kernels and other variants.
2009-09-12 - gen3 - 2.6.31-libre
It's out! 'nuff said.
2009-06-12 - gen3 - 2.6.30-libre
Broadcom b43 WiFi should now work with the Free reverse-engineered firmware. Other than that, this release just updates to the deblobbing machinery to deal with all the upstream shuffling and addition of non-Free firmware and of dependencies on non-Free firmware.
2009-06-09 - gen3 - 2.6.29-libre1, 2.6.28-libre3 and 2.6.27-libre2
This release fixes regressions in e100 and radeon introduced in the gen2 releases, and fixes a few deblobbing errors. Read the announcement.
“Free as in Freedo” T-shirts are on the way
2009-04-02 - gen2 - 2.6.27-libre1 released
This release makes the 2.6.27 series suitable for use in Free System Distributions, after backporting and adjusting the clean-ups already available in 2.6.28-libre2 and 2.6.29-libre. 22.214.171.124-libre1 is also available.
2009-03-31 - gen2 - 2.6.28-libre2 and 2.6.29-libre released
The 2.6.28-libre2 release fixes a number of problems in 2.6.28-libre1: some compile errors caused by deblobbing, a few missed non-Free firmware names and references to non-Free firmware, and some shell scripting portability issues. 126.96.36.199-libre2 is also available.
The 2.6.29-libre release uses the same deblobbing infrastructure as 2.6.28-libre2, but it's updated for 2.6.29, and adapted to deal with the pieces of non-Free firmware and drivers that require external non-Free firmware added to the upstream release.
2009-03-21 - gen2 - 2.6.28-libre1 released at Libre Planet 2009
This is the first release completely suitable for Free System Distributions: not only does it remove non-Free Software (and brings back some data tables that used to be removed in earlier release), it also removes requests for and documentation that induced users to install and use non-Free Software.
How it is done
The removal of non-Free bits from the kernel Linux is accomplished with the script deblob-main, that in turn uses deblob- and deblob-check.
deblob- is inspired in gNewSense's scripts, later customized for BLAG by Jeff Moe, and then further improved as part of the linux-libre project.
deblob-check is a script that you can use to test whether a kernel source file, a patch or a tarball, contains any remaining or suspicious firmware blob.
How to participate
- Mailing list: http://www.fsfla.org/mailman/listinfo/linux-libre
- SVN repository: http://www.fsfla.org/svn/fsfla/software/linux-libre/
Robert Millan's Freed-ebian upstream repository (no longer maintained)
http://people.debian.org/~rmh/linux-libre/ (freed-ebian only)
SVN repository structure
- scripts/deblob-main: The main script to clean up a linux tarball.
- scripts/deblob-check: A script that recognizes and optionally cleans up blobs.
- scripts/deblob-$ver: Scripts that clean up blobs from within exploded Linux source trees.
- scripts/README: More details on usage of these scripts.
- freed-ora: See freed-ora.
- freed-ebian: Scripts and diffs used to maintain freed-ebian packages.
- lemote: Scripts and diffs used to maintain Linux-libre binary packages for Lemote Yeeloong notebooks.
Other sources of binaries
- Aurélien Desbrières builds Linux-libre/planet .debs for x86 out of recent Linux-libre tarballs, for general use. Read more.
- Jason Self maintains the Freesh apt repository with .debs of recent Linux-libre releases for 32- and 64-bit x86 and powerpc. Read more.
- Ali Gündüz used to do that, too.
- Juan Jacobo Nájera maintains the rt apt repository with .debs with real-time support. Read more.
- James Turner builds binary .debs of recent Linux-libre releases for Lemote Yeeloong (mipsel) netbooks.
- Robert Millan used to build Freed-ebian packages.
- BLAG and GdNewHat ship our Freed-ora kernels.
- gNewSense ships Linux-libre kernels, cleaned up with an older approach. For Lemote Yeeloong mipsel notebooks, see our repository.
- Damián Fossi maintains Linux-libre binaries for gNewSense/MIPS (for Lemote Yeeloong laptops), and for Canaima GNU/Linux.
- Henry Jensen maintains the slack-n-free repository, with ConnochaetOS' GNU Linux-libre packages, so that they can be used on distros that cut non-Free Software too much slack.
- VENENUX GNU/Linux switched to Linux-libre as of its 0.8-rc3 release.
- Trisquel ships 100% Free Linux kernels, based on Linux-libre from version 2.1 onwards.
- Drágora GNU/Linux has shipped Linux-libre in all of its releases.
- Kongoni has adopted Linux-libre as of the Nietszche release.
- VegnuX NeonatoX GNU/Linux has shipped Linux-libre since the 0.48 release.
- Amagi is a gNewSense-based distro for Lemote Yeeloong laptops.
- Parábola GNU/Linux has Linux-libre binaries in its package repositories. If you use the distro on which Parábola is based, these packages could turn it into Freeda d'Arc.
- ConnochaetOS is a light distro, also with Freeda d'Arc potential.
- RMS GNU/Linux-libre (RMS's Mostly Slax) ships Linux-libre in a Live pen-drive light distro.
- Tlamaki GNU con Linux was based on Trisquel, but it rebased, becoming a FreedSUSE.
- Musix GNU+Linux's adoption of Linux-libre is underway.
- Dyne:bolic is going to have Linux-libre in its next release.
- Genfree ebuild scripts are available too, thanks to Nick White.
- There are binary packages for Arch [GNU/]Linux.
- The “Linux Libre Packages” team maintains binary packages of GNU Linux-libre for free human beings.
- If you roll out your own generally-available Linux-libre-based binaries, let us know.
Anyhow, the picture didn't make for a very good logo. The penguin is cute and clean indeed, but he's still a prisoner. That's why we call him Stux.
Rubén Rodrígues Pérez gave, erhm, birth to Freetz's younger brother, Freedo, our official (vectorial) logo. The name was suggested by Jeff Moe. Fernando suggested a grey version for printing in fewer colors. The final touches to Freedo were given by Islene Calciolari Garcia and Alexandre Oliva.
Alexandre Oliva combined Freedo with GNU, creating the image at the top of the page (vectorial). Binaries published by the Linux-libre project are going to be configured to display this logo at boot up. If you want to use it too, look for patches named 100gnu+freedo.patch, in directories named after Linux-libre builds within SVN repository. A few kernels used an older variant (vectorial).
Alexandre Oliva put together the levitating gnu, and Lux, being levitated out of the cage. This picture (and the corresponding sources) are licensed under the same terms as the levitating gnu: GPLv3+ or GFDL1.1 without invariant sections, front or back cover texts.