From bc17953e23df97a946a0656a539e46dfcdc16377 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 20 Oct 2023 06:07:57 +0100 Subject: [PATCH] update docs based on recent lbmk changes the commands changed again Signed-off-by: Leah Rowe --- site/docs/build/index.md | 16 ++-- site/docs/build/index.uk.md | 14 +-- site/docs/hardware/ga-g41m-es2l.md | 2 +- site/docs/hardware/hp2170p.md | 2 +- site/docs/hardware/hp2560p.md | 2 +- site/docs/hardware/hp2570p.md | 2 +- site/docs/hardware/hp8200sff.md | 6 +- site/docs/hardware/hp8470p.md | 2 +- site/docs/hardware/hp9470m.md | 2 +- site/docs/hardware/t1650.md | 2 +- site/docs/install/ivy_has_common.md | 12 +-- site/docs/install/ivy_has_common.uk.md | 12 +-- site/docs/install/spi.md | 6 +- site/docs/install/spi.zh-cn.md | 6 +- site/docs/install/t420_external.md | 6 +- site/docs/install/t440p_external.md | 10 +-- site/docs/install/x230_external.md | 6 +- site/docs/linux/grub_cbfs.md | 6 +- site/docs/linux/grub_hardening.md | 8 +- site/docs/maintain/index.md | 118 ++++++++++++------------- site/docs/maintain/porting.md | 4 +- site/docs/maintain/porting.uk.md | 4 +- site/docs/maintain/style.md | 2 +- site/docs/misc/emulation.md | 4 +- site/docs/uboot/index.md | 2 +- site/news/hp2170p.md | 2 +- site/news/hp8470p_and_dell_t1650.md | 4 +- 27 files changed, 128 insertions(+), 134 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index d1c163c..7b7a9e5 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -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: 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). diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index eb8a180..e2a0eea 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -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 Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати окремі частини системи побудови власноруч, якщо виберете. Це може бути diff --git a/site/docs/hardware/ga-g41m-es2l.md b/site/docs/hardware/ga-g41m-es2l.md index c790651..77f5ec2 100644 --- a/site/docs/hardware/ga-g41m-es2l.md +++ b/site/docs/hardware/ga-g41m-es2l.md @@ -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/) diff --git a/site/docs/hardware/hp2170p.md b/site/docs/hardware/hp2170p.md index 3704c11..db9e6a1 100644 --- a/site/docs/hardware/hp2170p.md +++ b/site/docs/hardware/hp2170p.md @@ -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 ============ diff --git a/site/docs/hardware/hp2560p.md b/site/docs/hardware/hp2560p.md index be7f1ba..5e8f3f6 100644 --- a/site/docs/hardware/hp2560p.md +++ b/site/docs/hardware/hp2560p.md @@ -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/). diff --git a/site/docs/hardware/hp2570p.md b/site/docs/hardware/hp2570p.md index 2610bf7..9e698b1 100644 --- a/site/docs/hardware/hp2570p.md +++ b/site/docs/hardware/hp2570p.md @@ -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/). diff --git a/site/docs/hardware/hp8200sff.md b/site/docs/hardware/hp8200sff.md index ad1eda9..760547e 100644 --- a/site/docs/hardware/hp8200sff.md +++ b/site/docs/hardware/hp8200sff.md @@ -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. diff --git a/site/docs/hardware/hp8470p.md b/site/docs/hardware/hp8470p.md index 6abbad7..f6e1f5d 100644 --- a/site/docs/hardware/hp8470p.md +++ b/site/docs/hardware/hp8470p.md @@ -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 ============ diff --git a/site/docs/hardware/hp9470m.md b/site/docs/hardware/hp9470m.md index 68b310f..aa8af89 100644 --- a/site/docs/hardware/hp9470m.md +++ b/site/docs/hardware/hp9470m.md @@ -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). diff --git a/site/docs/hardware/t1650.md b/site/docs/hardware/t1650.md index 958c47a..7cec1f4 100644 --- a/site/docs/hardware/t1650.md +++ b/site/docs/hardware/t1650.md @@ -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 ============ diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 2754621..0b9907b 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -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.** diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md index 3d7850c..a30d9a4 100644 --- a/site/docs/install/ivy_has_common.uk.md +++ b/site/docs/install/ivy_has_common.uk.md @@ -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.** diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index beb863c..4c40fa9 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -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 diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index 4658e93..7cf377a 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -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 发行版应该也能用。 diff --git a/site/docs/install/t420_external.md b/site/docs/install/t420_external.md index 704141f..b7b9536 100644 --- a/site/docs/install/t420_external.md +++ b/site/docs/install/t420_external.md @@ -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 ----------- diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 52981f0..6870f02 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -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). diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 7465963..1e7e60d 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -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). diff --git a/site/docs/linux/grub_cbfs.md b/site/docs/linux/grub_cbfs.md index f403ea0..0d2d648 100644 --- a/site/docs/linux/grub_cbfs.md +++ b/site/docs/linux/grub_cbfs.md @@ -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. diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 28ed31e..2711d79 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -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: diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 7a7624b..ff2bfa0 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -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: - 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: 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 diff --git a/site/docs/maintain/porting.md b/site/docs/maintain/porting.md index ca226ab..aabaee7 100644 --- a/site/docs/maintain/porting.md +++ b/site/docs/maintain/porting.md @@ -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: diff --git a/site/docs/maintain/porting.uk.md b/site/docs/maintain/porting.uk.md index e29d558..f0c3c51 100644 --- a/site/docs/maintain/porting.uk.md +++ b/site/docs/maintain/porting.uk.md @@ -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 і це провалюється, тоді існує дві можливих причини: diff --git a/site/docs/maintain/style.md b/site/docs/maintain/style.md index 10cddcd..cb2bdbd 100644 --- a/site/docs/maintain/style.md +++ b/site/docs/maintain/style.md @@ -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 diff --git a/site/docs/misc/emulation.md b/site/docs/misc/emulation.md index cc93fca..d37ce9a 100644 --- a/site/docs/misc/emulation.md +++ b/site/docs/misc/emulation.md @@ -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 \ diff --git a/site/docs/uboot/index.md b/site/docs/uboot/index.md index 790cdd2..934c78c 100644 --- a/site/docs/uboot/index.md +++ b/site/docs/uboot/index.md @@ -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 diff --git a/site/news/hp2170p.md b/site/news/hp2170p.md index cadb968..4af5c81 100644 --- a/site/news/hp2170p.md +++ b/site/news/hp2170p.md @@ -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. diff --git a/site/news/hp8470p_and_dell_t1650.md b/site/news/hp8470p_and_dell_t1650.md index 23eb35b..bf8c865 100644 --- a/site/news/hp8470p_and_dell_t1650.md +++ b/site/news/hp8470p_and_dell_t1650.md @@ -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