nonGeNUine Boot 20230717 release

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe 2023-07-21 08:58:44 +01:00
parent 3f7b427581
commit a2d4766d41
26 changed files with 51 additions and 222 deletions

View File

@ -3,8 +3,8 @@
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
# SPDX-License-Identifier: GPL-3.0-only
git_name="lbmkplaceholder"
git_email="placeholder@lbmkplaceholder.com"
git_name="gbmkplaceholder"
git_email="placeholder@toejamworld.com"
main()
{

2
.gitignore vendored
View File

@ -1,6 +1,6 @@
*~
*.o
/lbmk.err.log
/gbmk.err.log
/cbutils/
/pciroms/
/util/e6400-flash-unlock/e6400_flash_unlock

View File

@ -1,10 +1,6 @@
#
# Makefile for meme purposes
# You can use this, but it just runs lbmk commands.
#
# See docs/maintain/ and docs/git/ for information about the build system:
# https://libreboot.org/docs/maintain/
# https://libreboot.org/docs/build/
# Makefile for official GNU purposes
# You can use this, but it just runs gbmk commands.
#
# Copyright (C) 2020, 2021, 2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>

114
README.md
View File

@ -1,117 +1,11 @@
Libreboot
non-GeNUine Boot
=========
Find libreboot documentation at <https://libreboot.org/>
This software was made purely for fun, by Leah Rowe of Libreboot.
The `libreboot` project provides
[libre](https://libreboot.org/freedom-status.html) *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](https://web.libera.chat/#libreboot)
on [Libera](https://libera.chat/) IRC.
You should otherwise use Libreboot:
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](https://vid.puffyan.us/watch?v=Npd_xDuNi9k) matters.
Many people use proprietary (non-libre)
boot firmware, even if they use [a libre OS](https://www.openbsd.org/).
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](https://www.coreboot.org/) for [hardware
initialisation](https://doc.coreboot.org/getting_started/architecture.html).
Coreboot is notoriously difficult to install for most non-technical users; it
handles only basic initialization and jumps to a separate
[payload](https://doc.coreboot.org/payloads.html) program (e.g.
[GRUB](https://www.gnu.org/software/grub/),
[Tianocore](https://www.tianocore.org/)), 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](https://codeberg.org/libreboot/lbmk/issues).
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](https://codeberg.org/libreboot/lbwww) 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.
<https://libreboot.org/>
LICENSE FOR THIS README
=======================

2
build
View File

@ -1 +1 @@
lbmk
gbmk

View File

@ -1 +1 @@
lbmk
gbmk

View File

@ -1,6 +1,6 @@
#!/usr/bin/env sh
# generic script for calling other scripts in lbmk
# generic script for calling other scripts in gbmk
#
# Copyright (C) 2014,2015,2020,2021,2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2015 Patrick "P. J." McDermott <pj@pehjota.net>
@ -31,8 +31,8 @@ option=""
main()
{
if [ "${0##*/}" = "lbmk" ]; then
die "Do not run the lbmk script directly!"
if [ "${0##*/}" = "gbmk" ]; then
die "Do not run the gbmk script directly!"
elif [ "${0##*/}" = "download" ]; then
./update module $@ || exit 1
exit 0
@ -77,7 +77,7 @@ main()
printf "Invalid option for '%s'." ${mode}
die "Run: ${0} ${mode} list'."
fi
"${buildpath}/${mode}/${option}" $@ || die "lbmk error"
"${buildpath}/${mode}/${option}" $@ || die "gbmk error"
esac
./.gitcheck clean

2
modify
View File

@ -1 +1 @@
lbmk
gbmk

View File

@ -1 +1 @@
censored-libreboot
nonGeNUineboot

View File

@ -3,11 +3,6 @@ From: Leah Rowe <leah@libreboot.org>
Date: Sun, 16 Jul 2023 02:25:23 +0100
Subject: [PATCH 1/1] crossgcc/cros: also fix acpica downloads here
my last revision said in libreboot/gnuboot it was
only broken in fam15h boards, but the fix is needed
here too. i've already put the correct tarball on
libreboot rsync, for this purpose
Signed-off-by: Leah Rowe <leah@libreboot.org>
---
util/crossgcc/buildgcc | 2 +-

View File

@ -6,33 +6,12 @@ Subject: [PATCH 1/1] GM45-type CPUs: don't enable alternative SMRR
This reverts the changes in coreboot revision:
df7aecd92643d207feaf7fd840f8835097346644
While this fix is *technically correct*, the one in
coreboot, it breaks rebooting as tested on several
GM45 ThinkPads e.g. X200, T400, when microcode
updates are not applied.
Since November 2022, Libreboot includes microcode
updates by default, but it tells users how to remove
it from the ROM (with cbfstool) if they wish.
Well, with Libreboot 20221214, 20230319 and 20230413,
mitigations present in Libreboot 20220710 (which did
not have microcode updates) do not exist.
This patch, along with the other patch to remove PECI
support (which breaks speedstep when microcode updates
are not applied) have now been re-added to Libreboot.
are not applied) have now been applied to non-GeNUine Boot.
It is still best to use microcode updates by default.
These patches in coreboot are not critically urgent,
and you can use the machines with or without them,
regardless of ucode.
I'll probably re-write this and the other patch at
some point, applying the change conditionally upon
whether or not microcode is applied.
Pragmatism is a good thing. I recommend it.
This fixes broken rebooting on GM45 platforms, when microcode
updates are excluded.
---
src/cpu/intel/model_1067x/model_1067x_init.c | 4 +++
src/cpu/intel/model_1067x/mp_init.c | 26 --------------------

View File

@ -8,7 +8,7 @@ the original upstream died
i decided to host it myself, on libreboot rsync,
for use by mirrors.
this is also useful for GNU Boot, when downloading
this is also useful for non-GeNUine Boot, when downloading
acpica on coreboot 4.11_branch, for fam15h boards
this change is not necessary on other coreboot trees,

View File

@ -8,7 +8,7 @@ the original upstream died
i decided to host it myself, on libreboot rsync,
for use by mirrors.
this is also useful for GNU Boot, when downloading
this is also useful for non-GeNUine Boot, when downloading
acpica on coreboot 4.11_branch, for fam15h boards
this change is not necessary on other coreboot trees,

View File

@ -1,3 +0,0 @@
The deer logo for Libreboot is copyright 2014 Marcus Moeller and released under
CC-0: https://creativecommons.org/publicdomain/zero/1.0/legalcode
The grey backgrounds with it were made by Leah Rowe in 2016, also CC-0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -34,7 +34,8 @@ keymap usqwerty
function try_user_config {
set root="${1}"
for dir in boot grub grub2 boot/grub boot/grub2; do
for name in '' osboot_ autoboot_ libreboot_ coreboot_; do
for name in '' osboot_ autoboot_ libreboot_ coreboot_
do
if [ -f /"${dir}"/"${name}"grub.cfg ]; then
unset superusers
configfile /"${dir}"/"${name}"grub.cfg

View File

@ -1,4 +1,4 @@
From ce13539fe2103abbd991814d995e06cf96e485f7 Mon Sep 17 00:00:00 2001
From 0ac5391adf2729605a2ac2606e9a8662e276daa5 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 31 Oct 2021 03:47:05 +0000
Subject: [PATCH 1/3] mitigate grub's missing characters for borders/arrow
@ -86,5 +86,5 @@ index b1321eb26..e76094dfd 100644
grub_term_highlight_color = old_color_highlight;
geo->timeout_y = geo->first_entry_y + geo->num_entries
--
2.25.1
2.40.1

View File

@ -1,14 +1,15 @@
From 70f9e72c3ff6381fe3519612de3b649c0cf26b9a Mon Sep 17 00:00:00 2001
From 51b83b0b27841bfd74776d988b5273ccfbf21ed2 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sat, 19 Nov 2022 16:30:24 +0000
Subject: [PATCH 2/3] say the name libreboot, in the grub menu
Subject: [PATCH 2/3] say the name non-GeNUine Boot, in the grub menu
Signed-off-by: Leah Rowe <leah@libreboot.org>
---
grub-core/normal/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index bd4431000..31308e16a 100644
index bd4431000..2108b8b50 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -209,7 +209,7 @@ grub_normal_init_page (struct grub_term_output *term,
@ -16,10 +17,10 @@ index bd4431000..31308e16a 100644
grub_term_cls (term);
- msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION);
+ msg_formatted = grub_xasprintf (_("libreboot firmware, based on coreboot. https://libreboot.org/"));
+ msg_formatted = grub_xasprintf (_("non-GeNUine Boot firmware"));
if (!msg_formatted)
return;
--
2.25.1
2.40.1

View File

@ -1,7 +1,7 @@
From 674002256247a01f4969a3795a5aceca68792a55 Mon Sep 17 00:00:00 2001
From a35dc04295c0b3bd04c2ed9945fedb6fb09427cd Mon Sep 17 00:00:00 2001
From: Riku Viitanen <riku.viitanen@protonmail.com>
Date: Fri, 21 Apr 2023 21:41:07 +0300
Subject: [PATCH] at_keyboard.c: add timeout to fix hang on hp elitebooks
Subject: [PATCH 3/3] at_keyboard.c: add timeout to fix hang on hp elitebooks
This fixes GRUB on Coreboot on HP EliteBooks by implementing
a 200ms timeout. GRUB used to hang. see: https://ticket.coreboot.org/issues/141
@ -32,5 +32,5 @@ index 597111077..28d1d0a77 100644
static grub_uint8_t
--
2.40.0
2.40.1

View File

@ -329,6 +329,19 @@ moverom() {
cp ${rompath} ${newrompath}
fi
# pike2008 cards cause a system hang when loading option roms in seabios
# if there is an empty option rom in cbfs, no option rom will be loaded
if [ "${cuttype}" = "d8d16sas" ]; then
emptyrom=$(mktemp -t coreboot_rom.XXXXXXXXXX)
rm -f "${emptyrom}"
touch "${emptyrom}"
for deviceID in "0072" "3050"; do
"${cbfstool}" "${newrompath}" add -f "${emptyrom}" \
-n pci1000,${deviceID}.rom -t raw
done
rm -f "${emptyrom}"
fi
for romsize in 4 8 16; do
ifdgbe="descriptors/ich9m/ich9fdgbe_${romsize}m.bin"
if [ "${cuttype}" = "${romsize}MiB ICH9 IFD NOR flash" ]; then

View File

@ -27,7 +27,7 @@ modlist="coreboot flashrom grub memtest86plus seabios u-boot"
dirlist="resources util"
filelist="lbmk modify download build README.md COPYING Makefile update"
filelist="gbmk modify download build README.md COPYING Makefile update"
filelist="${filelist} version versiondate projectname .gitcheck gitclone"
version="version-unknown"

View File

@ -191,49 +191,14 @@ censor_blobs()
return
fi
printf "Doing this to coreboot: https://en.wikipedia.org/wiki/Book_burning\n"
printf "Whatever you do, don't read: https://libreboot.org/news/policy.html\n"
rm -Rf coreboot/coreboot/
rm -Rf coreboot/.git* coreboot/*/.git* \
coreboot/*/3rdparty/*/.git*
rm -Rf coreboot/*/util/nvidia/cbootimage/.git*
# Also delete that nasty evil documentation that
# tells users how to install coreboot, because those
# evil coreboot people recommend blobs sometimes. /s
# can never be too careful!
rm -Rf coreboot/*/Documentation
# it's basically book-burning. GNU FSDG policy == censorship.
# https://en.wikipedia.org/wiki/Book_burning
# there is a much better way:
# https://libreboot.org/news/policy.html
# but this version of libreboot is designed for the FSF
# to use in their GNU Boot project.
# and i guarantee you, they will remove the above comments
# if they fork this code.
# *they* will call it FREEDOM.
# but it's not. they're removing your freedom to choose.
# and censoring everything they don't like.
# they will decide what is good for you.
# they will decide against you.
# and if you fell for their propaganda, you'll feel
# pure. despite the fact that your machine is still
# full of blobs, even if the boot flash is blob-free.
# see:
# https://libreboot.org/faq.html#what-other-firmware-exists-outside-of-libreboot
# this, despite the fact that libreboot is a free software
# project. they call it non-free. the truth is written here:
# https://libreboot.org/freedom-status.html
for cbdir in coreboot/*; do
if [ ! -d "${cbdir}" ]; then continue; fi
cbtree="${cbdir##coreboot/}"

2
update
View File

@ -1 +1 @@
lbmk
gbmk

View File

@ -1,8 +0,0 @@
This change log has moved. Please refer here for historical pre-osboot-merge
changes:
<https://libreboot.org/docs/install/nvmutilimport.html>
Osboot merged with Libreboot on November 17th, 2022. For nvmutil changes after
this date, please check regular Libreboot release announcements which shall
now specify any such changes.

View File

@ -1,4 +0,0 @@
This documentation has become part of lbwww. See:
<https://libreboot.org/docs/install/nvmutil.html>