libreboot build system (LibreBoot-MaKe). Libreboot performs hardware initialization on your computer, using coreboot, to replace the proprietary BIOS/UEFI firmware on supported x86 computers.

Ron Nazarov 0fadeed493 replace #!/bin/bash with #!/usr/bin/env bash 2 years ago
resources 0fadeed493 replace #!/bin/bash with #!/usr/bin/env bash 2 years ago
.gitignore 208a793107 update README 2 years ago
COPYING 89517ed6b9 libreboot! 2 years ago
Makefile 89517ed6b9 libreboot! 2 years ago
README.md 208a793107 update README 2 years ago
build 5573dcd103 build: don't run the versioncheck script if running ./build dependencies 2 years ago
download 0fadeed493 replace #!/bin/bash with #!/usr/bin/env bash 2 years ago
projectname 208a793107 update README 2 years ago
update 89517ed6b9 libreboot! 2 years ago

README.md

Free your BIOS today! GNU GPL style

Find libreboot documentation at https://libreboot.org/

Libreboot is freedom-respecting boot firmware that initializes the hardware (e.g. memory controller, CPU, peripherals) in your computer so that software can run. Libreboot then starts a bootloader to load your operating system. It replaces the proprietary BIOS/UEFI firmware typically found on a computer. Libreboot is compatible with specific computer models that use the Intel/AMD x86 architecture. Libreboot works well with GNU+Linux and BSD operating systems. User support is available at #libreboot on Freenode IRC.

Libreboot is a Free Software project, but can be considered Open Source. The GNU website teaches why you should call it Free Software instead; alternatively, you may call it libre software.

Libreboot uses coreboot for hardware initialization. However, coreboot is notoriously difficult to compile and install for most non-technical users. There are many complicated configuration steps required, and coreboot by itself is useless; coreboot only handles basic hardware initialization, and then jumps to a separate payload program. The payload program can be anything, for example a Linux kernel, bootloader (such as GNU GRUB), UEFI implementation (such as Tianocore) or BIOS implementation (such as SeaBIOS). While not quite as complicated as building a GNU+Linux distribution from scratch, it may aswell be as far as most non-technical users are concerned.

Libreboot solves this problem in a novel way: Libreboot is a coreboot distribution much like Debian is a GNU+Linux distribution. Libreboot provides an automated build system that downloads, patches (where necessary) and compiles coreboot, GNU GRUB, various payloads and all other software components needed to build a complete, working ROM image that you can install to replace your current BIOS/UEFI firmware, much like a GNU+Linux distribution (e.g. Debian) provides an ISO image that you can use to replace your current operating system (e.g. Windows).

Information about who works on Libreboot, and who runs the project, can be found on the who page page.

Why use Libreboot?

Free software is important for the same reason that education is important. All children and adults alike should be entitled to a good education. Knowledge begs to be free! In the context of computing, this means that the source code should be fully available to study, and use in whatever way you see fit. In the context of computer hardware, this means that Right to Repair should be universal, with full access to documents such as the schematics and boardview files.

The four freedoms are paramount!

You have rights. The right to privacy, freedom of thought, freedom of speech and the right to read. In the context of computing, that means anyone can use free software. Simply speaking, free software is software that is under the direct sovereignty of the user and, more importantly, the collective that is the community. Libreboot is dedicated to the Free Software community, with the aim of making free software at a low level more accessible to non-technical people.

Many people use proprietary boot firmware, even if they use GNU+Linux. Non-free boot firmware often contains backdoors, can be slow and have severe bugs. Development and support can be abandoned at any time. By contrast, Libreboot is a free software project, where anyone can contribute or inspect its code.

Libreboot is faster, more secure and more reliable than most non-free firmware. Libreboot provides many advanced features, like encrypted /boot/, GPG signature checking before booting a Linux kernel and more! Libreboot gives you control over your computing.

Project goals

  • Recommend and distribute only free software. Coreboot distributes certain pieces of proprietary software which is needed on some systems. Examples can include things like CPU microcode updates, memory initialization blobs and so on. The coreboot project sometimes recommends adding more blobs which it does not distribute, such as the Video BIOS or Intel's Management Engine. However, a lot of dedicated and talented individuals in coreboot work hard to replace these blobs whenever possible.
  • Support as much hardware as possible! Libreboot supports less hardware than coreboot, because most systems from coreboot still require certain proprietary software to work properly. Libreboot is an attempt to support as much hardware as possible, without any proprietary software.
  • Make coreboot easy to use. Coreboot is notoriously difficult to install, due to an overall lack of user-focused documentation and support. Most people will simply give up before attempting to install coreboot.

Libreboot attempts to bridge this divide by providing a build system automating much of the coreboot image creation and customization. Secondly, the project produces documentation aimed at non-technical users. Thirdly, the project attempts to provide excellent user support via mailing lists and IRC.

Libreboot already comes with a payload (GRUB), flashrom and other needed parts. Everything is fully integrated, in a way where most of the complicated steps that are otherwise required, are instead done for the user in advance.

You can download ROM images for your libreboot system and install them without having to build anything from source. If, however, you are interested in building your own image, the build system makes it relatively easy to do so.

Not a coreboot fork!

Libreboot is not a fork of coreboot. Every so often, the project re-bases on the latest version of coreboot, with the number of custom patches in use minimized. Tested, stable (static) releases are then provided in Libreboot, based on specific coreboot revisions.

Coreboot is not entirely free software. It has binary blobs in it for some platforms. What Libreboot 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 libreboot! Libreboot is about deblobbing and packaging coreboot in a user-friendly way, where most work is already done for the user.

For example, if you wanted to add a new board to libreboot, you should add it to coreboot first. Libreboot will automatically receive your code at a later date, when it updates itself.

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

A coreboot fork is planned for the future. Nowadays, coreboot drops support for boards that are "unmaintained", which in some cases just means that nobody submitted a new status update (to the board-status repository), so nowadays Libreboot must maintain multiple versions of coreboot. This is unsustainable, so a fork is planned, re-adding all of the deleted boards, backporting newer coreboot features and, possibly, having support for those boards re-merged upstream, where coreboot and the fork will share code back and forth. As of 27 April 2021, work on this fork has not yet begun.

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/