diff --git a/site/docs/build/index.md b/site/docs/build/index.md index d1c163cd284e493d0d9d6365cdc549eaba48ff34..7b7a9e5e80932fad65a34cbd991f11ac6599a41f 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: <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). diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index eb8a180d45f5dc8ebea1ad28688c310d0e9275b3..e2a0eeadb4e29aaec09f51ec893a1e0a65f54e2c 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 c79065104af5ccdc00025065b9bc8586846ff64d..77f5ec252107bd70562265e946d2f110b3de346b 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 3704c11c41fb35dc0ef3fd72a65b5ff449331766..db9e6a1cb44a5b20b8b13e960e892c1ede1d9a73 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 be7f1ba960beac960800d4d7123e448b378cef23..5e8f3f664199f491977ff0114f54ed4e9a9b34b2 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 2610bf74dc4716463db5b3bd2660137ed76b0c0f..9e698b139936329c91f2048af9a029beb0f0e8ff 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 ad1eda9c8868484229b3ae5ee2f3904f3451cbd0..760547e1eae24d9d5bc7fc944fbdc6fb792c3a8d 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 6abbad75bcbc5b4b39ef12e306a1e563ecb0179f..f6e1f5d262adc0bb2ff6bafe94f1b81b8083da9b 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 68b310fce2ee97d589f85b02c8da3d584d62acac..aa8af896623347959660ec6d1f8f52ce10e45f88 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 958c47ac5e438dbc2b173cdf7aa3a6db6001b917..7cec1f4ea0806b7c5f8690fba8ea936952d17c3f 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 27546210cba34adcaea017a3f233fc1231267f5c..0b9907b50026ac72f020ed488c0e40a039587e72 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 3d7850c12caaee83fc67618ece0e4fb14e73db60..a30d9a4f2c4658dff95b691024bfb037a184e17a 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 beb863c3515bd3f0ff34067e403625ea408b1288..4c40fa93e4dc6ef5a3990ae7763be0132ebba168 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 4658e93f320b5c3ff70b0af57dfb1eb6e01d860d..7cf377a9cfe28a92f67798cf527f93bf1ff22c83 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 704141f9afdcd7ad14350bbf526de58c26a89d83..b7b953605d28c8942499393acc023164353c973b 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 52981f07e31083c0a64624f12fe67857da324368..6870f023aa2a2f38ec635b0f8f8c5337939816d6 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 7465963529a6ab84a63bdab7083f165b110004c1..1e7e60d9b455248b9f908d6b2a1f5968407117ca 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 f403ea09c73ed0d5c99ad628dca40f8d8e42f643..0d2d6485466f843b8edb002c8b899f74babeecf2 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 28ed31e803ebf78e3f1a430576120146252bfdca..2711d793200baf63f0d525f7f7ddaf6d5e74cac5 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 7a7624b99a69e10a140ee9de4b1c2ec938cfb676..ff2bfa09622cc0da3aa9fa04ed7a70ef4015a18e 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: <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 diff --git a/site/docs/maintain/porting.md b/site/docs/maintain/porting.md index ca226ab00fddd6ec07814790c97f90d56b274e2f..aabaee7988b3b4bbf613ac7b4ca48af469cf5a5e 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 e29d5587f4f8d4a979a9ff6272aee013c68eaa57..f0c3c519c2e6538fbd872a8aed646de0e7dbc5ef 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 10cddcdf834dc5688386711cb054f58cc14bc3ce..cb2bdbdfb68389fe8d785b0a8c4142bf9ac4b0d0 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 cc93fca70fedee1ddb13578332496e52eee3959a..d37ce9a4179a3a3ee5ee50a9370bc29422502150 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 790cdd21530df1f9d1b0fbbd6bf08ec2d9925a1e..934c78c09f970971e58c04c19e23d2bc5d75be3f 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 cadb968b51720d0b223ed575e1e3cea2593cd17c..4af5c81400f7bb98b3fbae0e956766ca41df3468 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 23eb35bff8338e5421c30b1e1efe2b92b6e45a11..bf8c865ec3bea5f998afe88b90709bb36f4e17c3 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