Signed-off-by: Leah Rowe <leah@libreboot.org>
master
Leah Rowe 2025-01-18 04:55:26 +00:00
parent 77198f7f5d
commit e4b30750d1
23 changed files with 41 additions and 49 deletions

View File

@ -429,7 +429,7 @@ Mate Kukri
Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams
that it uses; he is a coreboot developer, and also contributes heavily to the
GNU GRUB project.
GRUB bootloader project.
Off the top of my head, here are just a few of the contributions that he has
made:

View File

@ -139,7 +139,7 @@ MAC address
This has a Realtek NIC inside, instead of Intel, so the MAC address will not
change. This means: there is no GbE region in the flash.
You can still use something like GNU MAC Changer to change your MAC address
You can still use something like `macchanger` to change your MAC address
from Linux if you want to.
This is great, because that's one less complexity to deal with during

View File

@ -58,7 +58,7 @@ build system can be found in the [lbmk maintenance manual](../maintain/),
and information about porting new systems in
the [porting manual](../maintain/porting.md).
With x86 machines, you can use the SeaBIOS or GNU GRUB payloads. On ARM
With x86 machines, you can use the SeaBIOS or GRUB bootloader payloads. On ARM
systems, you can use the U-Boot payload (coreboot still initialises hardware).
Libreboot currently supports the following systems:

View File

@ -44,7 +44,7 @@ linked above tells you how to apply your modifications for flashing.**
Flash write protection
======================
Although not strictly related to GNU GRUB, flash protection will prevent anyone
Although not strictly related to GRUB, flash protection will prevent anyone
except you from overwriting the flash without permission. This is important,
because you don't want some malicious software running as root from overwriting
your flash, thus removing any of the above protections.

View File

@ -453,7 +453,7 @@ src/grub/TREE
Please also visit: <https://www.gnu.org/software/grub/>
The GNU GRUB bootloader, a reference multiboot implementation with its own
The GRUB bootloader, a reference multiboot implementation with its own
small kernel/OS and drivers (e.g. file systems, cryptography). This is the
default recommended [coreboot payload](https://doc.coreboot.org/payloads.html)
on x86-based Libreboot systems. GRUB will load and execute your Linux kernel,
@ -681,7 +681,7 @@ directly into `lbmk.git`, and thoroughly cleaned. The lbmk version has been
more or less re-written, using the original logic as a base; variables are
more clearly named. A top-down, OpenBSD-inspired coding style is used,
replacing the GNU coding style implemented in the original code. The [OpenBSD
coding style][https://man.openbsd.org/style.9] is much easier to read.
coding style](https://man.openbsd.org/style.9) is much easier to read.
This code has been modified to make use of the `pledge()` system call, when used
on [OpenBSD](https://www.openbsd.org/); the original version from GRUB did not

View File

@ -307,10 +307,9 @@ In addition to not using bashisms, commands that lbmk uses must also
be portable; where possible, third party projects should be tweaked.
This is actually something that is currently lacking or otherwise untested
in Libreboot; it's currently assumed that only Linux (specifically GNU+Linux)
in Libreboot; it's currently assumed that only common Linux distributions
will work, because many of the projects that Libreboot makes use of will use
bashisms, or other GNUisms (e.g. GNU-specific C extensions or GNU Make specific
behaviour in Makefiles).
bashisms, and/or rely on idiosyncrasies of glibc.
Work+testing is sorely needed, in this area. It would be nice if Libreboot
could be built on BSD systems, for example.

View File

@ -8,7 +8,7 @@ Background
ArchLinuxARM Latest (as of May 1st 2023) boots and can be installed successfully using libreboot 20230319 on a gru_bob chromebook.
The following process should theoretically be applicable to other U-Boot devices and GNU/Linux distributions, but the focus here is specifically on ArchLinuxARM.
The following process should theoretically be applicable to other U-Boot devices and Linux distributions, but the focus here is specifically on ArchLinuxARM.
Sources used for this guide include the [following guide to install ArchLinuxARM on a RockPro64,](https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html)
@ -85,7 +85,7 @@ In the fdisk tui, create two partitions on a Master Boot Record:
- set type to fat32 (ext2 is also supported by extlinux I believe, but I used fat32)
- create a second partition of up to 15.8GB
You will find the appropriate options by typing `m` when using the fdisk tui on GNU/Linux distros.
You will find the appropriate options by typing `m` when using the fdisk tui on Linux distros.
Now make the filesystems:
```

View File

@ -189,7 +189,7 @@ proprietary, subject to all of the same restrictions.
The MIT license is a good one to start with, and it is the preferred license
for all new works in Libreboot, but we're not picky. Libreboot has historically
used GNU licensing such as GPL; much of that remains, and is likely to remain.
used mostly GPL licensing; much of that remains, and is likely to remain.
It's your work; obviously, if you're deriving from an existing work,
it may make sense to use the same license on your contribution, for license
compatibility.

View File

@ -46,7 +46,7 @@ Libreboot provides [coreboot](https://coreboot.org/) for [machine
initialisation](https://doc.coreboot.org/getting_started/architecture.html),
which then jumps to a [payload](https://doc.coreboot.org/payloads.html) in
the boot flash; coreboot works with many payloads, but Libreboot specifically
provides SeaBIOS, GNU GRUB and U-Boot as options. Memtest86+ is also provided
provides SeaBIOS, GRUB and U-Boot as options. Memtest86+ is also provided
in flash, on some mainboards. The payload is the program in flash that provides
the early user interface, for booting an operating system. This *payload*
infrastructure means you can run whatever you want (even Linux!) from the

View File

@ -18,7 +18,7 @@ x-toc-enable: true
<img tabindex=1 class="l" src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /></span>
Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GNU GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Это значит, что вы можете запустить все что угодно из загрузочной флэш-памяти (даже Linux!).
Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Это значит, что вы можете запустить все что угодно из загрузочной флэш-памяти (даже Linux!).
Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете.

View File

@ -141,7 +141,7 @@ so you can think of it like a *[coreboot distribution](../docs/maintain/)*;
Libreboot's build
system is essentially a source-based package manager, for coreboot components.
The very first Libreboot releases only provided a *GNU GRUB* payload. The
The very first Libreboot releases only provided a *GRUB* bootloader payload. The
GRUB bootloader had been adapted for coreboot many years before then, but there
weren't any ready-made coreboot images available that used it, and it wasn't
very well-developed for end users. GRUB is a lot more complex than many people
@ -162,13 +162,8 @@ use today.
Libreboot logo
--------------
Of note, though it doesn't fit anywhere else in the article, so I'll just say
it now:
I went on the GNU mailing lists during 2014, asking people to make a logo for
the project. Several people then emailed me their submissions. I finally picked
the logo design that Libreboot now uses, and has used since then. That design
was created by a person named Marcus Moeller, for use in the Libreboot project.
Marcus Moeller designed the Libreboot logo in 2014, after I publicly requested
that samples be prepared for my review. Marcus's logo was the one I chose.
Why GRUB?
---------
@ -429,8 +424,8 @@ Several other desktop boards were also added during this period, such as
the Gigabyte GA-G41M-ES2L board that was ported to coreboot by Damien Zammit.
He was compensated for his work; I paid him 4000 AUD for the trouble. Arthur
Heymans contributed several ports aswell, and today still does extensive work
on coreboot - both Damien and Arthur left the Libreboot project, after its
departure from GNU (more on this next).
on coreboot - both Damien and Arthur left the Libreboot project, after Libreboot
became independent again.
This period was a watershed moment in general, for the Libreboot project. Many
people contributed to the project, during this period. You can check

View File

@ -106,10 +106,10 @@ spkmodem-recv
-------------
This utility was *added* after the last release. It was imported from coreboot,
which in turn previously forked it from GNU GRUB. It is a receiving client for
which in turn previously forked it from GRUB. It is a receiving client for
spkmodem, to provide a serial console via pulses on the standard *PC speaker*.
Libreboot's version is *heavily* re-factored, doing away with the GNU coding
Libreboot's version is *heavily* re-factored, doing away with the messy GNU coding
style and replacing it with a BSD coding style (the licensing is unchanged).
For reference, here is the original version from GRUB:

View File

@ -187,14 +187,14 @@ Newest changes first, oldest changes last:
namely `-d`, which can be passed to the program. The code for debug is now
present in any build. Usage: `spkmodem-recv -d`
* New util: `util/spkmodem_recv` - imported from coreboot, which in turn forked
it originally from GNU GRUB. This is a receiving client for *spkmodem*, a type
it originally from GRUB. This is a receiving client for *spkmodem*, a type
of serial console provided via pulses over PC speaker. Libreboot's version
greatly improves the error handling, and it has been re-factored for OpenBSD
coding style, to replace the (very horrible) GNU coding style.
coding style, to replace the (very horrible, very messy) GNU coding style.
It is also [pledged](https://man.openbsd.org/pledge.2) in
Libreboot's version. For reference,
[here](https://git.savannah.gnu.org/cgit/grub.git/plain/util/spkmodem-recv.c?id=822b726b33b8dc07dd01b257a2dfcc7b07d12e2f)
is the GNU version, and
is the GRUB version, and
[here](https://raw.githubusercontent.com/coreboot/coreboot/8febc91b3041a1d027bf0d36d30ccb119496524f/util/spkmodem_recv/spkmodem-recv.c) is coreboot's version of it. And now to blow your mind,
[here](https://browse.libreboot.org/lbmk.git/tree/util/spkmodem_recv/spkmodem-recv.c?id=b508245451b71b3443fa3202f3863a6de731e9c8)
is the Libreboot version present in release 20230625. A very much GNU program,

View File

@ -11,7 +11,7 @@ operating system (e.g. Linux/BSD). It is specifically
a *[coreboot distribution](../docs/maintain/)*,
in the same way that Debian is a Linux distribution. It provides an automated
build system to produce coreboot ROM images with a variety of payloads such as
GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
to use as possible for non-technical users.
Libreboot provides many additional benefits such as fast boot speeds, greater

View File

@ -15,13 +15,13 @@ operating system (e.g. Linux/BSD). It is specifically
a *[coreboot distribution](../docs/maintain/)*,
in the same way that Debian is a Linux distribution. It provides an automated
build system to produce coreboot ROM images with a variety of payloads such as
GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
to use as possible for non-technical users. From a project management perspective,
this works in *exactly* the same way as a Linux distro, providing the same type
of infrastructure, but for your boot firmware instead of your operating system.
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating
or [GRUB](https://www.gnu.org/software/grub/) to boot your operating
system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload).
Libreboot provides many additional benefits such as fast boot speeds, greater

View File

@ -16,7 +16,7 @@ operating system (e.g. Linux/BSD). It is specifically
a *[coreboot distribution](../docs/maintain/)*,
in the same way that Debian is a Linux distribution. It provides an automated
build system to produce coreboot ROM images with a variety of payloads such as
GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
to use as possible for non-technical users. From a project management perspective,
this works in *exactly* the same way as a Linux distro, providing the same type
of infrastructure, but for your boot firmware instead of your operating system.

View File

@ -19,13 +19,13 @@ operating system (e.g. Linux/BSD). It is specifically
a *[coreboot distribution](../docs/maintain/)*,
in the same way that Debian is a Linux distribution. It provides an automated
build system to produce coreboot ROM images with a variety of payloads such as
GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
to use as possible for non-technical users. From a project management perspective,
this works in *exactly* the same way as a Linux distro, providing a source-based
package manager (called lbmk) which patches sources and compiles coreboot images.
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating
or [GRUB](https://www.gnu.org/software/grub/) to boot your operating
system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload).
The changes of the recent [6th build system audit](audit6.md) are included, in
@ -450,8 +450,8 @@ The changes are as follows:
where the BIOS region ends at 4MB; you would then flash the full image
internally, after the fact.
* Relative to audit6: Patch uefitool for musl libc. The code was making use
of `ACCESSPERMS`, which is a define in BSD libc (also available in the GNU
C Library) for use with chmod when setting 777 permission on files. The musl
of `ACCESSPERMS`, which is a define in BSD libc (also available in glibc)
for use with chmod when setting 777 permission on files. The musl
libc doesn't have this, so the code was modified to explicitly define it in
the same way, but only if not already defined. Useful for Alpine Linux users.
* Relative to audit6: Don't dry-run `mkcorebootbin` when using the `-d` switch

View File

@ -30,13 +30,13 @@ operating system (e.g. Linux/BSD). It is specifically
a *[coreboot distribution](../docs/maintain/)*,
in the same way that Debian is a Linux distribution. It provides an automated
build system to produce coreboot ROM images with a variety of payloads such as
GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
to use as possible for non-technical users. From a project management perspective,
this works in *exactly* the same way as a Linux distro, providing a source-based
package manager (called lbmk) which patches sources and compiles coreboot images.
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating
or [GRUB](https://www.gnu.org/software/grub/) to boot your operating
system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload).
U-Boot UEFI payload on x86\_64

View File

@ -18,13 +18,13 @@ operating system (e.g. Linux/BSD). It is specifically
a *[coreboot distribution](../docs/maintain/)*,
in the same way that Debian is a Linux distribution. It provides an automated
build system to produce coreboot ROM images with a variety of payloads such as
GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
to use as possible for non-technical users. From a project management perspective,
this works in *exactly* the same way as a Linux distro, providing a source-based
package manager (called lbmk) which patches sources and compiles coreboot images.
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating
or [GRUB](https://www.gnu.org/software/grub/) to boot your operating
system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload).
We also provide an experimental U-Boot setup on x86, as a coreboot payload for

View File

@ -385,7 +385,7 @@ have more - for now.
Let's take an extreme example: what if coreboot was entirely binary blobs
for a given mainboard? Coreboot itself only initialises the hardware, and
jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB)
jumps to a payload in the flash; in this case, the payload (e.g. GRUB)
would still be free software. Surely, all free firmware would be better,
but this is still an improvement over the original vendor firmware. The
original vendor firmware will have non-free boot firmware *and* its analog

View File

@ -447,7 +447,7 @@ have more - for now.
Let's take an extreme example: what if coreboot was entirely binary blobs
for a given mainboard? Coreboot itself only initialises the hardware, and
jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB)
jumps to a payload in the flash; in this case, the payload (e.g. GRUB)
would still be free software. Surely, all free firmware would be better,
but this is still an improvement over the original vendor firmware. The
original vendor firmware will have non-free boot firmware *and* its analog

View File

@ -376,7 +376,7 @@ have more - for now.
Let's take an extreme example: what if coreboot was entirely binary blobs
for a given mainboard? Coreboot itself only initialises the hardware, and
jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB)
jumps to a payload in the flash; in this case, the payload (e.g. GRUB)
would still be free software. Surely, all free firmware would be better,
but this is still an improvement over the original vendor firmware. The
original vendor firmware will have non-free boot firmware *and* its analog

View File

@ -405,7 +405,7 @@ the [u-root](https://github.com/u-root/u-root) project.
Libreboot's current choice of coreboot payloads are:
* SeaBIOS (x86 only), provides a traditional PC BIOS implementation
* GNU GRUB (x86 only), provides a multiboot implementation, can boot Linux and
* GRUB (x86 only), provides a multiboot implementation, can boot Linux and
BSD. This is the preferred default payload on x86, especially for Linux
distros, because it provides many security features like GPG signature
checking on Linux kernels, and password protection.
@ -418,7 +418,7 @@ Libreboot's current choice of coreboot payloads are:
U-Root in particular (not to be confused with U-boot has parsers in it for
GRUB and Syslinux config files. GRUB also has a parser for syslinux configs.
This makes it a useful drop-in replacement for the GNU GRUB payload that
This makes it a useful drop-in replacement for the GRUB bootloader payload that
Libreboot currently uses. Linux has much better drivers than GRUB, especially
for things like LUKS2 and networking.
@ -1211,9 +1211,7 @@ Sanity checks
-------------
We basically should have startup sanity checks in general, such as checking
whether all the right dependencies are installed on the host system - similar
to autoconf setups used by many GNU projects, though we don't want to use
autoconf, it's bloat.
whether all the right dependencies are installed on the host system.
If a sanity check is passed, a configuration file can then be provided, which
can be used to control how lbmk runs. For example, if a certain version of a