libreboot / lbwww (public) (License: Unspecified) (since 2023-04-11) (hash sha1)
libreboot website (markdown files). https://libreboot.org/
List of commits:
Subject Hash Author Date (UTC)
snip a2164297b94a5cc348a61af3e3ea3daa0329b23e Leah Rowe 2024-08-23 00:28:08
re-add news/10.md b5ca9e1686854c4c75fe90b0d18975319b726d9c Leah Rowe 2024-08-22 23:38:56
w541: clarify notes about chip select b7c7fd53e48b2300048b298191ce41cb49a47718 Leah Rowe 2024-08-18 00:26:14
install/w541_external: new guide f1151c0f3e620907bebf708efe1251c1aba894f9 Leah Rowe 2024-08-18 00:20:56
ivy_has_common: add clarification 47c02c29b71c7a08c06344b310841e8b53255c32 Leah Rowe 2024-08-18 00:09:45
fix toc on ru homepage 18940ed35d8610ccea7d90ef40df75a00a35ac21 Leah Rowe 2024-08-18 00:03:32
fix link 649118fc65522729306a5077cd4a5acadd950fbd Leah Rowe 2024-08-18 00:02:29
link wikipedia page instead, for right to repair cba73bc3828107af880fc8d9b06a7e22d1457a06 Leah Rowe 2024-08-02 08:58:31
document 20240612 rev2 and rev3 changes 68062ce60804efdbb20e0da6b16b7dc9e8e1a93a Leah Rowe 2024-07-29 05:15:27
document utils command change 3703d3737c05b7f38ae1b251f0d95704ffb1704a Leah Rowe 2024-07-23 01:49:08
remove obsolete mentions on audit6 c2f9253c45fd4727a641ffced3d39d1752707955 Leah Rowe 2024-07-22 08:38:11
audit6.md: mark the interesting changes in bold 54962a782c0a92c1f5a32132cc6d527d95a5e2a7 Leah Rowe 2024-07-19 18:00:32
Libreboot Build System Audit 6 (announcement) ed8ccc47a7e4b10570457959a25273da67a358eb Leah Rowe 2024-07-19 04:04:05
say 9010/7010 mt works with t1650 rom crossflashed 26281ea864a22bca7cc7d56cd102caac8c944f88 Leah Rowe 2024-07-12 16:02:52
better formatting e62faf0485b85ada0c8f4096e688ca854bb9954e Leah Rowe 2024-07-12 01:43:36
ivy_internal: add link to ch1p's guide 26864828a705af3a51f46c1dbf9b345e227cf769 Leah Rowe 2024-07-12 01:41:14
make the site slightly less pink 04af40baf20bba3b93e0c979b10f45e965f3d0c1 Leah Rowe 2024-07-08 21:11:33
red tint on the site theme 88965c3a3485e516cd084dc95a87b523a037cb16 Leah Rowe 2024-07-08 10:25:29
don't grey the header image a99f091b1291daa4e93a03db5e518d9de38270b6 Leah Rowe 2024-07-08 10:12:08
Update faq.md - link led to a 404 91ce04330a7410db0c40f878aee1f62024bf31f1 beeburrt 2024-07-08 07:28:54
Commit a2164297b94a5cc348a61af3e3ea3daa0329b23e - snip
Signed-off-by: Leah Rowe <info@minifree.org>
Author: Leah Rowe
Author date (UTC): 2024-08-23 00:28
Committer name: Leah Rowe
Committer date (UTC): 2024-08-23 00:28
Parent(s): b5ca9e1686854c4c75fe90b0d18975319b726d9c
Signer:
Signing key:
Signing status: N
Tree: 5c243f699d273bcfeadf0a04682ef5add16ed04d
File Lines added Lines deleted
site/docs/build/index.md 17 14
site/docs/build/index.uk.md 14 14
site/docs/grub/index.md 7 4
site/docs/hardware/dell9020.md 2 2
site/docs/hardware/hp2170p.md 1 1
site/docs/hardware/hp2560p.md 1 1
site/docs/hardware/hp2570p.md 1 1
site/docs/hardware/hp8200sff.md 2 2
site/docs/hardware/hp820g2.md 1 1
site/docs/hardware/hp8460p.md 1 1
site/docs/hardware/hp8470p.md 1 1
site/docs/hardware/hp8560w.md 1 1
site/docs/hardware/hp9470m.md 1 1
site/docs/hardware/t1650.md 1 1
site/docs/install/ivy_has_common.md 5 5
site/docs/install/ivy_has_common.uk.md 1 1
site/docs/install/spi.md 5 9
site/docs/install/spi.zh-cn.md 5 9
site/docs/linux/grub_cbfs.md 6 6
site/docs/linux/grub_hardening.md 4 28
site/docs/maintain/index.md 137 76
site/news/10.md 4 5
File site/docs/build/index.md changed (mode: 100644) (index 2e56a89..06ddc41)
... ... On Fedora, you can use the following
108 108
109 109 sudo dnf install python-unversioned-command sudo dnf install python-unversioned-command
110 110
111 On most modern distros, Python 2 is no longer included and Python 3 will be
112 the only one available on the `python`.
113
111 114 How to compile Libreboot How to compile Libreboot
112 115 ======================== ========================
113 116
 
... ... Fedora, Arch Linux/Parabola or Void Linux.
132 135
133 136 Some examples (run them as root, use use e.g. `sudo`, `doas`): Some examples (run them as root, use use e.g. `sudo`, `doas`):
134 137
135 ./build dependencies ubuntu
138 ./mk dependencies ubuntu
136 139
137 140 or or
138 141
139 ./build dependencies debian
142 ./mk dependencies debian
140 143
141 144 or or
142 145
143 ./build dependencies fedora38
146 ./mk dependencies fedora38
144 147
145 148 or or
146 149
147 ./build dependencies arch
150 ./mk dependencies arch
148 151
149 152 NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release, NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release,
150 153 use the dedicated configuration file: use the dedicated configuration file:
151 154
152 ./build dependencies ubuntu2004
155 ./mk dependencies ubuntu2004
153 156
154 157 Check: `config/dependencies/` for list of supported distros. Check: `config/dependencies/` for list of supported distros.
155 158
 
... ... Next, build ROM images
161 164 ---------------------- ----------------------
162 165
163 166 Libreboot MaKe (lbmk) automatically runs all necessary commands; for Libreboot MaKe (lbmk) automatically runs all necessary commands; for
164 example, `./build roms` will automatically run `./build grub`
165 if the required GRUB payload (under `elf/grub/`) does not exist.
167 example, `./mk -b coreboot` will automatically build the required payloads
168 if not already compiled.
166 169
167 170 As a result, you can now (after installing the correct build dependencies) run As a result, you can now (after installing the correct build dependencies) run
168 171 just a single command, from a fresh Git clone, to build all ROM images: just a single command, from a fresh Git clone, to build all ROM images:
169 172
170 ./build roms all
173 ./mk -b coreboot
171 174
172 175 or even just build specific ROM images, e.g.: or even just build specific ROM images, e.g.:
173 176
174 ./build roms x60
177 ./mk -b coreboot x60
175 178
176 179 or get a list of supported build targets: or get a list of supported build targets:
177 180
178 ./build roms list
181 ./mk -b coreboot list
179 182
180 183 Or maybe just build payloads? Or maybe just build payloads?
181 184 ----------------------------- -----------------------------
182 185
183 186 If you wish to build payloads, you can also do that. For example: If you wish to build payloads, you can also do that. For example:
184 187
185 ./build grub
188 ./mk -b grub
186 189
187 ./update trees -b seabios
190 ./mk -b seabios
188 191
189 ./update trees -b u-boot
192 ./mk -b u-boot
190 193
191 194 Previous steps will be performed automatically. However, you can *still* run Previous steps will be performed automatically. However, you can *still* run
192 195 individual parts of the build system manually, if you choose. This may be individual parts of the build system manually, if you choose. This may be
 
... ... Want to modify Libreboot?
199 202 Check the [lbmk maintenance manual](../maintain/) for guidance. You may for Check the [lbmk maintenance manual](../maintain/) for guidance. You may for
200 203 example want to modify a config, e.g.: example want to modify a config, e.g.:
201 204
202 ./update trees -m coreboot x200_8mb
205 ./mk -m coreboot x200_8mb
203 206
204 207 Or perhaps add a new board! The maintenance manual will teach you how the Or perhaps add a new board! The maintenance manual will teach you how the
205 208 Libreboot build system (lbmk) works! Libreboot build system (lbmk) works!
File site/docs/build/index.uk.md changed (mode: 100644) (index 69826da..de7ca0a)
... ... marked as stable, the build proceeds without further input. If the board is
43 43 marked anything other, a warning appears asking if you wish to proceed; to marked anything other, a warning appears asking if you wish to proceed; to
44 44 disable these warnings, do this before building (not recommended): disable these warnings, do this before building (not recommended):
45 45
46 export LBMK_STATUS=n
46 export XBMK_STATUS=n
47 47
48 48 In Libreboot, we specify: `stable`, `unstable`, `broken` or `untested`. In Libreboot, we specify: `stable`, `unstable`, `broken` or `untested`.
49 49 The "unstable" marking means that the board boots mostly/entirely reliably The "unstable" marking means that the board boots mostly/entirely reliably
 
... ... Multi-threaded builds
64 64 Libreboot's build system defaults to a single build thread, but you can change Libreboot's build system defaults to a single build thread, but you can change
65 65 it by doing e.g. it by doing e.g.
66 66
67 export LBMK_THREADS=4
67 export XBMK_THREADS=4
68 68
69 69 This would make lbmk run on 4 threads. This would make lbmk run on 4 threads.
70 70
 
... ... Environmental variables
74 74 Please read about environmental variables in [the build Please read about environmental variables in [the build
75 75 instructions](../maintain/), before running lbmk. You should set instructions](../maintain/), before running lbmk. You should set
76 76 your variables accordingly, though you do not technically need to; some your variables accordingly, though you do not technically need to; some
77 of them may be useful, e.g. `LBMK_THREADS` (sets the number of build threads).
77 of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads).
78 78
79 79 Environmental variables Environmental variables
80 80 ======================= =======================
 
... ... Environmental variables
82 82 Please read about environmental variables in [the build Please read about environmental variables in [the build
83 83 instructions](../maintain/), before running lbmk. You should set instructions](../maintain/), before running lbmk. You should set
84 84 your variables accordingly, though you do not technically need to; some your variables accordingly, though you do not technically need to; some
85 of them may be useful, e.g. `LBMK_THREADS` (sets the number of build threads).
85 of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads).
86 86
87 87 Git Git
88 88 === ===
 
... ... time or date can cause connections to be dropped during negotiation.
127 127 libreboot включає сценарій, який автоматично встановлює apt-get залежності libreboot включає сценарій, який автоматично встановлює apt-get залежності
128 128 в Ubuntu 20.04: в Ubuntu 20.04:
129 129
130 sudo ./build dependencies ubuntu2004
130 sudo ./mk dependencies ubuntu2004
131 131
132 132 Окремі сценарії також існують: Окремі сценарії також існують:
133 133
134 sudo ./build dependencies debian
134 sudo ./mk dependencies debian
135 135
136 sudo ./build dependencies arch
136 sudo ./mk dependencies arch
137 137
138 sudo ./build dependencies void
138 sudo ./mk dependencies void
139 139
140 140 Check: `config/dependencies/` for list of supported distros. Check: `config/dependencies/` for list of supported distros.
141 141
 
... ... libreboot Make (lbmk) автоматично виконує всі необхі
150 150 В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати
151 151 лише одну команду, з свіжого Git clone, для побудови образів ROM: лише одну команду, з свіжого Git clone, для побудови образів ROM:
152 152
153 ./build roms all
153 ./mk -b coreboot
154 154
155 155 або навіть побудувати конкретні образи ROM, такі як: або навіть побудувати конкретні образи ROM, такі як:
156 156
157 ./build roms x60
157 ./mk -b coreboot x60
158 158
159 159 or get a list of supported build targets: or get a list of supported build targets:
160 160
161 ./build roms list
161 ./mk -b coreboot list
162 162
163 163 Якщо ви бажаєте побудувати корисні навантаження, можете зробити це. Наприклад: Якщо ви бажаєте побудувати корисні навантаження, можете зробити це. Наприклад:
164 164
165 ./build grub
165 ./mk -b grub
166 166
167 ./update trees -b seabios
167 ./mk -b seabios
168 168
169 ./update trees -b u-boot
169 ./mk -b u-boot
170 170
171 171 Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати
172 172 окремі частини системи побудови власноруч, якщо виберете. Це може бути окремі частини системи побудови власноруч, якщо виберете. Це може бути
File site/docs/grub/index.md changed (mode: 100644) (index 8be58d4..21f4ce8)
... ... title: GRUB payload
3 3 x-toc-enable: true x-toc-enable: true
4 4 ... ...
5 5
6 TODO: this guide should be reviewed and updated. Some info might be out of
7 date.
8
9 6 GRUB already has excellent GRUB already has excellent
10 7 documentation, but there are aspects of libreboot that deserve special documentation, but there are aspects of libreboot that deserve special
11 8 treatment. libreboot provides the option to boot GRUB directly, running on treatment. libreboot provides the option to boot GRUB directly, running on
 
... ... files:
33 30 When you build GRUB from source, you can use the `grub-mklayout` program to When you build GRUB from source, you can use the `grub-mklayout` program to
34 31 create a special keymap file for GRUB. [Learn how to build GRUB](../build/) create a special keymap file for GRUB. [Learn how to build GRUB](../build/)
35 32
33 Te compile GRUB, in lbmk, do this:
34
35 ./mk -b grub default
36
37 Other GRUB trees are available, but the `default` one will do for now.
38
36 39 When you've built GRUB, using `lbmk` (libreboot build system), take your kepmap When you've built GRUB, using `lbmk` (libreboot build system), take your kepmap
37 40 file (generated by ckbcomp) and run it through `grub-mklayout` like so: file (generated by ckbcomp) and run it through `grub-mklayout` like so:
38 41
39 cat frazerty | ./src/grub/grub-mklayout -o frazerty.gkb
42 cat frazerty | ./src/grub/default/grub-mklayout -o frazerty.gkb
40 43
41 44 Place the newly created `.gkb` file under `config/grub/keymap` in lbmk. When Place the newly created `.gkb` file under `config/grub/keymap` in lbmk. When
42 45 you build libreboot, a ROM image with GRUB payload and your newly created you build libreboot, a ROM image with GRUB payload and your newly created
File site/docs/hardware/dell9020.md changed (mode: 100644) (index 1216438..72712c2)
... ... Build ROM image from source
164 164
165 165 For the MT variant (7020 MT and 9020 MT): For the MT variant (7020 MT and 9020 MT):
166 166
167 ./build roms dell9020mt_12mb
167 ./mk -b coreboot dell9020mt_nri_12mb
168 168
169 169 For the SFF variant (7020 SFF and 9020 SFF): For the SFF variant (7020 SFF and 9020 SFF):
170 170
171 ./build roms dell9020sff_12mb
171 ./mk -b coreboot dell9020sff_nri_12mb
172 172
173 173 It is important that you choose the right one. The MT variant is the full It is important that you choose the right one. The MT variant is the full
174 174 MTX tower. MTX tower.
File site/docs/hardware/hp2170p.md changed (mode: 100644) (index 77b44f8..90c233b)
... ... Build ROM image from source
72 72
73 73 The build target, when building from source, is thus: The build target, when building from source, is thus:
74 74
75 ./build roms hp2170p_16mb
75 ./mk -b coreboot hp2170p_16mb
76 76
77 77 Installation Installation
78 78 ============ ============
File site/docs/hardware/hp2560p.md changed (mode: 100644) (index 4b57ce9..b6f31b0)
... ... about this:
68 68 Refer to the coreboot guide for flashing instructions, and you can build the Refer to the coreboot guide for flashing instructions, and you can build the
69 69 images for it in Libreboot like so: images for it in Libreboot like so:
70 70
71 ./build roms hp2560p_8mb
71 ./mk -b coreboot hp2560p_8mb
72 72
73 73 More information about building ROM images can be found in More information about building ROM images can be found in
74 74 the [build guide](../build/). the [build guide](../build/).
File site/docs/hardware/hp2570p.md changed (mode: 100644) (index 34b72e2..f3a9842)
... ... a SOIC-16 chip instead of SOIC-8. Follow these instructions:
103 103 Refer to that coreboot guide for flashing instructions, and you can Refer to that coreboot guide for flashing instructions, and you can
104 104 build the images for it in Libreboot like so: build the images for it in Libreboot like so:
105 105
106 ./build roms hp2570p_16mb
106 ./mk -b coreboot hp2570p_16mb
107 107
108 108 More information about building ROM images can be found in More information about building ROM images can be found in
109 109 the [build guide](../build/). the [build guide](../build/).
File site/docs/hardware/hp8200sff.md changed (mode: 100644) (index fd673be..0255282)
... ... to recover from an unbootable BIOS:
88 88
89 89 You can build the images for it in Libreboot like so: You can build the images for it in Libreboot like so:
90 90
91 ./build roms hp8200sff_8mb
91 ./mk -b coreboot hp8200sff_8mb
92 92
93 93 More information about building ROM images can be found in More information about building ROM images can be found in
94 94 the [build guide](../build/). the [build guide](../build/).
 
... ... Pin-Strap is set". If it doesn't, start again from the beginning.
154 154
155 155 Now build the **4** MiB Libreboot image. Now build the **4** MiB Libreboot image.
156 156
157 ./build roms hp8200sff_4mb
157 ./mk -b coreboot hp8200sff_4mb
158 158
159 159 More information about building ROM images can be found in More information about building ROM images can be found in
160 160 the [build guide](../build/). the [build guide](../build/).
File site/docs/hardware/hp820g2.md changed (mode: 100644) (index c352d16..f5bacb0)
... ... release after Libreboot 20231106, you *must* use the latest `lbmk.git`.
95 95
96 96 The build target, when building from source, is thus: The build target, when building from source, is thus:
97 97
98 ./build roms hp820g2_12mb
98 ./mk -b coreboot hp820g2_12mb
99 99
100 100 NOTE: The actual flash is 16MB, but you must flash only the first 12MB of it. NOTE: The actual flash is 16MB, but you must flash only the first 12MB of it.
101 101 The ROM images provided by Libreboot are 12MB. The ROM images provided by Libreboot are 12MB.
File site/docs/hardware/hp8460p.md changed (mode: 100644) (index 487b9f0..414a78e)
... ... Build ROM image from source
69 69
70 70 The build target, when building from source, is thus: The build target, when building from source, is thus:
71 71
72 ./build roms hp8460pintel_8mb
72 ./mk -b coreboot hp8460pintel_8mb
73 73
74 74 Installation Installation
75 75 ============ ============
File site/docs/hardware/hp8470p.md changed (mode: 100644) (index b963e29..85afd7f)
... ... Build ROM image from source
72 72
73 73 The build target, when building from source, is thus: The build target, when building from source, is thus:
74 74
75 ./build roms hp8470pintel_16mb
75 ./mk -b coreboot hp8470pintel_16mb
76 76
77 77 Installation Installation
78 78 ============ ============
File site/docs/hardware/hp8560w.md changed (mode: 100644) (index 4dc03be..e5a261a)
... ... Build ROM image from source
94 94
95 95 The build target, when building from source, is thus: The build target, when building from source, is thus:
96 96
97 ./build roms hp8560w_8mb
97 ./mk -b coreboot hp8560w_8mb
98 98
99 99 Installation Installation
100 100 ============ ============
File site/docs/hardware/hp9470m.md changed (mode: 100644) (index e815ac4..f26209b)
... ... Installation of Libreboot
47 47
48 48 You must first compile the Libreboot ROM You must first compile the Libreboot ROM
49 49
50 ./build roms hp9470m_16mb
50 ./mk -b coreboot hp9470m_16mb
51 51
52 52 More information about building ROM images can be found in More information about building ROM images can be found in
53 53 the [build guide](../build). the [build guide](../build).
File site/docs/hardware/t1650.md changed (mode: 100644) (index 8d9fa30..e33e9f5)
... ... Build ROM image from source
70 70
71 71 The build target, when building from source, is thus: The build target, when building from source, is thus:
72 72
73 ./build roms t1650_12mb
73 ./mk -b coreboot t1650_12mb
74 74
75 75 Installation Installation
76 76 ============ ============
File site/docs/install/ivy_has_common.md changed (mode: 100644) (index 0bff56e..e1a3126)
... ... Injecting vendor files into ROM
80 80 You must determine the correct board name, for your board, based on the list You must determine the correct board name, for your board, based on the list
81 81 generated when running this command: generated when running this command:
82 82
83 ./build roms list
83 ./mk -b coreboot list
84 84
85 85 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. 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.
86 86
 
... ... You *must* ensure that the files were inserted.
110 110
111 111 Some examples of how to do that in lbmk: Some examples of how to do that in lbmk:
112 112
113 ./update trees -d coreboot TREENAME
113 ./mk -d coreboot TREENAME
114 114
115 Now you find `cbutitls/default`, which is a directory containing `cbfstool`
115 Now you find `elf/cbfstool`, which is a directory containing `cbfstool`
116 116 and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example
117 117 below): below):
118 118
119 ./cbutils/default/cbfstool libreboot.rom print
119 ./elf/cbfstool/TREENAME/cbfstool libreboot.rom print
120 120
121 121 You should check that the files were inserted in cbfs, if needed; for example, You should check that the files were inserted in cbfs, if needed; for example,
122 122 EC firmware or MRC firmware. EC firmware or MRC firmware.
123 123
124 124 Next: Next:
125 125
126 ./cbutils/default/ifdtool -x libreboot.rom
126 ./elf/ifdtool/TREENAME/ifdtool -x libreboot.rom
127 127
128 128 This creates several `.bin` files, one of which says `me` in it (Intel ME). This creates several `.bin` files, one of which says `me` in it (Intel ME).
129 129 Run hexdump on it: Run hexdump on it:
File site/docs/install/ivy_has_common.uk.md changed (mode: 100644) (index cb636c7..d5edc98)
... ... Inject vendor files into ROM
87 87 You must determine the correct board name, for your board, based on the list You must determine the correct board name, for your board, based on the list
88 88 generated when running this command: generated when running this command:
89 89
90 ./build roms list
90 ./mk -b coreboot list
91 91
92 92 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. 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.
93 93
File site/docs/install/spi.md changed (mode: 100644) (index c911b34..b3264d3)
... ... could build it yourself or you could also clone `lbmk.git` and [install build
95 95 dependencies](../build/#first-install-build-dependencies), then inside lbmk, dependencies](../build/#first-install-build-dependencies), then inside lbmk,
96 96 do: do:
97 97
98 ./build serprog rp2040 pico
99
100 or for the W version:
101
102 ./build serprog rp2040 pico_w
98 ./mk -b pico-serprog
103 99
104 100 This will automatically build the rpi-pico firmware, and the file will be This will automatically build the rpi-pico firmware, and the file will be
105 at `bin/serprog_rp2040/serprog_pico.uf2`. This binary will be provided
106 pre-compiled in the next Libreboot release, after the 20230625 release.
101 at `bin/serprog_rp2040/serprog_pico.uf2`
102 and `bin/serprog_rp2040/serprog_pico_w.uf2`.
107 103
108 104 Disconnect the Pico and proceed to wire it to your Disconnect the Pico and proceed to wire it to your
109 105 [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
 
... ... install flashprog. Do this after downloading the
482 478 [lbmk Git repository](https://codeberg.org/libreboot/lbmk): [lbmk Git repository](https://codeberg.org/libreboot/lbmk):
483 479
484 480 cd lbmk cd lbmk
485 sudo ./build dependencies ubuntu2004
481 sudo ./mk dependencies ubuntu2004
486 482
487 483 NOTE: debian, arch or void can be written instead of ubuntu2004. the debian NOTE: debian, arch or void can be written instead of ubuntu2004. the debian
488 484 script is also applicable to newer ubuntu versions script is also applicable to newer ubuntu versions
489 485
490 ./update trees -b flashprog
486 ./mk -b flashprog
491 487
492 488 If the `ubuntu2004` script complains about missing dependencies, just modify If the `ubuntu2004` script complains about missing dependencies, just modify
493 489 the dependencies config to remove those dependencies. The script is located the dependencies config to remove those dependencies. The script is located
File site/docs/install/spi.zh-cn.md changed (mode: 100644) (index 8bef4c8..44f1a92)
... ... could build it yourself or you could also clone `lbmk.git` and [install build
71 71 dependencies](../build/#first-install-build-dependencies), then inside lbmk, dependencies](../build/#first-install-build-dependencies), then inside lbmk,
72 72 do: do:
73 73
74 ./build serprog rp2040 pico
75
76 or for the W version:
77
78 ./build serprog rp2040 pico_w
74 ./mk -b pico-serprog
79 75
80 76 This will automatically build the rpi-pico firmware, and the file will be This will automatically build the rpi-pico firmware, and the file will be
81 at `bin/serprog_rp2040/serprog_pico.uf2`. This binary will be provided
82 pre-compiled in the next Libreboot release, after the 20230625 release.
77 at `bin/serprog_rp2040/serprog_pico.uf2`
78 and `bin/serprog_rp2040/serprog_pico_w.uf2`.
83 79
84 80 Disconnect the Pico and proceed to wire it to your Disconnect the Pico and proceed to wire it to your
85 81 [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
 
... ... Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
335 331 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行: 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行:
336 332
337 333 cd lbmk cd lbmk
338 sudo ./build dependencies ubuntu2004
334 sudo ./mk dependencies ubuntu2004
339 335
340 336 注意:你可以输入 debian、arch 或 void 来替换 ubuntu。debian 脚本也可以用于新版 ubuntu。 注意:你可以输入 debian、arch 或 void 来替换 ubuntu。debian 脚本也可以用于新版 ubuntu。
341 337
342 ./update trees -b flashprog
338 ./mk -b flashprog
343 339
344 340 如果 `ubuntu2004` 报告了依赖缺失,编辑一下这个脚本,把缺失的依赖移除就行了。脚本位于 `config/dependencies/ubuntu2004`,它是写给 Ubuntu 20.04 的,但在其他使用 `apt-get` 包管理器的 Linux 发行版应该也能用。 如果 `ubuntu2004` 报告了依赖缺失,编辑一下这个脚本,把缺失的依赖移除就行了。脚本位于 `config/dependencies/ubuntu2004`,它是写给 Ubuntu 20.04 的,但在其他使用 `apt-get` 包管理器的 Linux 发行版应该也能用。
345 341
File site/docs/linux/grub_cbfs.md changed (mode: 100644) (index 37148b0..c5085d9)
... ... Install the build dependencies. For Ubuntu 20.04 and similar, you can run
59 59 the following command in the libreboot build system, from the root directory the following command in the libreboot build system, from the root directory
60 60 of the libreboot Git repository. of the libreboot Git repository.
61 61
62 ./build dependencies ubuntu2004
62 ./mk dependencies ubuntu2004
63 63
64 64 Then, download coreboot: Then, download coreboot:
65 65
66 ./update trees -f coreboot
66 ./mk -f coreboot
67 67
68 68 Finally, compile the `cbutils` payload (and you will then have the utils): Finally, compile the `cbutils` payload (and you will then have the utils):
69 69
70 ./build grub
70 ./mk -b grub
71 71
72 72 Among other things, this will produce a `cbfstool` executable under any of the Among other things, this will produce a `cbfstool` executable under any of the
73 73 subdirectories in `src/coreboot/` under `util/cbfstool/cbfstool`. subdirectories in `src/coreboot/` under `util/cbfstool/cbfstool`.
 
... ... You will also want to build `flashprog` which libreboot recommends for reading
82 82 from and/or writing to the boot flash. In the libreboot build system, you can from and/or writing to the boot flash. In the libreboot build system, you can
83 83 build it by running this command: build it by running this command:
84 84
85 ./update trees -b flashprog
85 ./mk -b flashprog
86 86
87 An executable will be available at `src/flashprog/flashprog` after you have done
87 An executable will be available at `elf/flashprog/flashprog` after you have done
88 88 this. this.
89 89
90 90 Dump the boot flash Dump the boot flash
 
... ... your computer, you can use `flashprog` to acquire it.
96 96 Simply run the following, after using libreboot's build system to compile Simply run the following, after using libreboot's build system to compile
97 97 flashprog: flashprog:
98 98
99 sudo ./src/flashprog/flashprog -p internal -r dump.bin
99 sudo ./elf/flashprog/flashprog -p internal -r dump.bin
100 100
101 101 If flashprog complains about multiple flash chip definitions, do what it says to If flashprog complains about multiple flash chip definitions, do what it says to
102 102 rectify your command and run it again. rectify your command and run it again.
File site/docs/linux/grub_hardening.md changed (mode: 100644) (index cdae75b..ade05aa)
... ... image:
83 83
84 84 You can build `cbfstool` in the libreboot build system. Run this command: You can build `cbfstool` in the libreboot build system. Run this command:
85 85
86 ./update trees -d coreboot TREENAME
87
88 This assumes that you already downloaded coreboot:
89
90 ./update trees -f coreboot
86 ./mk -d coreboot TREENAME
91 87
92 88 This, in turn, assumes that you have installed the build dependencies for This, in turn, assumes that you have installed the build dependencies for
93 89 libreboot. On Ubuntu 20.04 and other apt-get distros, you can do this: libreboot. On Ubuntu 20.04 and other apt-get distros, you can do this:
94 90
95 ./build dependencies ubuntu2004
91 ./mk dependencies ubuntu2004
96 92
97 93 The `cbfstool` executables will be under each coreboot directory, under The `cbfstool` executables will be under each coreboot directory, under
98 94 each `coreboot/boardname/` directory for each board. Just pick one, presumably each `coreboot/boardname/` directory for each board. Just pick one, presumably
 
... ... GRUB using the libreboot build system. Run the following commands (assuming
159 155 you have the correct build dependencies installed) to build GRUB, from the you have the correct build dependencies installed) to build GRUB, from the
160 156 libreboot Git repository: libreboot Git repository:
161 157
162 ./update trees -f grub
163
164 ./build grub
158 ./mk -b grub default
165 159
166 The following executable will then be available under the `src/grub/` directory:
160 The following executable will then be available under `src/grub/default/`:
167 161
168 162 grub-mkpasswd-pbkdf2 grub-mkpasswd-pbkdf2
169 163
 
... ... NOTE: Before disabling the boot menu, make sure GRUB works. Access it using
249 243 the `bootorder` file and/or press ESC in the SeaBIOS menu. Then disable the the `bootorder` file and/or press ESC in the SeaBIOS menu. Then disable the
250 244 SeaBIOS menu. SeaBIOS menu.
251 245
252 Alternative: GRUB as primary
253 ----------------------------
254
255 The *SeaBIOS first* policy is now law, in Libreboot releases. The only
256 exception is the x86 QEMU target. You can do this if building from source:
257
258 ./build roms -p grub targetname
259
260 Where `targetname` is e.g. `x200_8mb` (use the correct one for your board).
261
262 Again: make sure GRUB works. Also: don't do this if you're using a non-Intel
263 graphics card because only the Intel graphics have native video initialisation
264 in Libreboot, and we rely on SeaBIOS to execute the VGA ROM for others.
265
266 (it is assumed that you know to add the VGA ROM in CBFS if needed, if using
267 a dGPU, or that you're using a graphics card on a desktop so SeaBIOS will use
268 that automatically)
269
270 246 GPG keys GPG keys
271 247 ======== ========
272 248
File site/docs/maintain/index.md changed (mode: 100644) (index 23e421e..1cc4265)
... ... bin/
126 126 This directory is created when running any of the following commands, with the This directory is created when running any of the following commands, with the
127 127 right arguments: right arguments:
128 128
129 ./build roms ARGUMENTS_HERE
130 ./build roms serprog stm32
131 ./build roms serprog rp2040
129 ./mk -b coreboot ARGUMENTS_HERE
130 ./mk -b stm32-vserprog
131 ./mk -b pico-serprog
132 132
133 133 Simply speaking, `bin/` shall contain finished ROM images or firmware, that Simply speaking, `bin/` shall contain finished ROM images or firmware, that
134 134 can then be installed (flashed) to the target device. can then be installed (flashed) to the target device.
135 135
136 136 The files under `bin/` are provided in regular Libreboot releases. The files under `bin/` are provided in regular Libreboot releases.
137 137
138 **These** are the ROM images that you should flash. Do *not* flash the ROM
139 images contained under `elf/`!
138 **These** are the ROM images that you should flash.
139
140 Older versions of lbmk build coreboot images separately under `elf/`, but
141 without payloads, using `elf/` as a build cache, then inserting payloads
142 into copies of these images in files under `bin/`. However, modern lbmk
143 now only puts coreboot images in `bin/`, with payloads included.
144
145 If you still have `elf/` coreboot images in your lbmk tree, please do not
146 use them (and you may aswell delete them).
147
148 cache/
149 ---------------
150
151 Certain files are cached here automatically, by lbmk. The user need not touch
152 these files.
153
154 cache/app
155 --------------
156
157 When vendor updates are extracted, they go here, which is then processed to
158 find individual files for use in coreboot images (e.g. KBC1126 EC firmware).
159
160 This directory is constantly over-written, so it's essentially another temporary
161 directory used by the build system.
162
163 cache/file/
164 --------------
165
166 Files that are downloaded are hashed, and the cached version of the file
167 is stored there, named as the SHA512 checksum. This is used for vendor file
168 downloads, and subfile downloads.
169
170 A *subfile* is like a Git submodule, but it's a *file* (just a humble file),
171 downloaded via curl/wget. The build system does not
172 run `git submodule update` commands when handling Git repositories anymore,
173 instead processing submodules manually; it supports both repositories *and*
174 files relative to the directory locations for those repositories, but subfiles
175 are not downloaded to the *cached git repository*, only the work directory used
176 for building in lbmk.
177
178 cache/hash
179 ---------------
180
181 When lbmk is handling any project, it sorts a list of files under `config/`
182 including `config/project` (or `config/project/TREE`) and `config/data/project`.
183
184 SHA512 checksums are calculated from these files, in the sorted order, and
185 written in that order, to a file. *That* file is then checksummed, and this
186 hash is stored in `cache/hash` for that project.
187
188 If the currently stored hash differs from what's calculated, it means that
189 the project has changed, and the source directories plus builds are deleted.
190 The project source is then re-prepared and re-build.
191
192 cache/repo
193 --------------
194
195 Git repositories are cached here. This avoids wasting bandwidth, when downloading
196 multiple repositories. **Git submodules are also cached here!**
140 197
141 198 ec/ ec/
142 199 --------------- ---------------
 
... ... elf/
148 205 --------------- ---------------
149 206
150 207 **DO NOT flash coreboot ROM images contained under `elf/`. Please use ROM images **DO NOT flash coreboot ROM images contained under `elf/`. Please use ROM images
151 under `bin/` instead!**
208 under `bin/` instead! - In modern lbmk, only the ones under `bin/` are ever
209 created anyway.**
152 210
153 211 Compiled binaries (compiled by lbmk) go here, but they are not the final Compiled binaries (compiled by lbmk) go here, but they are not the final
154 212 binaries; coreboot ROM images are compiled without payloads, then cached here binaries; coreboot ROM images are compiled without payloads, then cached here
155 under `elf/coreboot` as one example; ditto GRUB and SeaBIOS which go
156 under `elf/grub` and `elf/seabios` respectively - `elf/u-boot` is another
157 example.
213 under `elf/coreboot` as one example
158 214
159 Binaries under `elf/` are compiled first, which lbmk then uses to generate
160 the files under `bin/`; the latter files under `bin/` are intended for
161 installation by the user.
215 GRUB and SeaBIOS which go
216 under `elf/grub` and `elf/seabios` respectively - `elf/u-boot` is another
217 example. A given project can include a `build.list` file
218 at `config/data/PROJECT/build.list`, which would contain a list of file paths
219 relative to the *source directory*; these files would be copied, after a build
220 operation, to `elf/PROJECT` for single-tree projects,
221 or `elf/PROJECT/TREE` for multi-tree projects.
162 222
163 223 It is technically possible to re-use these files elsewhere. For example, you It is technically possible to re-use these files elsewhere. For example, you
164 224 may wish to only compile GRUB with lbmk, and then use the `grub.elf` file from may wish to only compile GRUB with lbmk, and then use the `grub.elf` file from
165 lbmk in your own custom coreboot ROM (that you didn't build with lbmk).
225 lbmk in your own custom coreboot ROM (that you didn't build with lbmk). However,
226 this use is not officially supported by the Libreboot project; these files are
227 simply used by the Libreboot build system.
228
229 Some utilities are also provided compiled here, when building. For
230 example: `elf/flashprog/flashprog`. This is because lbmk tries to provide
231 out-of-source builds whenever feasible.
166 232
167 233 This is only used by the build system, but these images are *not* provided in This is only used by the build system, but these images are *not* provided in
168 234 releases (only the images under `bin/` are provided). releases (only the images under `bin/` are provided).
 
... ... mrc/
176 242
177 243 Intel System Agent downloaded at build time for HP EliteBook 820 G2. Intel System Agent downloaded at build time for HP EliteBook 820 G2.
178 244
245 The *Haswell* MRC file is no longer downloaded here, because Haswell machines
246 now use native raminit *exclusively*; only Broadwell uses MRC, at present.
247
179 248 pciroms/ pciroms/
180 249 --------------- ---------------
181 250
 
... ... the user.
198 267
199 268 You can create release archives by doing: You can create release archives by doing:
200 269
201 ./update release
270 ./mk release
202 271
203 272 By default, this creates a release under `release/`, but you can change the By default, this creates a release under `release/`, but you can change the
204 273 directory, for example: directory, for example:
205 274
206 ./update release -d path
275 ./mk release -d path
207 276
208 277 You can also specify that only a *source archive* be created, like so: You can also specify that only a *source archive* be created, like so:
209 278
210 ./update release -m src
279 ./mk release -m src
211 280
212 281 Or with a custom directory: Or with a custom directory:
213 282
214 ./update release -d path -m src
283 ./mk release -d path -m src
215 284
216 285 The build system expects there to be a *git tag*, so make sure there is one. The build system expects there to be a *git tag*, so make sure there is one.
217 286 This is used to create the version number for a given release. This is used to create the version number for a given release.
 
... ... convenience of users, and this is copied to release archives. Flashrom is the
270 339 program that you will use to read, erase and write the flash, containing program that you will use to read, erase and write the flash, containing
271 340 coreboot firmware. coreboot firmware.
272 341
273 src/grub/
342 src/grub/TREE
274 343 --------------- ---------------
275 344
276 345 Please also visit: <https://www.gnu.org/software/grub/> Please also visit: <https://www.gnu.org/software/grub/>
 
... ... the `grub-mkstandalone` utility is executed from here to create the final
286 355 GRUB image under `elf/grub/`. GRUB image under `elf/grub/`.
287 356
288 357 NOTE: This is *only* provided for x86 machines, in Libreboot. For ARM, we ship NOTE: This is *only* provided for x86 machines, in Libreboot. For ARM, we ship
289 U-Boot instead.
358 U-Boot instead. Since Libreboot 20240612, the GRUB builds are *multi-tree*,
359 much like, say, coreboot or SeaBIOS.
360
361 As of August 2024, the following GRUB source trees can be downloaded:
362
363 * `src/grub/default`
364 * `src/grub/xhci`
365 * `src/grub/nvme`
366
367 Simplify specify the tree. For example:
368
369 ./mk -b grub xhci
370
371 The `xhci` tree contains patches for both NVMe SSD support, and xHCI. The `nvme`
372 tree contains NVMe SSD support but not xHCI support. The `default` tree contains
373 no NVMe or xHCI support. All trees otherwise have the same fixes on top of
374 upstream GRUB, e.g. fix for Dell Latitude keyboard controllers.
290 375
291 376 src/memtest86plus/ src/memtest86plus/
292 377 --------------- ---------------
 
... ... other example. Deletions occur when the source tree is created.
498 583 config/vendor/ config/vendor/
499 584 --------------- ---------------
500 585
501 ### config/vendor/sources
502
503 586 URLs and hashes for vendor files containing Intel ME images within them. Where URLs and hashes for vendor files containing Intel ME images within them. Where
504 587 feasible, backup URLs are also provided. SHA512 checksums are defined, so that feasible, backup URLs are also provided. SHA512 checksums are defined, so that
505 588 lbmk can verify the integrity of downloaded files. lbmk can verify the integrity of downloaded files.
 
... ... E6400.
517 600 config/coreboot config/coreboot
518 601 --------------- ---------------
519 602
520 ### config/coreboot/build.list
521
522 When a given coreboot tree is compiled, for a given target, this file defines
523 which files to copy from the coreboot directory, which are then copied to
524 a location under `elf/coreboot`.
525
526 The presence of this file affects behaviour in `./update release` commands;
527 specifically, PROJECT is then downloaded to `src/PROJECT/PROJECT`, and files
528 under `config/PROJECT/TARGET/target.cfg` define which tree to use, which then
529 looks under `config/PROJECT/TREE/target.cfg` to get the git revision; then
530 the src directory `src/PROJECT/TREE` is created, copied
531 from `src/PROJECT/PROJECT`.
532
533 For example, coreboot target `x200_8mb` refers to tree name `default` which
534 would create `src/coreboot/default`.
535
536 If the `build.list` file is *not* included, then the git revision
537 under `config/git` is used, and only `src/PROJECT` is created.
538
539 603 ### config/coreboot/BOARDNAME/ ### config/coreboot/BOARDNAME/
540 604
541 605 Each target name (e.g. `x200_8mb`) has its own directory under here. Targets Each target name (e.g. `x200_8mb`) has its own directory under here. Targets
 
... ... as:
567 631 * `rev="ad983eeec76ecdb2aff4fb47baeee95ade012225"` (example entry) * `rev="ad983eeec76ecdb2aff4fb47baeee95ade012225"` (example entry)
568 632 * `xarch="i386-elf"` (example entry) * `xarch="i386-elf"` (example entry)
569 633 * `payload_grub="y"` (example entry) * `payload_grub="y"` (example entry)
570 * `payload_grub_withseabios="y"` (example entry)
571 634 * `payload_seabios="y"` (example entry) * `payload_seabios="y"` (example entry)
572 635 * `payload_memtest="y"` (example entry) * `payload_memtest="y"` (example entry)
573 636 * `payload_uboot="y"` (example entry) * `payload_uboot="y"` (example entry)
574 * `payload_seabios_withgrub="y"` (example entry)
575 * `payload_seabios_grubonly="y"` (example entry)
576 637 * `grub_scan_disk="ata"` * `grub_scan_disk="ata"`
577 638 * `uboot_config=default` (specify which U-Boot tree to use) * `uboot_config=default` (specify which U-Boot tree to use)
578 639 * `release="n"` (example entry) * `release="n"` (example entry)
 
... ... on a ThinkPad X60 with the optical drive may cause GRUB to hang, so on that
630 691 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
631 692 slot is AHCI). slot is AHCI).
632 693
633 The `release` variable can be set to n, which makes the `./update release`
694 The `release` variable can be set to n, which makes the `./mk release`
634 695 call skip that target, when creating release images. For example, a given call skip that target, when creating release images. For example, a given
635 696 board may not be stable and you don't want images for it to be included in the board may not be stable and you don't want images for it to be included in the
636 697 release. release.
 
... ... VESA frame buffer (NOT to be confused with the coreboot frame buffer), or just
708 769 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,
709 770 GRUB (including coreboot GRUB, but also PC GRUB) can use VGA modes. GRUB (including coreboot GRUB, but also PC GRUB) can use VGA modes.
710 771
711 The name `libgfxinit` is simply what `./build roms` uses, but it may be
772 The name `libgfxinit` is simply what `./mk -b coreboot` uses, but it may be
712 773 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
713 774 platforms, coreboot implemented a 3rd party library called `libgfxinit`, which platforms, coreboot implemented a 3rd party library called `libgfxinit`, which
714 775 is written in Ada and handles video initialization. In this setup, coreboot is written in Ada and handles video initialization. In this setup, coreboot
 
... ... config/dependencies/
729 790 Files here are so named, and called like so: e.g. the `debian` file would be Files here are so named, and called like so: e.g. the `debian` file would be
730 791 referenced when running: referenced when running:
731 792
732 ./build dependencies debian
793 ./mk dependencies debian
733 794
734 795 These files define a list of packages, and the correct package manager command These files define a list of packages, and the correct package manager command
735 796 to use on a given distro. This can be used to install build dependencies, which to use on a given distro. This can be used to install build dependencies, which
 
... ... These are similar in meaning to their coreboot counterparts.
940 1001 The tree` entry is actually a link, where its value is a directory name The tree` entry is actually a link, where its value is a directory name
941 1002 under `config/u-boot`. For example, `tree="default"` would refer to under `config/u-boot`. For example, `tree="default"` would refer to
942 1003 `config/u-boot/default` and the corresponding U-Boot source tree created `config/u-boot/default` and the corresponding U-Boot source tree created
943 (when running `./update trees u-boot`, which makes use of `target.cfg`)
1004 (when running `./mk u-boot`, which makes use of `target.cfg`)
944 1005 would be `u-boot/default/`. In other words: a `target.cfg` file would be `u-boot/default/`. In other words: a `target.cfg` file
945 1006 in `config/u-boot/foo` might refer to `config/u-boot/bar` by in `config/u-boot/foo` might refer to `config/u-boot/bar` by
946 1007 specifying `tree="bar"`, and the created u-boot source tree would specifying `tree="bar"`, and the created u-boot source tree would
 
... ... You create a config, for `config/u-boot/TREENAME/configs`, by finding the
1054 1115 corresponding board name in the upstream U-Boot `configs` directory, and corresponding board name in the upstream U-Boot `configs` directory, and
1055 1116 running `make BOARDNAME_defconfig` and `make menuconfig` commands in the running `make BOARDNAME_defconfig` and `make menuconfig` commands in the
1056 1117 *U-Boot* build system. You should do this after *U-Boot* build system. You should do this after
1057 running `./update trees u-boot` in lbmk.
1118 running `./mk u-boot` in lbmk.
1058 1119
1059 1120 You might want to consider basing your config on the upstream `coreboot` boards You might want to consider basing your config on the upstream `coreboot` boards
1060 1121 when possible, but such a board is not available upstream for ARM yet. when possible, but such a board is not available upstream for ARM yet.
 
... ... Take any given file under `script/` and you can do:
1114 1175
1115 1176 For example: For example:
1116 1177
1117 ./build roms
1118 ./update trees
1178 ./mk -b coreboot
1179 ./mk
1119 1180
1120 1181 Special commands available (not provided by files under `script/`): Special commands available (not provided by files under `script/`):
1121 1182
1122 ./update release
1123 ./vendor download
1124 ./vendor inject
1183 ./mk release
1184 ./mk download
1185 ./mk inject
1125 1186
1126 1187 The `vendor` commands are handled by the `build` script, calling functions The `vendor` commands are handled by the `build` script, calling functions
1127 inside `include/vendor.sh`, and the `./update release` logic is handled
1188 inside `include/vendor.sh`, and the `./mk release` logic is handled
1128 1189 directly by the `build` script. directly by the `build` script.
1129 1190
1130 1191 More information about `./vendor` commands can be found More information about `./vendor` commands can be found
1131 1192 here: [inserting vendor files](../install/ivy_has_internal.md) here: [inserting vendor files](../install/ivy_has_internal.md)
1132 1193
1133 Information about `./update release` is written elsewhere on this page.
1194 Information about `./mk release` is written elsewhere on this page.
1134 1195
1135 1196 You can also know what build system revision you have by running: You can also know what build system revision you have by running:
1136 1197
1137 ./build version
1198 ./mk version
1138 1199
1139 1200 This script is the beating heart of Libreboot. Break it and you break Libreboot. This script is the beating heart of Libreboot. Break it and you break Libreboot.
1140 1201
 
... ... include/git.sh
1150 1211
1151 1212 These functions in here previously existed as independent scripts, but they These functions in here previously existed as independent scripts, but they
1152 1213 were unified here, and they are used when you pass the `-f` argument were unified here, and they are used when you pass the `-f` argument
1153 to `script/update/trees` (e.g. `./update trees -f coreboot`).
1214 to `script/update/trees` (e.g. `./mk -f coreboot`).
1154 1215
1155 1216 These functions deal with git cloning, submodule updates, revision resets and These functions deal with git cloning, submodule updates, revision resets and
1156 1217 the application of patch files via `git am`. *Every* git repository downloaded the application of patch files via `git am`. *Every* git repository downloaded
 
... ... script/roms
1199 1260
1200 1261 This builds coreboot ROM images. This builds coreboot ROM images.
1201 1262
1202 Command: `./build roms targetname`
1263 Command: `./mk -b coreboot targetname`
1203 1264
1204 1265 The `targetname` argument must be specified, chosen from this output: The `targetname` argument must be specified, chosen from this output:
1205 1266
1206 ./build roms list
1267 ./mk -b coreboot list
1207 1268
1208 1269 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
1209 1270 example: example:
1210 1271
1211 ./build roms x60 x200_8mb
1272 ./mk -b coreboot x60 x200_8mb
1212 1273
1213 1274 To build *all* targets, specify: To build *all* targets, specify:
1214 1275
1215 ./build roms all
1276 ./mk -b coreboot
1216 1277
1217 1278 Since November 2022, this script can build images for x86 *and* ARM targets. Since November 2022, this script can build images for x86 *and* ARM targets.
1218 1279 The *ARM* targets are ChromeOS devices (chromebooks and such); Libreboot uses The *ARM* targets are ChromeOS devices (chromebooks and such); Libreboot uses
 
... ... the directory `src/PROJECT/TREE` will be created, reset to the specific
1321 1382 revision - for multi-tree projects, all defined targets are scanned for their revision - for multi-tree projects, all defined targets are scanned for their
1322 1383 corresponding tree, and the trees are prepared as defined above. corresponding tree, and the trees are prepared as defined above.
1323 1384
1324 Basic command: `./update trees FLAG projectname`
1385 Basic command: `./mk FLAG projectname`
1325 1386
1326 1387 Special operation: for building coreboot utilities `cbfstool` and `ifdtool` to Special operation: for building coreboot utilities `cbfstool` and `ifdtool` to
1327 1388 go under `cbutils/`, do this: go under `cbutils/`, do this:
1328 1389
1329 ./update trees -d coreboot TREENAME
1390 ./mk -d coreboot TREENAME
1330 1391
1331 1392 Or define specific coreboot tree such as: Or define specific coreboot tree such as:
1332 1393
1333 ./update trees -d coreboot default
1334 ./update trees -d coreboot cros
1394 ./mk -d coreboot default
1395 ./mk -d coreboot cros
1335 1396
1336 1397 FLAG values are (only *one* to be used at a time): FLAG values are (only *one* to be used at a time):
1337 1398
 
... ... As for *projectname", this can either be `coreboot`, `u-boot` or `seabios`.
1358 1419
1359 1420 Example commands: Example commands:
1360 1421
1361 ./update trees -b coreboot
1362 ./update trees -b coreboot x200_8mb
1363 ./update trees -b coreboot x230_12mb x220_8mb t1650_12mb
1364 ./update trees -x coreboot default
1365 ./update trees -u seabios
1366 ./update trees -m u-boot gru_bob
1367 ./update trees -f coreboot
1368 ./update trees -d coreboot default
1369 ./update trees -d coreboot
1422 ./mk -b coreboot
1423 ./mk -b coreboot x200_8mb
1424 ./mk -b coreboot x230_12mb x220_8mb t1650_12mb
1425 ./mk -x coreboot default
1426 ./mk -u seabios
1427 ./mk -m u-boot gru_bob
1428 ./mk -f coreboot
1429 ./mk -d coreboot default
1430 ./mk -d coreboot
1370 1431
1371 1432 NOTE: the `-x` and `-c` options will cause an exit with zero status, when NOTE: the `-x` and `-c` options will cause an exit with zero status, when
1372 1433 the target's corresponding source tree is unavailable; a non-zero status is the target's corresponding source tree is unavailable; a non-zero status is
 
... ... if unavailable and *that* too will return with non-zero status under fault
1376 1437 conditions. conditions.
1377 1438
1378 1439 NOTE: "target" can indeed be the tree name, under some circumstances. For NOTE: "target" can indeed be the tree name, under some circumstances. For
1379 example, `./update trees -m seabios default`
1440 example, `./mk -m seabios default`
1380 1441
1381 1442 After `projectname`, a target can be specified, but if no target is specified, After `projectname`, a target can be specified, but if no target is specified,
1382 1443 then *all* targets will be operated on. For then *all* targets will be operated on. For
1383 example, `./update trees -b coreboot` will attempt to build *all*
1444 example, `./mk -b coreboot` will attempt to build *all*
1384 1445 coreboot ROM images. coreboot ROM images.
1385 1446
1386 1447 NOTE: the `coreboot` projectname here shall cause the ROM images to go NOTE: the `coreboot` projectname here shall cause the ROM images to go
File site/news/10.md changed (mode: 100644) (index 9dfbf55..c14d6dd)
... ... historically been at odds with the FSF both socially, technically and
10 10 politically. The restored version is essentially identical, but has been politically. The restored version is essentially identical, but has been
11 11 edited without altering any of the substance, and further information going edited without altering any of the substance, and further information going
12 12 up to the month of August 2024 has been added at the end, which was not up to the month of August 2024 has been added at the end, which was not
13 available earlier on because... Libreboot not not yet invented time travel.**
13 available earlier on because... Libreboot has not yet invented time travel.**
14 14
15 15 Anyway, article time: Anyway, article time:
16 16
 
... ... They did rename, to GNU Boot, but only after I forced them to do so. I forced
1349 1349 them to do so, by exposing the moral bankrupcy on their part, in their initial them to do so, by exposing the moral bankrupcy on their part, in their initial
1350 1350 effort to steal the Libreboot name. effort to steal the Libreboot name.
1351 1351
1352 The points raised in the GNU Boot article are *still valid* on today, 12
1353 December 2023. GNU Boot 0.1 RC3 is imminent for release, on this day, and it
1354 is still based largely on Libreboot 20220710, with only superficial changes on
1352 On this day, GNU Boot 0.1 RC3 was imminent for release, on this day, and it
1353 was still based largely on Libreboot 20220710, with only superficial changes on
1355 1354 top of it. it still has all the old, obsolete revisions for all projects, top of it. it still has all the old, obsolete revisions for all projects,
1356 1355 including coreboot. It still has all of the same bugs, that Libreboot has since including coreboot. It still has all of the same bugs, that Libreboot has since
1357 fixed, especially during 2023.
1356 fixed, especially during 2023. Libreboot is *vastly* superior, in every way.
1358 1357
1359 1358 Unlike with their first attempt, GNU Boot is fully hosted on the GNU Savannah Unlike with their first attempt, GNU Boot is fully hosted on the GNU Savannah
1360 1359 infrastructure, as any proper GNU project should be. I *respect* the GNU Boot infrastructure, as any proper GNU project should be. I *respect* the GNU Boot
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/libreboot/lbwww

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/libreboot/lbwww

Clone this repository using git:
git clone git://git.rocketgit.com/user/libreboot/lbwww

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main