parent
be2ec75a58
commit
bd017989ca
|
@ -146,45 +146,8 @@ The *Intel* GPU variant of E6400 is more stable, and works fully, with full
|
|||
acceleration - the Nvidia models can only be run in software, and the BSD
|
||||
systems only have the slow `nv` driver (which is nonetheless stable).
|
||||
|
||||
Obtaining the VGA Option ROM (Nvidia)
|
||||
-------------------------------------
|
||||
|
||||
Libreboot does not (and will not) directly distribute the Nvidia ROM, but lbmk
|
||||
has logic added to vendor handle scripts, which automatically fetches Dell
|
||||
update files and extracts the Video BIOS from it. This is inserted during
|
||||
the build process, *automatically*. Everything has been figured out *for you*,
|
||||
as is the purpose of Libreboot's [automated build system](../maintain/).
|
||||
|
||||
Provided for *after* the Libreboot 20230625 release, this Video BIOS ROM will
|
||||
*not* be present in releases, but you'll be able to run the same script that
|
||||
lbmk uses, to manually re-download and re-add it. The Libreboot build system
|
||||
scrubs certain vendor code, in the scripts from lbmk that create release
|
||||
archives.
|
||||
|
||||
[Please read the Libreboot build guide](../build/) for more general guidance
|
||||
on compiling Libreboot. This is *required*, until the next release of Libreboot
|
||||
after 20230625 comes out.
|
||||
|
||||
The `./build boot roms` command (see above) automatically inserts this PCI
|
||||
ROM, and it is downloaded automatically if the PCI ROM is missing; if
|
||||
downloading and/or extraction (of the Option ROM) fails, the entire build
|
||||
process will fail (non-zero exit status). DO NOT flash it until you confirm
|
||||
that the build went successfully. For example, try:
|
||||
|
||||
make -BC src/coreboot/default/util/cbfstool/cbfstool
|
||||
cp src/coreboot/default/util/cbfstool/cbfstool .
|
||||
|
||||
Then check the E6400 ROM under `bin/`. Let's say the ROM was
|
||||
named `libreboot.rom`, you would do:
|
||||
|
||||
./cbfstool libreboot.rom print
|
||||
|
||||
This would print the files that have been inserted into the ROM image (rom
|
||||
stage, car, payloads etc), and it should list the PCI option ROM as the
|
||||
following file, by name: `pci10de,06eb.rom`.
|
||||
|
||||
DO NOT flash it unless that file is present. If you've confirmed that the ROM
|
||||
has compiled successfully, you can flash it.
|
||||
Nvidia errata
|
||||
-------------
|
||||
|
||||
**BEFORE** you flash it, please know that support for Nvidia variants is
|
||||
a **proof of concept**. Known issues exist. For more information, please
|
||||
|
|
|
@ -655,7 +655,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 boot roms` uses, but it may be
|
||||
The name `libgfxinit` is simply what `./build fw coreboot` 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
|
||||
|
@ -1011,8 +1011,8 @@ all other parts of the Libreboot build system. The rules are as follows:
|
|||
would execute `script/build/fw/coreboot 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 boot roms all` would export it
|
||||
to `script/build/boot/roms`, and then anything called by *that* will also
|
||||
all children; for example, `./build fw coreboot all` would export it
|
||||
to `script/build/fw/coreboot`, 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,
|
||||
|
@ -1110,8 +1110,8 @@ script/
|
|||
=======
|
||||
|
||||
*All* scripts under `script/` are executed only by the main `lbmk` script,
|
||||
conforming to the standard `buildpath/mode/option` e.g. `build/boot/roms` - so,
|
||||
running `./build boot roms` would run `script/build/boot/roms`.
|
||||
conforming to the standard `buildpath/mode/option` e.g. `build/fw/coreboot` - so,
|
||||
running `./build fw coreboot` would run `script/build/fw/coreboot`.
|
||||
|
||||
script/build/
|
||||
---------------
|
||||
|
@ -1135,7 +1135,7 @@ The `targetname` argument must be specified, chosen from this output:
|
|||
Pass several board names if you wish to build only for specific targets. For
|
||||
example:
|
||||
|
||||
./build boot roms x60 x200_8mb
|
||||
./build fw coreboot x60 x200_8mb
|
||||
|
||||
To build *all* targets, specify:
|
||||
|
||||
|
@ -1186,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 `roms_helper` script will exit
|
||||
If no payload is defined in `target.cfg`, the `build/fw/coreboot` script will exit
|
||||
with error status.
|
||||
|
||||
If SeaBIOS is to be used, on `libgfxinit` setups, SeaVGABIOS will also be
|
||||
|
@ -1217,12 +1217,12 @@ Libreboot!
|
|||
### script/build/fw/grub
|
||||
|
||||
This builds the `grub.elf` file and keymap configuration files, placing these
|
||||
under `elf/grub/` for use by `script/build/boot/roms`.
|
||||
under `elf/grub/` for use by `script/build/fw/coreboot`.
|
||||
|
||||
Command: `./build fw grub`
|
||||
|
||||
This builds the `grub-mkstandalone` utility under `src/grub/`, which is used
|
||||
by `script/build/boot/roms` to insert GRUB payloads inside coreboot ROM
|
||||
by `script/build/fw/coreboot` to insert GRUB payloads inside coreboot ROM
|
||||
images.
|
||||
|
||||
### script/build/fw/serprog
|
||||
|
@ -1380,7 +1380,7 @@ 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/boot/roms_helper` to provide full images, with
|
||||
separately by `script/build/fw/coreboot` 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.
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@ One task, one script
|
|||
====================
|
||||
|
||||
Not literally *one task*, but one theme, one *kind* of overall task. For
|
||||
example, `script/build/boot/roms_helper` builds final ROM images of coreboot,
|
||||
example, `script/build/fw/coreboot` 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
|
||||
|
|
|
@ -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 boot roms`, and part of the
|
||||
This installs everything needed for `./build fw coreboot`, 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
|
||||
|
|
Loading…
Reference in New Issue