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
|
acceleration - the Nvidia models can only be run in software, and the BSD
|
||||||
systems only have the slow `nv` driver (which is nonetheless stable).
|
systems only have the slow `nv` driver (which is nonetheless stable).
|
||||||
|
|
||||||
Obtaining the VGA Option ROM (Nvidia)
|
Nvidia errata
|
||||||
-------------------------------------
|
-------------
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
**BEFORE** you flash it, please know that support for Nvidia variants is
|
**BEFORE** you flash it, please know that support for Nvidia variants is
|
||||||
a **proof of concept**. Known issues exist. For more information, please
|
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,
|
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.
|
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
|
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
|
platforms, coreboot implemented a 3rd party library called `libgfxinit`, which
|
||||||
is written in Ada and handles video initialization. In this setup, coreboot
|
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`.
|
would execute `script/build/fw/coreboot all` in `sh`.
|
||||||
* `TMPDIR` is exclicitly set, providing a constant location where temporary
|
* `TMPDIR` is exclicitly set, providing a constant location where temporary
|
||||||
files and directories can be made. `TMPDIR` is exported by the parent to
|
files and directories can be made. `TMPDIR` is exported by the parent to
|
||||||
all children; for example, `./build boot roms all` would export it
|
all children; for example, `./build fw coreboot all` would export it
|
||||||
to `script/build/boot/roms`, and then anything called by *that* will also
|
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
|
inherit it - the main parent process running `lbmk` will then clean up this
|
||||||
`TMPDIR` directory upon any exit.
|
`TMPDIR` directory upon any exit.
|
||||||
* All exits from lbmk are handled by this script. *All* exits, zero or non-zero,
|
* 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,
|
*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,
|
conforming to the standard `buildpath/mode/option` e.g. `build/fw/coreboot` - so,
|
||||||
running `./build boot roms` would run `script/build/boot/roms`.
|
running `./build fw coreboot` would run `script/build/fw/coreboot`.
|
||||||
|
|
||||||
script/build/
|
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
|
Pass several board names if you wish to build only for specific targets. For
|
||||||
example:
|
example:
|
||||||
|
|
||||||
./build boot roms x60 x200_8mb
|
./build fw coreboot x60 x200_8mb
|
||||||
|
|
||||||
To build *all* targets, specify:
|
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,
|
* If no declaration is made, or a declaration is made contrary to the above,
|
||||||
no special modifications will be made.
|
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.
|
with error status.
|
||||||
|
|
||||||
If SeaBIOS is to be used, on `libgfxinit` setups, SeaVGABIOS will also be
|
If SeaBIOS is to be used, on `libgfxinit` setups, SeaVGABIOS will also be
|
||||||
|
@ -1217,12 +1217,12 @@ Libreboot!
|
||||||
### script/build/fw/grub
|
### script/build/fw/grub
|
||||||
|
|
||||||
This builds the `grub.elf` file and keymap configuration files, placing these
|
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`
|
Command: `./build fw grub`
|
||||||
|
|
||||||
This builds the `grub-mkstandalone` utility under `src/grub/`, which is used
|
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.
|
images.
|
||||||
|
|
||||||
### script/build/fw/serprog
|
### script/build/fw/serprog
|
||||||
|
@ -1380,7 +1380,7 @@ coreboot ROM images.
|
||||||
|
|
||||||
NOTE: the `coreboot` projectname here shall cause the ROM images to go
|
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
|
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
|
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.
|
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
|
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
|
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
|
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
|
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
|
./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.
|
build process makes use of coreboot's own cross-compile toolchain.
|
||||||
|
|
||||||
[QEMU x86/ARM64 virtual machines](../misc/emulation.md) are also
|
[QEMU x86/ARM64 virtual machines](../misc/emulation.md) are also
|
||||||
|
|
Loading…
Reference in New Issue