{{Short description|Version of the Linux kernel without proprietary code}} {{Use mdy dates|date=September 2013}} {{Use American English|date=March 2023}} {{Primary sources|date=April 2022}} {{Infobox software | name = Linux-libre | title = Linux-libre | logo = 150px|Freedo, official mascot of Linux-libre | logo caption = Freedo the penguin, mascot of the Linux-libre kernel | screenshot = Linux-Libre 3.0.66-1 Boot.png | caption = Linux-libre kernel 3.0.66-1 booting | collapsible = | developer = Free Software Foundation Latin America | released = {{Start date and age|2008|02|20}}<ref>{{cite web|url=https://lists.autistici.org/message/20080221.002845.467ba592.en.html|title=[blag-devel] linux-libre|author=blag-announce|date=February 20, 2008|access-date=2020-05-25|archive-url=https://web.archive.org/web/20231104194527/https://lists.autistici.org/message/20080221.002845.467ba592.en.html|archive-date=November 4, 2023}}</ref> | latest release version = {{wikidata|property|preferred|references|edit|Q665683|P348|P548=Q2804309}} | latest release date = {{wikidata|qualifier|preferred|single|Q665683|P348|P548=Q2804309|P577}} | latest preview version = {{wikidata|property|preferred|references|edit|Q665683|P348|P548=Q51930650}} | latest preview date = {{wikidata|qualifier|preferred|single|Q665683|P348|P548=Q51930650|P577}} | programming language = C and Assembly | language = English | platform = x86-64, i386, IA-32, ARM (Parabola), MIPS (Debian), m68k,<ref>{{cite web|url=https://linux-libre.fsfla.org/pub/linux-libre/freesh/dists/freesh/main/binary-m68k/|title=Index of /pub/linux-libre/freesh/dists/freesh/main/binary-m68k|website=linux-libre.fsfla.org|access-date=October 5, 2020}}</ref> RISC-V,<ref>{{cite web|url=https://linux-libre.fsfla.org/pub/linux-libre/freesh/dists/freesh/main/binary-riscv64/|title=Index of /pub/linux-libre/freesh/dists/freesh/main/binary-riscv64|website=linux-libre.fsfla.org|access-date=February 7, 2019}}</ref> IBM POWER8 and above<ref>{{cite web|url=https://linux-libre.fsfla.org/pub/linux-libre/freesh/dists/freesh/main/binary-ppc64el/|title=Index of /pub/linux-libre/freesh/dists/freesh/main/binary-ppc64el|website=linux-libre.fsfla.org|access-date=February 7, 2019}}</ref> | license = GPL-2.0-only<ref>{{cite web|url=https://directory.fsf.org/wiki/Linux-libre#tab=Details|title=Linux-libre - Free Software Directory}}</ref> | website = {{URL|https://www.fsfla.org/ikiwiki/selibre/linux-libre/}} | author = Linus Torvalds et al. | genre = Kernel }}

According to the Free Software Foundation Latin America, '''Linux-libre''' is a modified version of the Linux kernel that contains no binary blobs, obfuscated code, or code released under proprietary licenses.<ref>{{Cite web |title=Linux-libre - Free Software Directory |url=https://directory.fsf.org/wiki/Linux-libre |access-date=2022-09-23 |website=directory.fsf.org | archive-date = November 4, 2023 | archive-url = https://web.archive.org/web/20231104204626/https://directory.fsf.org/wiki/Linux-libre}}</ref> In the Linux kernel, those types of code are mostly used for proprietary firmware images. While generally redistributable, they do not give the user the freedom to audit, modify, or, consequently, redistribute their modified versions. The GNU Project keeps Linux-libre in synchronization with the mainline Linux kernel.<ref name="Red16Mar22">{{cite web |last=Red |first=Ramces |date=22 March 2022 |title=5 Best Linux-Libre Distributions for Better Security |url=https://www.maketecheasier.com/best-linux-libre-distributions/ |url-status=live |archive-url=https://web.archive.org/web/20220316183031/https://www.maketecheasier.com/best-linux-libre-distributions/ |archive-date=March 16, 2022 |access-date=30 April 2022 |work=Make Tech Easier}}</ref>{{Better source needed|date=May 2026}}

== History == The Linux kernel started to include binary blobs in 1996.<ref>{{Cite web |title=Take your freedom back, with Linux-2.6.33-libre |url=https://www.fsfla.org/svnwiki/anuncio/2010-03-Linux-2.6.33-libre.en.html |access-date=2022-09-23 |website=www.fsfla.org |archive-date = November 4, 2023 |archive-url = https://web.archive.org/web/20231104204033/https://www.fsfla.org/svnwiki/anuncio/2010-03-Linux-2.6.33-libre.en.html}}</ref> The work to clear out the binary blobs began in 2006 with gNewSense's find-firmware and gen-kernel. This work was taken further by the BLAG Linux distribution in 2007 when deblob and Linux-libre was born.<ref>{{Cite web |last=Olivia |first=Alexandre |title=GNU Linux-libre and the prisoner's dilemma |url=https://fsfla.org/~lxoliva/fsfla/Linux-libre.en.pdf |access-date=September 23, 2022 |website=Free Software Foundation Latin America | archive-date = November 4, 2023 | archive-url = https://web.archive.org/web/20231104204410/https://www.fsfla.org/~lxoliva/fsfla/Linux-libre.en.pdf}}</ref><ref name="blag">jebba: [http://forums.blagblagblag.org/viewtopic.php?t=4665 BLAG :: View topic - Linux Libre] {{Webarchive|url=https://web.archive.org/web/20181011013739/http://forums.blagblagblag.org/viewtopic.php?t=4665 |date=October 11, 2018 }} BLAG forums, 2008.</ref>

Linux-libre was first released by the Free Software Foundation Latin America (FSFLA), then endorsed by the Free Software Foundation (FSF)<ref>{{cite web|url= https://directory.fsf.org/wiki/Linux_%28BLOB_free_version%29|title= Linux (BLOB free version)|access-date = December 6, 2011|author= Free Software Foundation|author-link= Free Software Foundation|work= Free Software Directory|quote= [...] in the interest of freedom, we are providing a link to a version of the kernel in which this proprietary code has been removed so that it is entirely free software | archive-date = November 4, 2023 | archive-url = https://web.archive.org/web/20231104204626/https://directory.fsf.org/wiki/Linux-libre}}</ref> as a valuable component for the totally free Linux distributions. It became a GNU package in March 2012.<ref name="gnu">{{cite mailing list |last= Oliva |first=Alexandre |author-link=Alexandre Oliva |title=GNU Linux-libre 3.3-gnu is now available |publisher=info-gnu |date=March 19, 2012 |url=https://lists.gnu.org/archive/html/info-gnu/2012-03/msg00013.html |access-date=August 7, 2012 | archive-date = November 4, 2023 | archive-url = https://web.archive.org/web/20231104205133/https://lists.gnu.org/archive/html/info-gnu/2012-03/msg00013.html}}</ref> Alexandre Oliva is the project maintainer.

== Proprietary firmware removal == thumb|The GNU logo with Freedo, Linux-libre's mascot

=== Methods === The removal process is achieved by using a script called ''deblob-main''.<ref>{{cite web |url = https://fsfla.org/svnwiki/selibre/linux-libre/index.en.html#how |title = How it is done |access-date = December 6, 2011 |author = Free Software Foundation Latin America |work = Linux-libre, Free as in Freedo |archive-date = November 4, 2023 |archive-url = https://web.archive.org/web/20231104211926/https://www.fsfla.org/svnwiki/selibre/linux-libre/index.en.html#how }}</ref> This script is inspired by the one used for gNewSense. Jeff Moe made subsequent modifications to meet certain requirements for its use with the BLAG Linux and GNU distribution. There is another script called ''deblob-check'',<ref>{{cite web |url = https://fsfla.org/svn/fsfla/software/linux-libre/scripts/ |title = fsfla - Revision 8200: /software/linux-libre/scripts |access-date = December 6, 2011 |work = Free Software Foundation Latin America |archive-date = November 4, 2023 |archive-url = https://web.archive.org/web/20231104212221/https://www.fsfla.org/svn/fsfla/software/linux-libre/scripts/ }}</ref> which is used to check if a kernel source file, a patch or a compressed sources file still contains software which is suspected of being proprietary.

===Benefits=== Aside from the primary intended effect of running a system with only free software, the practical consequences of removing device firmware that a user is not allowed to study or modify has both positive and negative effects.

Removal of device firmware can be considered an advantage for security and stability.

When the firmware cannot be audited for bugs, security problems, and malicious functions such as backdoors, or when the firmware cannot be fixed by the Linux kernel maintainers themselves, even if they know of problems, it is possible for the entire system to be compromised by a malicious firmware. Without the ability to perform a security audit on manufacturer-provided firmware, even an innocent bug could undermine the safety of the running system.<ref>{{cite conference|conference=hack.lu|url=http://esec-lab.sogeti.com/dotclear/public/publications/10-hack.lu-nicreverse_slides.pdf|title=Reversing the Broacom NetExtreme's Firmware|date=November 21, 2010|access-date=April 18, 2012|first=Guillaume|last=Delugré|publisher=Sogeti|url-status=dead|archive-url=https://web.archive.org/web/20120425194643/http://esec-lab.sogeti.com/dotclear/public/publications/10-hack.lu-nicreverse_slides.pdf|archive-date=April 25, 2012|df=mdy-all}}</ref>

===Hardware support=== Removing proprietary firmware from the kernel will cause loss of functionality of certain hardware that does not have a free software replacement available.<ref name="Red16Mar22"/> This affects certain sound, video, TV tuner, and network cards, especially in the case of recent Intel Wi-Fi cards and recent Nvidia graphics cards, as well as some other devices. When possible, free software replacement firmware is provided as a substitute,<ref name="Red16Mar22"/><ref>{{cite web|url=https://libreplanet.org/wiki/LinuxLibre:Devices_that_require_non-free_firmware |title=LinuxLibre:Devices that require non-free firmware |publisher=LibrePlanet |date=February 5, 2011 |access-date=April 17, 2012}}</ref> such as the openfwwf<ref>{{cite web|url=https://www.ing.unibs.it/~openfwwf/|title=OpenFWWF - Open FirmWare for WiFi networks|work=unibs.it|access-date=June 14, 2017|archive-url=https://web.archive.org/web/20150924034934/http://www.ing.unibs.it/~openfwwf/|archive-date=September 24, 2015|url-status=dead}}</ref> for b43, carl9170<ref>{{cite web|url=https://wireless.wiki.kernel.org/en/users/drivers/carl9170|title=en:users:drivers:carl9170 [Linux Wireless]|work=kernel.org}}</ref> and ath9k_htc<ref>{{cite web|url=https://wireless.wiki.kernel.org/en/users/drivers/ath9k_htc|title=en:users:drivers:ath9k_htc [Linux Wireless]|work=kernel.org}}</ref> wireless card drivers. Reviewer Ramces Red summarized the issue with Linux-Libre, writing, "it does not always have the best hardware support."<ref name="Red16Mar22"/>

===Microcode=== Linux-libre does not suggest the user install CPU microcode update bundles, since the code is proprietary.<ref>{{Cite web |title=GNU Linux-Libre 4.16 Released, Won't Warn You About Spectre/Meltdown Microcode Updates |url=https://www.phoronix.com/news/GNU-Linux-Libre-4.16-Released |access-date=2022-09-23 |website=www.phoronix.com |language=en |archive-date = November 4, 2023|archive-url = https://web.archive.org/web/20231104212923/https://www.phoronix.com/news/GNU-Linux-Libre-4.16-Released}}</ref> Microcode update bundles have been used in the mainline Linux kernel version, among other things, to mitigate hardware vulnerabilities.<ref>{{cite web |title=Hardware vulnerabilities|url=https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/|publisher=kernel.org|archive-date = November 4, 2023|archive-url = https://web.archive.org/web/20231104213216/https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/}}</ref>

== Availability == The source code and precompiled packages of the deblobbed Linux kernel are available directly from the distributions which use the Linux-libre scripts. Freed-ora is a subproject which prepares and maintains RPM packages based on Fedora.<ref>{{cite web |url = https://fsfla.org/svnwiki/selibre/linux-libre/freed-ora |title = Linux-libre's Freed-ora project |access-date = December 6, 2011 |author = Free Software Foundation Latin America |author-link = Free Software Foundation Latin America |quote = Freed-ora is a sub-project that prepares and maintains 100% Free RPMs that track Fedora's non-Free kernels }}</ref> There are also precompiled packages for Debian<ref>{{cite mailing list |url = https://lists.debian.org/debian-devel-announce/2009/04/msg00010.html |title = Linux-libre for Debian Lenny |date = April 23, 2009 |access-date = May 12, 2009 |mailing-list = [Debian Mailing Lists] Announcements for developers |last = Millan |first = Robert |quote = This is to announce that Debian packages of Linux-libre [...] are now available for Lenny users who want to use them [...] }}</ref> and derived distributions such as Ubuntu.<ref>{{cite web |url = http://aligunduz.org/gNewSense/ |url-status=dead |archive-url=https://web.archive.org/web/20161109000123/http://aligunduz.org/gNewSense/ |title = Uncle Gnufs' World Famous Home Baked Free Kernel Shoppe |archive-date= November 9, 2016 |last = Gündüz |first = Ali |work = aligunduz.org |access-date= June 19, 2017 }}</ref>

== Distributions == {{See also|Comparison of Linux distributions#Technical}} [[File:Parabola13.png|thumb|Parabola GNU/Linux-libre uses Linux-libre as its default kernel and ship with linux-libre-tools packages.<ref>{{cite web|url=https://www.parabola.nu/groups/x86_64/linux-libre-tools/|title=Parabola GNU/Linux-libre - linux-libre-tools (x86_64) - Group Details|work=parabola.nu|access-date=February 16, 2017}}</ref>]]

===Distributions in which Linux-libre is the default kernel=== * Dragora GNU/Linux-Libre * dyne:bolic * GNU Guix System<ref>{{Cite web |title=Download – GNU Guix |url=https://guix.gnu.org/download/ |access-date=2022-09-23 |website=guix.gnu.org}}</ref> * Hyperbola GNU/Linux-libre * Parabola GNU/Linux-libre

'''Considered small distributions''' * libreCMC * ProteanOS (If the underlying hardware is not supported, it must be ported.<ref>{{Cite web|url=http://proteanos.com/doc/plat/porting/|title = Porting ProteanOS to a New Platform – ProteanOS}}</ref>)

'''Historical'''

* Musix GNU+Linux

===Distributions that compile a free Linux kernel=== These distros do not use the packaged Linux-libre but instead completely remove binary blobs from the mainline Linux kernel. The source is then compiled and the resulting free Linux kernel is used by default in these systems: * Debian (May install binary blobs with the installer or kernel by default.<ref name="Explaining Why We Don't Endorse Other Systems">{{cite web | url = https://www.gnu.org/distros/common-distros.html | title = Explaining Why We Don't Endorse Other Systems | archive-date = November 2, 2023 | archive-url = https://web.archive.org/web/20231102171742/https://www.gnu.org/distros/common-distros.html}}</ref><ref name="General Resolution: non-free firmware: results">{{cite web | url = https://lists.debian.org/debian-devel-announce/2022/10/msg00001.html | title = General Resolution: non-free firmware: results | access-date = 2023-11-02 | archive-date = November 2, 2023 | archive-url = https://web.archive.org/web/20231102171923/https://lists.debian.org/debian-devel-announce/2022/10/msg00001.html}}</ref>) :*PureOS :*Uruk GNU/Linux * Trisquel (Linux-libre deblob script is used during its development.<ref>{{Cite web|url=https://trisquel.info/en/wiki/documentation|title=Documentation &#124; Trisquel GNU/Linux - Run free!}}</ref><ref>{{Cite web |date=2009-05-22 |title=How Trisquel is Made |url=https://trisquel.info/en/wiki/how-trisquel-made |website=Trisquel GNU/Linux}}</ref>) '''Historical'''

* BLAG<ref>{{cite web|url=https://www.linux.com/feature/142772|title=Linux-libre project meets rocky reception|author=Bruce Byfield|work=Linux.com|publisher=SourceForge, Inc.|date=2008-08-01}}</ref> *gNewSense<ref>{{cite web|url=https://bzr.savannah.gnu.org/lh/gnewsense/packages-parkes/linux-2.6/view/head:/debian/README.gNewSense|title=/gnewsense/packages-parkes/linux-2.6 : contents of debian/README.gNewSense at revision 16|work=gnu.org|access-date=February 16, 2017|archive-date=February 29, 2020|archive-url=https://web.archive.org/web/20200229020922/http://bzr.savannah.gnu.org/lh/gnewsense/packages-parkes/linux-2.6/view/head:/debian/README.gNewSense|url-status=dead}}</ref> (It was based on Debian.) *Canaima<ref>{{cite web |url = http://forja.softwarelibre.gob.ve/projects/linux-libre/ |title = Linux-libre: Resumen del proyecto |access-date = December 6, 2001 |last = Fossi |first = Damián |date = August 24, 2009 |work = Forja |language = es |trans-title = Linux-libre: Project summary |archive-url = https://web.archive.org/web/20100224073447/http://forja.softwarelibre.gob.ve/projects/linux-libre |archive-date = February 24, 2010 |url-status = dead }}</ref> (It was based on Debian.) *Ututo<ref>[http://ututo.org/downloads/ Index of downloads], ''ututo.org'', retrieved 16 February 2017</ref>

===Linux-libre as an alternative kernel=== Distributions in which Linux is the default kernel used and which propose Linux-libre as an alternative kernel: * Arch Linux<ref>{{cite web|url=https://aur.archlinux.org/packages/linux-libre/|title=AUR (en) linux-libre|access-date=November 30, 2015|author=Arch Linux|author-link=Arch Linux|date=November 16, 2015|work=AUR}}</ref> * Fedora<ref>{{cite web|url=https://www.fsfla.org/ikiwiki/selibre/linux-libre/freed-ora.en.html|title=::[FSFLA]:: GNU Linux-libre's Freed-ora project|website=www.fsfla.org|access-date=2020-05-25}}</ref> * Gentoo Linux<ref>{{cite web|url=https://bugs.gentoo.org/show_bug.cgi?id=266157|title=Bug 266157|last=O'Kelly|first=Tim|date=April 14, 2009|access-date=October 13, 2020|work=Gentoo's Bugzilla|publisher=Gentoo Linux}}</ref><ref>{{cite web|url=https://wiki.installgentoo.com/wiki/Linux-libre|title=Linux-libre|access-date=October 13, 2020|date=January 8, 2016|work=Install Gentoo Wiki|publisher=Gentoo Linux|df=mdy-all}}</ref> * Mandriva-derived (PCLinuxOS, Mageia, OpenMandrivaLx, ROSA Fresh) * openSUSE Tumbleweed (via OpenBuildService) * Slackware<ref>{{cite web|url=https://freeslack.net/|title=FreeSlack|work=freeslack.net|access-date=August 9, 2016|archive-date=October 25, 2021|archive-url=https://web.archive.org/web/20211025074700/http://freeslack.net/|url-status=dead}}</ref><ref>{{cite web|url=http://freeslack.net/dokuwiki/doku.php?id=installation|title=installation [FreeSlack Wiki]|work=freeslack.net|access-date=August 9, 2016|archive-date=October 5, 2022|archive-url=https://web.archive.org/web/20221005212248/http://freeslack.net/dokuwiki/doku.php?id=installation|url-status=dead}}</ref>

== See also == {{Portal|Free and open-source software|Linux}} * GNU Hurd, an operating system kernel developed by GNU, which follows the microkernel paradigm * Libreboot * LibrePlanet * List of computing mascots * Open-source hardware * :Category:Computing mascots

== References == {{reflist|30em}}

== External links == {{Commons category|Linux-libre}}

* {{official website|https://www.fsfla.org/ikiwiki/selibre/linux-libre/}}

{{Linux kernel}} {{Linux}} {{GNU}}

Category:2008 software Category:Free software programmed in C Category:GNU Project software Category:Linux kernel Category:Operating system kernels Category:Software using the GNU General Public License