parent
77198f7f5d
commit
e4b30750d1
|
@ -429,7 +429,7 @@ Mate Kukri
|
||||||
|
|
||||||
Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams
|
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
|
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
|
Off the top of my head, here are just a few of the contributions that he has
|
||||||
made:
|
made:
|
||||||
|
|
|
@ -139,7 +139,7 @@ MAC address
|
||||||
This has a Realtek NIC inside, instead of Intel, so the MAC address will not
|
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.
|
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.
|
from Linux if you want to.
|
||||||
|
|
||||||
This is great, because that's one less complexity to deal with during
|
This is great, because that's one less complexity to deal with during
|
||||||
|
|
|
@ -58,7 +58,7 @@ build system can be found in the [lbmk maintenance manual](../maintain/),
|
||||||
and information about porting new systems in
|
and information about porting new systems in
|
||||||
the [porting manual](../maintain/porting.md).
|
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).
|
systems, you can use the U-Boot payload (coreboot still initialises hardware).
|
||||||
|
|
||||||
Libreboot currently supports the following systems:
|
Libreboot currently supports the following systems:
|
||||||
|
|
|
@ -44,7 +44,7 @@ linked above tells you how to apply your modifications for flashing.**
|
||||||
Flash write protection
|
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,
|
except you from overwriting the flash without permission. This is important,
|
||||||
because you don't want some malicious software running as root from overwriting
|
because you don't want some malicious software running as root from overwriting
|
||||||
your flash, thus removing any of the above protections.
|
your flash, thus removing any of the above protections.
|
||||||
|
|
|
@ -453,7 +453,7 @@ src/grub/TREE
|
||||||
|
|
||||||
Please also visit: <https://www.gnu.org/software/grub/>
|
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
|
small kernel/OS and drivers (e.g. file systems, cryptography). This is the
|
||||||
default recommended [coreboot payload](https://doc.coreboot.org/payloads.html)
|
default recommended [coreboot payload](https://doc.coreboot.org/payloads.html)
|
||||||
on x86-based Libreboot systems. GRUB will load and execute your Linux kernel,
|
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 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,
|
more clearly named. A top-down, OpenBSD-inspired coding style is used,
|
||||||
replacing the GNU coding style implemented in the original code. The [OpenBSD
|
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
|
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
|
on [OpenBSD](https://www.openbsd.org/); the original version from GRUB did not
|
||||||
|
|
|
@ -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.
|
be portable; where possible, third party projects should be tweaked.
|
||||||
|
|
||||||
This is actually something that is currently lacking or otherwise untested
|
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
|
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
|
bashisms, and/or rely on idiosyncrasies of glibc.
|
||||||
behaviour in Makefiles).
|
|
||||||
|
|
||||||
Work+testing is sorely needed, in this area. It would be nice if Libreboot
|
Work+testing is sorely needed, in this area. It would be nice if Libreboot
|
||||||
could be built on BSD systems, for example.
|
could be built on BSD systems, for example.
|
||||||
|
|
|
@ -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.
|
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)
|
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)
|
- 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
|
- 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:
|
Now make the filesystems:
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
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
|
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'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
|
it may make sense to use the same license on your contribution, for license
|
||||||
compatibility.
|
compatibility.
|
||||||
|
|
|
@ -46,7 +46,7 @@ Libreboot provides [coreboot](https://coreboot.org/) for [machine
|
||||||
initialisation](https://doc.coreboot.org/getting_started/architecture.html),
|
initialisation](https://doc.coreboot.org/getting_started/architecture.html),
|
||||||
which then jumps to a [payload](https://doc.coreboot.org/payloads.html) in
|
which then jumps to a [payload](https://doc.coreboot.org/payloads.html) in
|
||||||
the boot flash; coreboot works with many payloads, but Libreboot specifically
|
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
|
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*
|
the early user interface, for booting an operating system. This *payload*
|
||||||
infrastructure means you can run whatever you want (even Linux!) from the
|
infrastructure means you can run whatever you want (even Linux!) from the
|
||||||
|
|
|
@ -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>
|
<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 как вы желаете.
|
Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете.
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@ so you can think of it like a *[coreboot distribution](../docs/maintain/)*;
|
||||||
Libreboot's build
|
Libreboot's build
|
||||||
system is essentially a source-based package manager, for coreboot components.
|
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
|
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
|
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
|
very well-developed for end users. GRUB is a lot more complex than many people
|
||||||
|
@ -162,13 +162,8 @@ use today.
|
||||||
Libreboot logo
|
Libreboot logo
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Of note, though it doesn't fit anywhere else in the article, so I'll just say
|
Marcus Moeller designed the Libreboot logo in 2014, after I publicly requested
|
||||||
it now:
|
that samples be prepared for my review. Marcus's logo was the one I chose.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Why GRUB?
|
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.
|
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
|
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
|
Heymans contributed several ports aswell, and today still does extensive work
|
||||||
on coreboot - both Damien and Arthur left the Libreboot project, after its
|
on coreboot - both Damien and Arthur left the Libreboot project, after Libreboot
|
||||||
departure from GNU (more on this next).
|
became independent again.
|
||||||
|
|
||||||
This period was a watershed moment in general, for the Libreboot project. Many
|
This period was a watershed moment in general, for the Libreboot project. Many
|
||||||
people contributed to the project, during this period. You can check
|
people contributed to the project, during this period. You can check
|
||||||
|
|
|
@ -106,10 +106,10 @@ spkmodem-recv
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
This utility was *added* after the last release. It was imported from coreboot,
|
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*.
|
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).
|
style and replacing it with a BSD coding style (the licensing is unchanged).
|
||||||
|
|
||||||
For reference, here is the original version from GRUB:
|
For reference, here is the original version from GRUB:
|
||||||
|
|
|
@ -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
|
namely `-d`, which can be passed to the program. The code for debug is now
|
||||||
present in any build. Usage: `spkmodem-recv -d`
|
present in any build. Usage: `spkmodem-recv -d`
|
||||||
* New util: `util/spkmodem_recv` - imported from coreboot, which in turn forked
|
* 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
|
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
|
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
|
It is also [pledged](https://man.openbsd.org/pledge.2) in
|
||||||
Libreboot's version. For reference,
|
Libreboot's version. For reference,
|
||||||
[here](https://git.savannah.gnu.org/cgit/grub.git/plain/util/spkmodem-recv.c?id=822b726b33b8dc07dd01b257a2dfcc7b07d12e2f)
|
[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://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)
|
[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,
|
is the Libreboot version present in release 20230625. A very much GNU program,
|
||||||
|
|
|
@ -11,7 +11,7 @@ operating system (e.g. Linux/BSD). It is specifically
|
||||||
a *[coreboot distribution](../docs/maintain/)*,
|
a *[coreboot distribution](../docs/maintain/)*,
|
||||||
in the same way that Debian is a Linux distribution. It provides an automated
|
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
|
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.
|
to use as possible for non-technical users.
|
||||||
|
|
||||||
Libreboot provides many additional benefits such as fast boot speeds, greater
|
Libreboot provides many additional benefits such as fast boot speeds, greater
|
||||||
|
|
|
@ -15,13 +15,13 @@ operating system (e.g. Linux/BSD). It is specifically
|
||||||
a *[coreboot distribution](../docs/maintain/)*,
|
a *[coreboot distribution](../docs/maintain/)*,
|
||||||
in the same way that Debian is a Linux distribution. It provides an automated
|
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
|
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,
|
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
|
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.
|
of infrastructure, but for your boot firmware instead of your operating system.
|
||||||
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
||||||
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
|
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).
|
system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload).
|
||||||
|
|
||||||
Libreboot provides many additional benefits such as fast boot speeds, greater
|
Libreboot provides many additional benefits such as fast boot speeds, greater
|
||||||
|
|
|
@ -16,7 +16,7 @@ operating system (e.g. Linux/BSD). It is specifically
|
||||||
a *[coreboot distribution](../docs/maintain/)*,
|
a *[coreboot distribution](../docs/maintain/)*,
|
||||||
in the same way that Debian is a Linux distribution. It provides an automated
|
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
|
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,
|
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
|
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.
|
of infrastructure, but for your boot firmware instead of your operating system.
|
||||||
|
|
|
@ -19,13 +19,13 @@ operating system (e.g. Linux/BSD). It is specifically
|
||||||
a *[coreboot distribution](../docs/maintain/)*,
|
a *[coreboot distribution](../docs/maintain/)*,
|
||||||
in the same way that Debian is a Linux distribution. It provides an automated
|
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
|
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,
|
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
|
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.
|
package manager (called lbmk) which patches sources and compiles coreboot images.
|
||||||
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
||||||
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
|
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).
|
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
|
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
|
where the BIOS region ends at 4MB; you would then flash the full image
|
||||||
internally, after the fact.
|
internally, after the fact.
|
||||||
* Relative to audit6: Patch uefitool for musl libc. The code was making use
|
* 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
|
of `ACCESSPERMS`, which is a define in BSD libc (also available in glibc)
|
||||||
C Library) for use with chmod when setting 777 permission on files. The musl
|
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
|
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.
|
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
|
* Relative to audit6: Don't dry-run `mkcorebootbin` when using the `-d` switch
|
||||||
|
|
|
@ -30,13 +30,13 @@ operating system (e.g. Linux/BSD). It is specifically
|
||||||
a *[coreboot distribution](../docs/maintain/)*,
|
a *[coreboot distribution](../docs/maintain/)*,
|
||||||
in the same way that Debian is a Linux distribution. It provides an automated
|
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
|
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,
|
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
|
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.
|
package manager (called lbmk) which patches sources and compiles coreboot images.
|
||||||
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
||||||
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
|
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).
|
system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload).
|
||||||
|
|
||||||
U-Boot UEFI payload on x86\_64
|
U-Boot UEFI payload on x86\_64
|
||||||
|
|
|
@ -18,13 +18,13 @@ operating system (e.g. Linux/BSD). It is specifically
|
||||||
a *[coreboot distribution](../docs/maintain/)*,
|
a *[coreboot distribution](../docs/maintain/)*,
|
||||||
in the same way that Debian is a Linux distribution. It provides an automated
|
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
|
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,
|
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
|
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.
|
package manager (called lbmk) which patches sources and compiles coreboot images.
|
||||||
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation,
|
||||||
and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS)
|
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).
|
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
|
We also provide an experimental U-Boot setup on x86, as a coreboot payload for
|
||||||
|
|
|
@ -385,7 +385,7 @@ have more - for now.
|
||||||
|
|
||||||
Let's take an extreme example: what if coreboot was entirely binary blobs
|
Let's take an extreme example: what if coreboot was entirely binary blobs
|
||||||
for a given mainboard? Coreboot itself only initialises the hardware, and
|
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,
|
would still be free software. Surely, all free firmware would be better,
|
||||||
but this is still an improvement over the original vendor firmware. The
|
but this is still an improvement over the original vendor firmware. The
|
||||||
original vendor firmware will have non-free boot firmware *and* its analog
|
original vendor firmware will have non-free boot firmware *and* its analog
|
||||||
|
|
|
@ -447,7 +447,7 @@ have more - for now.
|
||||||
|
|
||||||
Let's take an extreme example: what if coreboot was entirely binary blobs
|
Let's take an extreme example: what if coreboot was entirely binary blobs
|
||||||
for a given mainboard? Coreboot itself only initialises the hardware, and
|
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,
|
would still be free software. Surely, all free firmware would be better,
|
||||||
but this is still an improvement over the original vendor firmware. The
|
but this is still an improvement over the original vendor firmware. The
|
||||||
original vendor firmware will have non-free boot firmware *and* its analog
|
original vendor firmware will have non-free boot firmware *and* its analog
|
||||||
|
|
|
@ -376,7 +376,7 @@ have more - for now.
|
||||||
|
|
||||||
Let's take an extreme example: what if coreboot was entirely binary blobs
|
Let's take an extreme example: what if coreboot was entirely binary blobs
|
||||||
for a given mainboard? Coreboot itself only initialises the hardware, and
|
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,
|
would still be free software. Surely, all free firmware would be better,
|
||||||
but this is still an improvement over the original vendor firmware. The
|
but this is still an improvement over the original vendor firmware. The
|
||||||
original vendor firmware will have non-free boot firmware *and* its analog
|
original vendor firmware will have non-free boot firmware *and* its analog
|
||||||
|
|
|
@ -405,7 +405,7 @@ the [u-root](https://github.com/u-root/u-root) project.
|
||||||
Libreboot's current choice of coreboot payloads are:
|
Libreboot's current choice of coreboot payloads are:
|
||||||
|
|
||||||
* SeaBIOS (x86 only), provides a traditional PC BIOS implementation
|
* 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
|
BSD. This is the preferred default payload on x86, especially for Linux
|
||||||
distros, because it provides many security features like GPG signature
|
distros, because it provides many security features like GPG signature
|
||||||
checking on Linux kernels, and password protection.
|
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
|
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.
|
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
|
Libreboot currently uses. Linux has much better drivers than GRUB, especially
|
||||||
for things like LUKS2 and networking.
|
for things like LUKS2 and networking.
|
||||||
|
|
||||||
|
@ -1211,9 +1211,7 @@ Sanity checks
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
We basically should have startup sanity checks in general, such as checking
|
We basically should have startup sanity checks in general, such as checking
|
||||||
whether all the right dependencies are installed on the host system - similar
|
whether all the right dependencies are installed on the host system.
|
||||||
to autoconf setups used by many GNU projects, though we don't want to use
|
|
||||||
autoconf, it's bloat.
|
|
||||||
|
|
||||||
If a sanity check is passed, a configuration file can then be provided, which
|
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
|
can be used to control how lbmk runs. For example, if a certain version of a
|
||||||
|
|
Loading…
Reference in New Issue