File site/docs/maintain/index.md changed (mode: 100644) (index 5cd09ff..82ac95e) |
... |
... |
the [freedom status page](../../freedom-status.md). |
85 |
85 |
Before *configuration* info, you will first be shown a brief overview of every |
Before *configuration* info, you will first be shown a brief overview of every |
86 |
86 |
project that Libreboot imports, such as coreboot. |
project that Libreboot imports, such as coreboot. |
87 |
87 |
|
|
|
88 |
|
Environmental variables |
|
89 |
|
======================= |
|
90 |
|
|
|
91 |
|
LBMK\_THREADS |
|
92 |
|
------------- |
|
93 |
|
|
|
94 |
|
For example: |
|
95 |
|
|
|
96 |
|
export LBMK_THREADS=2 |
|
97 |
|
|
|
98 |
|
This would build on two threads, when running lbmk. It defaults to 1. |
|
99 |
|
|
|
100 |
|
Previous revisions of lbmk used `nproc` by default, but this was set to 1 |
|
101 |
|
instead, because nproc is not available on every operating system. |
|
102 |
|
|
|
103 |
|
LBMK\_STATUS |
|
104 |
|
------------ |
|
105 |
|
|
|
106 |
|
By default, the user is asked to confirm when building for a given mainboard, |
|
107 |
|
if that mainboard is not marked *stable* in `target.cfg`. To disable such |
|
108 |
|
dialogs, do this: |
|
109 |
|
|
|
110 |
|
export LBMK_STATUS=n |
|
111 |
|
|
|
112 |
|
LBMK\_RELEASE |
|
113 |
|
------------- |
|
114 |
|
|
|
115 |
|
If set to `y`, it signals to `script/build/roms` that a release is being built, |
|
116 |
|
and it will honour `release="n"` in target.cfg files. You could also set this |
|
117 |
|
yourself, when doing regular builds, if you wanted to test how `./build roms` |
|
118 |
|
behaves running it in release mode. Do this if you want to: |
|
119 |
|
|
|
120 |
|
export LBMK_RELEASE=y |
|
121 |
|
|
|
122 |
|
This has a similar effect compared to `LBMK_STATUS="y"` but you probably don't |
|
123 |
|
need to use this option yourself. |
|
124 |
|
|
88 |
125 |
Projects/files downloaded/generated by lbmk |
Projects/files downloaded/generated by lbmk |
89 |
126 |
=========================================== |
=========================================== |
90 |
127 |
|
|
|
... |
... |
This file can contain several configuration lines, each being a string, such |
530 |
567 |
as: |
as: |
531 |
568 |
|
|
532 |
569 |
* `tree="default"` (example entry) |
* `tree="default"` (example entry) |
533 |
|
* `romtype="normal"` (example entry) |
|
534 |
570 |
* `rev="ad983eeec76ecdb2aff4fb47baeee95ade012225"` (example entry) |
* `rev="ad983eeec76ecdb2aff4fb47baeee95ade012225"` (example entry) |
535 |
|
* `arch="x86_64"` (example entry) |
|
|
571 |
|
* `xarch="i386-elf"` (example entry) |
536 |
572 |
* `payload_grub="y"` (example entry) |
* `payload_grub="y"` (example entry) |
537 |
573 |
* `payload_grub_withseabios="y"` (example entry) |
* `payload_grub_withseabios="y"` (example entry) |
538 |
574 |
* `payload_seabios="y"` (example entry) |
* `payload_seabios="y"` (example entry) |
|
... |
... |
as: |
542 |
578 |
* `payload_seabios_grubonly="y"` (example entry) |
* `payload_seabios_grubonly="y"` (example entry) |
543 |
579 |
* `grub_scan_disk="ata"` |
* `grub_scan_disk="ata"` |
544 |
580 |
* `uboot_config=default` (specify which U-Boot tree to use) |
* `uboot_config=default` (specify which U-Boot tree to use) |
545 |
|
* `vendorfiles="n"` |
|
546 |
|
* `microcode_required="y"` |
|
|
581 |
|
* `release="n"` (example entry) |
|
582 |
|
* `status=stable` |
547 |
583 |
|
|
548 |
584 |
The `tree` value refers to `config/coreboot/TREE`; in other words, a given |
The `tree` value refers to `config/coreboot/TREE`; in other words, a given |
549 |
585 |
target could specify a name other than its own as the tree; it would then |
target could specify a name other than its own as the tree; it would then |
550 |
586 |
re-use code from that tree, rather than providing its own. |
re-use code from that tree, rather than providing its own. |
551 |
587 |
|
|
552 |
|
The `romtype` entry is used during the building of ROM images, to define |
|
553 |
|
special steps; for example, d8d16sas` would tell lbmk that a fake PIKE2008 |
|
554 |
|
ROM must be inserted into CBFS (prevents hanging on SeaBIOS). |
|
555 |
|
|
|
556 |
588 |
The `rev` entry defines which coreboot revision to use, from the |
The `rev` entry defines which coreboot revision to use, from the |
557 |
589 |
coreboot Git repository. *At present, lbmk only supports use of the official |
coreboot Git repository. *At present, lbmk only supports use of the official |
558 |
590 |
repository from the upstream coreboot project*. |
repository from the upstream coreboot project*. |
559 |
591 |
|
|
560 |
|
The `arch` entry specifies which CPU architecture is to be used: currently |
|
561 |
|
recognized entries are `x86_32`, `x86_64`, `ARMv7` and `AArch64`. *Setting it |
|
562 |
|
to a non-native arch means that necessary crossgcc-arch will be compiled and be |
|
563 |
|
available when building roms, but not necessarily built or discovered when |
|
564 |
|
individual scripts are called manually.* |
|
|
592 |
|
The `xarch` entry specifies which CPU architecture is to be used: currently |
|
593 |
|
recognized entries are `i386-elf`, `arm-eabi` and `aarch64-elf`. This is the |
|
594 |
|
target architecture for building GCC/toolchain from coreboot crossgcc, |
|
595 |
|
hence `xarch`. |
565 |
596 |
|
|
566 |
597 |
The `payload_grub` entry specifies whether or not GRUB is to be included in |
The `payload_grub` entry specifies whether or not GRUB is to be included in |
567 |
598 |
ROM images. |
ROM images. |
|
... |
... |
on a ThinkPad X60 with the optical drive may cause GRUB to hang, so on that |
600 |
631 |
machine it is advisable to set this option to `ahci` (becuse the default HDD |
machine it is advisable to set this option to `ahci` (becuse the default HDD |
601 |
632 |
slot is AHCI). |
slot is AHCI). |
602 |
633 |
|
|
603 |
|
The `vendorfiles` entry doesn't affect anything in code, except that |
|
604 |
|
the `noblobs` string will be appended to ROM image file names, on releases; |
|
605 |
|
ditto `nomicrocode` but in that case, the behaviour is: if no microcode to |
|
606 |
|
begin with, only `nomicrocode` images will be named, otherwise ROM images with |
|
607 |
|
and without microcode updates will be provided in releases (CPU microcode |
|
608 |
|
updates). |
|
|
634 |
|
The `release` variable can be set to n, which makes the `script/update/release` |
|
635 |
|
script skip that target, when creating release images. For example, a given |
|
636 |
|
board may not be stable and you don't want images for it to be included in the |
|
637 |
|
release. |
|
638 |
|
|
|
639 |
|
The `status` variable can be set to whatever you want, but anything other |
|
640 |
|
than `stable` will make `script/build/roms` ask for y/n confirmation if |
|
641 |
|
not building images using `script/update/release`. |
|
642 |
|
|
|
643 |
|
Recommended strings for `status` could be: `stable`, `unstable`, `broken` |
|
644 |
|
or `untested`. Alternatively, you might state `wip`. You can set whatever |
|
645 |
|
string you want here. |
|
646 |
|
|
|
647 |
|
### config/coreboot/BOARDNAME/warn.txt |
|
648 |
|
|
|
649 |
|
Additionally: the `warn.txt` file can be included alongside target.cfg, to |
|
650 |
|
provide warning of any potential issues or quirks. For example, raminit may |
|
651 |
|
only be reliable with certain modules. This is printed on the user's terminal |
|
652 |
|
when building that target. |
609 |
653 |
|
|
610 |
654 |
### config/coreboot/BOARDNAME/config/ |
### config/coreboot/BOARDNAME/config/ |
611 |
655 |
|
|