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 |
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 |