Go to file
Denis 'GNUtoo' Carikli 8843206032
website: faq: Add entry about how to support more computers.
The idea behind this FAQ entry is to be able to point to it when
people ask us to support additional computers.

This makes sure we don't miss important points in our answers and it
also tries to convey the kind of work needed, including for less
common but important cases like when the code for a computer is found
to work on another one (in that case we badly want to know about it,
especially if there is only documentation work to be done for it).

In addition this kind of question is very common in projects that have
limited hardware support, so that also should help us spending less
time answering that question again and again.

The answer also makes it very clear that GNU Boot is just a
distribution and also shows the kind of work various contributors do
to show that some of them are really easy to do, in the hope that it
could bring up more contributors as well.

The way the entry is written (trying to avoid technical words, while
also speaking about very technical topics) is because it is meant for
a very wide audience that go from less technical users that just want
GNU Boot to work on the computer they have but don't know anything
about hardware support, to contributors to projects like Coreboot and
U-Boot that might just want to also add support for computers they
worked on in GNU Boot.

Wording like "the computer will need to be supported well by other
project" is vague to enable people used to contribute to projects like
Coreboot or U-Boot or even experienced distributions contributors will
understand it as having the strict minimum of out of tree patches,
while also enabling less technical users (that don't know what is an
"out of tree patch") to understand more or less what it means.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: minor changes (typo and repetition)
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 16:28:56 +02:00
resources automake: add i945-thinkpads-install-utilities-help target. 2024-06-16 12:55:15 +02:00
tests Merge website and website-build. 2024-06-11 20:29:47 +02:00
website website: faq: Add entry about how to support more computers. 2024-08-30 16:28:56 +02:00
.gitcheck added workaround for git credentials 2022-03-16 04:40:59 +00:00
.gitignore Merge website and website-build. 2024-06-11 20:29:47 +02:00
COPYING libreboot! 2021-05-18 13:56:12 +01:00
Makefile.am automake: add i945-thinkpads-install-utilities-help target. 2024-06-16 12:55:15 +02:00
README.md README.md: fix typo, add linebreak 2023-12-06 17:33:03 +01:00
autogen.sh Add topdir ./configure. 2024-05-12 22:56:04 +02:00
build Build bucts and patched flashrom for I945 ThinkPads with Guix. 2024-05-12 22:56:04 +02:00
configure.ac Build bucts and patched flashrom for I945 ThinkPads with Guix. 2024-05-12 22:56:04 +02:00
download Build bucts and patched flashrom for I945 ThinkPads with Guix. 2024-05-12 22:56:04 +02:00
modify ./modify: enable to mask tasks. 2023-12-09 15:59:04 +01:00
projectname Continue Libreboot under the GNU project 2023-08-22 21:13:26 +02:00
update ./update: enable to mask tasks. 2023-12-09 15:59:37 +01:00

README.md

GNU Boot

This software is part of the GNU Project.

To load an operating system, computers need to be able to access storage devices (like an HDD or SSD) where the operating system is installed. They need RAM to work to load part of the operating system in RAM. Users also expect the display and keyboard to work before the operating system is loaded.

But on most computers, software is needed to initialize the RAM, the storage devices, the graphic card, to load the operating system, and give some information to the operating system on what hardware it is running on.

Because of that computers usually require boot software that is bundled in the computer. It is usually found on a very small storage chip that is inside the mainboard. That software is specific to a given computer.

Unfortunately that software is usually nonfree and GNU boot aims to replace that with 100% free software.

Like with other type of software, the fact that it is nonfree has real impacts. For instance this software often continues to run once the operating system is loaded and as it loads the operating system it can also modify it.

So having a nonfree boot software make it impossible for users to really trust their computers. Another common issue is that some BIOS/UEFI add restrictions to prevent users from replacing the WiFi card for instance. There are many more issues but listing them all here would make this description too long.

To replace nonfree boot software, GNU boot reuses various software projects (like Coreboot, U-boot, GRUB, SeaBIOS, etc), configure and build them to produce an image that can be installed to replace the nonfree boot software for specific computers.

Users can also do all that without GNU Boot but that tend to be complicated. Having a free software project that does all that enable people to collaborate on making sure that computers boot fine regardless of the upstream project status, for instance by making binary releases and collaborating to test them.

In addition GNU boot also comes with extensive documentation to make it as easy as possible to install GNU Boot and to empower users to modify the way their computer boot.

Since not all the project it reuses are 100% free software it also removes all the nonfree software found in them along the way and will also make the scripts and/or data that does that reusable for distributions or users that want to build their own free boot software without reusing the GNU Boot configuration or build system.

Not a coreboot fork!

GNU Boot is not a fork of coreboot, but more a boot firmware distribution including a modified version of coreboot, and other software like SeaBIOS, GRUB or u-boot.

Coreboot is not entirely free software as it includes binary blobs in it for some platforms. What GNU Boot does is download several revisions of coreboot, for different boards, and de-blob those coreboot revisions. This is done using the linux-libre deblob scripts, to find binary blobs in coreboot.

All new coreboot development should be done in coreboot (upstream), not GNU Boot. For example, if you wanted to add a new board to GNU Boot, you should add it to coreboot first. GNU Boot would then receive your code at a later date, when it updates itself.

The deblobbed coreboot tree used in GNU Boot is referred to as coreboot-libre, to distinguish it as a component of GNU Boot.

How this project came to exist

We believe computer users deserve to control all the software they run. This belief is the key principle of the Free Software Movement, and was the motive for developing the GNU operating system and starting the Free Software Foundation. We believe computer user freedom is a crucial human rights.

Unfortunately, such a muddle happened last year with a boot program that was free software and was called Libreboot: the development team added nonfree code to it, but continued to refer to it misleadingly as “Libreboot”.

Libreboot was first released in 2013. It has been widely recommended in the free software community for the last nine years. In November 2022, “Libreboot” began to include non-libre code. We have made repeated efforts to continue collaboration with those developers to help their version of Libreboot remain libre, but that was not successful.

Now weve stepped forward to stand up for freedom, ours and that of the wider community, by maintaining our own version a genuinely libre boot distribution: GNU Boot.

LICENSE FOR THIS README: GNU Free Documentation License 1.3 as published by the Free Software Foundation, with no invariant sections, no front cover texts and no back cover texts. If you wish it, you may use a later version of the GNU Free Documentation License as published by the Free Software Foundation.

Copy of the GNU Free Documentation License v1.3 here: https://www.gnu.org/licenses/fdl-1.3.en.html

Info about Free Software Foundation: https://www.fsf.org/