mirror of
https://codeberg.org/canoeboot/cbwww.git
synced 2025-02-05 14:10:40 +00:00
f654e38216
Signed-off-by: Leah Rowe <leah@libreboot.org>
384 lines
16 KiB
Markdown
384 lines
16 KiB
Markdown
---
|
|
title: Other coreboot distributions providing Open Source BIOS/UEFI firmware
|
|
x-toc-enable: true
|
|
...
|
|
|
|
What is a coreboot distro?
|
|
--------------------------
|
|
|
|
Canoeboot is a *coreboot distribution* or *coreboot distro*, in the same way
|
|
that Debian is a *Linux distro*. Its purpose is to provide free/opensource boot
|
|
firmware, replacing proprietary BIOS/UEFI firmware, and it
|
|
supports [many machines](docs/install/#which-systems-are-supported-by-canoeboot).
|
|
|
|
It is a coreboot distro precisely because of its [design](docs/maintain/).
|
|
Canoeboot's build system automatically downloads, patches and builds all the
|
|
various upstream sources such as coreboot, GRUB, SeaBIOS, U-Boot and so on.
|
|
This automation is used to provide [binary releases](download.md), which the
|
|
user can [easily install](docs/install/). Coreboot is notoriously difficult
|
|
to configure and install, for most people, and you need a high degree of
|
|
technical skill to use it; distros like Canoeboot bridge this gap, making
|
|
coreboot accessible to non-technical users.
|
|
|
|
Coreboot is highly flexible for many configurations. It is quite possible build
|
|
to [your own coreboot image](https://doc.coreboot.org/getting_started/index.html)
|
|
but most non-technical users should probably use a coreboot distro.
|
|
|
|
It's thanks to the various coreboot distros that many people use coreboot today;
|
|
without them, many otherwise non-technical users might not use coreboot at all.
|
|
|
|
List of coreboot distros
|
|
------------------------
|
|
|
|
Not all distros are listed; only those of high quality or otherwise of interest;
|
|
quality, not quantity. In alphabetical order:
|
|
|
|
### Dasharo
|
|
|
|
Website: <https://docs.dasharo.com/>
|
|
|
|
Git repositories: <https://github.com/dasharo>
|
|
|
|
Supports many machines, with a choice of EDK2(UEFI) or Heads(Linuxboot)
|
|
payload in the flash. Some older machines may provide a SeaBIOS payload
|
|
instead. A lot of work that goes into the upstream coreboot project came
|
|
from the Dasharo developers.
|
|
|
|
Dasharo provides their own fork of coreboot, with a specific tree *per board*.
|
|
Several coreboot ports (e.g. MSI Z690-A PRO) were implemented directly by
|
|
the Dasharo project, and later upstreamed into the regular coreboot project.
|
|
|
|
Dasharo has a special emphasis on commercial application, providing tailored
|
|
coreboot images for each supported motherboard, with an emphasis on stability.
|
|
|
|
### Heads
|
|
|
|
Website: <https://osresearch.net/>
|
|
|
|
Git repositories: <https://github.com/linuxboot/heads>
|
|
|
|
Heads provides a LinuxBoot payload using U-Root, and has many advanced features
|
|
such as TPM-based MeasuredBoot. With combined use of a FIDO key, you can easily
|
|
and more reliably determine whether you boot firmware has been tampered with.
|
|
|
|
The Linux-based payload in flash uses kexec to boot another Linux kernel. It
|
|
provides an easy to use boot menu, highly configurable and supports many
|
|
Linux distros easily.
|
|
|
|
If you're the sort of person who needs full disk encryption and you have a
|
|
focus on security, Heads is for you. Perfect for use with something like Qubes.
|
|
|
|
Another focus of the heads project is on *reproducible builds*. Its build
|
|
system bootstraps a toolchain that then compiles everything else, including
|
|
the coreboot crossgcc toolchain. The purpose of this is to provide matching
|
|
ROM hashes on every build; for this purpose, it also auto-downloads vendor
|
|
files such as Intel ME at build time, instead of requiring you to dump from
|
|
the original boot firmware.
|
|
|
|
### Libreboot
|
|
|
|
Website: <https://libreboot.org/>
|
|
|
|
Git repositories: <https://libreboot.org/git.html>
|
|
|
|
Libreboot was the *first* coreboot distro ever, starting in December 2013.
|
|
|
|
Canoeboot is a *special fork* of Libreboot; both Canoeboot and Libreboot are
|
|
maintained in parallel by the same developer, Leah Rowe. Canoeboot supports
|
|
far less hardware than Libreboot, but provides a *pure* free software coreboot
|
|
distribution, due to its [blob extermination policy](news/policy.md). As
|
|
a result of Canoeboot's policy, it currently only supports very old hardware.
|
|
|
|
It otherwise has the exact same design as Libreboot, and is kept in relative
|
|
sync [at all times](about.html), often doing releases side by side on the same
|
|
days as Libreboot.
|
|
|
|
*Libreboot* supports more hardware than Canoeboot, due to its more
|
|
pragmatic [Binary Blob Reduction Policy](https://libreboot.org/news/policy.html)
|
|
adopted on 17 November 2022; Canoeboot is a continuation of Libreboot from prior
|
|
to this, since Libreboot initially used the same dogmatic policy as Canoeboot.
|
|
A small minority of users demanded it post-November 2022, so Canoeboot was born.
|
|
|
|
If you're an absolute Free Software fanatic, Canoeboot is for you. Otherwise,
|
|
if you want to use much newer hardware, Libreboot is a worthy choice. Since
|
|
Canoeboot only supports much older hardware, and uses Libreboot's *old* policy,
|
|
you could consider Canoeboot to be *legacy Libreboot*. Libreboot adopted the
|
|
Binary Blob Reduction Policy in November 2022, as part of a general desire to
|
|
support more - and newer - hardware.
|
|
|
|
Libreboot also [includes CPU microcode updates
|
|
by default](news/policy.md#more-detailed-insight-about-microcode), on any given
|
|
x86 machine that both Canoeboot and Libreboot support; these updates improve
|
|
system stability and fix security issues. It is for *this* reason that all users
|
|
are in fact advised to use *Libreboot*, not Canoeboot. Canoeboot is meant only
|
|
as a proof of concept, and/or for purists who absolutely wish to have the purest
|
|
free software experience possible, regardless of these facts.
|
|
|
|
### MrChromeBox
|
|
|
|
Website: <https://docs.mrchromebox.tech/>
|
|
|
|
Git repositories: <https://github.com/MrChromebox/>
|
|
|
|
Provides a tailored EDK2(UEFI) payload on supported *Chromebooks*. You can use
|
|
this to replace ChromeOS with a regular Linux distro or BSD system - even
|
|
Windows - if you wish.
|
|
|
|
The benefit of using *MrChromebox* is that it provides up to date EDK2, unlike
|
|
proprietary vendors who often provide old, CVE-ridden versions of EDK2 forks
|
|
such as InsydeH2O.
|
|
|
|
With MrChromebox's guidance, you can have a completely up to date UEFI firmware
|
|
on your machine, and get good use out of your Chromebook for many more years,
|
|
with regular security updates.
|
|
|
|
You can also use the [Chrultrabook Docs](https://docs.chrultrabook.com/) which
|
|
make use of MrChromebox and might prove useful.
|
|
|
|
One of Chultrabook's maintainers, Elly, did this talk at 37C3 conference,
|
|
demonstrating Chultrabook:
|
|
<https://www.youtube.com/watch?v=7HFIQi835wY> - and also did this more general
|
|
talk about coreboot at 38C3: <https://www.youtube.com/watch?v=LD9tOcf4OkA>. It's
|
|
very good reference material if you want to know more about coreboot, and
|
|
coreboot distros more generally.
|
|
|
|
Elly also did this interview with Brodie Robertson, about coreboot, and
|
|
explains the concept of a coreboot distro in more detail in one part of
|
|
the interview:
|
|
<https://www.youtube.com/watch?v=4Am_1MzJ6ZA>
|
|
|
|
Libreboot largely avoids supporting Chromebooks, precisely because
|
|
MrChromebox is a perfectly viable option on these machines.
|
|
|
|
### Skulls
|
|
|
|
Git repositories: <https://github.com/merge/skulls>
|
|
|
|
Skulls provides simple coreboot images with SeaBIOS payload, on a handful of
|
|
Thinkpads. Libreboot *also* provides similar SeaBIOS configurations, on all
|
|
of the same machines, but Libreboot's design does mean that there are a few
|
|
additional steps for installation.
|
|
|
|
If you just want the simplest, most barebones setup, Skulls is a great choice.
|
|
|
|
Libreboot *also* provides U-Boot and GRUB, and has other ambitions. Libreboot
|
|
aims to provide ease of use while also providing great power and flexibility.
|
|
So Libreboot is aimed specifically at power users, while also trying to
|
|
accomodate non-technical users; Skulls largely targets the latter.
|
|
|
|
### System76 Open Firmware
|
|
|
|
Git repository: <https://github.com/system76/firmware-open>
|
|
|
|
Other repositories e.g. EC firmware: <https://github.com/system76>
|
|
|
|
System76 provides their own special coreboot fork, that they tailor for
|
|
specific machines that they sell; they also provide free EC firmware. Jeremy
|
|
Soller of System76 maintains this firmware, and the work is regularly
|
|
upstreamed into the regular coreboot project.
|
|
|
|
System76 provides the coreboot firmware, along with EDK2 UEFI payload. It can
|
|
boot Linux distros, BSD systems and even Windows perfectly.
|
|
|
|
Is your distro unlisted?
|
|
------------------------
|
|
|
|
Please get in touch! We'd love to link your project here.
|
|
|
|
The coreboot project also maintains its own list of coreboot distros:
|
|
|
|
<https://coreboot.org/users.html>
|
|
|
|
Canoeboot maintains its own list, because it is felt that distros should also
|
|
link to each other, since many people who find coreboot for the first time may
|
|
find it through a distro (such as Canoeboot) and not check coreboot's own
|
|
website. We in the Canoeboot project wish to see everyone using free boot
|
|
firmware, which was the primary motivation behind this page, in promoting the
|
|
various projects.
|
|
|
|
Organisations
|
|
-------------
|
|
|
|
This list will be populated over time. Several organisations exist out there
|
|
that pertain to *Free and Open Source firmware* development, supporting its
|
|
existence in general. Here are just a few of them:
|
|
|
|
### Open Source Firmware Foundation (OSFF)
|
|
|
|
Website: <https://opensourcefirmware.foundation/>
|
|
|
|
The OSFF is a non-profit organisation of Oregon, USA, whose mission it is to
|
|
coordinate communication between the various free boot projects (projects like
|
|
coreboot). Several coreboot developers are a part of
|
|
its [governance](https://opensourcefirmware.foundation/team/).
|
|
|
|
The OSFF also hosts an annual [Open Source Firmware
|
|
Conference](https://www.osfc.io/), where various projects, companies and
|
|
peoples can talk about their work in this field.
|
|
|
|
The OSFF exists precisely because nothing like it has existed before; the
|
|
world of boot firmware is largely dominated by proprietary IBVs (independent
|
|
BIOS vendors), the likes of e.g. AMI, Phoenix.
|
|
|
|
Organisations like OSFF are critical, if we ever wish to see *libre* boot
|
|
firmware become the default firmware, on computers that normal people actually
|
|
purchase. All the separate projects out there do great work, but it is critical
|
|
that we have a central *sorting ground*, a *point of contact* if you will,
|
|
to represent us, and the OSFF's mission is to be exactly that.
|
|
|
|
OSFF also has their own list of projects, similar to the list on *this* page
|
|
that you are reading now. See:
|
|
|
|
<https://opensourcefirmware.foundation/projects/>
|
|
|
|
Canoeboot is currently not affiliated with the OSFF in any official capacity,
|
|
but it has our *full* support, and we will do what we can to help it, when we
|
|
can.
|
|
|
|
### Software Freedom Conservancy (SFC)
|
|
|
|
Although not strictly related to free/opensource firmware, the coreboot project
|
|
is an SFC member, which you can see here:
|
|
|
|
<https://sfconservancy.org/projects/current/>
|
|
|
|
The SFC is a non-profit organisation of New York, USA, dedicated to the
|
|
cause of [software freedom](https://writefreesoftware.org/learn), with a view
|
|
towards Copyleft advocacy, especially [copyleft
|
|
compliance enforcement](https://sfconservancy.org/copyleft-compliance/).
|
|
|
|
SFC provides services to *member projects*, such as coreboot, which you
|
|
can read about here:
|
|
|
|
* <https://sfconservancy.org/projects/>
|
|
* <https://sfconservancy.org/projects/services/>
|
|
|
|
Services such as donations infrastructure, legal services (including things
|
|
like copyright assignements and enforcement), advice/assistance about project
|
|
governance, help with fundraising and outreach, etc.
|
|
|
|
SFC also hosts an annual conference, called *FOSSY*, which projects, companies
|
|
and peoples can go to to promote their work on free/opensource projects. See:
|
|
|
|
<https://sfconservancy.org/fossy/>
|
|
|
|
Although Canoeboot is not affiliated with SFC in any official capacity, it is
|
|
otherwise an excellent organisation, it is listed here in honour of the
|
|
excellent work it does, including its support of the coreboot project.
|
|
|
|
### Software in the Public Interest (SPI)
|
|
|
|
Website: <https://www.spi-inc.org/>
|
|
|
|
The SPI is a non-profit organisation of New York, USA, dedicated to the
|
|
cause of [software freedom](https://writefreesoftware.org/learn). It provides
|
|
fiscal sponsorship and promotion of numerous Free and Open Source projects,
|
|
which you can read about here:
|
|
|
|
<https://www.spi-inc.org/projects/>
|
|
|
|
It provides services to member projects such as donations infrastructure,
|
|
legal services, advice/assistance and oversight of project governance and
|
|
general help with fundraising.
|
|
|
|
SFC most notably provides services to Debian, which is a member:
|
|
|
|
<https://www.spi-inc.org/projects/debian/>
|
|
|
|
Although SPI does not currently (at this time) sponsor any coreboot or
|
|
firmware-related projects, several of the projects that it *does* support
|
|
are critical for Canoeboot development. For example, it also supports the
|
|
Arch Linux project:
|
|
|
|
<https://www.spi-inc.org/projects/archlinux/>
|
|
|
|
Canoeboot development, especially build testing, happens largely on computers
|
|
running Debian Linux and Arch Linux, because these cover a large number of
|
|
users; we also test many other distros such as Fedora or Ubuntu.
|
|
|
|
Organisations like SPI (and indeed SFC, OSFF) are critical to the general
|
|
health of the Free Software movement. Without them, we would not be able to
|
|
as effectively coordinate projects, especially in terms of funding.
|
|
|
|
Canoeboot is not currently affiliated with the SPI in any official capacity,
|
|
but they have our respect and they are listed here.
|
|
|
|
Non-coreboot firmware projects
|
|
--------------------------
|
|
|
|
Several other projects besides coreboot provide free hardware initialisation,
|
|
such as [U-Boot](https://www.u-boot.org/) (as own firmware, distinct from U-Boot
|
|
as a coreboot payload), [Trusted Firmware](https://www.trustedfirmware.org/) and
|
|
so on.
|
|
|
|
Here are a few such projects:
|
|
|
|
### fwupd
|
|
|
|
fwupd is essentially a centralised repository of firmware images, that
|
|
can be used to provide updates for your mainboard. Although not officially
|
|
supported nor endorsed by the Canoeboot project, many Linux distros make
|
|
use of this to provide UEFI firmware updates for example.
|
|
|
|
Canoeboot doesn't use this, due to the many idiosyncrasies of Canoeboot on
|
|
various motherboards; however, we may use it in a limited capacity, in the
|
|
future.
|
|
|
|
### LinuxBoot
|
|
|
|
Website: <https://www.linuxboot.org/>
|
|
|
|
LinuxBoot can be provided as a UEFI DXE, or as a U-Boot SPL, coreboot payload
|
|
or Slim Bootloader Stage 1B, to provide a Linux kernel at boot time, which
|
|
kexecs into another Linux kernel.
|
|
|
|
The benefit of using *Linux* to *boot Linux* is that then the bootloader part
|
|
of your firmware doesn't need to rewrite every driver, because Linux already
|
|
provides excellent drivers, and it also affords you many advanced
|
|
configuration possibility such as hardened encryption setups with things
|
|
like Measured Boot, and it could also be used to boot over a network.
|
|
|
|
### OpenBMC
|
|
|
|
Website: <https://github.com/openbmc/docs>
|
|
|
|
Linux distro for management controllers (BMCs) used on servers,
|
|
rack switches and RAID appliances. This provides a remote management
|
|
feature, most useful (for example) on colocated server hosting.
|
|
|
|
### Oreboot
|
|
|
|
Website: <https://github.com/oreboot/oreboot>
|
|
|
|
Oreboot is a special fork of coreboot, re-written in the Rust programming
|
|
language, focusing specifically on the *LinuxBoot* payload configuration.
|
|
|
|
### Trusted Firmware
|
|
|
|
Website: <https://opensourcefirmware.foundation/projects/>
|
|
|
|
Trusted Firmware provides boot firmware for ARMv8-A, ARMv9-A
|
|
and ARMv8-M. Specifically tailored for use on embedded systems, and parts of
|
|
it are also used by the coreboot project on some boards.
|
|
|
|
### U-Boot
|
|
|
|
Website: <https://www.u-boot.org/>
|
|
|
|
U-Boot runs on a large number of embedded systems, with support for a variety
|
|
of architectures such as ARM, x86, RISC-V and others. U-Boot provides its own
|
|
small kernel and operating system, with drivers and applications designed to
|
|
boot your operating system using various methods. It has an advanced *shell*,
|
|
with excellent networking and file system support - most notably, we use it
|
|
in Canoeboot as a UEFI payload for *coreboot*, but U-Boot can also provide its
|
|
own boot initialisation independently of coreboot.
|
|
|
|
One of the nice features of U-Boot is its *licensing* (GPLv2 for the most part)
|
|
and similar coding style to Linux; the licensing and technical design means
|
|
that it's much easier to port existing Linux drivers, when something needs to
|
|
be done in the U-boot project.
|
|
|
|
-----------------------------------------
|
|
|
|
We would like to list various distros of these too. If you know of a cool
|
|
project, please get in touch with the Canoeboot project!
|