Libreboot provides libre boot firmware (based on coreboot) that initializes the hardware (e.g. memory controller, CPU, peripherals) on specific Intel/AMD x86 and ARM targets, which then starts a bootloader for your operating system (Linux/BSD). https://libreboot.org/
 
 
 
 
Go to file
Leah Rowe f338697b96 build/boot/roms: Support removing microcode
From now on, the following rules are available for all
mainboards, in resources/coreboot/boardname/board.cfg:

* blobs_required="n" or "y"
* microcode_required="n" or "y"

The blobs setting, if set to "n", simply renames filename.rom to
filename_noblobs.rom.

The microcode setting, if set to "n", copies the ROM (with or
without _noblobs) to filename_nomicrocode.rom (if blobs="n",
it would be filename_noblobs_nomicrocode.rom).

Where "nomicrocode" is set, ROMs with microcode will still be
provided by lbmk and in relesase, but ROMs will also be provided
alongside it that lacks any microcode updates.

If the *original* ROM already lacks microcode updates, then the
original ROM will be *renamed* to include "nomicrocode" in the name.
This is done on images for ARM platforms, for instance, where
microcode is never used whatsoever.

Example filenames now generated:
seabios_e6400_4mb_libgfxinit_corebootfb_noblobs_nomicrocode.rom
seabios_e6400_4mb_libgfxinit_corebootfb_noblobs.rom
seabios_withgrub_hp8300usdt_16mb_libgfxinit_corebootfb_colemak_nomicrocode.rom
seabios_withgrub_hp8300usdt_16mb_libgfxinit_corebootfb_colemak.rom
uboot_payload_gru_kevin_libgfxinit_corebootfb_noblobs_nomicrocode.rom

A vocal minority of people were not happy with some of the changes
made in Libreboot last year, including on existing supported
hardware from before those changes were made. I did this before the
last release, out of respect:
https://libreboot.org/news/gm45microcode.html
(re-add mitigations for no-microcode setup on GM45)

This new change is done as an further, extended courtesy. Tested
and works fine. (testing using cbfstool-print)

Actual Libreboot policy about binary blobs is nuanced. See:
https://libreboot.org/news/policy.html (reduction policy) and:
https://libreboot.org/freedom-status.html (implementation)

Well, the status page talks about descriptor vs non-descriptor
on Intel platforms, and where me_cleaner is used (on platforms
that need Intel ME firmware), it regards the descriptored setups
to be blob-free if coreboot does not require binary blobs.

In this paradigm, microcode updates are not considered to be
binary blobs, because they aren't technically software, they're
more like config files that just turn certain features on or off
within the CPU.

However, for lbmk purposes, "noblobs" means that, after the ROM
is fully ready to flash on the chip, there will be no blobs in
it (except microcode). So for example, an X200 that does not
require ME firmware is considered blob-free under this paradigm,
even though Libreboot policy regards X230 as equally libre when
me_cleaner is used; in this setup, ROMs will not contain "blobfree"
in the filename, for X230 (as one example).

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-19 10:44:02 +01:00
blobs Add HP 8300 USDT 2023-06-17 10:01:24 +00:00
resources build/boot/roms: Support removing microcode 2023-06-19 10:44:02 +01:00
util util/nvmutil: reduced indentation inside loop 2023-06-14 10:56:11 +01:00
.gitcheck use env in shell scripts 2023-05-18 13:17:28 +01:00
.gitignore blobutil: support downloading E6400 VGA ROM 2023-05-06 22:23:27 +01:00
COPYING libreboot! 2021-05-18 13:56:12 +01:00
Makefile Revert "Remove most of Ferass's lbmk contributions" 2023-06-13 12:09:01 +01:00
README.md update to codeberg links in the readme 2023-04-08 20:45:03 +01:00
blobutil blobutil: merge with main script 2023-05-27 12:00:04 +01:00
build unify these scripts: build, modify and update 2023-05-27 10:54:50 +01:00
download unify download/build scripts 2023-05-27 11:44:54 +01:00
gitclone Revert "Remove most of Ferass's lbmk contributions" 2023-06-13 12:09:01 +01:00
lbmk lbmk: Fix regressions 2023-06-12 17:27:49 -06:00
modify unify these scripts: build, modify and update 2023-05-27 10:54:50 +01:00
projectname update README 2021-05-18 14:05:01 +01:00
update unify these scripts: build, modify and update 2023-05-27 10:54:50 +01:00

README.md

Libreboot

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

The libreboot project provides libre boot firmware that initializes the hardware (e.g. memory controller, CPU, peripherals) on specific Intel/AMD x86 and ARM targets, which then starts a bootloader for your operating system. Linux/BSD are well-supported. It replaces proprietary BIOS/UEFI firmware. Help is available via #libreboot IRC on Libera IRC.

Why use Libreboot?

Why should you use libreboot?

Libreboot gives you freedoms that you otherwise can't get with most other boot firmware. It's extremely powerful and configurable for many use cases.

You have rights. The right to privacy, freedom of thought, freedom of speech and the right to read. In this context, Libreboot gives you these rights. Your freedom matters. Right to repair matters. Many people use proprietary (non-libre) boot firmware, even if they use a libre OS. Proprietary firmware often contains backdoors (more info on the FAQ), and it and can be buggy. The libreboot project was founded in in December 2013, with the express purpose of making coreboot firmware accessible for non-technical users.

The libreboot project uses coreboot for hardware initialisation. Coreboot is notoriously difficult to install for most non-technical users; it handles only basic initialization and jumps to a separate payload program (e.g. GRUB, Tianocore), which must also be configured. The libreboot software solves this problem; it is a coreboot distribution with an automated build system (named lbmk) that builds complete ROM images, for more robust installation. Documentation is provided.

How does Libreboot differ from coreboot?

In the same way that Debian is a GNU+Linux distribution, libreboot is a coreboot distribution. If you want to build a ROM image from scratch, you otherwise have to perform expert-level configuration of coreboot, GRUB and whatever other software you need, to prepare the ROM image. With libreboot, you can literally download from Git or a source archive, and run make, and it will build entire ROM images. An automated build system, named lbmk (Libreboot MaKe), builds these ROM images automatically, without any user input or intervention required. Configuration has already been performed in advance.

If you were to build regular coreboot, without using libreboot's automated build system, it would require a lot more intervention and decent technical knowledge to produce a working configuration.

Regular binary releases of libreboot provide these ROM images pre-compiled, and you can simply install them, with no special knowledge or skill except the ability to follow installation instructions and run commands BSD/Linux.

Project goals

  • Support as much hardware as possible! Libreboot aims to eventually have maintainers for every board supported by coreboot, at every point in time.
  • 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's automated build system and user-friendly installation instructions solves this problem.

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 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.

How to help

You can check bugs listed on the bug tracker.

If you spot a bug and have a fix, the website has instructions for how to send patches, and you can also report it. Also, this entire website is written in Markdown and hosted in a separate repository where you can send patches.

Any and all development discussion and user support are all done on the IRC channel. More information is on the contact page of libreboot.org.

LICENSE FOR THIS README

It's just a README file. This README file is released under the terms of the Creative Commons Zero license, version 1.0 of the license, which you can read here:

https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt