Coreboot: Difference between revisions
imported>Milahu + clone submodules. shallow clone, otherwise needs 10x more diskspace |
Coreboot comes with a nix-shell expression. |
||
| (15 intermediate revisions by 6 users not shown) | |||
| Line 1: | Line 1: | ||
== Building as Nix Derivation == | |||
There is a commented example of building Coreboot as Nix derivation at [https://github.com/blitz/nix-coreboot blitz/nix-coreboot] on Github. | |||
== Building in nix-shell == | == Building in nix-shell == | ||
Coreboot as of 24.02 comes with a Nix shell expression for x86 at <code>util/nixshell//devshell-i386.nix</code>. | |||
<syntaxHighlight lang=bash> | <syntaxHighlight lang=bash> | ||
# clone coreboot git repository (latest master) | |||
git clone https://review.coreboot.org/coreboot.git --depth 1 | git clone https://review.coreboot.org/coreboot.git --depth 1 | ||
# or for a specific coreboot version (I.E. version 4.15) | |||
git clone --branch 4.15 https://review.coreboot.org/coreboot.git --depth 1 | |||
# get 3rd party submodules in coreboot repository | |||
cd coreboot | cd coreboot | ||
du -sh . # 200 MByte | du -sh . # ~200 MByte | ||
git submodule update --init --checkout --depth 1 | git submodule update --init --checkout --depth 1 | ||
du -sh . # 700 MByte | du -sh . # ~700 MByte | ||
nix-shell --pure util/nixshell/devshell-i386.nix | |||
# configure | |||
# set mainboard model, chip size, ... | |||
make menuconfig MENUCONFIG_COLOR=blackbg # blackbg = dark mode | |||
# build firmware | |||
make CPUS=$(nproc) | |||
# test firmware | |||
qemu-system-x86_64 -bios build/coreboot.rom -serial stdio | |||
</syntaxHighlight> | </syntaxHighlight> | ||
== Skip building toolchain == | |||
== | |||
We can use our system toolchain to build coreboot firmware, but this is not recommended per [https://doc.coreboot.org/tutorial/part1.html coreboot docs]: | |||
< | <blockquote> | ||
you can possibly use your system toolchain, but the results are not reproducible, and may have issues, so this is not recommended | |||
</blockquote> | |||
</ | |||
To use the system toolchain, in <code>make menuconfig</code>, enable <code>General Setup > Allow building with any toolchain</code> | |||
== Building as derivation == | == Building as derivation == | ||
| Line 35: | Line 47: | ||
== See also == | == See also == | ||
* https://doc.coreboot.org/tutorial/part1.html | |||
* https://www.coreboot.org/Build_HOWTO | * https://www.coreboot.org/Build_HOWTO | ||
* https://www.coreboot.org/Lesson1 | |||
* https://wiki.gentoo.org/wiki/Coreboot | |||
* flashing the new bios image | |||
** https://doc.coreboot.org/tutorial/flashing_firmware/index.html | |||
** https://libreboot.org/docs/install/spi.html | |||
[[Category:Booting]] | |||