update docs based on recent lbmk changes

the commands changed again

Signed-off-by: Leah Rowe <leah@libreboot.org>
master
Leah Rowe 2023-10-20 06:07:57 +01:00
parent 60571ed2f0
commit bc17953e23
27 changed files with 128 additions and 134 deletions

View File

@ -116,29 +116,29 @@ However, you will have to write your own script for installing build
dependencies.
libreboot Make (lbmk) automatically runs all necessary commands; for
example, `./build fw coreboot` will automatically run `./build fw grub`
example, `./build roms` will automatically run `./build grub`
if the required GRUB payload (under `elf/grub/`) does not exist.
As a result, you can now (after installing the correct build dependencies) run
just a single command, from a fresh Git clone, to build all ROM images:
./build fw coreboot all
./build roms all
or even just build specific ROM images, e.g.:
./build fw coreboot x60
./build roms x60
or get a list of supported build targets:
./build fw coreboot list
./build roms list
If you wish to build payloads, you can also do that. For example:
./build fw grub
./build grub
./update project trees -b seabios
./update trees -b seabios
./update project trees -b u-boot
./update trees -b u-boot
Previous steps will be performed automatically. However, you can *still* run
individual parts of the build system manually, if you choose. This may be
@ -174,7 +174,7 @@ for context:
<https://libreboot.org/docs/install/ivy_has_common.html>
The scripts under directory `script/update/vendor/` are the ones that do this.
Specifically, `script/update/vendor/download`. The benefit of this is that you
Specifically, `script/vendor/download`. The benefit of this is that you
do not need to extract anything from the original vendor image (e.g. Lenovo
UEFI image).

View File

@ -93,29 +93,29 @@ Check: `config/dependencies/` for list of supported distros.
побудови.
libreboot Make (lbmk) автоматично виконує всі необхідні команди; наприклад,
`./build fw coreboot` автоматично виконає `./build fw grub`,
`./build roms` автоматично виконає `./build grub`,
якщо затребувані утиліти для GRUB не збудовано, для виготовлення корисних навантажень.
В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати
лише одну команду, з свіжого Git clone, для побудови образів ROM:
./build fw coreboot all
./build roms all
або навіть побудувати конкретні образи ROM, такі як:
./build fw coreboot x60
./build roms x60
or get a list of supported build targets:
./build fw coreboot list
./build roms list
Якщо ви бажаєте побудувати корисні навантаження, можете зробити це. Наприклад:
./build fw grub
./build grub
./update project trees -b seabios
./update trees -b seabios
./update project trees -b u-boot
./update trees -b u-boot
Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати
окремі частини системи побудови власноруч, якщо виберете. Це може бути

View File

@ -79,7 +79,7 @@ image is named `libreboot.rom` for your board. You can find cbfstool
under `cbutils/` after running the following command
in the build system:
./update project trees -b coreboot utils
./update trees -b coreboot utils
You can learn more about using the build system, lbmk, here:\
[libreboot build instructions](../build/)

View File

@ -72,7 +72,7 @@ Build ROM image from source
The build target, when building from source, is thus:
./build fw coreboot hp2170p_16mb
./build roms hp2170p_16mb
Installation
============

View File

@ -60,7 +60,7 @@ about this:
Refer to the coreboot guide for flashing instructions, and you can build the
images for it in Libreboot like so:
./build fw coreboot hp2560p_8mb
./build roms hp2560p_8mb
More information about building ROM images can be found in
the [build guide](../build/).

View File

@ -99,7 +99,7 @@ a SOIC-16 chip instead of SOIC-8. Follow these instructions:
Refer to that coreboot guide for flashing instructions, and you can
build the images for it in Libreboot like so:
./build fw coreboot hp2570p_16mb
./build roms hp2570p_16mb
More information about building ROM images can be found in
the [build guide](../build/).

View File

@ -88,7 +88,7 @@ to recover from an unbootable BIOS:
You can build the images for it in Libreboot like so:
./build fw coreboot hp8200sff_8mb
./build roms hp8200sff_8mb
More information about building ROM images can be found in
the [build guide](../build/).
@ -151,7 +151,7 @@ Pin-Strap is set". If it doesn't, start again from the beginning.
Now build the **4** MiB Libreboot image.
./build fw coreboot hp8200sff_4mb
./build roms hp8200sff_4mb
More information about building ROM images can be found in
the [build guide](../build/).
@ -256,7 +256,7 @@ the *ROM* by using the `-C` option in nvramtool. You can find this under the
directory `src/coreboot/default/util/nvramtool` when downloading coreboot inside
of lbmk by running the command:
./update project trees -f coreboot default
./update trees -f coreboot default
Go in there and type `make` to build nvramtool. Simply run nvramtool without
arguments, and it will show a list of options.

View File

@ -72,7 +72,7 @@ Build ROM image from source
The build target, when building from source, is thus:
./build fw coreboot hp8470pintel_16mb
./build roms hp8470pintel_16mb
Installation
============

View File

@ -47,7 +47,7 @@ Installation of Libreboot
You must first compile the Libreboot ROM
./build fw coreboot hp9470m_16mb
./build roms hp9470m_16mb
More information about building ROM images can be found in
the [build guide](../build).

View File

@ -70,7 +70,7 @@ Build ROM image from source
The build target, when building from source, is thus:
./build fw coreboot t1650_12mb
./build roms t1650_12mb
Installation
============

View File

@ -80,7 +80,7 @@ Injecting vendor files into ROM
You must determine the correct board name, for your board, based on the list
generated when running this command:
./build fw coreboot list
./build roms list
For example, `t440pmrc_12mb` corresponds to ThinkPad T440p with MRC firmware.
Whereas `t440plibremrc_12mb` corresponds to T440p with libre MRC firmware.
@ -91,7 +91,7 @@ In order to inject the necessary files into a rom image, run the script from the
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple.
Run the injection script pointing to the release archive you downloaded:
./update vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz
./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz
The script can automatically detect the board as long as you do not change the file name.
You can then find flash-ready ROMs in `/bin/release/`
@ -100,12 +100,12 @@ Alternatively, you may patch only a single rom file, but you must supply the
correct board target name as alluded to above.
For example:
./update vendor inject -r x230_libreboot.rom -b x230_12mb
./vendor inject -r x230_libreboot.rom -b x230_12mb
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
For example:
./update vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
Check that the files were inserted
==================================
@ -114,7 +114,7 @@ You *must* ensure that the files were inserted.
Some examples of how to do that in lbmk:
./update project trees -b coreboot utils
./update trees -b coreboot utils
Now you find `cbutitls/default`, which is a directory containing `cbfstool`
and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example
@ -148,7 +148,7 @@ Errata
ROM image configuration. These ROM configs have `mrc.bin`: `t440pmrc_12mb`
and `w541mrc_12mb`. These ROM configs have libre MRC: `t440p_12mb`
and `w541_12mb` - it is critical that you choose the right one, when using
the `-b` flag in the `./update vendor inject` command. For example, if you
the `-b` flag in the `./vendor inject` command. For example, if you
used `-b t440p_12mb` on a ROM image that actually corresponds
to `t440pmrc_12mb`, then the required `mrc.bin` file would not be added
and that ROM would not boot when flashed.**

View File

@ -84,7 +84,7 @@ Inject vendor files into ROM
You must determine the correct board name, for your board, based on the list
generated when running this command:
./build fw coreboot list
./build roms list
For example, `t440pmrc_12mb` corresponds to ThinkPad T440p with MRC firmware.
Whereas `t440plibremrc_12mb` corresponds to T440p with libre MRC firmware.
@ -95,7 +95,7 @@ In order to inject the necessary files into a rom image, run the script from the
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple.
Run the injection script pointing to the release archive you downloaded:
./update vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz
./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz
The script can automatically detect the board as long as you do not change the file name.
You can then find flash-ready ROMs in `/bin/release/`
@ -104,12 +104,12 @@ Alternatively, you may patch only a single rom file, but you must supply the
correct board target name as alluded to above.
For example:
./update vendor inject -r x230_libreboot.rom -b x230_12mb
./vendor inject -r x230_libreboot.rom -b x230_12mb
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
For example:
./update vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
Check that the files were inserted
==================================
@ -118,7 +118,7 @@ You *must* ensure that the files were inserted.
Some examples of how to do that in lbmk:
./update project trees -b coreboot utils
./update trees -b coreboot utils
Now you find `cbutitls/default`, which is a directory containing `cbfstool`
and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example
@ -152,7 +152,7 @@ Errata
ROM image configuration. These ROM configs have `mrc.bin`: `t440pmrc_12mb`
and `w541mrc_12mb`. These ROM configs have libre MRC: `t440p_12mb`
and `w541_12mb` - it is critical that you choose the right one, when using
the `-b` flag in the `./update vendor inject` command. For example, if you
the `-b` flag in the `./vendor inject` command. For example, if you
used `-b t440p_12mb` on a ROM image that actually corresponds
to `t440pmrc_12mb`, then the required `mrc.bin` file would not be added
and that ROM would not boot when flashed.**

View File

@ -72,11 +72,11 @@ could build it yourself or you could also clone `lbmk.git` and [install build
dependencies](..//build/#first-install-build-dependencies), then inside lbmk,
do:
./build fw serprog rp2040 pico
./build serprog rp2040 pico
or for the W version:
./build fw serprog rp2040 pico_w
./build serprog rp2040 pico_w
This will automatically build the rpi-pico firmware, and the file will be
at `bin/serprog_rp2040/serprog_pico.uf2`. This binary will be provided
@ -461,7 +461,7 @@ install flashrom. Do this after downloading the
NOTE: debian, arch or void can be written instead of ubuntu2004. the debian
script is also applicable to newer ubuntu versions
./update project trees -b flashrom
./update trees -b flashrom
If the `ubuntu2004` script complains about missing dependencies, just modify
the dependencies config to remove those dependencies. The script is located

View File

@ -55,11 +55,11 @@ could build it yourself or you could also clone `lbmk.git` and [install build
dependencies](..//build/#first-install-build-dependencies), then inside lbmk,
do:
./build fw serprog rp2040 pico
./build serprog rp2040 pico
or for the W version:
./build fw serprog rp2040 pico_w
./build serprog rp2040 pico_w
This will automatically build the rpi-pico firmware, and the file will be
at `bin/serprog_rp2040/serprog_pico.uf2`. This binary will be provided
@ -323,7 +323,7 @@ Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
注意:你可以输入 debian、arch 或 void 来替换 ubuntu。debian 脚本也可以用于新版 ubuntu。
./update project trees -b flashrom
./update trees -b flashrom
如果 `ubuntu2004` 报告了依赖缺失,编辑一下这个脚本,把缺失的依赖移除就行了。脚本位于 `config/dependencies/ubuntu2004`,它是写给 Ubuntu 20.04 的,但在其他使用 `apt-get` 包管理器的 Linux 发行版应该也能用。

View File

@ -25,19 +25,19 @@ In order to inject the necessary files into a rom image, run the script from the
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple.
Run the injection script pointing to the release archive you downloaded:
./update vendor inject /path/to/libreboot-20230423_t420_8mb.tar.xz
./vendor inject /path/to/libreboot-20230423_t420_8mb.tar.xz
The script can automatically detect the board as long as you do not change the file name.
You can then find flash-ready ROMs in `/bin/release/`
Alternatively, you may patch only a single rom file.
./update vendor inject -r t420_libreboot.rom -b t420_8mb
./vendor inject -r t420_libreboot.rom -b t420_8mb
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
For example:
./update vendor inject -r t420_libreboot.rom -b t420_8mb -m 00:f6:f0:40:71:fd
./vendor inject -r t420_libreboot.rom -b t420_8mb -m 00:f6:f0:40:71:fd
Disassembly
-----------

View File

@ -28,7 +28,7 @@ In order to inject the necessary files into a rom image, run the script from the
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple.
Run the injection script pointing to the release archive you downloaded:
./update vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz
./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz
The script can automatically detect the board as long as you do not change the file name.
You can then find flash-ready ROMs in `/bin/release/`
@ -36,21 +36,21 @@ You can then find flash-ready ROMs in `/bin/release/`
Alternatively, you may patch only a single rom file.
For example (libre replacement of `mrc.bin`):
./update vendor inject -r t440p_libreboot.rom -b t440p_12mb
./vendor inject -r t440p_libreboot.rom -b t440p_12mb
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
For example:
./update vendor inject -r t440p_libreboot.rom -b t440p_12mb -m 00:f6:f0:40:71:fd
./vendor inject -r t440p_libreboot.rom -b t440p_12mb -m 00:f6:f0:40:71:fd
If you're flashing a ROM that needs vendor file `mrc.bin`, you would do one of these
instead, for example:
./update vendor inject -r t440p_libreboot.rom -b t440pmrc_12mb
./vendor inject -r t440p_libreboot.rom -b t440pmrc_12mb
or (inserting a different MAC address)
./update vendor inject -r t440p_libreboot.rom -b t440pmrc_12mb -m 00:f6:f0:40:71:fd
./vendor inject -r t440p_libreboot.rom -b t440pmrc_12mb -m 00:f6:f0:40:71:fd
NOTE: this makes use of `nvmutil`, which you can read more about in
the [nvmutil documentation](nvmutil.md).

View File

@ -30,7 +30,7 @@ The script can determine the board automatically if you have not changed the nam
In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image.
Run the injection script pointing to the release archive you downloaded:
./update vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz
./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz
The script can automatically detect the board as long as you do not change the file name.
You can then find flash-ready ROMs in `/bin/release/`
@ -38,12 +38,12 @@ You can then find flash-ready ROMs in `/bin/release/`
Alternatively, you may patch only a single rom file.
For example:
./update vendor inject -r x230_libreboot.rom -b x230_12mb
./vendor inject -r x230_libreboot.rom -b x230_12mb
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
For example:
./update vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
NOTE: this makes use of `nvmutil`, which you can read more about in
the [nvmutil documentation](nvmutil.md).

View File

@ -60,11 +60,11 @@ of the libreboot Git repository.
Then, download coreboot:
./update project trees -f coreboot
./update trees -f coreboot
Finally, compile the `cbutils` payload (and you will then have the utils):
./build fw grub
./build grub
Among other things, this will produce a `cbfstool` executable under any of the
subdirectories in `src/coreboot/` under `util/cbfstool/cbfstool`.
@ -79,7 +79,7 @@ You will also want to build `flashrom` which libreboot recommends for reading
from and/or writing to the boot flash. In the libreboot build system, you can
build it by running this command:
./update project trees -b flashrom
./update trees -b flashrom
An executable will be available at `src/flashrom/flashrom` after you have done
this.

View File

@ -83,11 +83,11 @@ image:
You can build `cbfstool` in the libreboot build system. Run this command:
./update project trees -b coreboot utils
./update trees -b coreboot utils
This assumes that you already downloaded coreboot:
./update project trees -f coreboot
./update trees -f coreboot
This, in turn, assumes that you have installed the build dependencies for
libreboot. On Ubuntu 20.04 and other apt-get distros, you can do this:
@ -159,9 +159,9 @@ GRUB using the libreboot build system. Run the following commands (assuming
you have the correct build dependencies installed) to build GRUB, from the
libreboot Git repository:
./update project trees -f grub
./update trees -f grub
./build fw grub
./build grub
The following executable will then be available under the `src/grub/` directory:

View File

@ -98,9 +98,9 @@ bin/
This directory is created when running any of the following commands, with the
right arguments:
./build fw coreboot ARGUMENTS_HERE
./build fw serprog stm32
./build fw serprog rp2040
./build roms ARGUMENTS_HERE
./build serprog stm32
./build serprog rp2040
Simply speaking, `bin/` shall contain finished ROM images or firmware, that
can then be installed (flashed) to the target device.
@ -153,7 +153,7 @@ visit: <https://doc.coreboot.org/northbridge/intel/haswell/mrc.bin.html> - the
handling of this, in Libreboot, is based largely on the information there.
This contains the Intel MRC firmware, auto-downloaded during build
by `script/update/vendor/download`.
by `script/vendor/download`.
In some cases, libre MRC firmware is also available, and provided
by Libreboot as an alternative choice.
@ -168,7 +168,7 @@ currently only initialises Intel GPUs natively, on Libreboot systems.
release/
---------------
The script at `script/update/project/release` create tarballs in here, which
The script at `script/update/release` create tarballs in here, which
constitute regular Libreboot releases. It is meticulously maintained, as per
current lbmk behaviour, and executed so as to provide Libreboot release
archives.
@ -265,7 +265,7 @@ payload). More information available at these pages:
* Libreboot [freedom status page](../../freedom-status.md)
The *vendor file* scripts are what handle this, specifically the download script
located at `script/update/vendor/download`.
located at `script/vendor/download`.
src/memtest86plus/
---------------
@ -307,7 +307,7 @@ src/uefitool/
Please also visit: <https://github.com/LongSoft/UEFITool>
This is compiled, so as to provide `UEFIExtract`. Currently used by the
vendor download script at `script/update/vendor/download`, to download SCH5545 EC
vendor download script at `script/vendor/download`, to download SCH5545 EC
firmware (used for fan control on Dell Precision T1650).
src/pico-serprog
@ -486,7 +486,7 @@ When a given coreboot tree is compiled, for a given target, this file defines
which files to copy from the coreboot directory, which are then copied to
a location under `elf/coreboot`.
The presence of this file affects behaviour in `script/update/project/release`;
The presence of this file affects behaviour in `script/update/release`;
specifically, PROJECT is then downloaded to `src/PROJECT/PROJECT`, and files
under `config/PROJECT/TARGET/target.cfg` define which tree to use, which then
looks under `config/PROJECT/TREE/target.cfg` to get the git revision; then
@ -661,7 +661,7 @@ VESA frame buffer (NOT to be confused with the coreboot frame buffer), or just
normal text mode. Text mode startup is always recommended, and in that setup,
GRUB (including coreboot GRUB, but also PC GRUB) can use VGA modes.
The name `libgfxinit` is simply what `./build fw coreboot` uses, but it may be
The name `libgfxinit` is simply what `./build roms` uses, but it may be
that a board uses the old-school native video init code written in C. On some
platforms, coreboot implemented a 3rd party library called `libgfxinit`, which
is written in Ada and handles video initialization. In this setup, coreboot
@ -893,7 +893,7 @@ These are similar in meaning to their coreboot counterparts.
The tree` entry is actually a link, where its value is a directory name
under `config/u-boot`. For example, `tree="default"` would refer to
`config/u-boot/default` and the corresponding U-Boot source tree created
(when running `./update project trees u-boot`, which makes use of `target.cfg`)
(when running `./update trees u-boot`, which makes use of `target.cfg`)
would be `u-boot/default/`. In other words: a `target.cfg` file
in `config/u-boot/foo` might refer to `config/u-boot/bar` by
specifying `tree="bar"`, and the created u-boot source tree would
@ -957,7 +957,7 @@ You create a config, for `config/u-boot/TREENAME/configs`, by finding the
corresponding board name in the upstream U-Boot `configs` directory, and
running `make BOARDNAME_defconfig` and `make menuconfig` commands in the
*U-Boot* build system. You should do this after
running `./update project trees u-boot` in lbmk.
running `./update trees u-boot` in lbmk.
You might want to consider basing your config on the upstream `coreboot` boards
when possible, but such a board is not available upstream for ARM yet.
@ -1013,12 +1013,12 @@ This is the main script in lbmk, Libreboot's build system. It is what executes
all other parts of the Libreboot build system. The rules are as follows:
* Argument zero, representing the name of the symlink, will be used to
execute `script/LINKNAME/mode/option` - for example: `./build fw coreboot all`
would execute `script/build/fw/coreboot all` in `sh`.
execute `script/LINKNAME/mode/option` - for example: `./build roms all`
would execute `script/build/roms all` in `sh`.
* `TMPDIR` is exclicitly set, providing a constant location where temporary
files and directories can be made. `TMPDIR` is exported by the parent to
all children; for example, `./build fw coreboot all` would export it
to `script/build/fw/coreboot`, and then anything called by *that* will also
all children; for example, `./build roms all` would export it
to `script/build/roms`, and then anything called by *that* will also
inherit it - the main parent process running `lbmk` will then clean up this
`TMPDIR` directory upon any exit.
* All exits from lbmk are handled by this script. *All* exits, zero or non-zero,
@ -1071,7 +1071,7 @@ include/git.sh
These functions in here previously existed as independent scripts, but they
were unified here, and they are used when you pass the `-f` argument
to `script/update/project/trees` (e.g. `./update project trees -f coreboot`).
to `script/update/trees` (e.g. `./update trees -f coreboot`).
These functions deal with git cloning, submodule updates, revision resets and
the application of patch files via `git am`. *Every* git repository downloaded
@ -1085,12 +1085,12 @@ now the logic under `include/vendor.sh` is used for downloads. This file now
only contains those functions used for extraction of MRC files from Google
Chromebook images, currently only used for Haswell mainboards.
This is an include, used by `script/update/vendor/download`, but it's here in
This is an include, used by `script/vendor/download`, but it's here in
this file because the vendor download script is GPLv3-only, while the MRC
extract logic in this file is GPLv2-only (forked from coreboot ages ago). Thus,
it is provided as an include to bypass license incompatibility. It has been
heavily modified to use the same style of logic and general control flow used
in the script at `script/update/vendor/download`, and it is used from there.
in the script at `script/vendor/download`, and it is used from there.
include/option.sh
---------------
@ -1106,18 +1106,12 @@ possible, and contains miscallaneous functions that don't belong anywhere else.
The functions here are mostly those that deal with configuration files; scanning
them to set variables and so on.
include/vendor.sh
---------------
Common variables and helper functions, used by all scripts
under `script/update/vendor/`.
script/
=======
*All* scripts under `script/` are executed only by the main `lbmk` script,
conforming to the standard `buildpath/mode/option` e.g. `build/fw/coreboot` - so,
running `./build fw coreboot` would run `script/build/fw/coreboot`.
conforming to the standard `buildpath/mode/option` e.g. `build/roms` - so,
running `./build roms` would run `script/build/roms`.
script/build/
---------------
@ -1128,24 +1122,24 @@ are also handled.
The scripts that create release archives are also located under this directory.
### script/build/fw/coreboot
### script/build/roms
This builds coreboot ROM images.
Command: `./build fw coreboot targetname`
Command: `./build roms targetname`
The `targetname` argument must be specified, chosen from this output:
./build fw coreboot list
./build roms list
Pass several board names if you wish to build only for specific targets. For
example:
./build fw coreboot x60 x200_8mb
./build roms x60 x200_8mb
To build *all* targets, specify:
./build fw coreboot all
./build roms all
Since November 2022, this script can build images for x86 *and* ARM targets.
The *ARM* targets are ChromeOS devices (chromebooks and such); Libreboot uses
@ -1192,7 +1186,7 @@ for `romtype`:
* If no declaration is made, or a declaration is made contrary to the above,
no special modifications will be made.
If no payload is defined in `target.cfg`, the `build/fw/coreboot` script will exit
If no payload is defined in `target.cfg`, the `build/roms` script will exit
with error status.
If SeaBIOS is to be used, on `libgfxinit` setups, SeaVGABIOS will also be
@ -1220,29 +1214,29 @@ When the ROM is finished compiling, it will appear under a directory in `bin/`
This script is the beating heart of Libreboot. Break it, and you break
Libreboot!
### script/build/fw/grub
### script/build/grub
This builds the `grub.elf` file and keymap configuration files, placing these
under `elf/grub/` for use by `script/build/fw/coreboot`.
under `elf/grub/` for use by `script/build/roms`.
Command: `./build fw grub`
Command: `./build grub`
This builds the `grub-mkstandalone` utility under `src/grub/`, which is used
by `script/build/fw/coreboot` to insert GRUB payloads inside coreboot ROM
by `script/build/roms` to insert GRUB payloads inside coreboot ROM
images.
### script/build/fw/serprog
### script/build/serprog
Build firmware images for serprog-based SPI programmers, where they use an
STM32 MCU. It also builds for RP2040-based programmers like Raspberry Pi Pico.
Example command: `./build fw serprog stm32`
Example command: `./build serprog stm32`
Example command: `./build fw serprog rp2040`
Example command: `./build serprog rp2040`
The `list` argument is available:
./build fw serprog stm32 list
./build serprog stm32 list
Without arguments, all targets would be compiled, but you can specify a short
list of targets instead, based on the output of `list`.
@ -1254,18 +1248,18 @@ This handles most actual building of source trees, called into by scripts
under `script/build/fw` - it also contains logic for downloading source trees
or vendor files.
### script/update/project/release
### script/update/release
This script builds the release archives, which are then provided in a new
Libreboot release. Most users do not need to look at this file at all, but it
is provided under free license for curious souls.
Command: `./update project release`
Command: `./update release`
NOTE: if the `-d` option is used, you can specify a directory other
than `release`. For example:
./update project release -d /media/stuff/libreboot_release_test
./update release -d /media/stuff/libreboot_release_test
If `-d` is not passed, they will go under `release/` in your lbmk repository.
The script is engineered to re-initialise git if ran from a release archive.
@ -1284,7 +1278,7 @@ within them, requiring manual insertion by the user post-release. See:
[Insert vendor files
on Sandybridge/Ivybridge/Haswell](../install/ivy_has_common.md)
### script/update/project/trees
### script/update/trees
*This* is the other beating heart of Libreboot. Used heavily by Libreboot, this
script is what handles defconfig files for SeaBIOS, U-Boot *and* coreboot; it
@ -1322,17 +1316,17 @@ the directory `src/PROJECT/TREE` will be created, reset to the specific
revision - for multi-tree projects, all defined targets are scanned for their
corresponding tree, and the trees are prepared as defined above.
Basic command: `./update project trees FLAG projectname`
Basic command: `./update trees FLAG projectname`
Special operation: for building coreboot utilities `cbfstool` and `ifdtool` to
go under `cbutils/`, do this:
./update project trees -b coreboot utils
./update trees -b coreboot utils
Or define specific coreboot tree such as:
./update project trees -b coreboot utils default
./update project trees -b coreboot utils cros
./update trees -b coreboot utils default
./update trees -b coreboot utils cros
FLAG values are (only *one* to be used at a time):
@ -1359,15 +1353,15 @@ As for *projectname", this can either be `coreboot`, `u-boot` or `seabios`.
Example commands:
./update project trees -b coreboot
./update project trees -b coreboot x200_8mb
./update project trees -b coreboot x230_12mb x220_8mb t1650_12mb
./update project trees -x coreboot default
./update project trees -u seabios
./update project trees -m u-boot gru_bob
./update project trees -f coreboot
./update project trees -b coreboot utils default
./update project trees -b coreboot utils
./update trees -b coreboot
./update trees -b coreboot x200_8mb
./update trees -b coreboot x230_12mb x220_8mb t1650_12mb
./update trees -x coreboot default
./update trees -u seabios
./update trees -m u-boot gru_bob
./update trees -f coreboot
./update trees -b coreboot utils default
./update trees -b coreboot utils
NOTE: the `-x` and `-c` options will cause an exit with zero status, when
the target's corresponding source tree is unavailable; a non-zero status is
@ -1377,16 +1371,16 @@ if unavailable and *that* too will return with non-zero status under fault
conditions.
NOTE: "target" can indeed be the tree name, under some circumstances. For
example, `./update project trees -m seabios default`
example, `./update trees -m seabios default`
After `projectname`, a target can be specified, but if no target is specified,
then *all* targets will be operated on. For
example, `./update project trees -b coreboot` will attempt to build *all*
example, `./update trees -b coreboot` will attempt to build *all*
coreboot ROM images.
NOTE: the `coreboot` projectname here shall cause the ROM images to go
under `elf/` - this is the no-payload ROM images, which are later used
separately by `script/build/fw/coreboot` to provide full images, with
separately by `script/build/roms` to provide full images, with
payloads inserted. It is an intentional design choice of Libreboot, to split
it up this way and *not* use coreboot's own build system to handle payloads.
@ -1405,7 +1399,7 @@ Now it is unified, efficiently, under a single script.
Remember: code equals bugs, so less code equals fewer bugs.
### script/update/vendor/download
### script/vendor/download
This downloads vendor code when needed, on a given coreboot target. It does
this by scanning the defconfig files of that board, to know where the files
@ -1426,7 +1420,7 @@ This script is executed automatically, when you compile ROM images, if the given
mainboard requires vendor code to be inserted. In this way, you do not need to
manually extract such files from your original vendor image.
### script/update/vendor/inject
### script/vendor/inject
This is not used during the build process, but it can be run by the user on
release ROMs (which do not contain non-redistributable code handled by these

View File

@ -64,7 +64,7 @@ starting point.
You can then easily modify the existing coreboot configs for you board via lbmk.
./update project trees -m coreboot t420s_12mb
./update trees -m coreboot t420s_12mb
This script will provide a curses interface through which you can easily modify the
necessary variables and settings.
@ -79,7 +79,7 @@ a corebootfb and txtmode config for each board (the script will handle this for
Now you can build and test the rom for `board.`
Once you have finished this, you can try flashing the resulting rom to your board as a test.
./build fw coreboot t420s_12mb
./build roms t420s_12mb
If you try to flash this rom and it fails, then there are two probable reasons:

View File

@ -61,7 +61,7 @@ libreboot як `плата.`
Ви можете потім легко модифікувати існуючі конфігурації coreboot для вашої плати через lbmk.
./update project trees -m coreboot t420s_12mb
./update trees -m coreboot t420s_12mb
Цей сценарій надать інтерфейс curses, через який ви можете легко модифікувати
потрібні змінні та налаштування.
@ -76,7 +76,7 @@ libreboot як `плата.`
Тепер ви можете побудувати та випробувати rom для `плати.`
Як тільки ви завершили це, ви можете спробувати прошивку отриманого rom на вашу плату в якості випробування.
./build fw coreboot t420s_12mb
./build roms t420s_12mb
Якщо ви пробуєте прошити цей rom і це провалюється, тоді існує дві можливих причини:

View File

@ -147,7 +147,7 @@ One task, one script
====================
Not literally *one task*, but one theme, one *kind* of overall task. For
example, `script/build/fw/coreboot` builds final ROM images of coreboot,
example, `script/build/roms` builds final ROM images of coreboot,
containing payloads; that same script does not also build cross compilers or
tell you the current weather forecast. This is an analog of the Unix design
philosophy which says: write one program that does one thing well, and then

View File

@ -17,7 +17,7 @@ Building and Testing
Libreboot can be built for qemu just like any other board.
./build fw coreboot qemu_x86_12mb
./build roms qemu_x86_12mb
In order to test the resulting roms, you must have qemu installed on the host machine.
Test the roms by pointing qemu to the rom in bios mode.
@ -29,7 +29,7 @@ For example:
There is basic support for an arm64 virtual machine as well, although the payloads are not as developed as the x86 one:
./build fw coreboot qemu_arm64_12mb
./build roms qemu_arm64_12mb
```
qemu-system-aarch64 -bios bin/qemu_arm64_12mb/uboot_payload_qemu_arm64_12mb_libgfxinit_corebootfb_noblobs.rom \

View File

@ -21,7 +21,7 @@ and the build dependencies are installed like so, from `lbmk/` as root:
./build dependencies debian
This installs everything needed for `./build fw coreboot`, and part of the
This installs everything needed for `./build roms`, and part of the
build process makes use of coreboot's own cross-compile toolchain.
[QEMU x86/ARM64 virtual machines](../misc/emulation.md) are also

View File

@ -28,7 +28,7 @@ source](../docs/build/) if you wish to use this board. Read those instructions
first; with build dependencies then installed, you can build the board like
so:
./build fw coreboot hp2170p_16mb
./build roms hp2170p_16mb
Installation instructions are being written for Libreboot, but you can refer
to the coreboot instructions for now.

View File

@ -38,7 +38,7 @@ source](../docs/build/) if you wish to use this board. Read those instructions
first; with build dependencies then installed, you can build the board like
so:
./build fw coreboot hp8470pintel_16mb
./build roms hp8470pintel_16mb
There is currently no documentation on the coreboot website, but installation
instructions will be written for the Libreboot website.
@ -76,7 +76,7 @@ Debian Linux).
Here's how to build ROM images for this board (make sure you have performed
the [prerequisite steps](../docs/build/) first:
./build fw coreboot t1650_12mb
./build roms t1650_12mb
If you want GRUB-only setup, you could configure SeaBIOS bootorder to only
load the GRUB payload, and disable the SeaBIOS menu. This can be done by