update docs based on recent lbmk changes
the commands changed again Signed-off-by: Leah Rowe <leah@libreboot.org>master
parent
60571ed2f0
commit
bc17953e23
|
@ -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).
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати
|
||||
окремі частини системи побудови власноруч, якщо виберете. Це може бути
|
||||
|
|
|
@ -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/)
|
||||
|
|
|
@ -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
|
||||
============
|
||||
|
|
|
@ -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/).
|
||||
|
|
|
@ -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/).
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
============
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
============
|
||||
|
|
|
@ -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.**
|
||||
|
|
|
@ -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.**
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 发行版应该也能用。
|
||||
|
||||
|
|
|
@ -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
|
||||
-----------
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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 і це провалюється, тоді існує дві можливих причини:
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue