Subject | Hash | Author | Date (UTC) |
---|---|---|---|
general audit / cleanup | 9a2da14a2e5859da8781e88dda72b556a5e92880 | Leah Rowe | 2025-01-19 18:02:33 |
show canon links on pages | 1ba45bf5e5e23bf766b52c4a585761be2c388faa | Leah Rowe | 2025-01-19 01:21:00 |
robots sitemap file | 759616ba96ee89c1a1be3c9290eaf57106b3c573 | Leah Rowe | 2025-01-19 00:54:06 |
template stuff | b356cc30409b3bc4f6c76fe3200c0d694d31b176 | Leah Rowe | 2025-01-19 00:20:31 |
homepage: make "binary releases" a download link | c5ad70955ddba71047bd0ce4d6b4d39d221ead4b | Leah Rowe | 2025-01-18 08:10:01 |
english homepage: shorten the payloads section | 7f16d5cc66df5076bcf6313c57eeda2a30ebc2e3 | Leah Rowe | 2025-01-18 07:58:19 |
mention payloads on the homepage | 97b6ffc5a0787807733cea95e868f0fc1054ccbe | Leah Rowe | 2025-01-18 07:00:01 |
snip3 | e4b30750d15ab0e33c465b31d5e6175cf4b82b76 | Leah Rowe | 2025-01-18 04:55:26 |
grammar | 77198f7f5dc5a972ef5181751db26d5c69773db7 | Leah Rowe | 2025-01-18 02:35:37 |
fix language | 6f9ec4cc4d7eb4017af4768842ac6861b1e81aa5 | Leah Rowe | 2025-01-18 02:33:48 |
snip2 | 4c12433a6ab185d4092fab7400f09d3ef203b355 | Leah Rowe | 2025-01-18 02:12:20 |
snip | 7c63e81b3212e22324bb300e30cba3f109a8ddcf | Leah Rowe | 2025-01-18 02:07:42 |
grammar | 927a06cdc65281ceff6efdca058cf1cd4725e096 | Leah Rowe | 2025-01-17 13:24:59 |
snip | 62b5b1950e8d862924b6c92fc2d8c1ae91c75f1c | Leah Rowe | 2025-01-17 10:41:44 |
further calamity | 5662b578d8c97c024161bd9dd3d3f5c1fedb66f3 | Leah Rowe | 2025-01-17 10:15:39 |
clarification | 0d6d90bf1eabd0d75c8b902fca8123af4f8c6617 | Leah Rowe | 2025-01-17 10:13:29 |
Libreboot 2025 release schedule | 55722b56431b61b204efe00127cb9db089965342 | Leah Rowe | 2025-01-17 10:03:06 |
t480 notes: mention rollback protection | 6cfd22e1f6e2104b99850546bf9f7743cc82f285 | Leah Rowe | 2025-01-17 01:42:41 |
other.md: merge chrultrabook with mrchromebox | ee096776a97410398581e125397ee9b5a3bbd03c | Leah Rowe | 2025-01-14 17:59:28 |
snip | e64e6a065d55c680b21948e833234f019c32b2c6 | Leah Rowe | 2025-01-14 13:30:29 |
File site/contact.de.md changed (mode: 100644) (index e6af723..8290a4a) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Buy Libreboot pre-installed | Buy Libreboot pre-installed |
7 | ========== | ||
7 | -------------------- | ||
8 | 8 | ||
9 | 9 | If you want professional installation, Minifree Ltd sells [Libreboot | If you want professional installation, Minifree Ltd sells [Libreboot |
10 | 10 | pre-installed](https://minifree.org/) on select hardware, and it also provides | pre-installed](https://minifree.org/) on select hardware, and it also provides |
... | ... | If you're installing Libreboot yourself, support for that is also available. | |
18 | 18 | Contact information (IRC, mailing list etc) is below: | Contact information (IRC, mailing list etc) is below: |
19 | 19 | ||
20 | 20 | User support | User support |
21 | ============ | ||
21 | ------------ | ||
22 | 22 | ||
23 | 23 | IRC oder Reddit werden bevorzugt, sofern Du eine Support Anfrage hast (IRC empfohlen). | IRC oder Reddit werden bevorzugt, sofern Du eine Support Anfrage hast (IRC empfohlen). |
24 | 24 | Für Informationen bzgl. IRC and Reddit siehe unten. | Für Informationen bzgl. IRC and Reddit siehe unten. |
25 | 25 | ||
26 | 26 | Mailing list | Mailing list |
27 | ============ | ||
27 | ------------ | ||
28 | 28 | ||
29 | 29 | Libreboot has this mailing list: | Libreboot has this mailing list: |
30 | 30 | <https://lists.sr.ht/~libreboot/libreboot> | <https://lists.sr.ht/~libreboot/libreboot> |
... | ... | Libreboot has this mailing list: | |
32 | 32 | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
33 | 33 | ||
34 | 34 | Entwicklungs Diskussion | Entwicklungs Diskussion |
35 | ====================== | ||
35 | --------------------- | ||
36 | 36 | ||
37 | 37 | Siehe unter | Siehe unter |
38 | 38 | [der Git Seite](git.md) für Informationen wie Du dich an der Entwicklung beteiligen kannst. | [der Git Seite](git.md) für Informationen wie Du dich an der Entwicklung beteiligen kannst. |
... | ... | Siehe unter | |
40 | 40 | Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests). | Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests). |
41 | 41 | ||
42 | 42 | IRC Chatraum | IRC Chatraum |
43 | ============ | ||
43 | ------------- | ||
44 | 44 | ||
45 | 45 | IRC ist hauptsächlich der Weg um Kontakt Libreboot Projekt aufzunehmen. `#libreboot` auf Libera | IRC ist hauptsächlich der Weg um Kontakt Libreboot Projekt aufzunehmen. `#libreboot` auf Libera |
46 | 46 | IRC. | IRC. |
... | ... | Website erläutern wie dies funktioniert: | |
71 | 71 | Grundsätzlich solltest Du die Dokumentation der von Dir verwendeten IRC Software konsultieren. | Grundsätzlich solltest Du die Dokumentation der von Dir verwendeten IRC Software konsultieren. |
72 | 72 | ||
73 | 73 | Soziale Medien | Soziale Medien |
74 | ============ | ||
74 | ----------------- | ||
75 | 75 | ||
76 | 76 | Libreboot existiert offiziell an vielen Orten. | Libreboot existiert offiziell an vielen Orten. |
77 | 77 | ||
78 | Mastodon | ||
79 | -------- | ||
78 | ### Mastodon | ||
80 | 79 | ||
81 | 80 | Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon: | Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon: |
82 | 81 | ||
... | ... | Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon: | |
85 | 84 | Leah kann zudem unter dieser eMail kontaktiert werden: | Leah kann zudem unter dieser eMail kontaktiert werden: |
86 | 85 | [leah@libreboot.org](mailto:leah@libreboot.org) | [leah@libreboot.org](mailto:leah@libreboot.org) |
87 | 86 | ||
88 | |||
89 | ------ | ||
87 | |||
90 | 88 | ||
91 | 89 | Hauptsächlich verwendet als Support Kanal und für Veröffentlichung von Neuigkeiten: | Hauptsächlich verwendet als Support Kanal und für Veröffentlichung von Neuigkeiten: |
92 | 90 | <https://www.reddit.com/r/libreboot/> | <https://www.reddit.com/r/libreboot/> |
File site/contact.fr.md changed (mode: 100644) (index e15a042..c524dd3) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Où acheter du matériel avec Libreboot pré-installé | Où acheter du matériel avec Libreboot pré-installé |
7 | ========== | ||
7 | --------------------------------------------- | ||
8 | 8 | ||
9 | 9 | Si vous souhaitez une installation professionnelle, Minifree Ltd vend des ordinateurs avec [Libreboot pré-installé](https://minifree.org/). L'entreprise propose également [un service d'installation de Libreboot](https://minifree.org/product/installation-service/) si vous voulez l'installer sur votre propre machine. | Si vous souhaitez une installation professionnelle, Minifree Ltd vend des ordinateurs avec [Libreboot pré-installé](https://minifree.org/). L'entreprise propose également [un service d'installation de Libreboot](https://minifree.org/product/installation-service/) si vous voulez l'installer sur votre propre machine. |
10 | 10 | ||
... | ... | Si vous installez Libreboot vous-même, un support est disponible via différent | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | Suport utilisateur | Suport utilisateur |
17 | ============ | ||
17 | ------------------ | ||
18 | 18 | ||
19 | 19 | IRC et Reddit sont recommandés pour demander de l'aide (IRC est à privilégier) : | IRC et Reddit sont recommandés pour demander de l'aide (IRC est à privilégier) : |
20 | 20 | ||
21 | 21 | ||
22 | 22 | ||
23 | ============ | ||
23 | ---- | ||
24 | 24 | ||
25 | 25 | Libreboot dispose d'une liste de diffusion : <https://lists.sr.ht/~libreboot/libreboot> | Libreboot dispose d'une liste de diffusion : <https://lists.sr.ht/~libreboot/libreboot> |
26 | 26 | ||
27 | 27 | L'adresse mail est [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | L'adresse mail est [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
28 | 28 | ||
29 | 29 | Discussion sur le developpement | Discussion sur le developpement |
30 | ====================== | ||
30 | ------------------------------- | ||
31 | 31 | ||
32 | 32 | Pour participer au développement, consultez la pag [GIT](git.md) du projet. Vous y trouverez des instructions détaillées sur l'envoi de patchs via pull request. | Pour participer au développement, consultez la pag [GIT](git.md) du projet. Vous y trouverez des instructions détaillées sur l'envoi de patchs via pull request. |
33 | 33 | ||
34 | 34 | IRC chatroom | IRC chatroom |
35 | ============ | ||
35 | ------------ | ||
36 | |||
36 | 37 | Le chat IRC est le principal moyen de contact pour le projet Libreboot via `#libreboot` sur Libera IRC. | Le chat IRC est le principal moyen de contact pour le projet Libreboot via `#libreboot` sur Libera IRC. |
37 | 38 | ||
38 | 39 | Webchat: | Webchat: |
... | ... | De manière générale, reportez-vous à la documentation de votre logiciel IRC. | |
59 | 60 | ||
60 | 61 | ||
61 | 62 | Réseaux sociaux | Réseaux sociaux |
62 | ============ | ||
63 | --------------- | ||
63 | 64 | ||
64 | 65 | Libreboot existe officiellement sur différents réseaux sociaux. | Libreboot existe officiellement sur différents réseaux sociaux. |
65 | 66 | ||
66 | Mastodon | ||
67 | -------- | ||
67 | ### Mastodon | ||
68 | 68 | ||
69 | 69 | Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon: | Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon: |
70 | 70 | ||
... | ... | Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon: | |
73 | 73 | Leah peut également être contacté par mail : | Leah peut également être contacté par mail : |
74 | 74 | [leah@libreboot.org](mailto:leah@libreboot.org) | [leah@libreboot.org](mailto:leah@libreboot.org) |
75 | 75 | ||
76 | |||
77 | ------ | ||
76 | |||
78 | 77 | ||
79 | 78 | Généralement utilisé pour le support mais aussi pour l'annonces des dernières nouveautés : | Généralement utilisé pour le support mais aussi pour l'annonces des dernières nouveautés : |
80 | 79 | <https://www.reddit.com/r/libreboot/> | <https://www.reddit.com/r/libreboot/> |
File site/contact.it.md changed (mode: 100644) (index e63e62d..09b84c7) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Buy Libreboot pre-installed | Buy Libreboot pre-installed |
7 | ========== | ||
7 | --------------------------- | ||
8 | 8 | ||
9 | 9 | If you want professional installation, Minifree Ltd sells [Libreboot | If you want professional installation, Minifree Ltd sells [Libreboot |
10 | 10 | pre-installed](https://minifree.org/) on select hardware, and it also provides | pre-installed](https://minifree.org/) on select hardware, and it also provides |
... | ... | If you're installing Libreboot yourself, support for that is also available. | |
18 | 18 | Contact information (IRC, mailing list etc) is below: | Contact information (IRC, mailing list etc) is below: |
19 | 19 | ||
20 | 20 | Supporto utenti | Supporto utenti |
21 | =============== | ||
21 | --------------- | ||
22 | 22 | ||
23 | 23 | IRC o Reddit sono consigliati, sebbene preferiamo che usi il canale IRC | IRC o Reddit sono consigliati, sebbene preferiamo che usi il canale IRC |
24 | 24 | per avere o per offrire supporto tecnico. Continua a leggere per avere | per avere o per offrire supporto tecnico. Continua a leggere per avere |
25 | 25 | ulteriori informazioni. | ulteriori informazioni. |
26 | 26 | ||
27 | 27 | Mailing list | Mailing list |
28 | ============ | ||
28 | ------------ | ||
29 | 29 | ||
30 | 30 | Libreboot has this mailing list: | Libreboot has this mailing list: |
31 | 31 | <https://lists.sr.ht/~libreboot/libreboot> | <https://lists.sr.ht/~libreboot/libreboot> |
... | ... | Libreboot has this mailing list: | |
33 | 33 | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
34 | 34 | ||
35 | 35 | Discussione sullo sviluppo | Discussione sullo sviluppo |
36 | ========================== | ||
36 | -------------------------- | ||
37 | 37 | ||
38 | 38 | Per ora dai un occhiata sulla | Per ora dai un occhiata sulla |
39 | 39 | [pagina Git](git.md) per avere maggiori informazioni su come puoi | [pagina Git](git.md) per avere maggiori informazioni su come puoi |
... | ... | Su quella stessa pagina puoi trovare informazioni su come inviare | |
43 | 43 | correzioni (patches) tramite pull requests. | correzioni (patches) tramite pull requests. |
44 | 44 | ||
45 | 45 | Canale IRC | Canale IRC |
46 | ========== | ||
46 | ---------- | ||
47 | 47 | ||
48 | 48 | IRC e' il modo principale per contattare chi collabora con il progetto libreboot. | IRC e' il modo principale per contattare chi collabora con il progetto libreboot. |
49 | 49 | Il canale ufficiale e' `#libreboot` su Libera IRC. | Il canale ufficiale e' `#libreboot` su Libera IRC. |
... | ... | di Libera spiegano come: | |
73 | 73 | Comunque dovresti sempre controllare la documentazione del tuo client IRC preferito. | Comunque dovresti sempre controllare la documentazione del tuo client IRC preferito. |
74 | 74 | ||
75 | 75 | Reti sociali online | Reti sociali online |
76 | =================== | ||
76 | ------------------- | ||
77 | 77 | ||
78 | 78 | Libreboot esiste ufficialmente in molte piattaforme. | Libreboot esiste ufficialmente in molte piattaforme. |
79 | 79 | ||
80 | Mastodon | ||
81 | -------- | ||
80 | ### Mastodon | ||
82 | 81 | ||
83 | 82 | Il fondatore e sviluppatore principale, Leah Rowe, e' su Mastodon: | Il fondatore e sviluppatore principale, Leah Rowe, e' su Mastodon: |
84 | 83 | ||
85 | 84 | * <https://mas.to/@libreleah> | * <https://mas.to/@libreleah> |
86 | 85 | ||
87 | Posta elettronica | ||
88 | ----------------- | ||
86 | ### Posta elettronica | ||
89 | 87 | ||
90 | 88 | Leah puo' essere contattata anche via email a questo indirizzo: | Leah puo' essere contattata anche via email a questo indirizzo: |
91 | 89 | [leah@libreboot.org](mailto:leah@libreboot.org) | [leah@libreboot.org](mailto:leah@libreboot.org) |
92 | 90 | ||
93 | |||
94 | ------ | ||
91 | |||
95 | 92 | ||
96 | 93 | Usato principalmente come canale di supporto e per annunciare notizie: | Usato principalmente come canale di supporto e per annunciare notizie: |
97 | 94 | <https://www.reddit.com/r/libreboot/> | <https://www.reddit.com/r/libreboot/> |
98 |
File site/contact.md changed (mode: 100644) (index 6b418a9..69122dd) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Buy Libreboot pre-installed | Buy Libreboot pre-installed |
7 | ========== | ||
7 | -------------------------- | ||
8 | 8 | ||
9 | 9 | If you want professional installation, Minifree Ltd sells [Libreboot | If you want professional installation, Minifree Ltd sells [Libreboot |
10 | 10 | pre-installed](https://minifree.org/) on select hardware, and it also provides | pre-installed](https://minifree.org/) on select hardware, and it also provides |
... | ... | If you're installing Libreboot yourself, support for that is also available. | |
18 | 18 | Contact information (IRC, mailing list etc) is below: | Contact information (IRC, mailing list etc) is below: |
19 | 19 | ||
20 | 20 | User support | User support |
21 | ============ | ||
21 | ------------- | ||
22 | 22 | ||
23 | 23 | IRC or Reddit are recommended, if you wish to ask for support (IRC recommended). | IRC or Reddit are recommended, if you wish to ask for support (IRC recommended). |
24 | 24 | See below for information about IRC and Reddit. | See below for information about IRC and Reddit. |
25 | 25 | ||
26 | 26 | Mailing list | Mailing list |
27 | ============ | ||
27 | ------------ | ||
28 | 28 | ||
29 | 29 | Libreboot has this mailing list: | Libreboot has this mailing list: |
30 | 30 | <https://lists.sr.ht/~libreboot/libreboot> | <https://lists.sr.ht/~libreboot/libreboot> |
... | ... | Libreboot has this mailing list: | |
32 | 32 | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
33 | 33 | ||
34 | 34 | Development discussion | Development discussion |
35 | ====================== | ||
35 | -------------------- | ||
36 | 36 | ||
37 | 37 | See notes | See notes |
38 | 38 | on [the Git page](git.md) for information about how to assist with development. | on [the Git page](git.md) for information about how to assist with development. |
... | ... | on [the Git page](git.md) for information about how to assist with development. | |
40 | 40 | Instructions are also on that page for sending patches (via pull requests). | Instructions are also on that page for sending patches (via pull requests). |
41 | 41 | ||
42 | 42 | IRC chatroom | IRC chatroom |
43 | ============ | ||
43 | ------------- | ||
44 | 44 | ||
45 | 45 | IRC is the main way to contact the libreboot project. `#libreboot` on Libera | IRC is the main way to contact the libreboot project. `#libreboot` on Libera |
46 | 46 | IRC. | IRC. |
... | ... | website tells you how: | |
71 | 71 | In general, you should check the documentation provided by your IRC software. | In general, you should check the documentation provided by your IRC software. |
72 | 72 | ||
73 | 73 | Social media | Social media |
74 | ============ | ||
74 | ------------- | ||
75 | 75 | ||
76 | 76 | libreboot exists officially on many places. | libreboot exists officially on many places. |
77 | 77 | ||
78 | Mastodon | ||
79 | -------- | ||
78 | ### Mastodon | ||
80 | 79 | ||
81 | 80 | The founder and lead developer, Leah Rowe, is on Mastodon: | The founder and lead developer, Leah Rowe, is on Mastodon: |
82 | 81 | ||
... | ... | The founder and lead developer, Leah Rowe, is on Mastodon: | |
85 | 84 | Leah can also be contacted by this email address: | Leah can also be contacted by this email address: |
86 | 85 | [leah@libreboot.org](mailto:leah@libreboot.org) | [leah@libreboot.org](mailto:leah@libreboot.org) |
87 | 86 | ||
88 | |||
89 | ------ | ||
87 | |||
90 | 88 | ||
91 | 89 | Mostly used as a support channel, and also for news announcements: | Mostly used as a support channel, and also for news announcements: |
92 | 90 | <https://www.reddit.com/r/libreboot/> | <https://www.reddit.com/r/libreboot/> |
File site/contact.ru.md changed (mode: 100644) (index 542cc80..ee0d113) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Купите Libreboot предустановленным | Купите Libreboot предустановленным |
7 | ================================== | ||
7 | ---------------------------------- | ||
8 | 8 | ||
9 | 9 | Если вы хотите, чтобы профессионал установил Libreboot для вас, то Minifree Ltd продает [Libreboot предустановленным](https://minifree.org/) на определенном оборудование, и также предоставляет сервис по [установке Libreboot](https://minifree.org/product/installation-service/) на ваши машины. | Если вы хотите, чтобы профессионал установил Libreboot для вас, то Minifree Ltd продает [Libreboot предустановленным](https://minifree.org/) на определенном оборудование, и также предоставляет сервис по [установке Libreboot](https://minifree.org/product/installation-service/) на ваши машины. |
10 | 10 | ||
... | ... | x-toc-enable: true | |
13 | 13 | Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку: | Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку: |
14 | 14 | ||
15 | 15 | Поддержка пользователей | Поддержка пользователей |
16 | ======================= | ||
16 | ----------------------- | ||
17 | 17 | ||
18 | 18 | IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже. | IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже. |
19 | 19 | ||
20 | 20 | Почтовая рассылка | Почтовая рассылка |
21 | ================= | ||
21 | ----------------- | ||
22 | 22 | ||
23 | 23 | У Libreboot есть своя почтовая рассылка: <https://lists.sr.ht/~libreboot/libreboot> | У Libreboot есть своя почтовая рассылка: <https://lists.sr.ht/~libreboot/libreboot> |
24 | 24 | ||
25 | 25 | Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
26 | 26 | ||
27 | 27 | Обсуждение разработки | Обсуждение разработки |
28 | ===================== | ||
28 | --------------------- | ||
29 | 29 | ||
30 | 30 | Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot. | Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot. |
31 | 31 | ||
32 | 32 | На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request). | На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request). |
33 | 33 | ||
34 | 34 | Чат в IRC | Чат в IRC |
35 | ========== | ||
35 | --------- | ||
36 | 36 | ||
37 | 37 | IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC. | IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC. |
38 | 38 | ||
... | ... | Libera - самая большая сеть IRC, используемая для | |
59 | 59 | В общем, вы должны проверить документацию вашего клиента для IRC. | В общем, вы должны проверить документацию вашего клиента для IRC. |
60 | 60 | ||
61 | 61 | Социальные сети | Социальные сети |
62 | =============== | ||
62 | --------------- | ||
63 | 63 | ||
64 | Mastodon | ||
65 | -------- | ||
64 | ### Mastodon | ||
66 | 65 | ||
67 | 66 | Основатель и велущий разработчик, Лия Роу, есть на Mastodon: | Основатель и велущий разработчик, Лия Роу, есть на Mastodon: |
68 | 67 | ||
... | ... | Mastodon | |
71 | 70 | Связаться с Лией также можно и по этому адресу электронной почты: | Связаться с Лией также можно и по этому адресу электронной почты: |
72 | 71 | [leah@libreboot.org](mailto:leah@libreboot.org) | [leah@libreboot.org](mailto:leah@libreboot.org) |
73 | 72 | ||
74 | |||
75 | ------ | ||
73 | |||
76 | 74 | ||
77 | 75 | Чаще всего используется для поддержки пользователей, а также для новостей и анонсов: | Чаще всего используется для поддержки пользователей, а также для новостей и анонсов: |
78 | <https://www.reddit.com/r/libreboot/> | ||
76 | <https://www.reddit.com/r/libreboot/> |
File site/contact.uk.md changed (mode: 100644) (index 79d8a28..759e6a4) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Buy Libreboot pre-installed | Buy Libreboot pre-installed |
7 | ========== | ||
7 | --------------------------- | ||
8 | 8 | ||
9 | 9 | If you want professional installation, Minifree Ltd sells [Libreboot | If you want professional installation, Minifree Ltd sells [Libreboot |
10 | 10 | pre-installed](https://minifree.org/) on select hardware, and it also provides | pre-installed](https://minifree.org/) on select hardware, and it also provides |
... | ... | If you're installing Libreboot yourself, support for that is also available. | |
18 | 18 | Contact information (IRC, mailing list etc) is below: | Contact information (IRC, mailing list etc) is below: |
19 | 19 | ||
20 | 20 | Підтримка користувачів | Підтримка користувачів |
21 | ============ | ||
21 | ---------------------- | ||
22 | 22 | ||
23 | 23 | IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC). | IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC). |
24 | 24 | Дивіться інформацію нижче щодо IRC та Reddit. | Дивіться інформацію нижче щодо IRC та Reddit. |
25 | 25 | ||
26 | 26 | Mailing list | Mailing list |
27 | ============ | ||
27 | ------------ | ||
28 | 28 | ||
29 | 29 | Libreboot has this mailing list: | Libreboot has this mailing list: |
30 | 30 | <https://lists.sr.ht/~libreboot/libreboot> | <https://lists.sr.ht/~libreboot/libreboot> |
... | ... | Libreboot has this mailing list: | |
32 | 32 | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
33 | 33 | ||
34 | 34 | Обговорення розробки | Обговорення розробки |
35 | ====================== | ||
35 | -------------------- | ||
36 | 36 | ||
37 | 37 | Зараз, подивіться нотатки | Зараз, подивіться нотатки |
38 | 38 | на [сторінці Git](git.md) для інформації щодо допомоги з розробкою. | на [сторінці Git](git.md) для інформації щодо допомоги з розробкою. |
... | ... | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb | |
40 | 40 | На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и). | На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и). |
41 | 41 | ||
42 | 42 | Кімната IRC | Кімната IRC |
43 | ============ | ||
43 | ----------- | ||
44 | 44 | ||
45 | 45 | IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera | IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera |
46 | 46 | IRC. | IRC. |
... | ... | Libera є однією з найбільших мереж IRC, використ | |
71 | 71 | Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC. | Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC. |
72 | 72 | ||
73 | 73 | Соціальні мережі | Соціальні мережі |
74 | ============ | ||
74 | ---------------- | ||
75 | 75 | ||
76 | 76 | Libreboot офіційно існує в багатьох місцях. | Libreboot офіційно існує в багатьох місцях. |
77 | 77 | ||
78 | Mastodon | ||
79 | -------------------- | ||
78 | ### Mastodon | ||
80 | 79 | ||
81 | 80 | Засновник та головний розробник, Лія Роу, є в Mastodon: | Засновник та головний розробник, Лія Роу, є в Mastodon: |
82 | 81 | ||
... | ... | Mastodon | |
85 | 84 | Також можливо зв'язатися з Лією за ії електронною адресою: | Також можливо зв'язатися з Лією за ії електронною адресою: |
86 | 85 | [leah@libreboot.org](mailto:leah@libreboot.org) | [leah@libreboot.org](mailto:leah@libreboot.org) |
87 | 86 | ||
88 | |||
89 | ------ | ||
87 | |||
90 | 88 | ||
91 | 89 | Найбільше використовується як канал підтримки, та також для оголошення новин: | Найбільше використовується як канал підтримки, та також для оголошення новин: |
92 | 90 | <https://www.reddit.com/r/libreboot/> | <https://www.reddit.com/r/libreboot/> |
File site/contrib.md changed (mode: 100644) (index 1aaf97d..c9f3872) | |||
... | ... | who help me, and those who work on all the upstream projects that I use in | |
43 | 43 | Libreboot. I regularly work with all sorts of people. | Libreboot. I regularly work with all sorts of people. |
44 | 44 | ||
45 | 45 | External projects | External projects |
46 | ================= | ||
46 | ----------------- | ||
47 | 47 | ||
48 | Coreboot project | ||
49 | ---------------- | ||
48 | ### Coreboot project | ||
50 | 49 | ||
51 | 50 | Without coreboot, the libreboot project simply would not be possible. | Without coreboot, the libreboot project simply would not be possible. |
52 | 51 | ||
... | ... | The people and companies that work on coreboot are numerous, and they make the | |
54 | 53 | libreboot project what it is. The libreboot project makes heavy use of coreboot, to | libreboot project what it is. The libreboot project makes heavy use of coreboot, to |
55 | 54 | provide hardware initialization. | provide hardware initialization. |
56 | 55 | ||
57 | GRUB | ||
58 | -------- | ||
56 | ### GRUB | ||
59 | 57 | ||
60 | 58 | GRUB is the bootloader used by libreboot. It goes without saying that the GRUB | GRUB is the bootloader used by libreboot. It goes without saying that the GRUB |
61 | 59 | developers enable libreboot, through their work. | developers enable libreboot, through their work. |
62 | 60 | ||
63 | SeaBIOS | ||
64 | ------- | ||
61 | ### SeaBIOS | ||
65 | 62 | ||
66 | 63 | The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a | The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a |
67 | 64 | legacy x86 BIOS implementation. | legacy x86 BIOS implementation. |
68 | 65 | ||
69 | U-Boot | ||
70 | ------ | ||
66 | ### U-Boot | ||
71 | 67 | ||
72 | 68 | Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks. | Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks. |
73 | 69 | ||
70 | ### Flashprog | ||
71 | |||
72 | Libreboot uses Nico Huber's *flashprog* to provide flashing on all boards; | ||
73 | without this code, you would not be able to install Libreboot in freedom, | ||
74 | because other NOR flashing tools are typically proprietary (and not as good). | ||
75 | |||
74 | 76 | Contributors in alphabetical order | Contributors in alphabetical order |
75 | ================================== | ||
77 | ------------------------------ | ||
76 | 78 | ||
77 | Alexei Sorokin | ||
78 | -------------- | ||
79 | ### Alexei Sorokin | ||
79 | 80 | ||
80 | 81 | Sent minor fixes to lbmk; improved sha512sum verification on images, config | Sent minor fixes to lbmk; improved sha512sum verification on images, config |
81 | 82 | improvements e.g. hide MEI device where neutered ME is used. General | improvements e.g. hide MEI device where neutered ME is used. General |
82 | 83 | improvements and tweaks. | improvements and tweaks. |
83 | 84 | ||
84 | Alper Nebi Yasak | ||
85 | ---------------- | ||
85 | ### Alper Nebi Yasak | ||
86 | 86 | ||
87 | 87 | Contributed the build system integration and documentation for using | Contributed the build system integration and documentation for using |
88 | 88 | U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks | U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks |
... | ... | based on that. | |
91 | 91 | Alper also does upstream development on U-Boot, e.g. continued an almost | Alper also does upstream development on U-Boot, e.g. continued an almost |
92 | 92 | complete port of the `gru-kevin` board and got it merged upstream. | complete port of the `gru-kevin` board and got it merged upstream. |
93 | 93 | ||
94 | Alyssa Rosenzweig | ||
95 | ----------------- | ||
94 | ### Alyssa Rosenzweig | ||
96 | 95 | ||
97 | 96 | Switched the website to use markdown in lieu of handwritten HTML and custom | Switched the website to use markdown in lieu of handwritten HTML and custom |
98 | 97 | PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).** | PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).** |
... | ... | now been heavily modified and forked into a formal project, by Leah Rowe: | |
105 | 104 | Alyssa's original work on the static site generator that Libreboot used to use; | Alyssa's original work on the static site generator that Libreboot used to use; |
106 | 105 | the Libreboot website is now built with Untitled) | the Libreboot website is now built with Untitled) |
107 | 106 | ||
108 | Andrea Perotti | ||
109 | -------------- | ||
107 | ### Andrea Perotti | ||
110 | 108 | ||
111 | 109 | Sent several small fixes to Libreboot's dependencies scripts for Debian, Fedora | Sent several small fixes to Libreboot's dependencies scripts for Debian, Fedora |
112 | 110 | and Ubuntu distros. | and Ubuntu distros. |
113 | 111 | ||
114 | Andrew Robbins | ||
115 | -------------- | ||
112 | ### Andrew Robbins | ||
116 | 113 | ||
117 | 114 | Worked on large parts of Libreboot's old build system and related documentation. | Worked on large parts of Libreboot's old build system and related documentation. |
118 | 115 | Andrew joined the Libreboot project as a full time developer during June 2017, | Andrew joined the Libreboot project as a full time developer during June 2017, |
... | ... | over the years. Anyone who contributes to Libreboot is a hero. Look at the | |
132 | 129 | old Libreboot repository on [notabug](https://notabug.org/libreboot) to find | old Libreboot repository on [notabug](https://notabug.org/libreboot) to find |
133 | 130 | his contributions. | his contributions. |
134 | 131 | ||
135 | Angel Pons | ||
136 | ---------- | ||
132 | ### Angel Pons | ||
137 | 133 | ||
138 | 134 | Angel is a coreboot developer. Their contributions are numerous, in that and | Angel is a coreboot developer. Their contributions are numerous, in that and |
139 | 135 | many other projects. Countless patches in coreboot from them have enabled | many other projects. Countless patches in coreboot from them have enabled |
... | ... | such a configuration, since these are Haswell machines. | |
149 | 145 | Over 2000 commits in coreboot were written by Angel, as of January 2025. They | Over 2000 commits in coreboot were written by Angel, as of January 2025. They |
150 | 146 | are one of coreboot's most active developers. | are one of coreboot's most active developers. |
151 | 147 | ||
152 | Arsen Arsenović | ||
153 | --------------- | ||
148 | ### Arsen Arsenović | ||
154 | 149 | ||
155 | 150 | Added the config for ThinkPad T430 to Libreboot. | Added the config for ThinkPad T430 to Libreboot. |
156 | 151 | ||
157 | Arthur Heymans | ||
158 | -------------- | ||
152 | ### Arthur Heymans | ||
159 | 153 | ||
160 | 154 | Merged a patch from coreboot into libreboot, enabling C3 and C4 power | Merged a patch from coreboot into libreboot, enabling C3 and C4 power |
161 | 155 | states to work correctly on GM45 laptops. This was a long-standing issue | states to work correctly on GM45 laptops. This was a long-standing issue |
... | ... | project. He still works on coreboot, to this day, and Libreboot greatly | |
168 | 162 | benefits from his work. His contributions to the coreboot project, and Libreboot, | benefits from his work. His contributions to the coreboot project, and Libreboot, |
169 | 163 | are invaluable. | are invaluable. |
170 | 164 | ||
171 | Ben Westover | ||
172 | ------------ | ||
165 | ### Ben Westover | ||
173 | 166 | ||
174 | 167 | Added info about internal flashing for Dell OptiPlex 9020, in the Libreboot | Added info about internal flashing for Dell OptiPlex 9020, in the Libreboot |
175 | 168 | documentation. | documentation. |
176 | 169 | ||
177 | Caleb La Grange | ||
178 | --------------- | ||
170 | ### Caleb La Grange | ||
179 | 171 | ||
180 | 172 | Caleb contributed heavily to the Libreboot build system, and even implemented | Caleb contributed heavily to the Libreboot build system, and even implemented |
181 | 173 | the first version of | the first version of |
... | ... | Caleb has also been a good friend to me, Leah, and provided a lot of advice | |
213 | 205 | during the osboot merger. I avoided a lot of stupid mistakes because of his | during the osboot merger. I avoided a lot of stupid mistakes because of his |
214 | 206 | advice. | advice. |
215 | 207 | ||
216 | Canberk TURAN | ||
217 | ------------- | ||
208 | ### Canberk TURAN | ||
218 | 209 | ||
219 | 210 | Added Turkish Q keyboard layout to Libreboot's GRUB payload. | Added Turkish Q keyboard layout to Libreboot's GRUB payload. |
220 | 211 | ||
221 | Damien Zammit | ||
222 | ------------- | ||
212 | ### Damien Zammit | ||
223 | 213 | ||
224 | 214 | Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated | Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated |
225 | 215 | in libreboot. Also works on other hardware for the benefit of the | in libreboot. Also works on other hardware for the benefit of the |
... | ... | Damien didn't work directly on Libreboot itself, but he worked heavily with | |
229 | 219 | Leah Rowe, integrating patches and new board ports into Libreboot, based on | Leah Rowe, integrating patches and new board ports into Libreboot, based on |
230 | 220 | Damien's upstream work on coreboot. | Damien's upstream work on coreboot. |
231 | 221 | ||
232 | Daniil Prokofev | ||
233 | --------------- | ||
222 | ### Daniil Prokofev | ||
234 | 223 | ||
235 | 224 | Translated several Libreboot website pages into the Russian language. | Translated several Libreboot website pages into the Russian language. |
236 | 225 | ||
237 | Denis Carikli | ||
238 | ------------- | ||
226 | ### Denis Carikli | ||
239 | 227 | ||
240 | 228 | Based on the work done by Peter Stuge, Vladimir Serbinenko and others in | Based on the work done by Peter Stuge, Vladimir Serbinenko and others in |
241 | 229 | the coreboot project, got native graphics initialization to work on the | the coreboot project, got native graphics initialization to work on the |
... | ... | earlier work. | |
258 | 246 | ||
259 | 247 | Very cool guy!!! | Very cool guy!!! |
260 | 248 | ||
261 | Eason aka ezntek | ||
262 | ---------------- | ||
249 | ### Eason aka ezntek | ||
263 | 250 | ||
264 | 251 | Sent a SOIC8 photo for Raspberry Pi Pico pinout, where previously only SOIC16 | Sent a SOIC8 photo for Raspberry Pi Pico pinout, where previously only SOIC16 |
265 | 252 | info existed. Also added info about `thinkpad_acpi` Linux kernel module for | info existed. Also added info about `thinkpad_acpi` Linux kernel module for |
... | ... | which helped to spread the news about the work. | |
283 | 270 | ||
284 | 271 | Absolute legend. One of Libreboot's many great champions. | Absolute legend. One of Libreboot's many great champions. |
285 | 272 | ||
286 | E. Blåsten | ||
287 | -------------- | ||
273 | ### E. Blåsten | ||
288 | 274 | ||
289 | 275 | Documented several quirks of the MacBook2,1 and ThinkPad X200T, such as | Documented several quirks of the MacBook2,1 and ThinkPad X200T, such as |
290 | 276 | swivel/rotation on X200T, and various alt keys on the MacBook to make it more | swivel/rotation on X200T, and various alt keys on the MacBook to make it more |
... | ... | usable with Linux, when used on Libreboot. | |
293 | 279 | Also helped me (Leah) in a very fundamental way, in 2018. The help I got enabled | Also helped me (Leah) in a very fundamental way, in 2018. The help I got enabled |
294 | 280 | me to be who I am today. | me to be who I am today. |
295 | 281 | ||
296 | Fedja Beader | ||
297 | ------------- | ||
282 | ### Fedja Beader | ||
298 | 283 | ||
299 | 284 | Wrote several guides for Libreboot, including the original version of the | Wrote several guides for Libreboot, including the original version of the |
300 | 285 | GRUB hardening guide. Wrote the info about the Linux kernel panic/netconsole | GRUB hardening guide. Wrote the info about the Linux kernel panic/netconsole |
... | ... | Also sent some small fixes to Libreboot's GRUB configuration, enabling USB | |
304 | 289 | devices to boot more reliably. Also improved Libreboot's documentation | devices to boot more reliably. Also improved Libreboot's documentation |
305 | 290 | pertaining to Full Disk Encryption. | pertaining to Full Disk Encryption. |
306 | 291 | ||
307 | Ferass El Hafidi | ||
308 | ----------------- | ||
292 | ### Ferass El Hafidi | ||
309 | 293 | ||
310 | 294 | Added cstate 3 support on macbook21, enabling higher battery life and cooler | Added cstate 3 support on macbook21, enabling higher battery life and cooler |
311 | 295 | CPU temperatures on idle usage. | CPU temperatures on idle usage. |
... | ... | Libreboot. | |
320 | 304 | ||
321 | 305 | This is IRC nick `f_` on Libreboot IRC. Cool guy! | This is IRC nick `f_` on Libreboot IRC. Cool guy! |
322 | 306 | ||
323 | hslick | ||
324 | ------ | ||
307 | ### hslick | ||
325 | 308 | ||
326 | 309 | Documented Arch Linux ARM installation on ARM64 U-Boot targets. | Documented Arch Linux ARM installation on ARM64 U-Boot targets. |
327 | 310 | ||
328 | Integral | ||
329 | -------- | ||
311 | ### Integral | ||
330 | 312 | ||
331 | 313 | Translated the Libreboot home page into Chinese language. | Translated the Libreboot home page into Chinese language. |
332 | 314 | ||
333 | Jason Lenz | ||
334 | ---------- | ||
315 | ### Jason Lenz | ||
335 | 316 | ||
336 | 317 | Sent instructions for installing Debian Linux on ARM64-based chromebooks | Sent instructions for installing Debian Linux on ARM64-based chromebooks |
337 | 318 | with Libreboot and Alper's U-Boot ARM64 payload. | with Libreboot and Alper's U-Boot ARM64 payload. |
338 | 319 | ||
339 | Jeroen Quint | ||
340 | ------------ | ||
320 | ### Jeroen Quint | ||
341 | 321 | ||
342 | 322 | Contributed several fixes to the libreboot documentation, relating to | Contributed several fixes to the libreboot documentation, relating to |
343 | 323 | installing on Arch-based systems with full disk encryption on libreboot | installing on Arch-based systems with full disk encryption on libreboot |
344 | 324 | systems. | systems. |
345 | 325 | ||
346 | John Doe | ||
347 | -------- | ||
326 | ### John Doe | ||
348 | 327 | ||
349 | 328 | This person never gave their name, but they sent two patches: | This person never gave their name, but they sent two patches: |
350 | 329 | ||
... | ... | This person never gave their name, but they sent two patches: | |
356 | 335 | Every contribution is appreciated. Every contributor gets their own entry in | Every contribution is appreciated. Every contributor gets their own entry in |
357 | 336 | the Libreboot Hall of Fame. | the Libreboot Hall of Fame. |
358 | 337 | ||
359 | Joshua Gay | ||
360 | ---------- | ||
338 | ### Joshua Gay | ||
361 | 339 | ||
362 | 340 | Joshua was in a position during 2014-2016 to help promote Libreboot in the | Joshua was in a position during 2014-2016 to help promote Libreboot in the |
363 | 341 | media, in his capacity working for the employer he worked for at the time; | media, in his capacity working for the employer he worked for at the time; |
... | ... | He made sure everyone knew what I was doing, and he taught me a *lot* about | |
367 | 345 | licensing; many of Libreboot's practises today are still based on his lessons, | licensing; many of Libreboot's practises today are still based on his lessons, |
368 | 346 | such as the pitfalls of GPL compliance and how to really audit everything. | such as the pitfalls of GPL compliance and how to really audit everything. |
369 | 347 | ||
370 | Klemens Nanni | ||
371 | ------------- | ||
348 | ### Klemens Nanni | ||
372 | 349 | ||
373 | 350 | Made many fixes and improvements to the GRUB configuration used in | Made many fixes and improvements to the GRUB configuration used in |
374 | 351 | libreboot, and several tweaks to the build system. | libreboot, and several tweaks to the build system. |
375 | 352 | ||
376 | Linear Cannon | ||
377 | ------------- | ||
353 | ### Linear Cannon | ||
378 | 354 | ||
379 | 355 | Added NetBSD support for `dell-flash-unlock`. | Added NetBSD support for `dell-flash-unlock`. |
380 | 356 | ||
381 | Lisa Marie Maginnis | ||
382 | ------------------- | ||
357 | ### Lisa Marie Maginnis | ||
383 | 358 | ||
384 | 359 | Lisa was one of Libreboot's early contributors to Libreboot. She personally | Lisa was one of Libreboot's early contributors to Libreboot. She personally |
385 | 360 | helped me set up a lot of the early infrastructure, including things like IRC, | helped me set up a lot of the early infrastructure, including things like IRC, |
... | ... | in Libreboot, e.g. ASUS Chromebook C201PA - at the time, this was using | |
393 | 368 | Google's own Depthcharge payload, which you can find in 2016 Libreboot | Google's own Depthcharge payload, which you can find in 2016 Libreboot |
394 | 369 | releases. | releases. |
395 | 370 | ||
396 | Livio | ||
397 | ----- | ||
371 | ### Livio | ||
398 | 372 | ||
399 | 373 | Sent a small enhancement for GRUB, allowing the user to turn on or off several | Sent a small enhancement for GRUB, allowing the user to turn on or off several |
400 | 374 | options at boot time, such as graphical options or spkmodem output, so that | options at boot time, such as graphical options or spkmodem output, so that |
... | ... | these features can be included on every image, and used flexibly. | |
402 | 376 | ||
403 | 377 | Sent some small fixes to the QEMU target, fixing a bug in the SMBIOS info. | Sent some small fixes to the QEMU target, fixing a bug in the SMBIOS info. |
404 | 378 | ||
405 | Lorenzo Aloe | ||
406 | ------------ | ||
379 | ### Lorenzo Aloe | ||
407 | 380 | ||
408 | 381 | Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md), | Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md), |
409 | 382 | also provided testing for proxmox with GPU passthrough on Dell Precision T1650, | also provided testing for proxmox with GPU passthrough on Dell Precision T1650, |
... | ... | that OS is not natively supported. | |
413 | 386 | ||
414 | 387 | All round good guy, an honest and loyal fan. | All round good guy, an honest and loyal fan. |
415 | 388 | ||
416 | Luke T. Shumaker | ||
417 | ---------------- | ||
389 | ### Luke T. Shumaker | ||
418 | 390 | ||
419 | 391 | Sent a patch to Libreboot, fixing vboot on 32-bit (i686) hosts; it previously | Sent a patch to Libreboot, fixing vboot on 32-bit (i686) hosts; it previously |
420 | 392 | only compiled on 64-bit x86 (amd64) machines. | only compiled on 64-bit x86 (amd64) machines. |
421 | 393 | ||
422 | Marcus Moeller | ||
423 | -------------- | ||
394 | ### Marcus Moeller | ||
424 | 395 | ||
425 | 396 | Made the libreboot logo. | Made the libreboot logo. |
426 | 397 | ||
427 | Mate Kukri | ||
428 | ---------- | ||
398 | ### Mate Kukri | ||
429 | 399 | ||
430 | 400 | Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams | Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams |
431 | 401 | that it uses; he is a coreboot developer, and also contributes heavily to the | that it uses; he is a coreboot developer, and also contributes heavily to the |
... | ... | made: | |
458 | 428 | Mate Kukri is a hero to the Libreboot project. Without him, Libreboot would not | Mate Kukri is a hero to the Libreboot project. Without him, Libreboot would not |
459 | 429 | be what it is today. | be what it is today. |
460 | 430 | ||
461 | Michael Reed | ||
462 | ------------ | ||
431 | ### Michael Reed | ||
463 | 432 | ||
464 | 433 | Wrote Libreboot's original OpenBSD installation guide. | Wrote Libreboot's original OpenBSD installation guide. |
465 | 434 | ||
466 | 435 | Also sent fixes to the original static site generator that Alyssa wrote, upon | Also sent fixes to the original static site generator that Alyssa wrote, upon |
467 | 436 | which the Untitled Static Site Generator was later based. | which the Untitled Static Site Generator was later based. |
468 | 437 | ||
469 | Michał Masłowski | ||
470 | ---------------- | ||
438 | ### Michał Masłowski | ||
471 | 439 | ||
472 | 440 | Sent several fixes to Libreboot's early build system, back in the early days | Sent several fixes to Libreboot's early build system, back in the early days |
473 | 441 | of the project. Also taught Leah how to use Git, because the very first revisions | of the project. Also taught Leah how to use Git, because the very first revisions |
474 | 442 | were released only as tarballs, without Git history; the first commits in | were released only as tarballs, without Git history; the first commits in |
475 | 443 | the old repository were imports of those tarballs. | the old repository were imports of those tarballs. |
476 | 444 | ||
477 | Nicholas Chin | ||
478 | ------------- | ||
445 | ### Nicholas Chin | ||
479 | 446 | ||
480 | 447 | [Ported Dell Latitude E6400 to Libreboot](news/e6400.md) | [Ported Dell Latitude E6400 to Libreboot](news/e6400.md) |
481 | 448 | and also [Dell Latitude E6430](docs/install/latitude.md) - author of | and also [Dell Latitude E6430](docs/install/latitude.md) - author of |
... | ... | say, he is one of Libreboot's champions. | |
497 | 464 | Nicholas also contributes to coreboot heavily, to flashprog, and several | Nicholas also contributes to coreboot heavily, to flashprog, and several |
498 | 465 | other projects that Libreboot uses. | other projects that Libreboot uses. |
499 | 466 | ||
500 | 0xloem | ||
501 | ------ | ||
467 | ### 0xloem | ||
502 | 468 | ||
503 | 469 | Added info about LPC flashing on Libreboot's external flashing guide. | Added info about LPC flashing on Libreboot's external flashing guide. |
504 | 470 | ||
505 | Patrick "P. J." McDermott | ||
506 | --------------------------- | ||
471 | ### Patrick "P. J." McDermott | ||
507 | 472 | ||
508 | 473 | Patrick also did a lot of research and wrote the libreboot FAQ section | Patrick also did a lot of research and wrote the libreboot FAQ section |
509 | 474 | relating to the [Intel Management Engine](../faq.md#intelme), in addition | relating to the [Intel Management Engine](../faq.md#intelme), in addition |
510 | 475 | to making several improvements to the build system in libreboot. **Former | to making several improvements to the build system in libreboot. **Former |
511 | 476 | libreboot project maintainer.** | libreboot project maintainer.** |
512 | 477 | ||
513 | Patrick Rudolph | ||
514 | --------------- | ||
478 | ### Patrick Rudolph | ||
515 | 479 | ||
516 | 480 | Coreboot developer. Also wrote the xHCI GRUB driver, that Libreboot uses; | Coreboot developer. Also wrote the xHCI GRUB driver, that Libreboot uses; |
517 | 481 | without it, several ports in Libreboot would not be feasible, unless they | without it, several ports in Libreboot would not be feasible, unless they |
... | ... | have (or configure) EHCI controllers. Upstream GRUB currently has no xHCI | |
520 | 484 | driver, but Patrick sent patches in 2020 that Libreboot later re-based, | driver, but Patrick sent patches in 2020 that Libreboot later re-based, |
521 | 485 | on top of GRUB 2.12. | on top of GRUB 2.12. |
522 | 486 | ||
523 | Paul Kocialkowski | ||
524 | ----------------- | ||
487 | ### Paul Kocialkowski | ||
525 | 488 | ||
526 | 489 | Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to | Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to |
527 | 490 | libreboot. Also one of the main [Replicant](http://www.replicant.us/) | libreboot. Also one of the main [Replicant](http://www.replicant.us/) |
... | ... | system, upon which Libreboot's effort from 2017-2021 was based; ultimately, | |
532 | 495 | this work never became stable and the work was scrapped in 2021, in favour of | this work never became stable and the work was scrapped in 2021, in favour of |
533 | 496 | the current Libreboot build system design, named lbmk. | the current Libreboot build system design, named lbmk. |
534 | 497 | ||
535 | Paul Menzel | ||
536 | ----------- | ||
498 | ### Paul Menzel | ||
537 | 499 | ||
538 | 500 | Investigated and fixed a bug in coreboot on the ThinkPad X60/T60 exposed | Investigated and fixed a bug in coreboot on the ThinkPad X60/T60 exposed |
539 | 501 | by Linux kernel 3.12 and up, which caused 3D acceleration to stop | by Linux kernel 3.12 and up, which caused 3D acceleration to stop |
... | ... | Paul worked with Libreboot on | |
546 | 508 | this, sending patches to test periodically until the bug was fixed | this, sending patches to test periodically until the bug was fixed |
547 | 509 | in coreboot, and then helped her integrate the fix in libreboot. | in coreboot, and then helped her integrate the fix in libreboot. |
548 | 510 | ||
549 | Peaksol | ||
550 | ------- | ||
511 | ### Peaksol | ||
551 | 512 | ||
552 | 513 | Translated several pages, including the SPI flashing guide, into Chinese | Translated several pages, including the SPI flashing guide, into Chinese |
553 | 514 | language. | language. |
554 | 515 | ||
555 | Peter Stuge | ||
556 | ----------- | ||
516 | ### Peter Stuge | ||
557 | 517 | ||
558 | 518 | Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provided | Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provided |
559 | 519 | general advice in the early days of the project. Peter was a coreboot developer | general advice in the early days of the project. Peter was a coreboot developer |
... | ... | bucts before flashing the ROM again, to flash the main bootblock. Libreboot | |
571 | 531 | hosts a copy of his work, because his website hosting bucts is no longer | hosts a copy of his work, because his website hosting bucts is no longer |
572 | 532 | responsive. | responsive. |
573 | 533 | ||
574 | Riku Viitanen | ||
575 | ------------- | ||
534 | ### Riku Viitanen | ||
576 | 535 | ||
577 | 536 | Added support for HP Elite 8200 SFF desktop PC to Libreboot. You can read | Added support for HP Elite 8200 SFF desktop PC to Libreboot. You can read |
578 | 537 | about this in the hardware page: | about this in the hardware page: |
... | ... | also added the HP EliteBook 2560p to Libreboot. | |
601 | 560 | Riku also contributes to coreboot and flashprog, and several other projects | Riku also contributes to coreboot and flashprog, and several other projects |
602 | 561 | that Libreboot uses. | that Libreboot uses. |
603 | 562 | ||
604 | samuraikid | ||
605 | ---------- | ||
563 | ### samuraikid | ||
606 | 564 | ||
607 | 565 | Added Portuguese keyboard layout to Libreboot's GRUB payload. | Added Portuguese keyboard layout to Libreboot's GRUB payload. |
608 | 566 | ||
609 | semigel | ||
610 | ------- | ||
567 | ### semigel | ||
611 | 568 | ||
612 | 569 | Added BTRFS subvolume support to Libreboot's GRUB configuration, for auto-booting | Added BTRFS subvolume support to Libreboot's GRUB configuration, for auto-booting |
613 | 570 | various Linux distros. | various Linux distros. |
614 | 571 | ||
615 | Simon Glass | ||
616 | ----------- | ||
572 | ### Simon Glass | ||
617 | 573 | ||
618 | 574 | Simon Glass is principally responsible for the x86 U-Boot payload that Libreboot | Simon Glass is principally responsible for the x86 U-Boot payload that Libreboot |
619 | 575 | now uses as a coreboot payload. Simon provided Leah with several critical patches | now uses as a coreboot payload. Simon provided Leah with several critical patches |
... | ... | when integrating it. | |
623 | 579 | Without him, Libreboot would not have a functioning U-Boot implementation on | Without him, Libreboot would not have a functioning U-Boot implementation on |
624 | 580 | x86. | x86. |
625 | 581 | ||
626 | Snooze Function | ||
627 | --------------- | ||
582 | ### Snooze Function | ||
628 | 583 | ||
629 | 584 | Translated several pages on the Libreboot documentation into the German | Translated several pages on the Libreboot documentation into the German |
630 | 585 | language. | language. |
631 | 586 | ||
632 | StackSmashing | ||
633 | ------------- | ||
587 | ### StackSmashing | ||
634 | 588 | ||
635 | 589 | Author of the original [pico-serprog](https://github.com/stacksmashing/pico-serprog) | Author of the original [pico-serprog](https://github.com/stacksmashing/pico-serprog) |
636 | 590 | project, upon which Libreboot's fork (maintained by Riku Viitanen) is based. | project, upon which Libreboot's fork (maintained by Riku Viitanen) is based. |
... | ... | StackSmashing also has a [YouTube channel](https://www.youtube.com/channel/UC3S8 | |
642 | 596 | with a lot of really cool videos on it about all things electronics, and hacking | with a lot of really cool videos on it about all things electronics, and hacking |
643 | 597 | of electronics. Check it out! | of electronics. Check it out! |
644 | 598 | ||
645 | Steve Shenton | ||
646 | ------------- | ||
599 | ### Steve Shenton | ||
647 | 600 | ||
648 | 601 | Steve did the early reverse engineering work on the Intel Flash Descriptor used | Steve did the early reverse engineering work on the Intel Flash Descriptor used |
649 | 602 | by ICH9M machines such as ThinkPad X200. He created a C struct defining (using | by ICH9M machines such as ThinkPad X200. He created a C struct defining (using |
... | ... | written this tool, without Steve's initial proof of concept. I worked with him, | |
693 | 646 | extensively, for many months. All GM45+ICH9M support (X200, T400, etc) in | extensively, for many months. All GM45+ICH9M support (X200, T400, etc) in |
694 | 647 | Libreboot is made possible because of the work he did, back in 2014. | Libreboot is made possible because of the work he did, back in 2014. |
695 | 648 | ||
696 | Swift Geek | ||
697 | ---------- | ||
649 | ### Swift Geek | ||
698 | 650 | ||
699 | 651 | Contributed a patch for ich9gen to generate 16MiB descriptors. | Contributed a patch for ich9gen to generate 16MiB descriptors. |
700 | 652 | ||
... | ... | Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best | |
717 | 669 | in his endeavours, and I'm very grateful to his numerous contributions over the | in his endeavours, and I'm very grateful to his numerous contributions over the |
718 | 670 | years. | years. |
719 | 671 | ||
720 | Timothee Benedet | ||
721 | ---------------- | ||
672 | ### Timothee Benedet | ||
722 | 673 | ||
723 | 674 | Translated several Libreboot website pages into the French language. | Translated several Libreboot website pages into the French language. |
724 | 675 | ||
725 | Timothy Pearson | ||
726 | --------------- | ||
676 | ### Timothy Pearson | ||
727 | 677 | ||
728 | 678 | Ported the ASUS KGPE-D16 board to coreboot for the company Raptor | Ported the ASUS KGPE-D16 board to coreboot for the company Raptor |
729 | 679 | Engineering of which Timothy is the CEO. | Engineering of which Timothy is the CEO. |
... | ... | contact details are on the raptor site. | |
734 | 684 | **D16 support was removed on 19 November 2022. You can still use older | **D16 support was removed on 19 November 2022. You can still use older |
735 | 685 | revisions of Libreboot, and older release versions.** | revisions of Libreboot, and older release versions.** |
736 | 686 | ||
737 | Vladimir Serbinenko | ||
738 | ------------------- | ||
687 | ### Vladimir Serbinenko | ||
739 | 688 | ||
740 | 689 | Ported many of the thinkpads supported in libreboot, to coreboot, and | Ported many of the thinkpads supported in libreboot, to coreboot, and |
741 | 690 | made many fixes in coreboot which benefited the libreboot project. | made many fixes in coreboot which benefited the libreboot project. |
... | ... | by others in Ada, for libgfxinit in coreboot, but originally it was written in | |
746 | 695 | C and included directly in coreboot; libgfxinit is a 3rdparty submodule of | C and included directly in coreboot; libgfxinit is a 3rdparty submodule of |
747 | 696 | coreboot). | coreboot). |
748 | 697 | ||
749 | Vladislav Shapovalov | ||
750 | -------------------- | ||
698 | ### Vladislav Shapovalov | ||
751 | 699 | ||
752 | 700 | Translated several pages of the Libreboot website into Ukranian language. | Translated several pages of the Libreboot website into Ukranian language. |
753 | 701 |
File site/docs/bsd/index.md changed (mode: 100644) (index fedc9cb..815f279) | |||
1 | 1 | --- | --- |
2 | title: BSD operating systems | ||
2 | title: Install a BSD operating system on Libreboot | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Guide last updated on 16 November 2022. | ||
7 | |||
8 | NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM | ||
9 | chromebooks. For ARM targets, you should refer to u-boot documentation. | ||
10 | |||
11 | libreboot is capable of booting many BSD systems. This section mostly documents | ||
12 | the peculiarities of libreboot as it pertains to BSD; you can otherwise refer to | ||
13 | the official documentation for whatever BSD system you would like to use. | ||
14 | |||
15 | Kernel Mode Setting | ||
16 | =================== | ||
6 | It is assumed here that you are using the *SeaBIOS* payload, *not* the GRUB | ||
7 | payload; the U-Boot payload may also work, but that is not covered here. The | ||
8 | SeaBIOS payload must ideally run in text mode (`txtmode` images from Libreboot | ||
9 | releases). | ||
10 | |||
11 | This guide pertains to x86 hosts, and does not cover supported CrOS/ARM | ||
12 | chromebooks. For ARM targets, you should refer to [u-boot | ||
13 | documentation](../uboot/) - and [U-Boot x86](../uboot/uboot-x86.md) is also | ||
14 | available. The U-Boot x86 payload is interesting, because it can in fact boot | ||
15 | OpenBSD via UEFI method (U-Boot provides a lightweight UEFI implementation | ||
16 | independently of, say, EDK2). | ||
17 | |||
18 | What is BSD? | ||
19 | ------------ | ||
20 | |||
21 | In our context, we are referring to those descendents of 4.4BSD-Lite starting | ||
22 | in the early 1990s. On balance, they are about equal to Linux in many ways, | ||
23 | and some would argue that they are *better* (higher code quality). It can be | ||
24 | said that the BSDs are the closest we have to *true* open source Unix systems, | ||
25 | since they ultimately descend from that code lineage. For example, the | ||
26 | FreeBSD project briefly covers its own history in the Hand Book: | ||
27 | <https://docs.freebsd.org/en/books/handbook/introduction/#history> | ||
28 | |||
29 | Chief among them are: | ||
30 | |||
31 | * [FreeBSD](https://www.freebsd.org/) (HardenedBSD probably also works) | ||
32 | * [NetBSD](https://netbsd.org/) | ||
33 | * [OpenBSD](https://www.openbsd.org/) | ||
34 | * [DragonFlyBSD](https://www.dragonflybsd.org/) (UNTESTED) | ||
35 | |||
36 | **TODO: DragonFlyBSD is untested, as of January 2025. It ought to be tested.** | ||
37 | |||
38 | Many other BSD systems exist, that are largely derived from these. | ||
39 | |||
40 | Why use BSD (instead of Linux)? | ||
41 | ------------------------------- | ||
42 | |||
43 | BSD operating systems are in wide use today, powering much of the world's | ||
44 | most critical infrastructure, and they're quite competent laptop/desktop or | ||
45 | workstation systems. Some of them have unique features that you can't find | ||
46 | anywhere else (e.g. FreeBSD jails, OpenBSD's numerous security enhancements, | ||
47 | NetBSD's rump kernel design and clean code quality). | ||
48 | |||
49 | BSD systems are superfically similar to Linux systems, but they are very | ||
50 | different under the hood (different kernel designs, different userspace | ||
51 | implementations, and so on). However, almost all of the Linux userspace programs | ||
52 | that you enjoy using are probably available in the various BSD *ports trees*, | ||
53 | or they can be compiled with little to no modification. This is because, despite | ||
54 | the actual differences under the hood, the BSDs and various Linux distros all | ||
55 | adhere to the same basic standards (e.g. Single Unix Specification). | ||
56 | |||
57 | If you want to enjoy using a high quality operating system, with many unique | ||
58 | features, BSD systems can be quite fun to use, and quite challenging. They tend | ||
59 | to have a much more conservative take on implementations, compared to Linux | ||
60 | distros, instead opting for technical correctness and minimalism; this is a | ||
61 | good thing, because lots of Linux distros these days are extremely bloated. | ||
62 | Using a BSD system feels like Linux did in the year 2005, just with much better | ||
63 | hardware support, and that's a *good thing*; the reason why is that BSD systems | ||
64 | simply have fewer users, and a higher concentration of *technical* users, and | ||
65 | this *shows* when you use it. Linux is *much* more mass market and has to cater | ||
66 | to all sorts of people, and these days Linux distros have to *Just Work*. | ||
67 | |||
68 | You can look at the documentation of each BSD system and try each one out, to | ||
69 | see which one is right for you. Be warned, BSD systems *are* typically harder | ||
70 | to use than Linux systems. Even the most seasoned Linux user will often have a | ||
71 | hard time with any BSD, if it's their first time using a BSD system. This is | ||
72 | mitigated by excellent documentation, which is one of the things that the BSDs | ||
73 | excel at, but you are expected to *read* the documentation; many Linux distros | ||
74 | try to hold your hand ("it Just Works"), but the BSDs generally don't do that. | ||
75 | |||
76 | If you're already a power user on Linux, and comfortable with the more hands-on | ||
77 | distros like Arch Linux or Gentoo Linux, you'll have a much easier time | ||
78 | learning a BSD. FreeBSD for example comes completely barebones by default, and | ||
79 | you add packages to it, configuring it to your liking, much like Arch Linux; if | ||
80 | you're wily enough, you might also use the CURRENT tree and install all packages | ||
81 | by building them from *ports* (akin to how Gentoo Linux is used). | ||
82 | |||
83 | BSD systems also have much more relaxed licensing than Linux systems, by and | ||
84 | large; most of the software in the base system, on any BSD project, will use | ||
85 | a permissive license instead of copyleft. They can be regarded as Free Software, | ||
86 | but it's a very different ideology than, say, GNU. Some might argue that this | ||
87 | is better, because licensing conflicts are common among copyleft licenses, even | ||
88 | among different versions of the GPL. A BSD-style license permits *anyone* to | ||
89 | use the code, *without* requiring modified versions to ship source code, so it | ||
90 | can be said that the BSD license model contains [far fewer | ||
91 | restrictions](https://docs.freebsd.org/en/articles/bsdl-gpl/). One might say | ||
92 | that the BSD systems are *more free* than GNU/Linux systems. | ||
93 | |||
94 | Basically, your choice to use BSD will likely be based on a combination of | ||
95 | technical and/or ideological preferences. But don't say we didn't warn you. | ||
96 | BSD is hard. On the flip side of that coin, BSD is *easy*, because it forces | ||
97 | you to really learn how your system works; when you become proficient with | ||
98 | BSD, you'll learn everything else much easier, and you may find yourself doing | ||
99 | things more efficiently *in Linux* as well! | ||
100 | |||
101 | That's enough BSD fanaticism. Please read the following sections, *before* | ||
102 | you embark on your BSD Libreboot journey: | ||
103 | |||
104 | Common issues with BSD+Libreboot | ||
105 | -------------------------------- | ||
106 | |||
107 | This page will not tell you how to install BSD systems; that is best left to | ||
108 | the documentation for your BSD system. Instead, these next sections cover only | ||
109 | the idiosyncrasies of Libreboot as they relate to BSD: | ||
110 | |||
111 | ### Kernel Mode Setting | ||
17 | 112 | ||
18 | 113 | Your BSD system *must* support Kernel Mode Setting for your graphics | Your BSD system *must* support Kernel Mode Setting for your graphics |
19 | 114 | device (most of them do nowadays). The reasons will become apparent, as | device (most of them do nowadays). The reasons will become apparent, as |
20 | 115 | you read this article. | you read this article. |
21 | 116 | ||
22 | Boot BSD, using SeaBIOS | ||
23 | ======================= | ||
117 | ### Boot BSD, using SeaBIOS | ||
24 | 118 | ||
25 | 119 | On x86 platforms, Libreboot provides the choice of GRUB and/or | On x86 platforms, Libreboot provides the choice of GRUB and/or |
26 | 120 | SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is | SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is |
... | ... | If you don't plan to set up Xorg/Wayland, then that's all you really need to | |
37 | 131 | do. For example, you might want to run a headless server, in which case you | do. For example, you might want to run a headless server, in which case you |
38 | 132 | probably don't mind running in text mode all the time. | probably don't mind running in text mode all the time. |
39 | 133 | ||
40 | OpenBSD and corebootfb | ||
41 | ---------------------- | ||
134 | #### GRUB payload | ||
135 | |||
136 | GRUB *can* directly boot many BSD systems, but this is ill advisable. You are | ||
137 | advised to use either SeaBIOS, and boot a BIOS-based BSD bootloader, or use | ||
138 | Libreboot's [U-Boot payload](../uboot/) and use it to boot via UEFI; U-Boot's | ||
139 | bootflow menu can achieve this. | ||
140 | |||
141 | The U-Boot coreboot payload is still experimental, on ARM64 *and* x86/x86\_64, | ||
142 | so you should probably use SeaBIOS for now (on x86). U-Boot is the *only* | ||
143 | coreboot payload for Libreboot on ARM64 motherboards. | ||
144 | |||
145 | ### OpenBSD and corebootfb | ||
42 | 146 | ||
43 | 147 | It's still recommended to use SeaBIOS in text mode, but OpenBSD specifically | It's still recommended to use SeaBIOS in text mode, but OpenBSD specifically |
44 | 148 | can work with SeaBIOS booting in a coreboot framebuffer, with SeaVGABIOS. In | can work with SeaBIOS booting in a coreboot framebuffer, with SeaVGABIOS. In |
... | ... | Libreboot ROM images, this would be SeaBIOS images with `corebootfb` in the | |
46 | 150 | file name. | file name. |
47 | 151 | ||
48 | 152 | Make sure to select MBR-style partitioning on the installer, and it will | Make sure to select MBR-style partitioning on the installer, and it will |
49 | Just Work. | ||
153 | Just Work. **GPT partitioning won't work in OpenBSD, if you use the SeaBIOS | ||
154 | payload, but will work if you boot/install it via UEFI boot method with | ||
155 | Libreboot's [U-Boot UEFI payload](../uboot/uboot-x86.md) instead.** | ||
50 | 156 | ||
51 | 157 | If you're using the GRUB payload but SeaBIOS is available in the boot menu, | If you're using the GRUB payload but SeaBIOS is available in the boot menu, |
52 | 158 | you can just select SeaBIOS at said menu, and OpenBSD will work fine. | you can just select SeaBIOS at said menu, and OpenBSD will work fine. |
53 | 159 | ||
54 | FreeBSD and corebootfb | ||
55 | ---------------------- | ||
160 | ### FreeBSD and corebootfb | ||
56 | 161 | ||
57 | 162 | Assumed broken, so please ensure that you boot with SeaBIOS payload in text | Assumed broken, so please ensure that you boot with SeaBIOS payload in text |
58 | 163 | mode (lbmk ROM images with `txtmode` in the file name, not `corebootfb`). | mode (lbmk ROM images with `txtmode` in the file name, not `corebootfb`). |
59 | 164 | ||
60 | Warnings for X11 users | ||
61 | ---------------------- | ||
165 | Please boot in *text mode*. FreeBSD can be configured to use KMS, if you need | ||
166 | Xorg or wayland. | ||
167 | |||
168 | ### Warnings for X11 users | ||
62 | 169 | ||
63 | 170 | One important peculiarity of most libreboot systems is: VGA mode | One important peculiarity of most libreboot systems is: VGA mode |
64 | 171 | support exists, if booting with corebootfb (coreboot's own framebuffer) and | support exists, if booting with corebootfb (coreboot's own framebuffer) and |
... | ... | You should not rely on the above instruction (for FreeBSD), because the exact | |
113 | 220 | step might change, and it does not go into full detail either. Refer to the | step might change, and it does not go into full detail either. Refer to the |
114 | 221 | documentation provided by your system, to know how KMS is configured. | documentation provided by your system, to know how KMS is configured. |
115 | 222 | ||
116 | ALWAYS READ THE MANUAL | ||
117 | ---------------------- | ||
118 | |||
119 | All of the BSDs have *excellent* documentation; it's one of the defining | ||
120 | characteristics, versus typical Linux distros. | ||
121 | |||
122 | Aside from this quirk in coreboot, regarding *BIOS* video modes, the BSDs | ||
123 | otherwise work in exactly the same way as you would expect, and you can | ||
124 | follow along to their official documentation without much fuss. | ||
125 | |||
126 | No specific or detailed guides will be provided here, because SeaBIOS is | ||
127 | fairly self-explanatory; you can otherwise refer to the SeaBIOS | ||
128 | documentation. | ||
129 | |||
130 | If you're flashing a ROM for a machine where `seabios_withgrub` | ||
131 | and `seabios_grubfirst` ROMs are available, choose `seabios_withgrub`. | ||
132 | |||
133 | DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were | ||
134 | present in older Libreboot releases, and supported in previous revisions | ||
135 | of the build system, but they did not work for the intended purpose. More | ||
136 | info is written on the [Libreboot installation guide](../install/). ROM | ||
137 | images with `seabios_grubfirst` in the filename will NOT be included in | ||
138 | future Libreboot releases. | ||
139 | |||
140 | Dubious mention: Tianocore | ||
141 | -------------------------- | ||
142 | |||
143 | Tianocore is extremely bloated, and unauditable, so it is not included | ||
144 | in Libreboot firmware, but it is the reference UEFI implementation by | ||
145 | Intel and contributors. It can boot most BSD systems very well. | ||
146 | |||
147 | More robust ways to provide UEFI services in Libreboot are to be investigated. | ||
148 | Tianocore integration will not be provided officially, in any current or future | ||
149 | releases of Libreboot. | ||
150 | |||
151 | Desktop users | ||
152 | ------------- | ||
223 | ### Desktop users | ||
153 | 224 | ||
154 | 225 | NOTE: This section may not be full accurate; for example, the hardware page | NOTE: This section may not be full accurate; for example, the hardware page |
155 | 226 | about HP Elite 8200 SFF talks about use of graphics cards on both corebootfb | about HP Elite 8200 SFF talks about use of graphics cards on both corebootfb |
... | ... | extremely expensive computationally speaking. This is why modern kernels | |
173 | 244 | You can learn more about INT10H text/VGA modes here: | You can learn more about INT10H text/VGA modes here: |
174 | 245 | ||
175 | 246 | <https://en.wikipedia.org/wiki/INT_10H> | <https://en.wikipedia.org/wiki/INT_10H> |
247 | |||
248 | If you use the *U-Boot* payload, INT10H is irrelevant because you will rely on | ||
249 | an EFI framebuffer instead, which U-Boot does provide (piggybacking off of the | ||
250 | coreboot framebuffer where one is available). | ||
251 | |||
252 | Regardless of whether you have an EFI framebuffer or INT10H VGA interrupts, | ||
253 | the various BSD systems all support KMS so you should be able to use Xorg or | ||
254 | Wayland just fine. | ||
255 | |||
256 | ALWAYS READ THE MANUAL | ||
257 | ---------------------- | ||
258 | |||
259 | All of the BSDs have *excellent* documentation; it's one of the defining | ||
260 | characteristics, versus typical Linux distros. This is precisely *because* | ||
261 | the BSDs develop everything in-house, so the various components of a BSD | ||
262 | system are much more heavily integrated, and this means that they can provide | ||
263 | much more reliable documentation; reliable from both the user's perspective | ||
264 | and from the perspective of technical correctness. | ||
265 | |||
266 | Aside from these and other quirks when installing BSD *on Libreboot*, the BSDs | ||
267 | otherwise work in exactly the same way as you would expect, and you can | ||
268 | follow along to their official documentation without much fuss. | ||
269 | |||
270 | No specific or detailed guides will be provided here, because SeaBIOS is | ||
271 | fairly self-explanatory; you can otherwise refer to the SeaBIOS | ||
272 | documentation. | ||
273 | |||
274 | DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were | ||
275 | present in older Libreboot releases, and supported in previous revisions | ||
276 | of the build system, but they did not work for the intended purpose. More | ||
277 | info is written on the [Libreboot installation guide](../install/). ROM | ||
278 | images with `seabios_grubfirst` in the filename will NOT be included in | ||
279 | future Libreboot releases. |
File site/docs/build/index.md changed (mode: 100644) (index 3831f00..f327b83) | |||
1 | 1 | --- | --- |
2 | title: Build from source | ||
2 | title: Compile Libreboot from source | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | WARNING: eCryptfs file name limits | ||
7 | ================================= | ||
8 | |||
9 | Do not run the build system on a eCryptfs file system, because it has | ||
10 | very short file name limits and Libreboot's build system deals with very | ||
11 | long file names. We commonly get reports from this by Linux Mint users | ||
12 | who encrypt their home directory with eCryptfs; regular LUKS encryption will | ||
13 | do nicely. | ||
6 | If you need to build Libreboot from source, this guide is for you. | ||
14 | 7 | ||
15 | 8 | Introduction | Introduction |
16 | ============ | ||
9 | ------------ | ||
17 | 10 | ||
18 | 11 | Libreboot's build system is named `lbmk`, short for `LibreBoot MaKe`, and this | Libreboot's build system is named `lbmk`, short for `LibreBoot MaKe`, and this |
19 | 12 | document describes how to use it. With this guide, you can know how to compile | document describes how to use it. With this guide, you can know how to compile |
... | ... | libreboot from the available source code. | |
22 | 15 | The following document describes how `lbmk` works, and how you can make changes | The following document describes how `lbmk` works, and how you can make changes |
23 | 16 | to it: [libreboot maintenance manual](../maintain/) | to it: [libreboot maintenance manual](../maintain/) |
24 | 17 | ||
18 | ### WARNING: eCryptfs file name limits | ||
19 | |||
20 | Do not run the build system on a eCryptfs file system, because it has | ||
21 | very short file name limits and Libreboot's build system deals with very | ||
22 | long file names. We commonly get reports from this by Linux Mint users | ||
23 | who encrypt their home directory with eCryptfs; regular LUKS encryption will | ||
24 | do nicely. | ||
25 | |||
25 | 26 | System requirements | System requirements |
26 | =================== | ||
27 | ------------------- | ||
27 | 28 | ||
28 | 29 | You must ensure that you have the correct operating system, CPU, RAM, disk space | You must ensure that you have the correct operating system, CPU, RAM, disk space |
29 | 30 | and so on. | and so on. |
... | ... | System requirements are documented in | |
32 | 33 | the [lbmk maintenance manual](../maintain/#system-requirements). | the [lbmk maintenance manual](../maintain/#system-requirements). |
33 | 34 | ||
34 | 35 | Multi-threaded builds | Multi-threaded builds |
35 | ===================== | ||
36 | --------------------- | ||
36 | 37 | ||
37 | 38 | 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 |
38 | 39 | it by doing e.g. | it by doing e.g. |
... | ... | is passed, where THREADS is the number of threads. This is also set when running | |
46 | 47 | xz commands for compression, using the `-t` option. | xz commands for compression, using the `-t` option. |
47 | 48 | ||
48 | 49 | Environmental variables | Environmental variables |
49 | ======================= | ||
50 | ----------------------- | ||
50 | 51 | ||
51 | 52 | Please read about environmental variables in [the build | Please read about environmental variables in [the build |
52 | 53 | instructions](../maintain/), before running lbmk. You should set | instructions](../maintain/), before running lbmk. You should set |
... | ... | your variables accordingly, though you do not technically need to; some | |
54 | 55 | of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). | of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). |
55 | 56 | ||
56 | 57 | Sources | Sources |
57 | ======= | ||
58 | ------- | ||
58 | 59 | ||
59 | 60 | This version, if hosted live on libreboot.org, assumes that you are using | This version, if hosted live on libreboot.org, assumes that you are using |
60 | 61 | the `lbmk` git repository, which | the `lbmk` git repository, which |
61 | 62 | you can download using the instructions on [the code review page](../../git.md). | you can download using the instructions on [the code review page](../../git.md). |
62 | 63 | ||
63 | 64 | Git | Git |
64 | === | ||
65 | --- | ||
65 | 66 | ||
66 | 67 | Libreboot's build system uses Git, extensively. You should perform the steps | Libreboot's build system uses Git, extensively. You should perform the steps |
67 | 68 | below, *even if you're using a release archive*. | below, *even if you're using a release archive*. |
... | ... | You may also want to follow more of the steps here: | |
81 | 82 | <https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup> | <https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup> |
82 | 83 | ||
83 | 84 | How to compile Libreboot | How to compile Libreboot |
84 | ======================== | ||
85 | ------------------------ | ||
85 | 86 | ||
86 | 87 | Actual development/testing is always done using lbmk directly, and this | Actual development/testing is always done using lbmk directly, and this |
87 | 88 | includes when building from source. Here are some instructions to get you | includes when building from source. Here are some instructions to get you |
88 | 89 | started: | started: |
89 | 90 | ||
90 | Zero..st, check time/date | ||
91 | ------------------------- | ||
91 | ### Zero..st, check time/date | ||
92 | 92 | ||
93 | 93 | Make sure date/hwclock report the correct time and date on your system, | Make sure date/hwclock report the correct time and date on your system, |
94 | 94 | because parts of the build process download from HTTPS servers and wrong | because parts of the build process download from HTTPS servers and wrong |
95 | 95 | time or date can cause connections to be dropped during negotiation. | time or date can cause connections to be dropped during negotiation. |
96 | 96 | ||
97 | First, install build dependencies | ||
98 | --------------------------------- | ||
97 | ### First, install build dependencies | ||
99 | 98 | ||
100 | 99 | Libreboot includes a script that automatically installs build dependencies | Libreboot includes a script that automatically installs build dependencies |
101 | 100 | according to the selected linux distro. | according to the selected linux distro. |
... | ... | Technically, any Linux distribution can be used to build libreboot. | |
133 | 132 | However, you will have to write your own script for installing build | However, you will have to write your own script for installing build |
134 | 133 | dependencies. | dependencies. |
135 | 134 | ||
136 | Debian Trixie/Sid | ||
137 | ----------------- | ||
135 | ### Debian Trixie/Sid | ||
138 | 136 | ||
139 | 137 | Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, | Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, |
140 | 138 | provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and | provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and |
... | ... | When we tested with this configuration, the KGPE-D16 images also compiled. | |
171 | 169 | NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may | NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may |
172 | 170 | also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. | also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. |
173 | 171 | ||
174 | MIPS cross compiler | ||
175 | ------------------- | ||
172 | ### MIPS cross compiler | ||
176 | 173 | ||
177 | 174 | Libreboot has support for the Sony PlayStation (PS1/PSX), based on | Libreboot has support for the Sony PlayStation (PS1/PSX), based on |
178 | 175 | the PCSX-Redux Open BIOS. If you're doing a full release build, and/or | the PCSX-Redux Open BIOS. If you're doing a full release build, and/or |
... | ... | If your distro doesn't have the MIPS compiler available, | |
187 | 184 | the [PlayStation](../install/playstation.md) page provides instructions for | the [PlayStation](../install/playstation.md) page provides instructions for |
188 | 185 | manual installation; please do this in addition to the normal dependencies. | manual installation; please do this in addition to the normal dependencies. |
189 | 186 | ||
190 | Next, build ROM images | ||
191 | ---------------------- | ||
187 | ### Next, build ROM images | ||
192 | 188 | ||
193 | 189 | Libreboot MaKe (lbmk) automatically runs all necessary commands; for | Libreboot MaKe (lbmk) automatically runs all necessary commands; for |
194 | 190 | example, `./mk -b coreboot` will automatically build the required payloads | example, `./mk -b coreboot` will automatically build the required payloads |
... | ... | or get a list of supported build targets: | |
207 | 203 | ||
208 | 204 | ./mk -b coreboot list | ./mk -b coreboot list |
209 | 205 | ||
210 | Or maybe just build payloads? | ||
211 | ----------------------------- | ||
206 | ### Or maybe just build payloads? | ||
212 | 207 | ||
213 | 208 | 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: |
214 | 209 | ||
... | ... | Or perhaps add a new board! The maintenance manual will teach you how the | |
235 | 230 | Libreboot build system (lbmk) works! | Libreboot build system (lbmk) works! |
236 | 231 | ||
237 | 232 | A note about documentation (and this page) | A note about documentation (and this page) |
238 | ========================================== | ||
233 | ------------------------------- | ||
239 | 234 | ||
240 | 235 | From Libreboot 20231021 onwards, *all* releases (including 20231021) | From Libreboot 20231021 onwards, *all* releases (including 20231021) |
241 | 236 | have `lbwww.git` (the website) and `lbwww-img.git` (images for the website) | have `lbwww.git` (the website) and `lbwww-img.git` (images for the website) |
File site/docs/build/index.uk.md changed (mode: 100644) (index 5a67bdc..d984a0f) | |||
... | ... | x-toc-enable: true | |
7 | 7 | still in English, and there may be some differences aside from translation, | still in English, and there may be some differences aside from translation, |
8 | 8 | versus the English version.** | versus the English version.** |
9 | 9 | ||
10 | WARNING: eCryptfs file name limits | ||
11 | ================================= | ||
12 | |||
13 | Do not run the build system on a eCryptfs file system, because it has | ||
14 | very short file name limits and Libreboot's build system deals with very | ||
15 | long file names. We commonly get reports from this by Linux Mint users | ||
16 | who encrypt their home directory with eCryptfs; regular LUKS encryption will | ||
17 | do nicely. | ||
18 | |||
19 | 10 | Introduction | Introduction |
20 | ============ | ||
11 | ------------ | ||
21 | 12 | ||
22 | 13 | Система побудови libreboot, називається `lbmk`, скорочення від `LibreBoot MaKe`, і цей | Система побудови libreboot, називається `lbmk`, скорочення від `LibreBoot MaKe`, і цей |
23 | 14 | документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати | документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати |
... | ... | libreboot з доступного джерельного коду. | |
34 | 25 | Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни | Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни |
35 | 26 | до нього: [керівництво обслуговування libreboot](../maintain/) | до нього: [керівництво обслуговування libreboot](../maintain/) |
36 | 27 | ||
28 | ### WARNING: eCryptfs file name limits | ||
29 | |||
30 | Do not run the build system on a eCryptfs file system, because it has | ||
31 | very short file name limits and Libreboot's build system deals with very | ||
32 | long file names. We commonly get reports from this by Linux Mint users | ||
33 | who encrypt their home directory with eCryptfs; regular LUKS encryption will | ||
34 | do nicely. | ||
35 | |||
37 | 36 | System requirements | System requirements |
38 | =================== | ||
37 | ------------------- | ||
39 | 38 | ||
40 | 39 | You must ensure that you have the correct operating system, CPU, RAM, disk space | You must ensure that you have the correct operating system, CPU, RAM, disk space |
41 | 40 | and so on. | and so on. |
... | ... | System requirements are documented in | |
44 | 43 | the [lbmk maintenance manual](../maintain/#system-requirements). | the [lbmk maintenance manual](../maintain/#system-requirements). |
45 | 44 | ||
46 | 45 | Multi-threaded builds | Multi-threaded builds |
47 | ===================== | ||
46 | --------------------- | ||
48 | 47 | ||
49 | 48 | 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 |
50 | 49 | it by doing e.g. | it by doing e.g. |
... | ... | it by doing e.g. | |
54 | 53 | This would make lbmk run on 4 threads. | This would make lbmk run on 4 threads. |
55 | 54 | ||
56 | 55 | Environmental variables | Environmental variables |
57 | ======================= | ||
56 | ----------------------- | ||
58 | 57 | ||
59 | 58 | Please read about environmental variables in [the build | Please read about environmental variables in [the build |
60 | 59 | instructions](../maintain/), before running lbmk. You should set | instructions](../maintain/), before running lbmk. You should set |
... | ... | your variables accordingly, though you do not technically need to; some | |
62 | 61 | of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). | of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). |
63 | 62 | ||
64 | 63 | Environmental variables | Environmental variables |
65 | ======================= | ||
64 | ----------------------- | ||
66 | 65 | ||
67 | 66 | Please read about environmental variables in [the build | Please read about environmental variables in [the build |
68 | 67 | instructions](../maintain/), before running lbmk. You should set | instructions](../maintain/), before running lbmk. You should set |
... | ... | your variables accordingly, though you do not technically need to; some | |
70 | 69 | of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). | of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). |
71 | 70 | ||
72 | 71 | Git | Git |
73 | === | ||
72 | --- | ||
74 | 73 | ||
75 | 74 | Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки | Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки |
76 | 75 | знизу, *навіть, якщо ви використовуєте архів випуску*. | знизу, *навіть, якщо ви використовуєте архів випуску*. |
... | ... | Git | |
90 | 89 | <https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup> | <https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup> |
91 | 90 | ||
92 | 91 | Build | Build |
93 | ===== | ||
92 | ----- | ||
94 | 93 | ||
95 | Zero..st, check time/date | ||
96 | ------------------------- | ||
94 | ### Zero..st, check time/date | ||
97 | 95 | ||
98 | 96 | Make sure date/hwclock report the correct time and date on your system, | Make sure date/hwclock report the correct time and date on your system, |
99 | 97 | because parts of the build process download from HTTPS servers and wrong | because parts of the build process download from HTTPS servers and wrong |
100 | 98 | time or date can cause connections to be dropped during negotiation. | time or date can cause connections to be dropped during negotiation. |
101 | 99 | ||
102 | Побудова з джерельного коду | ||
103 | ============================ | ||
100 | ### Побудова з джерельного коду | ||
104 | 101 | ||
105 | 102 | Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також | Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також |
106 | 103 | стосується збирання з джерельного коду. Ось кілька інструкцій, щоб | стосується збирання з джерельного коду. Ось кілька інструкцій, щоб |
... | ... | Check: `config/dependencies/` for list of supported distros. | |
125 | 122 | Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей | Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей |
126 | 123 | побудови. | побудови. |
127 | 124 | ||
128 | Debian Trixie/Sid | ||
129 | ----------------- | ||
125 | ### Debian Trixie/Sid | ||
130 | 126 | ||
131 | 127 | Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, | Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, |
132 | 128 | provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and | provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and |
... | ... | When we tested with this configuration, the KGPE-D16 images also compiled. | |
163 | 159 | NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may | NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may |
164 | 160 | also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. | also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. |
165 | 161 | ||
166 | MIPS cross compiler | ||
167 | ------------------- | ||
162 | ### MIPS cross compiler | ||
168 | 163 | ||
169 | 164 | Libreboot has support for the Sony PlayStation (PS1/PSX), based on | Libreboot has support for the Sony PlayStation (PS1/PSX), based on |
170 | 165 | the PCSX-Redux Open BIOS. If you're doing a full release build, and/or | the PCSX-Redux Open BIOS. If you're doing a full release build, and/or |
... | ... | If your distro doesn't have the MIPS compiler available, | |
179 | 174 | the [PlayStation](../install/playstation.md) page provides instructions for | the [PlayStation](../install/playstation.md) page provides instructions for |
180 | 175 | manual installation; please do this in addition to the normal dependencies. | manual installation; please do this in addition to the normal dependencies. |
181 | 176 | ||
182 | Next, build ROM images | ||
183 | ---------------------- | ||
177 | ### Next, build ROM images | ||
184 | 178 | ||
185 | 179 | В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати | В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати |
186 | 180 | лише одну команду, з свіжого Git clone, для побудови образів ROM: | лише одну команду, з свіжого Git clone, для побудови образів ROM: |
File site/docs/grub/index.md changed (mode: 100644) (index 21f4ce8..1825c96) | |||
... | ... | x-toc-enable: true | |
5 | 5 | ||
6 | 6 | GRUB already has excellent | GRUB already has excellent |
7 | 7 | documentation, but there are aspects of libreboot that deserve special | documentation, but there are aspects of libreboot that deserve special |
8 | treatment. libreboot provides the option to boot GRUB directly, running on | ||
8 | treatment. Libreboot provides the option to boot GRUB directly, running on | ||
9 | 9 | bare metal (instead of using BIOS or UEFI services). | bare metal (instead of using BIOS or UEFI services). |
10 | 10 | ||
11 | Boot Linux from GRUB | ||
12 | -------------------- | ||
13 | |||
11 | 14 | [The Linux section](../linux/) also has libreboot-specific guides for | [The Linux section](../linux/) also has libreboot-specific guides for |
12 | 15 | dealing with Linux distributions when using GRUB directly, in this | dealing with Linux distributions when using GRUB directly, in this |
13 | 16 | setup. [A similar section exists for BSD operating systems](../bsd/) | setup. [A similar section exists for BSD operating systems](../bsd/) |
14 | 17 | ||
15 | 18 | GRUB keyboard layouts | GRUB keyboard layouts |
16 | ===================== | ||
19 | --------------------- | ||
17 | 20 | ||
18 | 21 | It is possible to use *any* keymap in GRUB. | It is possible to use *any* keymap in GRUB. |
19 | 22 | ||
20 | Custom keyboard layout | ||
21 | ---------------------- | ||
23 | ### Custom keyboard layout | ||
22 | 24 | ||
23 | 25 | Keymaps are stored in `config/grub/keymap/` | Keymaps are stored in `config/grub/keymap/` |
24 | 26 |
File site/docs/index.md changed (mode: 100644) (index 05ef75b..334b58a) | |||
1 | 1 | --- | --- |
2 | title: Documentation | ||
2 | title: Libreboot documentation | ||
3 | 3 | ... | ... |
4 | 4 | ||
5 | 5 | Always check [libreboot.org](https://libreboot.org/) for the latest updates to | Always check [libreboot.org](https://libreboot.org/) for the latest updates to |
... | ... | the [main news section](../news/). | |
9 | 9 | [Answers to Frequently Asked Questions about libreboot](../faq.md). | [Answers to Frequently Asked Questions about libreboot](../faq.md). |
10 | 10 | ||
11 | 11 | Need help? | Need help? |
12 | ========== | ||
12 | ---------- | ||
13 | 13 | ||
14 | 14 | Help is available on [Libreboot IRC](../contact.md) and other channels. | Help is available on [Libreboot IRC](../contact.md) and other channels. |
15 | 15 | ||
... | ... | Leah Rowe, the founder and lead developer of Libreboot, also owns and | |
22 | 22 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
23 | 23 | ||
24 | 24 | Installing libreboot | Installing libreboot |
25 | ==================== | ||
25 | -------------------- | ||
26 | 26 | ||
27 | 27 | - [How to install libreboot](install/) | - [How to install libreboot](install/) |
28 | 28 | ||
29 | Documentation related to operating systems | ||
30 | ============================ | ||
29 | Installing operating systems | ||
30 | ---------------------------- | ||
31 | 31 | ||
32 | 32 | - [How to install BSD on an x86 host system](bsd/) | - [How to install BSD on an x86 host system](bsd/) |
33 | 33 | - [Linux Guides](linux/) | - [Linux Guides](linux/) |
34 | 34 | ||
35 | 35 | Information for developers | Information for developers |
36 | ========================== | ||
36 | -------------------------- | ||
37 | 37 | ||
38 | 38 | - [How to compile the libreboot source code](build/) | - [How to compile the libreboot source code](build/) |
39 | 39 | - [Build system developer documentation](maintain/) | - [Build system developer documentation](maintain/) |
... | ... | Information for developers | |
41 | 41 | - [U-Boot payload](uboot/) | - [U-Boot payload](uboot/) |
42 | 42 | ||
43 | 43 | Other information | Other information |
44 | ================= | ||
44 | ----------------- | ||
45 | 45 | ||
46 | 46 | - [Miscellaneous](misc/) | - [Miscellaneous](misc/) |
47 | 47 | - [List of codenames](misc/codenames.md) | - [List of codenames](misc/codenames.md) |
File site/docs/index.uk.md changed (mode: 100644) (index 3d6bba7..2fc7309) | |||
... | ... | libreboot. Новини, включаючи оголошення про випу | |
9 | 9 | [Відповіді на поширені запитання про libreboot](../faq.md). | [Відповіді на поширені запитання про libreboot](../faq.md). |
10 | 10 | ||
11 | 11 | Need help? | Need help? |
12 | ========== | ||
12 | ---------- | ||
13 | 13 | ||
14 | 14 | Help is available on [Libreboot IRC](../contact.md) and other channels. | Help is available on [Libreboot IRC](../contact.md) and other channels. |
15 | 15 | ||
... | ... | Leah Rowe, the founder and lead developer of Libreboot, also owns and | |
22 | 22 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
23 | 23 | ||
24 | 24 | Встановлення libreboot | Встановлення libreboot |
25 | ==================== | ||
25 | ---------------------- | ||
26 | 26 | ||
27 | 27 | - [Як встановити libreboot](install/) | - [Як встановити libreboot](install/) |
28 | 28 | ||
29 | 29 | Документація, яка має відношення до операційних систем | Документація, яка має відношення до операційних систем |
30 | ============================ | ||
30 | ----------------------------------------------------- | ||
31 | 31 | ||
32 | 32 | - [Як встановити BSD на x86 хостову систему](bsd/) | - [Як встановити BSD на x86 хостову систему](bsd/) |
33 | 33 | - [Керівництва Linux](linux/) | - [Керівництва Linux](linux/) |
34 | 34 | ||
35 | 35 | Інформація для розробників | Інформація для розробників |
36 | ========================== | ||
36 | -------------------------- | ||
37 | 37 | ||
38 | 38 | - [Як зібрати джерельний код libreboot](build/) | - [Як зібрати джерельний код libreboot](build/) |
39 | 39 | - [Документація розробника системи побудови](maintain/) | - [Документація розробника системи побудови](maintain/) |
... | ... | operates Minifree Ltd; sales provide funding for the Libreboot project. | |
41 | 41 | - [Корисне навантаження U-Boot](uboot/) | - [Корисне навантаження U-Boot](uboot/) |
42 | 42 | ||
43 | 43 | Інша інформація | Інша інформація |
44 | ================= | ||
44 | --------------- | ||
45 | 45 | ||
46 | 46 | - [Різне](misc/) | - [Різне](misc/) |
47 | 47 | - [Список кодових назв](misc/codenames.md) | - [Список кодових назв](misc/codenames.md) |
File site/docs/index.zh-cn.md changed (mode: 100644) (index 459a513..40ac6e4) | |||
... | ... | libreboot 的最新更新,可以在 [libreboot.org](https://libreboot.org) 上 | |
7 | 7 | [libreboot 常见问题解答](../faq.md). | [libreboot 常见问题解答](../faq.md). |
8 | 8 | ||
9 | 9 | Need help? | Need help? |
10 | ========== | ||
10 | ---------- | ||
11 | 11 | ||
12 | 12 | Help is available on [Libreboot IRC](../contact.md) and other channels. | Help is available on [Libreboot IRC](../contact.md) and other channels. |
13 | 13 | ||
... | ... | Leah Rowe, the founder and lead developer of Libreboot, also owns and | |
20 | 20 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
21 | 21 | ||
22 | 22 | 安装 libreboot | 安装 libreboot |
23 | ==================== | ||
23 | -------------- | ||
24 | 24 | ||
25 | 25 | - [如何安装 libreboot](install/) | - [如何安装 libreboot](install/) |
26 | 26 | ||
27 | 27 | 操作系统相关文档 | 操作系统相关文档 |
28 | ============================ | ||
28 | ---------------- | ||
29 | 29 | ||
30 | 30 | - [如何在 x86 机器上安装 BSD](bsd/) | - [如何在 x86 机器上安装 BSD](bsd/) |
31 | 31 | - [Linux 指南](linux/) | - [Linux 指南](linux/) |
32 | 32 | ||
33 | 33 | 开发者信息 | 开发者信息 |
34 | ========================== | ||
34 | ---------- | ||
35 | 35 | ||
36 | 36 | - [如何编译 libreboot 源代码](build/) | - [如何编译 libreboot 源代码](build/) |
37 | 37 | - [构建系统开发者文档](maintain/) | - [构建系统开发者文档](maintain/) |
... | ... | operates Minifree Ltd; sales provide funding for the Libreboot project. | |
39 | 39 | - [U-Boot payload](uboot/) | - [U-Boot payload](uboot/) |
40 | 40 | ||
41 | 41 | 其它信息 | 其它信息 |
42 | ================= | ||
42 | -------- | ||
43 | 43 | ||
44 | 44 | - [杂项](misc/) | - [杂项](misc/) |
45 | 45 | - [代号列表](misc/codenames.md) | - [代号列表](misc/codenames.md) |
File site/docs/install/c201.md changed (mode: 100644) (index 50db03e..8858ab1) | |||
1 | 1 | --- | --- |
2 | title: ASUS Chromebook C201 installation guide | ||
2 | title: Install Libreboot ASUS Chromebook C201 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | ASUS Chromebook C201 motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
12 | |||
6 | 13 | WARNING: This board is known to have non-functioning video init at the time | WARNING: This board is known to have non-functioning video init at the time |
7 | 14 | of writing, 19 February 2023. It is as yet unsolved. | of writing, 19 February 2023. It is as yet unsolved. |
8 | 15 | ||
9 | 16 | See: <https://notabug.org/libreboot/lbmk/issues/136> | See: <https://notabug.org/libreboot/lbmk/issues/136> |
10 | 17 | ||
11 | 18 | Introduction | Introduction |
12 | =========== | ||
19 | ------------ | ||
13 | 20 | ||
14 | 21 | This page contains information about assembly and disassembly, for flashing | This page contains information about assembly and disassembly, for flashing |
15 | 22 | the ASUS Chromebook C201 externally. It will also link to internal flashing | the ASUS Chromebook C201 externally. It will also link to internal flashing |
16 | 23 | instructions, and information about U-Boot. | instructions, and information about U-Boot. |
17 | 24 | ||
18 | Flashrom | ||
19 | -------- | ||
25 | ### Flashrom | ||
20 | 26 | ||
21 | 27 | A special fork of flashrom, maintained by Google, is required for flashing. | A special fork of flashrom, maintained by Google, is required for flashing. |
22 | 28 | More information about this is present in the generic [chromebook flashing | More information about this is present in the generic [chromebook flashing |
... | ... | NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog | |
26 | 32 | now, as of 27 January 2024, which is a fork of flashrom, but the chromium fork | now, as of 27 January 2024, which is a fork of flashrom, but the chromium fork |
27 | 33 | is another fork of flashrom, and you should use that on chromebooks. | is another fork of flashrom, and you should use that on chromebooks. |
28 | 34 | ||
29 | Depthcharge payload (obsolete) | ||
30 | ------------------------------ | ||
35 | ### Depthcharge payload (obsolete) | ||
31 | 36 | ||
32 | 37 | This board was also supported in Libreboot 20160907, with the Depthcharge | This board was also supported in Libreboot 20160907, with the Depthcharge |
33 | 38 | payload. Support was dropped in later releases, and then re-added in the | payload. Support was dropped in later releases, and then re-added in the |
... | ... | instructions pertaining to Depthcharge: | |
40 | 45 | * <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/hardware/c201.md> | * <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/hardware/c201.md> |
41 | 46 | ||
42 | 47 | U-boot payload | U-boot payload |
43 | ============== | ||
48 | -------------- | ||
44 | 49 | ||
45 | 50 | U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi | U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi |
46 | 51 | Yasak (`alpernebbi` on Libreboot IRC). | Yasak (`alpernebbi` on Libreboot IRC). |
... | ... | Read the section pertaining to U-boot payload: | |
50 | 55 | [u-boot payload documentation for Libreboot](../uboot/) | [u-boot payload documentation for Libreboot](../uboot/) |
51 | 56 | ||
52 | 57 | Internal flashing | Internal flashing |
53 | ================= | ||
58 | ------------------ | ||
54 | 59 | ||
55 | 60 | External flashing is possible, but only necessary in the event of a *brick*. | External flashing is possible, but only necessary in the event of a *brick*. |
56 | 61 | If you're flashing good firmware, and the machine boots properly, you can | If you're flashing good firmware, and the machine boots properly, you can |
... | ... | the information has moved. | |
62 | 67 | ||
63 | 68 | See: [chromebook flashing instructions](chromebooks.md) | See: [chromebook flashing instructions](chromebooks.md) |
64 | 69 | ||
65 | Write-protect screw | ||
66 | ------------------- | ||
70 | ### Write-protect screw | ||
67 | 71 | ||
68 | 72 | The chromebook flashing instructions, linked above, refer to a *screw* that | The chromebook flashing instructions, linked above, refer to a *screw* that |
69 | 73 | can be turned, to disable flash protection. This is necessary, for internally | can be turned, to disable flash protection. This is necessary, for internally |
... | ... | The write protect screw can be put back in place later, when the device | |
86 | 90 | is known to be in a working state. | is known to be in a working state. |
87 | 91 | ||
88 | 92 | External flashing | External flashing |
89 | ================= | ||
93 | ----------------- | ||
90 | 94 | ||
91 | 95 | If the machine is no longer booting, due to bad firmware, you can unbrick | If the machine is no longer booting, due to bad firmware, you can unbrick |
92 | 96 | it externally. Refer to [external flash instructions](spi.md). | it externally. Refer to [external flash instructions](spi.md). |
File site/docs/install/chromebooks.md changed (mode: 100644) (index a8b762f..715c177) | |||
1 | 1 | --- | --- |
2 | title: Chromebook flashing instructions | ||
2 | title: Install Libreboot on a Chromebook | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on various ARM64-based | ||
10 | Chromebook laptops. Libreboot replaces proprietary BIOS/UEFI firmware, though | ||
11 | it should be noted that Google already ships coreboot and their own payload | ||
12 | called Depthcharge, which is all free software; the difference with Libreboot | ||
13 | is that it replaces Depthcharge with *U-Boot* (as a coreboot payload), which | ||
14 | provides a lightweight UEFI boot implementation that can boot regular Linux and | ||
15 | BSD systems more easily than Depthcharge. | ||
16 | |||
6 | 17 | NOTE: daisy, peach and veyron boards were temporarily removed from | NOTE: daisy, peach and veyron boards were temporarily removed from |
7 | 18 | lbmk. They should be re-added to Libreboot at a later date. The reasons | lbmk. They should be re-added to Libreboot at a later date. The reasons |
8 | 19 | are written on the hardware compatibility page. For now, Libreboot only | are written on the hardware compatibility page. For now, Libreboot only |
... | ... | custom firmware on ChromeOS devices. This guide usually refers to all of | |
13 | 24 | them as "Chromebook"s since it's the most common form factor. | them as "Chromebook"s since it's the most common form factor. |
14 | 25 | ||
15 | 26 | Flashrom | Flashrom |
16 | ======== | ||
27 | -------- | ||
17 | 28 | ||
18 | 29 | A special fork of flashrom, maintained by Google, is required for flashing | A special fork of flashrom, maintained by Google, is required for flashing |
19 | 30 | these Chromebook devices. See: | these Chromebook devices. See: |
... | ... | these Chromebook devices. See: | |
23 | 34 | You must then compile this from source, and run it. | You must then compile this from source, and run it. |
24 | 35 | ||
25 | 36 | Enable ChromeOS "Developer Mode" | Enable ChromeOS "Developer Mode" |
26 | ================================ | ||
37 | -------------------------------- | ||
27 | 38 | ||
28 | 39 | Chromebooks are locked-down by default to only run ChromeOS. Most things | Chromebooks are locked-down by default to only run ChromeOS. Most things |
29 | 40 | you will want to do on these require you unlock it by enabling their | you will want to do on these require you unlock it by enabling their |
... | ... | where you can run programs. Most of the root file system is read-only, | |
44 | 55 | except for `/usr/local` and any mounted drives under `/media/removable`. | except for `/usr/local` and any mounted drives under `/media/removable`. |
45 | 56 | ||
46 | 57 | Identify your device | Identify your device |
47 | ==================== | ||
58 | -------------------- | ||
48 | 59 | ||
49 | 60 | It's more common to refer to ChromeOS boards by their codenames, and | It's more common to refer to ChromeOS boards by their codenames, and |
50 | 61 | many compatible devices can share a single codename. Libreboot ROM | many compatible devices can share a single codename. Libreboot ROM |
... | ... | device's. There are a number of ways to find it, some are: | |
56 | 67 | - Run `crossystem hwid` or `crossystem fwid` in a terminal | - Run `crossystem hwid` or `crossystem fwid` in a terminal |
57 | 68 | ||
58 | 69 | Back up stock firmware | Back up stock firmware |
59 | ====================== | ||
70 | ---------------------- | ||
60 | 71 | ||
61 | 72 | The stock firmware on your device comes with some irreplaceable data | The stock firmware on your device comes with some irreplaceable data |
62 | 73 | that is unique to your device. This can include the serial number and | that is unique to your device. This can include the serial number and |
... | ... | If you can already boot a conventional Linux distro on your Chromebook, | |
78 | 89 | you may be able to use `flashrom -p linux_mtd` on that system instead. | you may be able to use `flashrom -p linux_mtd` on that system instead. |
79 | 90 | ||
80 | 91 | Check external flashability | Check external flashability |
81 | =========================== | ||
92 | --------------------------- | ||
82 | 93 | ||
83 | 94 | If a ROM image you flash is broken, you may need to restore the stock | If a ROM image you flash is broken, you may need to restore the stock |
84 | 95 | firmware to fix the board to get internal flashing working. Refer to the | firmware to fix the board to get internal flashing working. Refer to the |
... | ... | mechanism that lets you flash externally using a special USB debugging | |
93 | 104 | cable. However, most boards that Libreboot supports do not have this. | cable. However, most boards that Libreboot supports do not have this. |
94 | 105 | ||
95 | 106 | Disable write protection | Disable write protection |
96 | ======================== | ||
107 | ------------------------ | ||
97 | 108 | ||
98 | 109 | Chromebooks have the SPI flash chip partially write-protected by | Chromebooks have the SPI flash chip partially write-protected by |
99 | 110 | default, but thankfully this protection can be disabled by the device | default, but thankfully this protection can be disabled by the device |
... | ... | compile and use that flashrom fork to disable write-protection. There is | |
128 | 139 | no `lbmk` support yet for automatically building it. | no `lbmk` support yet for automatically building it. |
129 | 140 | ||
130 | 141 | Prepare the ROM image | Prepare the ROM image |
131 | ===================== | ||
142 | --------------------- | ||
132 | 143 | ||
133 | 144 | Libreboot ROM image layouts are currently incompatible with the regions | Libreboot ROM image layouts are currently incompatible with the regions |
134 | 145 | that should be carried over from the stock firmware. However, the | that should be carried over from the stock firmware. However, the |
... | ... | keep backups of the original firmware. | |
143 | 154 | TODO: Instructions to preserve vital data when FMAPs are compatible. | TODO: Instructions to preserve vital data when FMAPs are compatible. |
144 | 155 | ||
145 | 156 | Flash the ROM image | Flash the ROM image |
146 | =================== | ||
157 | ------------------- | ||
147 | 158 | ||
148 | 159 | WARNING: Although none are supported yet, make sure not to flash ROM | WARNING: Although none are supported yet, make sure not to flash ROM |
149 | 160 | images on x86 Chromebooks without injecting non-redistributable code | images on x86 Chromebooks without injecting non-redistributable code |
... | ... | If you can already boot a conventional Linux distro on your Chromebook, | |
163 | 174 | you may be able to use `flashrom -p linux_mtd` on that system instead. | you may be able to use `flashrom -p linux_mtd` on that system instead. |
164 | 175 | ||
165 | 176 | Install an operating system (experimental research) | Install an operating system (experimental research) |
166 | =========================== | ||
177 | ------------------------------------------------ | ||
167 | 178 | ||
168 | 179 | In general, ARM-compatible distros targeting U-boot can be used. There are | In general, ARM-compatible distros targeting U-boot can be used. There are |
169 | 180 | three general methods for installing that vary depending on the distribution: | three general methods for installing that vary depending on the distribution: |
... | ... | three general methods for installing that vary depending on the distribution: | |
173 | 184 | 3. extlinux.conf - a newer flat, bootloader-spec text file that typically lives | 3. extlinux.conf - a newer flat, bootloader-spec text file that typically lives |
174 | 185 | in /boot/extlinux/extlinux.conf | in /boot/extlinux/extlinux.conf |
175 | 186 | ||
176 | Successful installations: | ||
177 | ------------------------- | ||
187 | ### Successful installations: | ||
178 | 188 | ||
179 | 189 | * [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md). | * [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md). |
180 | 190 | * [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md). | * [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md). |
181 | 191 | * [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201). | * [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201). |
182 | 192 | ||
183 | Unsuccessful installations: | ||
184 | --------------------------- | ||
193 | ### Unsuccessful installations: | ||
185 | 194 | ||
186 | 195 | * [OpenBSD on Samsung Chromebook Plus XE513C24](../uboot/uboot-openbsd.md). | * [OpenBSD on Samsung Chromebook Plus XE513C24](../uboot/uboot-openbsd.md). |
187 | 196 | ||
188 | Other promising ARM-compatible distros: | ||
189 | --------------------------------------- | ||
197 | ### Other promising ARM-compatible distros: | ||
190 | 198 | ||
191 | 199 | * [Armbian](https://www.armbian.com/uefi-arm64/). | * [Armbian](https://www.armbian.com/uefi-arm64/). |
192 | 200 | ||
193 | 201 | See also | See also |
194 | ======== | ||
202 | -------- | ||
195 | 203 | ||
196 | 204 | * [ChromiumOS Documentation](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/) | * [ChromiumOS Documentation](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/) |
197 | 205 | * [ChromiumOS Firmware Test Manual](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/firmware_test_manual.md) | * [ChromiumOS Firmware Test Manual](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/firmware_test_manual.md) |
File site/docs/install/d945gclf.md changed (mode: 100644) (index 7254918..2dc97ba) | |||
1 | 1 | --- | --- |
2 | title: Intel D945GCLF desktop board | ||
2 | title: Install Libreboot on Intel D945GCLF and/or D945GCLF2 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | x-toc-enable: true | |
18 | 18 | | **Graphics** | ? | | | **Graphics** | ? | |
19 | 19 | | **Display** | None. | | | **Display** | None. | |
20 | 20 | | **Memory** | Up to 2GB | | | **Memory** | Up to 2GB | |
21 | | **Architecture** | x86_64 | | ||
21 | | **Architecture** | x86\_64 | | ||
22 | 22 | | **Original boot firmware** | Intel BIOS | | | **Original boot firmware** | Intel BIOS | |
23 | 23 | | **Intel ME/AMD PSP** | Not present. | | | **Intel ME/AMD PSP** | Not present. | |
24 | 24 | | **Flash chip** | SOIC-8 512KiB | | | **Flash chip** | SOIC-8 512KiB | |
... | ... | P*: Partially works with vendor firmware | |
47 | 47 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
48 | 48 | | **SeaBIOS with GRUB** | Doesn't work | | | **SeaBIOS with GRUB** | Doesn't work | |
49 | 49 | </div> | </div> |
50 | |||
51 | Open source BIOS/UEFI firmware | ||
52 | ------------------------------ | ||
53 | |||
54 | This document will teach you how to install Libreboot, on your | ||
55 | Intel D945GCLF and/or D945GCLF2 desktop motherboard. Libreboot replaces | ||
56 | proprietary BIOS/UEFI firmware. | ||
57 | |||
50 | 58 | If you just want flashing instructions, go to | If you just want flashing instructions, go to |
51 | 59 | [../install/d945gclf.md](../install/d945gclf.md) | [../install/d945gclf.md](../install/d945gclf.md) |
52 | 60 | ||
53 | 61 | D945GCLF2D also reported working by a user. | D945GCLF2D also reported working by a user. |
54 | 62 | ||
55 | 63 | Introduction | Introduction |
56 | ============ | ||
64 | ------------ | ||
57 | 65 | ||
58 | 66 | This board is a mini-itx desktop board for 2008. It uses an atom 230, | This board is a mini-itx desktop board for 2008. It uses an atom 230, |
59 | 67 | which is a singe core CPU but it is hyperthreaded so it appears to have | which is a singe core CPU but it is hyperthreaded so it appears to have |
... | ... | hyperthreaded). Since the board is almost identical (and coreboot code | |
76 | 84 | seem to indicate that it works, since MAX\_CPU=4 is set), it is believed | seem to indicate that it works, since MAX\_CPU=4 is set), it is believed |
77 | 85 | that it should also work but this is untested. | that it should also work but this is untested. |
78 | 86 | ||
79 | Remarks about vendor bios: | ||
80 | -------------------------- | ||
87 | ### Remarks about vendor bios: | ||
81 | 88 | ||
82 | 89 | - Without coreboot/libreboot this board is completely useless, since the | - Without coreboot/libreboot this board is completely useless, since the |
83 | 90 | vendor bios is very bad. It cannot boot from any HDD whether it is | vendor bios is very bad. It cannot boot from any HDD whether it is |
... | ... | And SPI SOIC8 flash chip\ | |
96 | 103 | {width="50%" height="50%"} | {width="50%" height="50%"} |
97 | 104 | ||
98 | 105 | Flashing instructions {#clip} | Flashing instructions {#clip} |
99 | ===================== | ||
106 | ----------------------------- | ||
100 | 107 | ||
101 | 108 | Refer to [spi.md](spi.md) for how to re-flash externally. | Refer to [spi.md](spi.md) for how to re-flash externally. |
102 | 109 | ||
103 | 110 | Here is an image of the flash chip:\ | Here is an image of the flash chip:\ |
104 | 111 |  |  |
105 | 112 | ||
106 | How to replace thermal paste and fan | ||
107 | ------------------------------------ | ||
113 | ### How to replace thermal paste and fan | ||
108 | 114 | ||
109 | 115 | This board comes with very crappy disposable loud fan, that one has no | This board comes with very crappy disposable loud fan, that one has no |
110 | 116 | bearings, which can not be repaired or oiled properly, do not waste your | bearings, which can not be repaired or oiled properly, do not waste your |
File site/docs/install/deguard.md changed (mode: 100644) (index 9a78966..7980fd5) | |||
... | ... | title: Disabling Intel Boot Guard on MEv11 | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Deguard enables open source BIOS/UEFI firmware | ||
7 | ------------------------------------------- | ||
8 | |||
9 | On *some* (not all) motherboards, the vendor chooses to fuse a key during | ||
10 | manufacturing, which ensures that you can *only* boot firmware cryptographically | ||
11 | signed and verified by *them*. This is a form of DRM that otherwise prevents | ||
12 | use of coreboot-based firmware, such as Libreboot. We are *against* DRM in the | ||
13 | Libreboot project. *Intel* markets the Boot Guard as a security feature, but | ||
14 | we regard it simply as an *attack* | ||
15 | on [Free Software](https://writefreesoftware.org/learn). | ||
16 | |||
17 | This document will teach you about *deguard*, which is a utility that modifies | ||
18 | the Intel ME (which implements Boot Guard) in such a way as to *disable* the | ||
19 | Intel Boot Guard, by exploiting a known security vulnerability on MEv11. The | ||
20 | Libreboot project *uses deguard* for *several* coreboot ports, such as | ||
21 | the [Lenovo ThinkPad T480 with Libreboot](t480.md) or | ||
22 | the [Dell OptiPlex 3050 Micro with Libreboot](dell3050.md). | ||
23 | |||
6 | 24 | This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake | This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake |
7 | 25 | machines; note that Coffeelake includes KabyLake Refresh and may have MEv12. | machines; note that Coffeelake includes KabyLake Refresh and may have MEv12. |
8 | 26 | This page concerns only those platforms that have Intel MEv11, not MEv12. The | This page concerns only those platforms that have Intel MEv11, not MEv12. The |
9 | 27 | facts on this page are applicable to both *mobile* and *desktop* platforms. | facts on this page are applicable to both *mobile* and *desktop* platforms. |
10 | 28 | ||
11 | The Intel Boot Guard is a security mechanism implemented by intel, but not all | ||
29 | The Intel Boot Guard is a "security" mechanism implemented by intel, but not all | ||
12 | 30 | vendors enable it. If enabled, the bootblock in the flash is protected at boot | vendors enable it. If enabled, the bootblock in the flash is protected at boot |
13 | 31 | time by cryptographic signature verification; this means only the vendor can | time by cryptographic signature verification; this means only the vendor can |
14 | 32 | update the flash. | update the flash. |
... | ... | On systems with MEv11, a bug exists in older versions (of MEv11) that allows | |
17 | 35 | for unsigned code execution, at a very early stage in the boot process, to the | for unsigned code execution, at a very early stage in the boot process, to the |
18 | 36 | point that almost all of the ME firmware in flash can be fully replaced. The | point that almost all of the ME firmware in flash can be fully replaced. The |
19 | 37 | ME is also what implements Boot Guard, and the hack is possible *before* Boot | ME is also what implements Boot Guard, and the hack is possible *before* Boot |
20 | Guard is enforced, allowing for it to be disabled. | ||
38 | Guard is enforced, allowing for it to be disabled. This does *not* unfuse the | ||
39 | keys set by the manufacturer, but rather, it bypasses all checks against them. | ||
21 | 40 | ||
22 | 41 | See: [CVE-2017-5705](https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00086.html) | See: [CVE-2017-5705](https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00086.html) |
23 | 42 | ||
43 | Deguard utility | ||
44 | --------------- | ||
45 | |||
24 | 46 | Mate Kukri, who authored the ThinkPad T480/T480 and OptiPlex 3050 Micro ports, | Mate Kukri, who authored the ThinkPad T480/T480 and OptiPlex 3050 Micro ports, |
25 | 47 | wrote a tool called *deguard*, which Libreboot uses on these boards. This tool | wrote a tool called *deguard*, which Libreboot uses on these boards. This tool |
26 | 48 | reconfigures the ME, exploiting it so as to disable the Boot Guard. | reconfigures the ME, exploiting it so as to disable the Boot Guard. |
... | ... | and Libreboot provides a mirror of this repository: | |
35 | 57 | ||
36 | 58 | More information is available there. | More information is available there. |
37 | 59 | ||
60 | How it works | ||
61 | ------------ | ||
62 | |||
38 | 63 | This is done by externally flashing an older version. Libreboot's build system | This is done by externally flashing an older version. Libreboot's build system |
39 | 64 | automatically downloads this older version, runs `me_cleaner` on it, and applies | automatically downloads this older version, runs `me_cleaner` on it, and applies |
40 | 65 | the deguard hack; this includes machine-specific ME configuration, which is | the deguard hack; this includes machine-specific ME configuration, which is |
... | ... | normally only available to vendors; the *deguard* utility written by Mate Kukri | |
50 | 75 | is available under a free software license, and included by default in Libreboot | is available under a free software license, and included by default in Libreboot |
51 | 76 | releases. It can be used for *any* MEv11-based system. | releases. It can be used for *any* MEv11-based system. |
52 | 77 | ||
78 | How to use deguard | ||
79 | ------------------ | ||
80 | |||
53 | 81 | To download deguard in lbmk (Libreboot's build system), do this: | To download deguard in lbmk (Libreboot's build system), do this: |
54 | 82 | ||
55 | 83 | ./mk -f deguard | ./mk -f deguard |
... | ... | were never fused, even if they were. [Previous work](https://trmm.net/TOCTOU/) | |
65 | 93 | has been done by others, related to the Boot Guard, but nothing quite so | has been done by others, related to the Boot Guard, but nothing quite so |
66 | 94 | thorough and easy to use as deguard existed previously! | thorough and easy to use as deguard existed previously! |
67 | 95 | ||
96 | T480/T480s MFS data | ||
97 | ------------------- | ||
98 | |||
99 | As of Libreboot 20241206, the upstream deguard project did not contain an MFS | ||
100 | config for Lenovo ThinkPad T480 and T480s, because Libreboot added them in an | ||
101 | out-of-tree patch (under Mate Kukri's direct guidance). | ||
102 | |||
103 | Therefore, if you're using deguard on a standalone/custom coreboot setup without | ||
104 | using Libreboot/lbmk, please do ensure that they are there. The tool itself | ||
105 | provides a README, or you could simply import the config data from lbmk if | ||
106 | you wish. | ||
107 | |||
108 | How does deguard work? | ||
109 | ---------------------- | ||
110 | |||
68 | 111 | Mate Kukri was able to figure this out and implement deguard, using existing | Mate Kukri was able to figure this out and implement deguard, using existing |
69 | 112 | work done by PT Research and Youness El Alaoui, exploiting the Intel SA 00086 | work done by PT Research and Youness El Alaoui, exploiting the Intel SA 00086 |
70 | 113 | bug which you can read more about here: | bug which you can read more about here: |
... | ... | years to try to hack around it, as a matter of user freedom. So remember: when | |
82 | 125 | Intel is talking about security, they mean *their* security, not yours. To them, | Intel is talking about security, they mean *their* security, not yours. To them, |
83 | 126 | you are simply flashing malicious code. But they are the ones with malice. | you are simply flashing malicious code. But they are the ones with malice. |
84 | 127 | ||
128 | Thanks | ||
129 | ------ | ||
130 | |||
85 | 131 | Mate Kukri and others who work on such hacks are heroes, and they have done a | Mate Kukri and others who work on such hacks are heroes, and they have done a |
86 | 132 | great service to the Libreboot project. | great service to the Libreboot project. |
87 | 133 | ||
88 | 134 | Many more machines are now possible to port to coreboot, thanks to this hack. | Many more machines are now possible to port to coreboot, thanks to this hack. |
135 | |||
136 | The Libreboot project owes Mate Kukri a debt of gratitude, many times over. |
File site/docs/install/dell3050.md changed (mode: 100644) (index f8fc99d..bd033e3) | |||
1 | 1 | --- | --- |
2 | title: Dell OptiPlex 3050 Micro | ||
2 | title: Install Libreboot on Dell OptiPlex 3050 Micro | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
52 | 52 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
53 | 53 | </div> | </div> |
54 | 54 | ||
55 | Buy pre-installed | ||
56 | ================= | ||
55 | Open source BIOS/UEFI firmware | ||
56 | ------------------------- | ||
57 | 57 | ||
58 | **Dell OptiPlex 3050 Micro is available to purchase with Libreboot preinstalled. | ||
59 | See: <https://minifree.org/product/libreboot-3050-micro/>** | ||
60 | |||
61 | Introduction | ||
62 | ============ | ||
58 | This document will teach you how to install Libreboot, on your | ||
59 | Dell OptiPlex 3050 Micro desktop motherboard. Libreboot replaces proprietary | ||
60 | BIOS/UEFI firmware. | ||
63 | 61 | ||
64 | 62 | **Unavailable in Libreboot 20240612 or earlier. You must [compile from | **Unavailable in Libreboot 20240612 or earlier. You must [compile from |
65 | 63 | source](../build/), or use a version newer than Libreboot 20240612.** | source](../build/), or use a version newer than Libreboot 20240612.** |
66 | 64 | ||
65 | ### Buy pre-installed | ||
66 | |||
67 | **Dell OptiPlex 3050 Micro is available to purchase with Libreboot preinstalled. | ||
68 | See: <https://minifree.org/product/libreboot-3050-micro/>** | ||
69 | |||
67 | 70 | Official information about the computer can be found here: | Official information about the computer can be found here: |
68 | 71 | <https://www.dell.com/support/manuals/en-uk/optiplex-3050-micro/optiplex_3050-mff_om/processor-specifications?guid=guid-8ca53ab2-a85d-42d5-9106-5214220306aa&lang=en-us> | <https://www.dell.com/support/manuals/en-uk/optiplex-3050-micro/optiplex_3050-mff_om/processor-specifications?guid=guid-8ca53ab2-a85d-42d5-9106-5214220306aa&lang=en-us> |
69 | 72 | ||
70 | Warning regarding NVMe SSDs | ||
71 | --------------------------- | ||
73 | ### Warning regarding NVMe SSDs | ||
72 | 74 | ||
73 | 75 | Please use at least Libreboot | Please use at least Libreboot |
74 | 76 | 20241206 *[revision 3](../../news/libreboot20241206.Revisions.md#revision-3-11-december-2024)* | 20241206 *[revision 3](../../news/libreboot20241206.Revisions.md#revision-3-11-december-2024)* |
... | ... | NVMe SSD slot. | |
80 | 82 | ||
81 | 83 | See: [Libreboot 20241206 release](../../news/libreboot20241206.md) | See: [Libreboot 20241206 release](../../news/libreboot20241206.md) |
82 | 84 | ||
83 | Build ROM image from source | ||
84 | --------------------------- | ||
85 | ### Build ROM image from source | ||
85 | 86 | ||
86 | 87 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
87 | 88 | ||
... | ... | possible inside the ME on this mainboard, giving it much higher potential for | |
94 | 95 | software freedom in the future. | software freedom in the future. |
95 | 96 | ||
96 | 97 | Issues | Issues |
97 | ====== | ||
98 | ------ | ||
98 | 99 | ||
99 | 100 | This machine basically works flawlessly, as of the Libreboot 20241206 release. | This machine basically works flawlessly, as of the Libreboot 20241206 release. |
100 | 101 | All the initial bugs were fixed, e.g. PWM fan control works now. A very nice | All the initial bugs were fixed, e.g. PWM fan control works now. A very nice |
... | ... | Selection of audio devices and outputs is a bit idiosyncratic on this board. | |
110 | 111 | Just play with pavucontrol for your setup and it should work fine. | Just play with pavucontrol for your setup and it should work fine. |
111 | 112 | ||
112 | 113 | Installation | Installation |
113 | ============ | ||
114 | ------------ | ||
114 | 115 | ||
115 | Insert binary files | ||
116 | ------------------- | ||
116 | ### Insert binary files | ||
117 | 117 | ||
118 | 118 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
119 | 119 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
... | ... | libre ME could include, for example, running an out-of-bound packet filter | |
133 | 133 | on a secure network (with flash write protection, making it invincible to any | on a secure network (with flash write protection, making it invincible to any |
134 | 134 | OS-based software attacks). | OS-based software attacks). |
135 | 135 | ||
136 | MAC address | ||
137 | ----------- | ||
136 | ### MAC address | ||
138 | 137 | ||
139 | 138 | This has a Realtek NIC inside, instead of Intel, so the MAC address will not | This has a Realtek NIC inside, instead of Intel, so the MAC address will not |
140 | 139 | change. This means: there is no GbE region in the flash. | change. This means: there is no GbE region in the flash. |
... | ... | from Linux if you want to. | |
145 | 144 | This is great, because that's one less complexity to deal with during | This is great, because that's one less complexity to deal with during |
146 | 145 | installation. | installation. |
147 | 146 | ||
148 | Flash a ROM image (software) | ||
149 | ----------------- | ||
147 | ### Flash a ROM image (software) | ||
150 | 148 | ||
151 | 149 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
152 | 150 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
... | ... | variables to flash during shutdown sequence, so you should *pull the plug* to | |
161 | 159 | shut it down (remove the power by pulling the plug) after flashprog | shut it down (remove the power by pulling the plug) after flashprog |
162 | 160 | says `VERIFIED`. | says `VERIFIED`. |
163 | 161 | ||
164 | Flash a ROM image (hardware) | ||
165 | ----------------- | ||
162 | ### Flash a ROM image (hardware) | ||
166 | 163 | ||
167 | 164 | For general information, please refer to [25xx NOR flash | For general information, please refer to [25xx NOR flash |
168 | 165 | instructions](../install/spi.md) - that page refers to use of socketed flash. | instructions](../install/spi.md) - that page refers to use of socketed flash. |
... | ... | You can otherwise flash internally, including from factory firmware(if the | |
179 | 176 | service jumper is set). | service jumper is set). |
180 | 177 | ||
181 | 178 | Errata | Errata |
182 | ====== | ||
179 | ------ | ||
183 | 180 | ||
184 | Power-on after power failure | ||
185 | ---------------------------- | ||
181 | ### Power-on after power failure | ||
186 | 182 | ||
187 | 183 | Older Libreboot revisions made this machine always turn on, when plugging in | Older Libreboot revisions made this machine always turn on, when plugging in |
188 | 184 | a power supply (charger brick), if a previous power loss was observed. This is | a power supply (charger brick), if a previous power loss was observed. This is |
... | ... | by reading the `tree` variable in your board's `target.cfg` file within lbmk). | |
203 | 199 | Use the patch as reference, to modify the coreboot behaviour as you wish, and | Use the patch as reference, to modify the coreboot behaviour as you wish, and |
204 | 200 | re-compile [from source](../build/). | re-compile [from source](../build/). |
205 | 201 | ||
206 | TPM disabled | ||
207 | ------------ | ||
202 | ### TPM disabled | ||
208 | 203 | ||
209 | 204 | The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, | The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, |
210 | 205 | due to buggy TPM drivers there. | due to buggy TPM drivers there. |
211 | 206 | ||
212 | Legacy 8254 timer | ||
213 | ----------------- | ||
207 | ### Legacy 8254 timer | ||
214 | 208 | ||
215 | 209 | Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. | Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. |
216 | 210 | ||
217 | HyperThreading on 3050 Micro | ||
218 | -------------------------- | ||
211 | ### HyperThreading on 3050 Micro | ||
219 | 212 | ||
220 | 213 | Also called SMT. This is a feature where you get 2 threads on a single core. | Also called SMT. This is a feature where you get 2 threads on a single core. |
221 | 214 | It can improve performance in some workloads, but is actually a performance | It can improve performance in some workloads, but is actually a performance |
File site/docs/install/dell7010.md changed (mode: 100644) (index d2cd57d..acf00b6) | |||
1 | 1 | --- | --- |
2 | title: Dell OptiPlex 7010/9010 SFF | ||
2 | title: Install Libreboot on Dell OptiPlex 7010/9010 SFF | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
58 | 58 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
59 | 59 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
60 | 60 | </div> | </div> |
61 | Introduction | ||
62 | ============ | ||
61 | |||
62 | Open source BIOS/UEFI firmware | ||
63 | ------------------------------ | ||
64 | |||
65 | This document will teach you how to install Libreboot, on your | ||
66 | Dell OptiPlex 7010 SFF and/or OptiPlex 9010 SFF desktop motherboard. | ||
67 | Libreboot replaces proprietary BIOS/UEFI firmware. | ||
63 | 68 | ||
64 | 69 | **Unavailable in Libreboot 20240612 or earlier. You must [compile from | **Unavailable in Libreboot 20240612 or earlier. You must [compile from |
65 | 70 | source](../build/), or use a version newer than Libreboot 20240612.** | source](../build/), or use a version newer than Libreboot 20240612.** |
... | ... | source](../build/), or use a version newer than Libreboot 20240612.** | |
67 | 72 | Official information about the computer can be found here: | Official information about the computer can be found here: |
68 | 73 | <https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us> | <https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us> |
69 | 74 | ||
70 | Build ROM image from source | ||
71 | --------------------------- | ||
75 | ### Build ROM image from source | ||
72 | 76 | ||
73 | 77 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
74 | 78 | ||
... | ... | The build target, when building from source, is thus: | |
76 | 80 | ||
77 | 81 | NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same mainboard. | NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same mainboard. |
78 | 82 | ||
79 | Installation | ||
80 | ============ | ||
83 | Alternatively, you can use one of Libreboot's pre-compiled release images. | ||
84 | |||
85 | Install Libreboot | ||
86 | ----------------- | ||
81 | 87 | ||
82 | Insert binary files | ||
83 | ------------------- | ||
88 | Libreboot can be installed via internal and/or external flashing methods. | ||
89 | |||
90 | ### Insert vendor files | ||
84 | 91 | ||
85 | 92 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
86 | 93 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
... | ... | Libreboot's build system automatically downloads and processes these files if | |
90 | 97 | you build Libreboot from source, but the same logic that it uses must be re-run | you build Libreboot from source, but the same logic that it uses must be re-run |
91 | 98 | if you're using a release image. | if you're using a release image. |
92 | 99 | ||
93 | Set MAC address | ||
94 | --------------- | ||
100 | ### Set MAC address | ||
95 | 101 | ||
96 | 102 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
97 | 103 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
98 | 104 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). |
99 | 105 | ||
100 | WARNING about CPU/GPU compatibility | ||
101 | ------------------------------- | ||
106 | ### WARNING about CPU/GPU compatibility | ||
102 | 107 | ||
103 | 108 | If you want to use onboard graphics, you must have a CPU that has a GPU built | If you want to use onboard graphics, you must have a CPU that has a GPU built |
104 | 109 | into it. You can find a list here: | into it. You can find a list here: |
... | ... | used, SeaBIOS executes its VGA ROM which provides video init, instead of | |
112 | 117 | coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, | coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, |
113 | 118 | so the GRUB payload will also work. | so the GRUB payload will also work. |
114 | 119 | ||
115 | Flash a ROM image (software) | ||
116 | ----------------- | ||
120 | ### Flash a ROM image (software) | ||
117 | 121 | ||
118 | 122 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
119 | 123 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
... | ... | variables to flash during shutdown sequence, so you should *pull the plug* to | |
129 | 133 | shut it down (remove the power by pulling the plug) after flashprog | shut it down (remove the power by pulling the plug) after flashprog |
130 | 134 | says `VERIFIED`. | says `VERIFIED`. |
131 | 135 | ||
132 | Flash a ROM image (hardware) | ||
133 | ----------------- | ||
136 | ### Flash a ROM image (hardware) | ||
134 | 137 | ||
135 | 138 | For general information, please refer to [25xx NOR flash | For general information, please refer to [25xx NOR flash |
136 | 139 | instructions](../install/spi.md) - that page refers to use of socketed flash. | instructions](../install/spi.md) - that page refers to use of socketed flash. |
File site/docs/install/dell780.md changed (mode: 100644) (index 22e4a37..14bbcf6) | |||
1 | 1 | --- | --- |
2 | title: Dell OptiPlex 780 MT/USFF | ||
2 | title: Install Libreboot on Dell OptiPlex 780 MT/USFF | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
52 | 52 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
53 | 53 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
54 | 54 | </div> | </div> |
55 | Introduction | ||
56 | ============ | ||
55 | |||
56 | Open source BIOS/UEFI firmware | ||
57 | ------------------------- | ||
58 | |||
59 | This document will teach you how to install Libreboot, on your | ||
60 | Dell OptiPlex 780 desktop motherboard. Libreboot replaces proprietary | ||
61 | BIOS/UEFI firmware. | ||
57 | 62 | ||
58 | 63 | **Unavailable in Libreboot 20240612 or earlier. You must [compile from | **Unavailable in Libreboot 20240612 or earlier. You must [compile from |
59 | 64 | source](../build/), or use a version newer than Libreboot 20240612.** | source](../build/), or use a version newer than Libreboot 20240612.** |
... | ... | source](../build/), or use a version newer than Libreboot 20240612.** | |
61 | 66 | Official information about the computer can be found here: | Official information about the computer can be found here: |
62 | 67 | <https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us> | <https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us> |
63 | 68 | ||
64 | Build ROM image from source | ||
65 | --------------------------- | ||
69 | ### Build ROM image from source | ||
66 | 70 | ||
67 | 71 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
68 | 72 | ||
... | ... | The `_truncate` image is needed if you're flashing Libreboot internally from | |
75 | 79 | the original Dell firmware. Otherwise, you only need the regular images that | the original Dell firmware. Otherwise, you only need the regular images that |
76 | 80 | lack `_truncate` in the file name. | lack `_truncate` in the file name. |
77 | 81 | ||
78 | 100% FREE | ||
79 | ========= | ||
82 | Alternatively, you can use release images instead of compiling from source. | ||
83 | |||
84 | ### 100% FREE / OPEN SOURCE! | ||
80 | 85 | ||
81 | 86 | This mainboard is entirely free software in the main boot flash. It is using | This mainboard is entirely free software in the main boot flash. It is using |
82 | 87 | the Intel X4X / ICH10 platform, same as on the already supported | the Intel X4X / ICH10 platform, same as on the already supported |
83 | 88 | Gigabyte GA-G41M-ES2L mainboard. | Gigabyte GA-G41M-ES2L mainboard. |
84 | 89 | ||
85 | Installation | ||
86 | ============ | ||
90 | Install Libreboot | ||
91 | ----------------- | ||
87 | 92 | ||
88 | Set MAC address | ||
89 | --------------- | ||
93 | These next sections will teach you how to install Libreboot, on your | ||
94 | Dell OptiPlex 780 motherboard. | ||
95 | |||
96 | ### Set MAC address | ||
90 | 97 | ||
91 | 98 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
92 | 99 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
93 | 100 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). |
94 | 101 | ||
95 | WARNING about CPU/GPU compatibility | ||
96 | ------------------------------- | ||
102 | ### WARNING about CPU/GPU compatibility | ||
97 | 103 | ||
98 | 104 | Coreboot has libre initialisation code for Intel graphics, but libre | Coreboot has libre initialisation code for Intel graphics, but libre |
99 | 105 | initialisation code is not available for most graphics cards. This machine can | initialisation code is not available for most graphics cards. This machine can |
... | ... | used, SeaBIOS executes its VGA ROM which provides video init, instead of | |
102 | 108 | coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, | coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, |
103 | 109 | so the GRUB payload will also work. | so the GRUB payload will also work. |
104 | 110 | ||
105 | Flash a ROM image (software) | ||
106 | ----------------- | ||
111 | ### Flash a ROM image (software) | ||
107 | 112 | ||
108 | 113 | **Always make sure to dump a copy of the current flash first. ALSO: [make | **Always make sure to dump a copy of the current flash first. ALSO: [make |
109 | 114 | sure /dev/mem protection is disabled](devmem.md) for the flashing to work!** | sure /dev/mem protection is disabled](devmem.md) for the flashing to work!** |
... | ... | the full image; the one without `_truncate` in the file name uses all of the | |
152 | 157 | flash, with the BIOS region ending at the 8MB limit, so the BIOS region is | flash, with the BIOS region ending at the 8MB limit, so the BIOS region is |
153 | 158 | therefore 2MB larger on those images. | therefore 2MB larger on those images. |
154 | 159 | ||
155 | Flash a ROM image (hardware) | ||
156 | ----------------- | ||
160 | ### Flash a ROM image (hardware) | ||
157 | 161 | ||
158 | 162 | For general information, please refer to [25xx NOR flash | For general information, please refer to [25xx NOR flash |
159 | 163 | instructions](../install/spi.md) - that page refers to use of socketed flash. | instructions](../install/spi.md) - that page refers to use of socketed flash. |
File site/docs/install/dell9020.md changed (mode: 100644) (index 00e390c..7264cd2) | |||
1 | 1 | --- | --- |
2 | title: Dell OptiPlex 9020 SFF/MT (and 7020), and XE2 MT/SFF | ||
2 | title: Install Libreboot on Dell OptiPlex 9020 SFF/MT (or 7020), or XE2 MT/SFF | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
62 | 62 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
63 | 63 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
64 | 64 | </div> | </div> |
65 | Introduction | ||
66 | ============ | ||
65 | |||
66 | Open source BIOS/UEFI firmware | ||
67 | ------------------------------ | ||
68 | |||
69 | This document will teach you how to install Libreboot, on your | ||
70 | Dell OptiPlex 9020/7020 SFF/MT or XE2 SFF/MT desktop motherboard. Libreboot | ||
71 | replaces proprietary BIOS/UEFI firmware. | ||
67 | 72 | ||
68 | 73 | **Unavailable in Libreboot 20240126 or earlier. You must [compile from | **Unavailable in Libreboot 20240126 or earlier. You must [compile from |
69 | 74 | source](../build/), or use a version newer than Libreboot 20240126** | source](../build/), or use a version newer than Libreboot 20240126** |
... | ... | Official information about this machine can be found here: | |
72 | 77 | <https://i.dell.com/sites/doccontent/shared-content/data-sheets/en/Documents/optiplex-9020-micro-technical-spec-sheet.pdf> | <https://i.dell.com/sites/doccontent/shared-content/data-sheets/en/Documents/optiplex-9020-micro-technical-spec-sheet.pdf> |
73 | 78 | ||
74 | 79 | ECC memory support | ECC memory support |
75 | ================== | ||
80 | ------------------ | ||
76 | 81 | ||
77 | 82 | The 9020 MT/SFF do not have ECC memory support. However: | The 9020 MT/SFF do not have ECC memory support. However: |
78 | 83 | ||
79 | Dell Precision T1700 | ||
80 | -------------------- | ||
84 | ### Dell Precision T1700 | ||
81 | 85 | ||
82 | 86 | The T1700 is a version of the same motherboard, but with ECC support. You | The T1700 is a version of the same motherboard, but with ECC support. You |
83 | 87 | can flash the 9020 MT image on this board, and it will boot. | can flash the 9020 MT image on this board, and it will boot. |
... | ... | if a blob *can* be avoided, it must be avoided. Therefore, `mrc.bin` is avoided | |
99 | 103 | since the libre raminit works pretty well these days (ECC notwithstanding). | since the libre raminit works pretty well these days (ECC notwithstanding). |
100 | 104 | ||
101 | 105 | Buy Libreboot preinstalled | Buy Libreboot preinstalled |
102 | ====================== | ||
106 | -------------------------- | ||
103 | 107 | ||
104 | 108 | You can buy this machine professionally serviced, with Libreboot preinstalled | You can buy this machine professionally serviced, with Libreboot preinstalled |
105 | 109 | and your choice of Linux/BSD system. Many upgrades are also available. See: | and your choice of Linux/BSD system. Many upgrades are also available. See: |
... | ... | Sales are conducted to provide funding for the Libreboot project. Leah Rowe | |
111 | 115 | who runs Minifree, is also Libreboot's founder and lead developer. | who runs Minifree, is also Libreboot's founder and lead developer. |
112 | 116 | ||
113 | 117 | Patch | Patch |
114 | ===== | ||
118 | ----- | ||
115 | 119 | ||
116 | 120 | Mate Kukri is the author of the original coreboot port. Thanks go to Kukri. | Mate Kukri is the author of the original coreboot port. Thanks go to Kukri. |
117 | 121 | Kukri's patch is here: | Kukri's patch is here: |
... | ... | Kukri's patch is here: | |
121 | 125 | This patch, at this revision (patchset 31), is what Libreboot uses for this | This patch, at this revision (patchset 31), is what Libreboot uses for this |
122 | 126 | port. | port. |
123 | 127 | ||
124 | QUBES: how to get it working | ||
125 | ------------------- | ||
128 | ### QUBES: how to get it working | ||
126 | 129 | ||
127 | 130 | Qubes requires IOMMU to be turned on. Please now read the next section. | Qubes requires IOMMU to be turned on. Please now read the next section. |
128 | 131 | Qubes *WILL* work, if you configure Libreboot as directed below, but otherwise | Qubes *WILL* work, if you configure Libreboot as directed below, but otherwise |
129 | 132 | it will fail by default. This is because Libreboot *disables the IOMMU by | it will fail by default. This is because Libreboot *disables the IOMMU by |
130 | 133 | default*, on this board. | default*, on this board. |
131 | 134 | ||
132 | Graphics cards and IOMMU | ||
133 | -------------- | ||
135 | ### Graphics cards and IOMMU | ||
134 | 136 | ||
135 | 137 | IOMMU is buggy for some reason (we don't know why yet), when you plug in | IOMMU is buggy for some reason (we don't know why yet), when you plug in |
136 | 138 | a graphics card. The graphics card simply won't work. On some of them, | a graphics card. The graphics card simply won't work. On some of them, |
... | ... | IOMMU, and only if vt-d is present. This is still the behaviour in Libreboot, | |
158 | 160 | but Libreboot adds an additional check: if `iommu` is not set in nvram, it | but Libreboot adds an additional check: if `iommu` is not set in nvram, it |
159 | 161 | defaults to on, but if it's set to disabled, then IOMMU is not initialised. | defaults to on, but if it's set to disabled, then IOMMU is not initialised. |
160 | 162 | ||
161 | Enable IOMMU | ||
162 | ------------ | ||
163 | ### Enable IOMMU | ||
163 | 164 | ||
164 | 165 | IOMMU is *disabled by default*, universally, on this board. You can turn it on, | IOMMU is *disabled by default*, universally, on this board. You can turn it on, |
165 | 166 | by modifying the ROM image prior to flashing, or modifying it prior to | by modifying the ROM image prior to flashing, or modifying it prior to |
... | ... | with IOMMU enabled: | |
205 | 206 | ||
206 | 207 | Make sure to configure your image accordingly. | Make sure to configure your image accordingly. |
207 | 208 | ||
208 | 7020 compatibility | ||
209 | ------------------ | ||
209 | ### 7020 compatibility | ||
210 | 210 | ||
211 | 211 | 7020/9020 MT each have the same motherboard. Flash the 9020 ROM from Libreboot | 7020/9020 MT each have the same motherboard. Flash the 9020 ROM from Libreboot |
212 | 212 | on your 7020, and it will work. | on your 7020, and it will work. |
... | ... | on your 7020, and it will work. | |
214 | 214 | Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides | Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides |
215 | 215 | separate targets for MT and SFF. | separate targets for MT and SFF. |
216 | 216 | ||
217 | Build ROM image from source | ||
218 | --------------------------- | ||
217 | ### Build ROM image from source | ||
219 | 218 | ||
220 | 219 | For the MT variant (7020 MT and 9020 MT): | For the MT variant (7020 MT and 9020 MT): |
221 | 220 | ||
... | ... | It is important that you choose the right one. The MT variant is the full | |
229 | 228 | MTX tower. | MTX tower. |
230 | 229 | ||
231 | 230 | Installation | Installation |
232 | ============ | ||
231 | ------------ | ||
233 | 232 | ||
234 | Insert binary files | ||
235 | ------------------- | ||
233 | ### Insert binary files | ||
236 | 234 | ||
237 | 235 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
238 | 236 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
... | ... | Libreboot's build system automatically downloads and processes these files if | |
242 | 240 | you build Libreboot from source, but the same logic that it uses must be re-run | you build Libreboot from source, but the same logic that it uses must be re-run |
243 | 241 | if you're using a release image. | if you're using a release image. |
244 | 242 | ||
245 | Set MAC address | ||
246 | --------------- | ||
243 | ### Set MAC address | ||
247 | 244 | ||
248 | 245 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
249 | 246 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
250 | 247 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). |
251 | 248 | ||
252 | Flash a ROM image (software) | ||
253 | ----------------- | ||
249 | ### Flash a ROM image (software) | ||
254 | 250 | ||
255 | 251 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
256 | 252 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
... | ... | the original Dell BIOS, remove power from the computer instead of | |
270 | 266 | shutting it down normally. It's recommended to use a live USB instead | shutting it down normally. It's recommended to use a live USB instead |
271 | 267 | of the internal drive to prevent potential filesystem corruption.** | of the internal drive to prevent potential filesystem corruption.** |
272 | 268 | ||
273 | Flash a ROM image (hardware) | ||
274 | ----------------- | ||
269 | ### Flash a ROM image (hardware) | ||
275 | 270 | ||
276 | 271 | **REMOVE all power sources and connectors from the machine, before doing this. | **REMOVE all power sources and connectors from the machine, before doing this. |
277 | 272 | This is to prevent short circuiting and power surges while flashing.** | This is to prevent short circuiting and power surges while flashing.** |
File site/docs/install/devmem.md changed (mode: 100644) (index 554dd3b..f6ba944) | |||
... | ... | access once you no longer need it, as this is a useful security layer against | |
12 | 12 | any wrongful operations that you may later inadvertently run as root. | any wrongful operations that you may later inadvertently run as root. |
13 | 13 | ||
14 | 14 | Also disable SecureBoot | Also disable SecureBoot |
15 | ======================= | ||
15 | ----------------------- | ||
16 | 16 | ||
17 | 17 | If you're using a UEFI setup, it's probably because you're using | If you're using a UEFI setup, it's probably because you're using |
18 | 18 | a latter Intel platform and want to flash Libreboot internally, from | a latter Intel platform and want to flash Libreboot internally, from |
... | ... | using the factory firmware, please ensure that *SecureBoot* is disabled, | |
23 | 23 | because it will interfere with lower memory accesses if left enabled. | because it will interfere with lower memory accesses if left enabled. |
24 | 24 | ||
25 | 25 | FLASH ERRORS (and workarounds) | FLASH ERRORS (and workarounds) |
26 | ======================= | ||
26 | ------------------------------ | ||
27 | 27 | ||
28 | 28 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) |
29 | 29 | now, as of 27 January 2024, which is a fork of flashrom. | now, as of 27 January 2024, which is a fork of flashrom. |
... | ... | This section relates to installing libreboot on supported targets. | |
35 | 35 | Right out of the gate, some users may experience errors with flashprog when | Right out of the gate, some users may experience errors with flashprog when |
36 | 36 | using the internal programmer. They are: | using the internal programmer. They are: |
37 | 37 | ||
38 | /dev/mem access error | ||
39 | --------------------- | ||
38 | ### /dev/mem access error | ||
40 | 39 | ||
41 | 40 | NOTE: if running `flashprog -p internal` for software based flashing, and you | NOTE: if running `flashprog -p internal` for software based flashing, and you |
42 | 41 | get an error related to `/dev/mem` access, you should reboot with | get an error related to `/dev/mem` access, you should reboot with |
... | ... | is `kernel.securelevel=-1`; see [NetBSD securelevel | |
48 | 47 | manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) | manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) |
49 | 48 | and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel). | and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel). |
50 | 49 | ||
51 | ERROR: Could not get I/O privileges | ||
52 | ------------------------------------ | ||
50 | ### ERROR: Could not get I/O privileges | ||
53 | 51 | ||
54 | 52 | Error message: `ERROR: Could not get I/O privileges (Function not implemented)` | Error message: `ERROR: Could not get I/O privileges (Function not implemented)` |
55 | 53 |
File site/docs/install/ga-g41m-es2l.md changed (mode: 100644) (index ecf1fa7..3d3e907) | |||
1 | 1 | --- | --- |
2 | title: Gigabyte GA-G41M-ES2L desktop board | ||
2 | title: Install Libreboot on Gigabyte GA-G41M-ES2L | ||
3 | 3 | ... | ... |
4 | 4 | ||
5 | 5 | <div class="specs"> | <div class="specs"> |
... | ... | P*: Partially works with vendor firmware | |
48 | 48 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
49 | 49 | </div> | </div> |
50 | 50 | ||
51 | Introduction | ||
52 | ============ | ||
51 | Open source BIOS/UEFI firmware | ||
52 | ------------------------------ | ||
53 | |||
54 | This document will teach you how to install Libreboot, on your | ||
55 | Gigabyte GA-G41M-ES2L desktop motherboard. Libreboot replaces proprietary | ||
56 | BIOS/UEFI firmware. | ||
53 | 57 | ||
54 | 58 | This is a desktop board using intel hardware (circa \~2009, ICH7 | This is a desktop board using intel hardware (circa \~2009, ICH7 |
55 | 59 | southbridge, similar performance-wise to the ThinkPad X200. It can make | southbridge, similar performance-wise to the ThinkPad X200. It can make |
... | ... | You can learn more about using the build system, lbmk, here:\ | |
89 | 93 | [libreboot build instructions](../build/) | [libreboot build instructions](../build/) |
90 | 94 | ||
91 | 95 | RAM | RAM |
92 | === | ||
96 | --- | ||
93 | 97 | ||
94 | 98 | **This board is very picky with RAM. If it doesn't boot, try an EHCI debug | **This board is very picky with RAM. If it doesn't boot, try an EHCI debug |
95 | 99 | dongle, serial usb adapter and null modem cable, or spkmodem, to get a | dongle, serial usb adapter and null modem cable, or spkmodem, to get a |
... | ... | Many other modules will probably work just fine, but raminit is very picky on | |
105 | 109 | this board. Your mileage *will* fluctuate, wildly. | this board. Your mileage *will* fluctuate, wildly. |
106 | 110 | ||
107 | 111 | MAC ADDRESS | MAC ADDRESS |
108 | =========== | ||
112 | ----------- | ||
109 | 113 | ||
110 | 114 | NOTE: due to a bug in the hardware, the MAC address is hardcoded in | NOTE: due to a bug in the hardware, the MAC address is hardcoded in |
111 | 115 | coreboot. Therefore, you must set your own MAC address in your | coreboot. Therefore, you must set your own MAC address in your |
... | ... | distro, to set a valid MAC address. By doing this, your NIC should | |
116 | 120 | work nicely. | work nicely. |
117 | 121 | ||
118 | 122 | Flash chip size {#flashchips} | Flash chip size {#flashchips} |
119 | =============== | ||
123 | --------------------- | ||
120 | 124 | ||
121 | 125 | Use this to find out: | Use this to find out: |
122 | 126 | ||
123 | 127 | flashprog -p internal | flashprog -p internal |
124 | 128 | ||
125 | 129 | Flashing instructions {#clip} | Flashing instructions {#clip} |
126 | ===================== | ||
130 | -------------------------- | ||
127 | 131 | ||
128 | 132 | Refer to [spi.md](spi.md) for how to set up an SPI programmer for | Refer to [spi.md](spi.md) for how to set up an SPI programmer for |
129 | 133 | external flashing. *You can only externally reprogram one of the chips | external flashing. *You can only externally reprogram one of the chips |
File site/docs/install/hp2170p.md changed (mode: 100644) (index 9a31bfa..8ff6be8) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook 2170p | ||
2 | title: Install Libreboot on HP EliteBook 2170p | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | there, before flashing. For posterity, | |
24 | 24 | | **Graphics** | Intel HD Graphics 4000 | | | **Graphics** | Intel HD Graphics 4000 | |
25 | 25 | | **Display** | 1366x768 11.6" TFT | | | **Display** | 1366x768 11.6" TFT | |
26 | 26 | | **Memory** | Two slots, max 8GB/slot (2x16GB), DDR3/sodimm | | | **Memory** | Two slots, max 8GB/slot (2x16GB), DDR3/sodimm | |
27 | | **Architecture** | x86_64 | | ||
27 | | **Architecture** | x86\_64 | | ||
28 | 28 | | **EC** | SMSC KBC1126, proprietary (in main boot flash) | | | **EC** | SMSC KBC1126, proprietary (in main boot flash) | |
29 | 29 | | **Original boot firmware** | HP UEFI firmware | | | **Original boot firmware** | HP UEFI firmware | |
30 | | **Intel ME/AMD PSP** | Present. Can be disabled with me_cleaner. | | ||
30 | | **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | | ||
31 | 31 | | **Flash chip** | SOIC-8 16MiB (128Mbit), in a socket | | | **Flash chip** | SOIC-8 16MiB (128Mbit), in a socket | |
32 | 32 | ||
33 | 33 | ||
... | ... | P*: Partially works with vendor firmware | |
55 | 55 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
56 | 56 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
57 | 57 | </div> | </div> |
58 | Introduction | ||
59 | ============ | ||
58 | |||
59 | Open source BIOS/UEFI firmware | ||
60 | ------------------------------ | ||
61 | |||
62 | This document will teach you how to install Libreboot, on your | ||
63 | HP EliteBook 2170p laptop motherboard. Libreboot replaces proprietary | ||
64 | BIOS/UEFI firmware. | ||
60 | 65 | ||
61 | 66 | This is a portable, 11.6" Ivy Bridge platform from HP. More information is | This is a portable, 11.6" Ivy Bridge platform from HP. More information is |
62 | 67 | available on the [coreboot | available on the [coreboot |
... | ... | in the latest GRUB revisions, and Libreboot's version of GRUB contains this fix. | |
69 | 74 | **Unavailable in Libreboot 20230625 or earlier. You must [compile from | **Unavailable in Libreboot 20230625 or earlier. You must [compile from |
70 | 75 | source](../build/), or use at least Libreboot 20231021.** | source](../build/), or use at least Libreboot 20231021.** |
71 | 76 | ||
72 | Build ROM image from source | ||
73 | --------------------------- | ||
77 | ### Build ROM image from source | ||
74 | 78 | ||
75 | 79 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
76 | 80 | ||
77 | 81 | ./mk -b coreboot hp2170p_16mb | ./mk -b coreboot hp2170p_16mb |
78 | 82 | ||
79 | Installation | ||
80 | ============ | ||
83 | Install Libreboot | ||
84 | ----------------- | ||
81 | 85 | ||
82 | Insert binary files | ||
83 | ------------------- | ||
86 | ### Insert binary files | ||
84 | 87 | ||
85 | 88 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
86 | 89 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
87 | 90 | to adhere to this advice will result in a bricked machine) | to adhere to this advice will result in a bricked machine) |
88 | 91 | ||
89 | Set MAC address | ||
90 | --------------- | ||
92 | ### Set MAC address | ||
91 | 93 | ||
92 | 94 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
93 | 95 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
94 | 96 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). |
95 | 97 | ||
96 | Flash a ROM image (software) | ||
97 | ----------------- | ||
98 | ### Flash a ROM image (software) | ||
98 | 99 | ||
99 | 100 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
100 | 101 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
101 | 102 | ||
102 | Flash a ROM image (hardware) | ||
103 | ----------------- | ||
103 | ### Flash a ROM image (hardware) | ||
104 | 104 | ||
105 | 105 | **REMOVE all power sources like battery, charger and so on, before doing this. | **REMOVE all power sources like battery, charger and so on, before doing this. |
106 | 106 | This is to prevent short circuiting and power surges while flashing; although | This is to prevent short circuiting and power surges while flashing; although |
File site/docs/install/hp2560p.md changed (mode: 100644) (index 9d37d5b..b3c4db2) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook 2560p | ||
2 | title: Install Libreboot on HP EliteBook 2560p | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | there, before flashing. For posterity, | |
36 | 36 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
37 | 37 | </div> | </div> |
38 | 38 | ||
39 | Open source BIOS/UEFI firmware | ||
40 | ------------------------- | ||
39 | 41 | ||
40 | Brief board info | ||
41 | ================ | ||
42 | This document will teach you how to install Libreboot, on your | ||
43 | HP EliteBook 2560p laptop motherboard. Libreboot replaces proprietary | ||
44 | BIOS/UEFI firmware. | ||
42 | 45 | ||
43 | 46 | HP EliteBook 2560p is a 12.5" laptop you can read more about here: | HP EliteBook 2560p is a 12.5" laptop you can read more about here: |
44 | 47 | ||
45 | 48 | <https://support.hp.com/us-en/product/hp-elitebook-2560p-notebook-pc/5071201> | <https://support.hp.com/us-en/product/hp-elitebook-2560p-notebook-pc/5071201> |
46 | 49 | ||
47 | 50 | Installation of Libreboot | Installation of Libreboot |
48 | ========================= | ||
51 | ------------------------- | ||
49 | 52 | ||
50 | 53 | Coreboot also has some information: | Coreboot also has some information: |
51 | 54 |
File site/docs/install/hp2570p.md changed (mode: 100644) (index 2915f7b..cfef220) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook 2570p | ||
2 | title: Install Libreboot on HP EliteBook 2570p | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | HP EliteBook 2570p | |
36 | 36 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
37 | 37 | </div> | </div> |
38 | 38 | ||
39 | Open source BIOS/UEFI firmware | ||
40 | ------------------------------ | ||
41 | |||
42 | This document will teach you how to install Libreboot, on your | ||
43 | HP EliteBook 2570p laptop motherboard. Libreboot replaces proprietary | ||
44 | BIOS/UEFI firmware. | ||
45 | |||
39 | 46 | Brief board info | Brief board info |
40 | ================ | ||
47 | ---------------- | ||
41 | 48 | ||
42 | 49 | Vendor info here: | Vendor info here: |
43 | 50 | ||
44 | 51 | <https://support.hp.com/us-en/document/c03412731> | <https://support.hp.com/us-en/document/c03412731> |
45 | 52 | ||
46 | 53 | Installation of Libreboot | Installation of Libreboot |
47 | ========================= | ||
54 | ------------------------- | ||
48 | 55 | ||
49 | 56 | Coreboot also has some information: | Coreboot also has some information: |
50 | 57 |
File site/docs/install/hp8200sff.md changed (mode: 100644) (index 72a31f4..1fc7092) | |||
1 | 1 | --- | --- |
2 | title: HP Elite 8200 SFF/MT and 6200 Pro Business | ||
2 | title: Install Libreboot on HP Elite 8200 SFF/MT and 6200 Pro Business | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | there, before flashing. For posterity, | |
23 | 23 | | **CPU** | Intel Sandy/Ivy Bridge | | | **CPU** | Intel Sandy/Ivy Bridge | |
24 | 24 | | **Graphics** | Intel HD Graphics or PCI-e low profile card | | | **Graphics** | Intel HD Graphics or PCI-e low profile card | |
25 | 25 | | **Memory** | Up to 32GB (4x8GB) | | | **Memory** | Up to 32GB (4x8GB) | |
26 | | **Architecture** | x86_64 | | ||
26 | | **Architecture** | x86\_64 | | ||
27 | 27 | | **Intel ME/AMD PSP** | Present, neutered | | | **Intel ME/AMD PSP** | Present, neutered | |
28 | 28 | | **Flash chip** | SOIC-8 8MiB | | | **Flash chip** | SOIC-8 8MiB | |
29 | 29 | ||
... | ... | P*: Partially works with vendor firmware | |
51 | 51 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
52 | 52 | </div> | </div> |
53 | 53 | ||
54 | Disable security before flashing | ||
55 | ================================ | ||
54 | Open source BIOS/UEFI firmware | ||
55 | ------------------------------ | ||
56 | 56 | ||
57 | Before internal flashing, you must first disable `/dev/mem` protections. Make | ||
58 | sure to re-enable them after you're finished. | ||
59 | |||
60 | See: [Disabling /dev/mem protection](../install/devmem.md) | ||
61 | |||
62 | Introduction | ||
63 | ============ | ||
57 | This document will teach you how to install Libreboot, on your | ||
58 | HP Elite 8200 SFF desktop motherboard. Libreboot replaces proprietary | ||
59 | BIOS/UEFI firmware. | ||
64 | 60 | ||
65 | 61 | Libreboot has support for this, in the Git repository and release versions | Libreboot has support for this, in the Git repository and release versions |
66 | 62 | from 20230423 onwards. | from 20230423 onwards. |
67 | 63 | ||
68 | Brief board info | ||
69 | ---------------- | ||
64 | ### Brief board info | ||
70 | 65 | ||
71 | 66 | HP Elite 8200 SFF is a small-form-factor desktop of Intel Sandybridge platform | HP Elite 8200 SFF is a small-form-factor desktop of Intel Sandybridge platform |
72 | 67 | which you can read more about here: | which you can read more about here: |
... | ... | Here's the [Technical Reference Manual](https://web.archive.org/web/201601091432 | |
81 | 76 | This system supports Ivy Bridge processors too. The original BIOS | This system supports Ivy Bridge processors too. The original BIOS |
82 | 77 | won't even POST with those, but with Libreboot they work fully. | won't even POST with those, but with Libreboot they work fully. |
83 | 78 | ||
84 | Installation of Libreboot | ||
79 | Disable security before flashing | ||
80 | -------------------------------- | ||
81 | |||
82 | Before internal flashing, you must first disable `/dev/mem` protections. Make | ||
83 | sure to re-enable them after you're finished. | ||
84 | |||
85 | See: [Disabling /dev/mem protection](../install/devmem.md) | ||
86 | |||
87 | Install Libreboot | ||
85 | 88 | ------------------------- | ------------------------- |
86 | 89 | ||
87 | 90 | You can actually just compile the Libreboot ROM for this, and flash the | You can actually just compile the Libreboot ROM for this, and flash the |
File site/docs/install/hp820g2.md changed (mode: 100644) (index e773b57..901f6ac) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook 820 G2 | ||
2 | title: Install Libreboot on HP EliteBook 820 G2 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
61 | 61 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
62 | 62 | </div> | </div> |
63 | 63 | ||
64 | Brief board info: | ||
64 | Open source BIOS/UEFI firmware | ||
65 | ------------------------- | ||
65 | 66 | ||
66 | Full hardware specifications can be found on HP's own website: | ||
67 | |||
68 | <https://support.hp.com/gb-en/document/c04543492> | ||
69 | |||
70 | Introduction | ||
71 | ============ | ||
67 | This document will teach you how to install Libreboot, on your | ||
68 | HP EliteBook 820 G2 laptop motherboard. Libreboot replaces proprietary | ||
69 | BIOS/UEFI firmware. | ||
72 | 70 | ||
73 | 71 | Please build this from source with lbmk: | Please build this from source with lbmk: |
74 | 72 | ||
... | ... | Please build this from source with lbmk: | |
77 | 75 | More information is available in the [build guide](../build/), including how | More information is available in the [build guide](../build/), including how |
78 | 76 | to install build dependencies. | to install build dependencies. |
79 | 77 | ||
78 | Alternatively, you can use pre-compiled release images. | ||
79 | |||
80 | Full hardware specifications can be found on HP's own website: | ||
81 | |||
82 | <https://support.hp.com/gb-en/document/c04543492> | ||
83 | |||
80 | 84 | Pre-compiled images now possible! | Pre-compiled images now possible! |
81 | 85 | -------------------------------- | -------------------------------- |
82 | 86 | ||
... | ... | considering that you still have about 10MB of unused flash space left, at least | |
105 | 109 | as of the 20241206 rev8 release. | as of the 20241206 rev8 release. |
106 | 110 | ||
107 | 111 | HP Sure Start | HP Sure Start |
108 | ============= | ||
112 | ------------- | ||
109 | 113 | ||
110 | 114 | There is a 16MB flash and a 2MB flash. Read this page for info: | There is a 16MB flash and a 2MB flash. Read this page for info: |
111 | 115 | <https://doc.coreboot.org/mainboard/hp/hp_sure_start.html> | <https://doc.coreboot.org/mainboard/hp/hp_sure_start.html> |
... | ... | the Libreboot installation, because it's also important when updating | |
136 | 140 | Libreboot later on. | Libreboot later on. |
137 | 141 | ||
138 | 142 | Installation of Libreboot | Installation of Libreboot |
139 | ========================= | ||
143 | ------------------------- | ||
140 | 144 | ||
141 | 145 | Make sure to set the MAC address in the flash: | Make sure to set the MAC address in the flash: |
142 | 146 | [Modify MAC addresses with nvmutil](../install/nvmutil.md). | [Modify MAC addresses with nvmutil](../install/nvmutil.md). |
... | ... | the [external flashing guide](../install/spi.md) so that you can learn how | |
181 | 185 | to actually flash it. | to actually flash it. |
182 | 186 | ||
183 | 187 | TPM 2.0 potentially supported | TPM 2.0 potentially supported |
184 | ============================== | ||
188 | ----------------------------- | ||
185 | 189 | ||
186 | 190 | The onboard TPM is an SLB 9660, which supports TPM 1.2 but it is known to be | The onboard TPM is an SLB 9660, which supports TPM 1.2 but it is known to be |
187 | 191 | compatible with TPM 2.0 via firmware upgrade. Although not yet tested, we have | compatible with TPM 2.0 via firmware upgrade. Although not yet tested, we have |
... | ... | Not yet used meaningfully by Libreboot itself, but the TPM can be used to | |
193 | 197 | implement things like measured boot. | implement things like measured boot. |
194 | 198 | ||
195 | 199 | References | References |
196 | ========== | ||
200 | ---------- | ||
197 | 201 | ||
198 | 202 | See: <https://doc.coreboot.org/soc/intel/broadwell/blobs.html> | See: <https://doc.coreboot.org/soc/intel/broadwell/blobs.html> |
199 | 203 |
File site/docs/install/hp8300usdt.md changed (mode: 100644) (index 0f23182..d18444a) | |||
1 | 1 | --- | --- |
2 | title: HP Compaq Elite 8300 USDT | ||
2 | title: Install Libreboot HP Compaq Elite 8300 USDT | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | there, before flashing. For posterity, | |
26 | 26 | | **Intel ME/AMD PSP** | Present, neutered | | | **Intel ME/AMD PSP** | Present, neutered | |
27 | 27 | | **Flash chip** | SOIC-16 16MiB | | | **Flash chip** | SOIC-16 16MiB | |
28 | 28 | ||
29 | Disable security before flashing | ||
30 | ================================ | ||
29 | Open source BIOS/UEFI firmware | ||
30 | ------------------------- | ||
31 | 31 | ||
32 | Before internal flashing, you must first disable `/dev/mem` protections. Make | ||
33 | sure to re-enable them after you're finished. | ||
34 | |||
35 | See: [Disabling /dev/mem protection](../install/devmem.md) | ||
36 | |||
37 | # Introduction | ||
32 | This document will teach you how to install Libreboot, on your | ||
33 | HP Elite 8300 USDT desktop motherboard. Libreboot replaces proprietary | ||
34 | BIOS/UEFI firmware. | ||
38 | 35 | ||
39 | 36 | This is a small but powerful desktop using Sandy or Ivy Bridge CPUs | This is a small but powerful desktop using Sandy or Ivy Bridge CPUs |
40 | 37 | (of up to 65W TDP). | (of up to 65W TDP). |
... | ... | These features are tested and confirmed working: | |
60 | 57 | * Wake on LAN | * Wake on LAN |
61 | 58 | * Rebooting | * Rebooting |
62 | 59 | ||
63 | # Installation | ||
60 | Disable security before flashing | ||
61 | -------------------------------- | ||
62 | |||
63 | Before internal flashing, you must first disable `/dev/mem` protections. Make | ||
64 | sure to re-enable them after you're finished. | ||
65 | |||
66 | See: [Disabling /dev/mem protection](../install/devmem.md) | ||
67 | |||
68 | Install Libreboot | ||
69 | ----------------- | ||
70 | |||
71 | These next sections will teach you how to install Libreboot on your | ||
72 | HP Elite 8300 USDT mainboard. | ||
64 | 73 | ||
65 | ## Internal flashing | ||
74 | ### Internal flashing | ||
66 | 75 | ||
67 | 76 | Internal flashing is possible. OEM BIOS versions 2.87 and 2.90 are confirmed | Internal flashing is possible. OEM BIOS versions 2.87 and 2.90 are confirmed |
68 | 77 | compatible with this guide. BIOS 2.05 is confirmed **not** to work. | compatible with this guide. BIOS 2.05 is confirmed **not** to work. |
... | ... | You can now move the jumper back to its original place. | |
115 | 124 | By default, Libreboot applies no write-protection, so | By default, Libreboot applies no write-protection, so |
116 | 125 | updating it can be done without the jumper anyway. | updating it can be done without the jumper anyway. |
117 | 126 | ||
118 | ## External flashing | ||
127 | ### External flashing | ||
119 | 128 | ||
120 | 129 | Unbricking is possible by external flashing. You first need to remove | Unbricking is possible by external flashing. You first need to remove |
121 | 130 | the optical disk drive and 2.5" HDD/SSD and the metal bracket that | the optical disk drive and 2.5" HDD/SSD and the metal bracket that |
File site/docs/install/hp8460p.md changed (mode: 100644) (index 4e86cbd..82532c1) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook 8460p | ||
2 | title: Install Libreboot on HP EliteBook 8460p | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
56 | 56 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
57 | 57 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
58 | 58 | </div> | </div> |
59 | Introduction | ||
60 | ============ | ||
59 | |||
60 | Open source BIOS/UEFI firmware | ||
61 | ------------------------- | ||
62 | |||
63 | These next sections will teach you how to install Libreboot, on your | ||
64 | HP EliteBook 8460p laptop motherboard. Libreboot replaces proprietary | ||
65 | BIOS/UEFI firmware. | ||
61 | 66 | ||
62 | 67 | **Unavailable in Libreboot 20231106 or earlier. You must [compile from | **Unavailable in Libreboot 20231106 or earlier. You must [compile from |
63 | 68 | source](../build/), or use a release newer than 20231106.** | source](../build/), or use a release newer than 20231106.** |
... | ... | This is a beastly 14" Sandy Bridge platform from HP. | |
66 | 71 | **NOTE: Until otherwise stated, only the Intel GPU variant is supported in | **NOTE: Until otherwise stated, only the Intel GPU variant is supported in |
67 | 72 | Libreboot.** | Libreboot.** |
68 | 73 | ||
69 | Build ROM image from source | ||
70 | --------------------------- | ||
74 | ### Build ROM image from source | ||
71 | 75 | ||
72 | 76 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
73 | 77 | ||
74 | 78 | ./mk -b coreboot hp8460pintel_8mb | ./mk -b coreboot hp8460pintel_8mb |
75 | 79 | ||
76 | Installation | ||
77 | ============ | ||
80 | Install Libreboot | ||
81 | ----------------- | ||
82 | |||
83 | **Please take care to insert the vendor files, if using release images.** | ||
78 | 84 | ||
79 | Insert binary files | ||
80 | ------------------- | ||
85 | ### Insert binary files | ||
81 | 86 | ||
82 | 87 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
83 | 88 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
84 | 89 | to adhere to this advice will result in a bricked machine) | to adhere to this advice will result in a bricked machine) |
85 | 90 | ||
86 | Set MAC address | ||
87 | --------------- | ||
91 | ### Set MAC address | ||
88 | 92 | ||
89 | 93 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
90 | 94 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
91 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | ||
95 | change the MAC address, please read [nvmutil documentation](/nvmutil.md). | ||
92 | 96 | ||
93 | Flash a ROM image (software) | ||
94 | ----------------- | ||
97 | ### Flash a ROM image (software) | ||
95 | 98 | ||
96 | 99 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
97 | 100 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
98 | 101 | ||
99 | Flash a ROM image (hardware) | ||
100 | ----------------- | ||
102 | ### Flash a ROM image (hardware) | ||
101 | 103 | ||
102 | 104 | **REMOVE all power sources like battery, charger and so on, before doing this. | **REMOVE all power sources like battery, charger and so on, before doing this. |
103 | 105 | This is to prevent short circuiting and power surges while flashing.** | This is to prevent short circuiting and power surges while flashing.** |
File site/docs/install/hp8470p.md changed (mode: 100644) (index 5cc00de..659fc72) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook 8470p | ||
2 | title: Install Libreboot on HP EliteBook 8470p | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
56 | 56 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
57 | 57 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
58 | 58 | </div> | </div> |
59 | Introduction | ||
60 | ============ | ||
61 | 59 | ||
62 | **Unavailable in Libreboot 20230625 or earlier. You must [compile from | ||
63 | source](../build/), or use at least Libreboot 20231021.** | ||
60 | Open source BIOS/UEFI firmware | ||
61 | ------------------------------ | ||
62 | |||
63 | This document will teach you how to install Libreboot, on your | ||
64 | HP EliteBook 8470p laptop motherboard. Libreboot replaces proprietary | ||
65 | BIOS/UEFI firmware. | ||
64 | 66 | ||
65 | 67 | Official information about the laptop can be found here: | Official information about the laptop can be found here: |
66 | 68 | <https://support.hp.com/gb-en/document/c03374369> | <https://support.hp.com/gb-en/document/c03374369> |
... | ... | This is a beastly 14" Ivy Bridge platform from HP. | |
69 | 71 | **NOTE: Until otherwise stated, only the Intel GPU variant is supported in | **NOTE: Until otherwise stated, only the Intel GPU variant is supported in |
70 | 72 | Libreboot.** | Libreboot.** |
71 | 73 | ||
72 | Build ROM image from source | ||
73 | --------------------------- | ||
74 | ### Build ROM image from source | ||
74 | 75 | ||
75 | 76 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
76 | 77 | ||
77 | 78 | ./mk -b coreboot hp8470pintel_16mb | ./mk -b coreboot hp8470pintel_16mb |
78 | 79 | ||
79 | 80 | Installation | Installation |
80 | ============ | ||
81 | ------------ | ||
81 | 82 | ||
82 | Insert binary files | ||
83 | ------------------- | ||
83 | ### Insert binary files | ||
84 | 84 | ||
85 | 85 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
86 | 86 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
87 | 87 | to adhere to this advice will result in a bricked machine) | to adhere to this advice will result in a bricked machine) |
88 | 88 | ||
89 | Set MAC address | ||
90 | --------------- | ||
89 | ### Set MAC address | ||
91 | 90 | ||
92 | 91 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
93 | 92 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
94 | 93 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). |
95 | 94 | ||
96 | Flash a ROM image (software) | ||
97 | ----------------- | ||
95 | ### Flash a ROM image (software) | ||
98 | 96 | ||
99 | 97 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
100 | 98 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
101 | 99 | ||
102 | Flash a ROM image (hardware) | ||
103 | ----------------- | ||
100 | ### Flash a ROM image (hardware) | ||
104 | 101 | ||
105 | 102 | **REMOVE all power sources like battery, charger and so on, before doing this. | **REMOVE all power sources like battery, charger and so on, before doing this. |
106 | 103 | This is to prevent short circuiting and power surges while flashing.** | This is to prevent short circuiting and power surges while flashing.** |
File site/docs/install/hp8560w.md changed (mode: 100644) (index 220ea33..69da627) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook 8560w | ||
2 | title: Install Libreboot on HP EliteBook 8560w | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
56 | 56 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
57 | 57 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
58 | 58 | </div> | </div> |
59 | Introduction | ||
60 | ============ | ||
59 | |||
60 | Open source BIOS/UEFI firmware | ||
61 | ------------------------- | ||
62 | |||
63 | These next sections will teach you how to install Libreboot, on your | ||
64 | HP EliteBook 8560w laptop motherboard. Libreboot replaces proprietary | ||
65 | BIOS/UEFI firmware. | ||
61 | 66 | ||
62 | 67 | **Unavailable in Libreboot 20240126 or earlier. You must [compile from | **Unavailable in Libreboot 20240126 or earlier. You must [compile from |
63 | 68 | source](../build/), or use a release newer than 20240126.** | source](../build/), or use a release newer than 20240126.** |
... | ... | This is a beastly 15" Sandy Bridge mobile workstation from HP. | |
66 | 71 | ||
67 | 72 | **Wi-Fi does not work. It shows correctly in lspci, but stays hard blocked.** | **Wi-Fi does not work. It shows correctly in lspci, but stays hard blocked.** |
68 | 73 | ||
69 | GPU | ||
70 | --- | ||
74 | ### GPU | ||
71 | 75 | ||
72 | 76 | This laptop has upgradeable GPU: it has a socketed MXM-A 3.0 card. So far, | This laptop has upgradeable GPU: it has a socketed MXM-A 3.0 card. So far, |
73 | 77 | only Quadro 1000M and 2000M (which shipped with the laptop originally) have | only Quadro 1000M and 2000M (which shipped with the laptop originally) have |
... | ... | If you have an eDP panel, you should be able to use newer cards than that. | |
91 | 95 | As long as the card has an onboard VBIOS, Libreboot will execute it and | As long as the card has an onboard VBIOS, Libreboot will execute it and |
92 | 96 | everything *should* work. **However, this is currently untested.** | everything *should* work. **However, this is currently untested.** |
93 | 97 | ||
94 | Build ROM image from source | ||
95 | --------------------------- | ||
98 | ### Build ROM image from source | ||
96 | 99 | ||
97 | 100 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
98 | 101 | ||
99 | 102 | ./mk -b coreboot hp8560w_8mb | ./mk -b coreboot hp8560w_8mb |
100 | 103 | ||
101 | 104 | Installation | Installation |
102 | ============ | ||
105 | ------------ | ||
103 | 106 | ||
104 | Insert binary files | ||
105 | ------------------- | ||
107 | ### Insert binary files | ||
106 | 108 | ||
107 | 109 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
108 | 110 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
109 | 111 | to adhere to this advice will result in a bricked machine) | to adhere to this advice will result in a bricked machine) |
110 | 112 | ||
111 | Set MAC address | ||
112 | --------------- | ||
113 | ### Set MAC address | ||
113 | 114 | ||
114 | 115 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
115 | 116 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
116 | 117 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). |
117 | 118 | ||
118 | Flash a ROM image (software) | ||
119 | ----------------- | ||
119 | ### Flash a ROM image (software) | ||
120 | 120 | ||
121 | 121 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
122 | 122 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
123 | 123 | ||
124 | Flash a ROM image (hardware) | ||
125 | ----------------- | ||
124 | ### Flash a ROM image (hardware) | ||
126 | 125 | ||
127 | 126 | **REMOVE all power sources like battery, charger and so on, before doing this. | **REMOVE all power sources like battery, charger and so on, before doing this. |
128 | 127 | This is to prevent short circuiting and power surges while flashing.** | This is to prevent short circuiting and power surges while flashing.** |
File site/docs/install/hp9470m.md changed (mode: 100644) (index 2266ef2..09d0023) | |||
1 | 1 | --- | --- |
2 | title: HP EliteBook Folio 9470m | ||
2 | title: Install Libreboot on HP EliteBook Folio 9470m | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | there, before flashing. For posterity, | |
36 | 36 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
37 | 37 | </div> | </div> |
38 | 38 | ||
39 | Introduction | ||
40 | ============ | ||
39 | Open source BIOS/UEFI firmware | ||
40 | ------------------------------ | ||
41 | |||
42 | These sections will teach you how to install Libreboot, on your | ||
43 | HP EliteBook Folio 9470m laptop motherboard. Libreboot replaces proprietary | ||
44 | BIOS/UEFI firmware. | ||
41 | 45 | ||
42 | 46 | HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard. | HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard. |
43 | 47 | ||
44 | 48 | Libreboot has support for this, in the Git repository and release versions | Libreboot has support for this, in the Git repository and release versions |
45 | 49 | from Libreboot 20230423 onwards. | from Libreboot 20230423 onwards. |
46 | 50 | ||
47 | Installation of Libreboot | ||
48 | ========================= | ||
51 | Install Libreboot | ||
52 | ----------------- | ||
49 | 53 | ||
50 | 54 | You must first compile the Libreboot ROM | You must first compile the Libreboot ROM |
51 | 55 | ||
52 | ./mk -b coreboot hp9470m_16mb | ||
56 | ./mk -b coreboot hp9470m_16mb | ||
57 | |||
58 | **You can also use release images, instead of compiling, but please make | ||
59 | sure to follow the notes below about vendorfile insertion, first!** | ||
53 | 60 | ||
54 | 61 | More information about building ROM images can be found in | More information about building ROM images can be found in |
55 | 62 | the [build guide](../build). | the [build guide](../build). |
... | ... | in the same guide linked above, or read the nvmutil manual: | |
71 | 78 | ||
72 | 79 | [Modify MAC addresses with nvmutil](../install/nvmutil.md). | [Modify MAC addresses with nvmutil](../install/nvmutil.md). |
73 | 80 | ||
74 | Disassembly | ||
75 | ----------- | ||
81 | ### Disassembly | ||
76 | 82 | ||
77 | 83 | Remove the battery. | Remove the battery. |
78 | 84 |
File site/docs/install/ich9utils.md changed (mode: 100644) (index 20c2625..d161955) | |||
... | ... | scrapped. | |
27 | 27 | Anyway, ich9utils documentation: | Anyway, ich9utils documentation: |
28 | 28 | ||
29 | 29 | Introduction | Introduction |
30 | ============ | ||
30 | ------------ | ||
31 | 31 | ||
32 | 32 | The `ich9utils` utility from Libreboot is used to manipulate Intel Flash | The `ich9utils` utility from Libreboot is used to manipulate Intel Flash |
33 | 33 | Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically, | Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically, |
... | ... | More information about the ME can be found at | |
75 | 75 | Another project: <http://io.netgarage.org/me/> | Another project: <http://io.netgarage.org/me/> |
76 | 76 | ||
77 | 77 | ich9utils | ich9utils |
78 | ========= | ||
78 | --------- | ||
79 | 79 | ||
80 | 80 | You can find `ich9utils` on the [Git page](../../git.md) or you can download | You can find `ich9utils` on the [Git page](../../git.md) or you can download |
81 | 81 | `lbmk` from the same page at an under revision (around Libreboot 20230625 or | `lbmk` from the same page at an under revision (around Libreboot 20230625 or |
... | ... | Go in there and type `make` to get the binaries: `ich9deblob`, `ich9gen` | |
85 | 85 | and `ich9show`. | and `ich9show`. |
86 | 86 | ||
87 | 87 | ICH9 show utility {#ich9show} | ICH9 show utility {#ich9show} |
88 | ================ | ||
88 | --------------------------- | ||
89 | 89 | ||
90 | 90 | The *ich9show* utility outputs the entire contents of the descriptor and GbE | The *ich9show* utility outputs the entire contents of the descriptor and GbE |
91 | 91 | regions in a given ROM image as supplied by the user. Output is in Markdown | regions in a given ROM image as supplied by the user. Output is in Markdown |
... | ... | format (Pandoc variant) so that it can be converted easily into various | |
93 | 93 | formats. It could even be piped *directly* into pandoc! | formats. It could even be piped *directly* into pandoc! |
94 | 94 | ||
95 | 95 | ICH9 gen utility {#ich9gen} | ICH9 gen utility {#ich9gen} |
96 | ================ | ||
96 | --------------------------- | ||
97 | 97 | ||
98 | 98 | When you simply run `ich9gen` without any arguments, it generates | When you simply run `ich9gen` without any arguments, it generates |
99 | 99 | descriptor+GbE images with a default MAC address in the GbE region. If you wish | descriptor+GbE images with a default MAC address in the GbE region. If you wish |
... | ... | Your libreboot.rom image is now ready to be flashed on the system. Refer | |
185 | 185 | back to [../install/\#flashprog](../install/#flashprog) for how to flash | back to [../install/\#flashprog](../install/#flashprog) for how to flash |
186 | 186 | it. | it. |
187 | 187 | ||
188 | Write-protecting the flash chip | ||
189 | ------------------------------- | ||
188 | ### Write-protecting the flash chip | ||
190 | 189 | ||
191 | 190 | The `ich9gen` utility (see below) generates two types of descriptor+GbE setup: | The `ich9gen` utility (see below) generates two types of descriptor+GbE setup: |
192 | 191 | ||
... | ... | the contents of flash). | |
200 | 199 | For ease of use, libreboot provides ROMs that are read-write by default. | For ease of use, libreboot provides ROMs that are read-write by default. |
201 | 200 | ||
202 | 201 | ICH9 deblob utility {#ich9deblob} | ICH9 deblob utility {#ich9deblob} |
203 | =================== | ||
202 | ----------------------------------- | ||
204 | 203 | ||
205 | 204 | This was the tool originally used to disable the ME on X200 (later | This was the tool originally used to disable the ME on X200 (later |
206 | 205 | adapted for other systems that use the GM45 chipset). | adapted for other systems that use the GM45 chipset). |
... | ... | back to [index.md/\#gm45](index.md/#gm45) for how to flash | |
279 | 278 | it. | it. |
280 | 279 | ||
281 | 280 | demefactory utility {#demefactory} | demefactory utility {#demefactory} |
282 | =================== | ||
281 | ---------------------------------- | ||
283 | 282 | ||
284 | 283 | This utility has never been tested, officially, but it *should* work. | This utility has never been tested, officially, but it *should* work. |
285 | 284 |
File site/docs/install/index.md changed (mode: 100644) (index 3484e8b..18afa26) | |||
1 | 1 | --- | --- |
2 | title: Libreboot installation guides | ||
2 | title: Install Libreboot | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
6 | 9 | This article will teach you how to install Libreboot, on any of the supported | This article will teach you how to install Libreboot, on any of the supported |
7 | laptop, desktop and server motherboards. | ||
10 | laptop, desktop and server motherboards of Intel/AMD x86/x86\_64 and ARM64 | ||
11 | platform. Libreboot replaces proprietary BIOS/UEFI firmware. | ||
8 | 12 | ||
9 | 13 | **ALWAYS remember to make a backup of the current flash, when overwriting it, | **ALWAYS remember to make a backup of the current flash, when overwriting it, |
10 | 14 | regardless of what firmware you currently have and what firmware you're | regardless of what firmware you currently have and what firmware you're |
11 | 15 | re-flashing it with; this includes updates between Libreboot releases. Use | re-flashing it with; this includes updates between Libreboot releases. Use |
12 | 16 | the `-r` option in flashprog instead `-w`, to read from the flash.** | the `-r` option in flashprog instead `-w`, to read from the flash.** |
13 | 17 | ||
14 | **SAFETY WARNING!** | ||
15 | ==================================================================== | ||
18 | SAFETY WARNING! | ||
19 | --------------- | ||
16 | 20 | ||
17 | 21 | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR |
18 | 22 | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions |
... | ... | be added. See: [Inserting Vendor Files](ivy_has_common.md).** | |
25 | 29 | If you're [building from source](../build/), you can ignore the above guidance. | If you're [building from source](../build/), you can ignore the above guidance. |
26 | 30 | ||
27 | 31 | Install Libreboot via external flashing | Install Libreboot via external flashing |
28 | ================= | ||
32 | --------------------------------------- | ||
29 | 33 | ||
30 | 34 | Refer to the following article:\ | Refer to the following article:\ |
31 | 35 | [Externally rewrite 25xx NOR flash via SPI protocol](spi.md) | [Externally rewrite 25xx NOR flash via SPI protocol](spi.md) |
... | ... | externally or internally - if only external flashing is available, then it's | |
37 | 41 | usually the case that only external dumping is available too. | usually the case that only external dumping is available too. |
38 | 42 | ||
39 | 43 | Need help? | Need help? |
40 | ========== | ||
44 | ---------- | ||
41 | 45 | ||
42 | 46 | Help is available on [Libreboot IRC](../../contact.md) and other channels. | Help is available on [Libreboot IRC](../../contact.md) and other channels. |
43 | 47 | ||
... | ... | Leah Rowe, the founder and lead developer of Libreboot, also owns and | |
50 | 54 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
51 | 55 | ||
52 | 56 | Which systems are supported by Libreboot? | Which systems are supported by Libreboot? |
53 | ======================================== | ||
57 | ----------------------------------------- | ||
54 | 58 | ||
55 | 59 | Before actually reading the installation guides, please ensure that your | Before actually reading the installation guides, please ensure that your |
56 | 60 | system is fully supported by Libreboot. More information about the Libreboot | system is fully supported by Libreboot. More information about the Libreboot |
... | ... | systems, you can use the U-Boot payload (coreboot still initialises hardware). | |
63 | 67 | ||
64 | 68 | Libreboot currently supports the following systems: | Libreboot currently supports the following systems: |
65 | 69 | ||
66 | Games consoles | ||
67 | -------------- | ||
70 | ### Games consoles | ||
68 | 71 | ||
69 | 72 | - [Sony Playstation](playstation.md) (PS1/PSX) | - [Sony Playstation](playstation.md) (PS1/PSX) |
70 | 73 | ||
71 | Servers (AMD, x86) | ||
72 | ------------------ | ||
74 | ### Servers (AMD, x86) | ||
73 | 75 | ||
74 | 76 | - [ASUS KFSN4-DRE motherboard](kfsn4-dre.md) | - [ASUS KFSN4-DRE motherboard](kfsn4-dre.md) |
75 | 77 | - [ASUS KGPE-D16 motherboard](kgpe-d16.md) | - [ASUS KGPE-D16 motherboard](kgpe-d16.md) |
76 | 78 | ||
77 | Desktops (AMD, Intel, x86) | ||
78 | -------------------------- | ||
79 | ### Desktops (AMD, Intel, x86) | ||
79 | 80 | ||
80 | 81 | - [Dell OptiPlex 3050 Micro](dell3050.html) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** | - [Dell OptiPlex 3050 Micro](dell3050.html) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** |
81 | 82 | - [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Dell OptiPlex XE2 MT/SFF also known to work | - [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Dell OptiPlex XE2 MT/SFF also known to work |
... | ... | Desktops (AMD, Intel, x86) | |
95 | 96 | - Intel D510MO and D410PT motherboards | - Intel D510MO and D410PT motherboards |
96 | 97 | - [Intel D945GCLF](d945gclf.md) | - [Intel D945GCLF](d945gclf.md) |
97 | 98 | ||
98 | Laptops (Intel, x86) | ||
99 | -------------------- | ||
99 | ### Laptops (Intel, x86) | ||
100 | 100 | ||
101 | 101 | - [Lenovo ThinkPad T480 and ThinkPad T480s](t480.html) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** | - [Lenovo ThinkPad T480 and ThinkPad T480s](t480.html) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** |
102 | 102 | - Lenovo ThinkPad T440p | - Lenovo ThinkPad T440p |
... | ... | Laptops (Intel, x86) | |
128 | 128 | - Lenovo Thinkpad X220 / X200 Tablet | - Lenovo Thinkpad X220 / X200 Tablet |
129 | 129 | - [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md) | - [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md) |
130 | 130 | ||
131 | Laptops (ARM, with U-Boot payload) | ||
132 | ---------------------------------- | ||
131 | ### Laptops (ARM, with U-Boot payload) | ||
133 | 132 | ||
134 | 133 | - [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md) | - [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md) |
135 | 134 | - [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md) |
136 | 135 | ||
137 | Emulation | ||
138 | --------- | ||
136 | ### Emulation | ||
139 | 137 | ||
140 | 138 | - [Qemu x86 and arm64](../misc/emulation.md) | - [Qemu x86 and arm64](../misc/emulation.md) |
141 | 139 | ||
142 | **Disable security before flashing** | ||
143 | ================================ | ||
140 | Disable security before flashing | ||
141 | -------------------------------- | ||
144 | 142 | ||
145 | 143 | **Before internal flashing, you must first disable `/dev/mem` protections. Make | **Before internal flashing, you must first disable `/dev/mem` protections. Make |
146 | 144 | sure to re-enable them after you're finished.** | sure to re-enable them after you're finished.** |
... | ... | sure to re-enable them after you're finished.** | |
148 | 146 | **See: [Disabling /dev/mem protection](devmem.md)** | **See: [Disabling /dev/mem protection](devmem.md)** |
149 | 147 | ||
150 | 148 | ROM image file names | ROM image file names |
151 | ==================== | ||
149 | -------------------- | ||
152 | 150 | ||
153 | 151 | Libreboot ROM images are named like | Libreboot ROM images are named like |
154 | 152 | this: `payload_board_inittype_displaytype_keymap.rom` | this: `payload_board_inittype_displaytype_keymap.rom` |
... | ... | executed instead, if the primary payload is SeaBIOS, whether that be pure | |
178 | 176 | SeaBIOS or a SeaGRUB setup. | SeaBIOS or a SeaGRUB setup. |
179 | 177 | ||
180 | 178 | EC firmware updates | EC firmware updates |
181 | =================== | ||
179 | ------------------- | ||
182 | 180 | ||
183 | 181 | Obviously, free EC firmware would be preferable, but it is not the case on | Obviously, free EC firmware would be preferable, but it is not the case on |
184 | 182 | all machine. We would like to have free EC firmware on more machines, but for | all machine. We would like to have free EC firmware on more machines, but for |
... | ... | It is recommended that you update to the latest EC firmware version. The | |
199 | 197 | Updating the EC can sometimes provide benefit depending on the vendor. For | Updating the EC can sometimes provide benefit depending on the vendor. For |
200 | 198 | example, they might fix power issues that could then enhance battery life. | example, they might fix power issues that could then enhance battery life. |
201 | 199 | ||
202 | ThinkPads | ||
203 | --------- | ||
200 | ### ThinkPads | ||
204 | 201 | ||
205 | 202 | See: <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> | See: <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> |
206 | 203 | ||
207 | 204 | Otherwise, check the Lenovo website to find the update utility for your | Otherwise, check the Lenovo website to find the update utility for your |
208 | 205 | mainboard. | mainboard. |
209 | 206 | ||
210 | HP EliteBooks | ||
211 | ------------- | ||
207 | ### HP EliteBooks | ||
212 | 208 | ||
213 | 209 | EC firmware is required in the main boot flash, but Libreboot's build system | EC firmware is required in the main boot flash, but Libreboot's build system |
214 | 210 | automatically downloads this from HP for each machine, and inserts it, so | automatically downloads this from HP for each machine, and inserts it, so |
215 | 211 | you don't have to worry. Just make sure that [vendor files are | you don't have to worry. Just make sure that [vendor files are |
216 | 212 | inserted](ivy_has_common.md) if using release images. | inserted](ivy_has_common.md) if using release images. |
217 | 213 | ||
218 | Other | ||
219 | ----- | ||
214 | ### Other | ||
220 | 215 | ||
221 | 216 | The same wisdom applies to other laptop vendors. | The same wisdom applies to other laptop vendors. |
222 | 217 | ||
223 | 218 | Non-laptops typically do not have embedded controllers in them. | Non-laptops typically do not have embedded controllers in them. |
224 | 219 | ||
225 | 220 | Libreboot installation instructions | Libreboot installation instructions |
226 | =================================== | ||
221 | ----------------------------------- | ||
227 | 222 | ||
228 | 223 | In general, if Libreboot is already running, you can skip | In general, if Libreboot is already running, you can skip |
229 | 224 | towards the final section on this page, which provides general internal | towards the final section on this page, which provides general internal |
... | ... | Therefore, before following generic guides, make sure to check first whether | |
238 | 233 | your board has special instructions, otherwise use the generic guide at the | your board has special instructions, otherwise use the generic guide at the |
239 | 234 | end of this article. | end of this article. |
240 | 235 | ||
241 | Intel GbE MAC address (IFD-based systems) | ||
242 | --------------------------------------- | ||
236 | ### Intel GbE MAC address (IFD-based systems) | ||
243 | 237 | ||
244 | 238 | On all Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945 | On all Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945 |
245 | 239 | ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is | ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is |
... | ... | flash, and can (must) be changed prior to installation. | |
249 | 243 | You can use [nvmutil](nvmutil.md) to change the MAC address. You will perform | You can use [nvmutil](nvmutil.md) to change the MAC address. You will perform |
250 | 244 | this modification to the ROM image, before flashing it. | this modification to the ROM image, before flashing it. |
251 | 245 | ||
252 | Flash lockdown / boot security | ||
253 | ------------------- | ||
246 | ### Flash lockdown / boot security | ||
254 | 247 | ||
255 | 248 | This is referred to informally as *Secure libreBoot*. | This is referred to informally as *Secure libreBoot*. |
256 | 249 | ||
... | ... | See: [GRUB hardening / Secure libreBoot](../linux/grub_hardening.md) | |
262 | 255 | If you already did this, it's possible that you may no longer be able to | If you already did this, it's possible that you may no longer be able to |
263 | 256 | flash internally. If that is the case, you must [flash externally](spi.md). | flash internally. If that is the case, you must [flash externally](spi.md). |
264 | 257 | ||
265 | Updating an existing installation | ||
266 | --------------------------------- | ||
258 | ### Updating an existing installation | ||
267 | 259 | ||
268 | 260 | Unless otherwise stated, in sections pertaining to each mainboard below, | Unless otherwise stated, in sections pertaining to each mainboard below, |
269 | 261 | an existing Libreboot installation can be updated via internal flashing, | an existing Libreboot installation can be updated via internal flashing, |
... | ... | special steps required that differ from updating an existing installation. | |
280 | 272 | The next sections will pertain to specific mainboards, where indicated, | The next sections will pertain to specific mainboards, where indicated, |
281 | 273 | followed by general internal flashing instructions where applicable. | followed by general internal flashing instructions where applicable. |
282 | 274 | ||
283 | HP EliteBook 820 G2 (internal and external) | ||
284 | ------------------- | ||
275 | ### HP EliteBook 820 G2 (internal and external) | ||
285 | 276 | ||
286 | 277 | See: [HP EliteBook 820 G2 flashing guide](hp820g2.md) | See: [HP EliteBook 820 G2 flashing guide](hp820g2.md) |
287 | 278 | ||
288 | 279 | The flashprog command is identical, except programmer selection, on external | The flashprog command is identical, except programmer selection, on external |
289 | 280 | and internal flashing; internal is only possible if you already have Libreboot. | and internal flashing; internal is only possible if you already have Libreboot. |
290 | 281 | ||
291 | HP EliteBook 8560w (vendor BIOS) | ||
292 | -------------------- | ||
282 | ### HP EliteBook 8560w (vendor BIOS) | ||
293 | 283 | ||
294 | 284 | If you have the factory | If you have the factory |
295 | 285 | firmware: [HP 8560w external flashing guide](hp8560w.md) | firmware: [HP 8560w external flashing guide](hp8560w.md) |
296 | 286 | ||
297 | Dell Latitude laptops (vendor BIOS) | ||
298 | --------------------- | ||
287 | ### Dell Latitude laptops (vendor BIOS) | ||
299 | 288 | ||
300 | 289 | See: [Dell Latitude flashing guide](latitude.md) | See: [Dell Latitude flashing guide](latitude.md) |
301 | 290 | ||
302 | 291 | This applies to all supported Dell Latitude models. Remember to [update the | This applies to all supported Dell Latitude models. Remember to [update the |
303 | 292 | MAC address with nvmutil](nvmutil.md), before flashing. | MAC address with nvmutil](nvmutil.md), before flashing. |
304 | 293 | ||
305 | ThinkPad X200/T400/T500/W500/R400/R500 | ||
306 | -------------------------------------- | ||
294 | ### ThinkPad X200/T400/T500/W500/R400/R500 | ||
307 | 295 | ||
308 | 296 | If you're running one of these with Lenovo BIOS, you must externally flash | If you're running one of these with Lenovo BIOS, you must externally flash |
309 | 297 | Libreboot, because the original firmware restricts writes to the flash. | Libreboot, because the original firmware restricts writes to the flash. |
... | ... | You can find WSON8 probes online, that are similar to a SOIC8/SOIC16 clip. Your | |
324 | 312 | mileage may very, but WSON8 has the same pinout as SOIC8 so you might have some | mileage may very, but WSON8 has the same pinout as SOIC8 so you might have some |
325 | 313 | luck with that. | luck with that. |
326 | 314 | ||
327 | Intel D510MO/D410PT (vendor BIOS) | ||
328 | ----------------------- | ||
315 | ### Intel D510MO/D410PT (vendor BIOS) | ||
329 | 316 | ||
330 | 317 | See: [External flashing guide](spi.md) - both boards are compatible with | See: [External flashing guide](spi.md) - both boards are compatible with |
331 | 318 | the same image. | the same image. |
332 | 319 | ||
333 | Gigabyte GA-G41M-ES2L (vendor BIOS) | ||
334 | --------------------- | ||
320 | ### Gigabyte GA-G41M-ES2L (vendor BIOS) | ||
335 | 321 | ||
336 | 322 | Internal flashing is possible, from factory BIOS to Libreboot, but special | Internal flashing is possible, from factory BIOS to Libreboot, but special |
337 | 323 | steps are required. | steps are required. |
338 | 324 | ||
339 | 325 | See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md) | See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md) |
340 | 326 | ||
341 | Acer G43T-AM3 (vendor BIOS) | ||
342 | -------------------- | ||
327 | ### Acer G43T-AM3 (vendor BIOS) | ||
343 | 328 | ||
344 | 329 | See: [Acer G43T-AM3](acer_g43t-am3.md) | See: [Acer G43T-AM3](acer_g43t-am3.md) |
345 | 330 | ||
346 | MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS) | ||
347 | ------------------------- | ||
331 | ### MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS) | ||
348 | 332 | ||
349 | 333 | MacBook *1,1* requires [external flashing](spi.md). MacBook *2,1* can always | MacBook *1,1* requires [external flashing](spi.md). MacBook *2,1* can always |
350 | 334 | be flashed internally. iMac 5,2 can be flashed internally. | be flashed internally. iMac 5,2 can be flashed internally. |
351 | 335 | ||
352 | 336 | Also check the [Macbook2,1 hardware page](macbook21.md) | Also check the [Macbook2,1 hardware page](macbook21.md) |
353 | 337 | ||
354 | ASUS KCMA-D8 / KGPE-D16 (vendor BIOS) | ||
355 | -------------------------- | ||
338 | ### ASUS KCMA-D8 / KGPE-D16 (vendor BIOS) | ||
356 | 339 | ||
357 | 340 | [You must flash it externally](spi.md) (DIP-8 section) - also look at | [You must flash it externally](spi.md) (DIP-8 section) - also look at |
358 | 341 | the [KGPE-D16 hardware page](kgpe-d16.md). | the [KGPE-D16 hardware page](kgpe-d16.md). |
... | ... | Further information is available on the [KCMA-D8 page](kcma-d8.md). | |
362 | 345 | KGPE-D16 installation is essentially the same, with the same type of flash | KGPE-D16 installation is essentially the same, with the same type of flash |
363 | 346 | IC (DIP-8). Refer to the external flashing guide. | IC (DIP-8). Refer to the external flashing guide. |
364 | 347 | ||
365 | ASUS KFSN4-DRE (vendor BIOS) | ||
366 | ------------------------- | ||
348 | ### ASUS KFSN4-DRE (vendor BIOS) | ||
367 | 349 | ||
368 | 350 | This board uses LPC flash in a PLCC32 socket. This coreboot page shows an | This board uses LPC flash in a PLCC32 socket. This coreboot page shows an |
369 | 351 | example of the push pin as a proof of concept: | example of the push pin as a proof of concept: |
... | ... | See: [ASUS KFSN4-DRE guide](kfsn4-dre.md) | |
374 | 356 | Hot-swap the flash IC with another one while it's running, and flash it | Hot-swap the flash IC with another one while it's running, and flash it |
375 | 357 | internally. | internally. |
376 | 358 | ||
377 | Intel D945GCLF (vendor BIOS) | ||
378 | --------------------------------- | ||
359 | ### Intel D945GCLF (vendor BIOS) | ||
379 | 360 | ||
380 | 361 | See: [Intel D945GCLF flashing guide](d945gclf.md) | See: [Intel D945GCLF flashing guide](d945gclf.md) |
381 | 362 | ||
382 | Dell OptiPlex 3050 Micro (vendor BIOS) | ||
383 | --------------------- | ||
363 | ### Dell OptiPlex 3050 Micro (vendor BIOS) | ||
384 | 364 | ||
385 | 365 | Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible. | Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible. |
386 | 366 | This has the Intel Boot Guard, but Libreboot uses the *deguard* utility to | This has the Intel Boot Guard, but Libreboot uses the *deguard* utility to |
387 | 367 | disable the Boot Guard on this Intel 7th gen board. | disable the Boot Guard on this Intel 7th gen board. |
388 | 368 | ||
389 | Dell OptiPlex 7010/9010 SFF (vendor BIOS) | ||
390 | --------------------- | ||
369 | ### Dell OptiPlex 7010/9010 SFF (vendor BIOS) | ||
391 | 370 | ||
392 | 371 | Refer to the [7010/9020 SFF page](dell7010.md). Internal flashing also possible. | Refer to the [7010/9020 SFF page](dell7010.md). Internal flashing also possible. |
393 | 372 | NOTE: If you have the *MT* variant, read the sections below instead (the SFF | NOTE: If you have the *MT* variant, read the sections below instead (the SFF |
394 | 373 | ROM is only for SFF). | ROM is only for SFF). |
395 | 374 | ||
396 | Dell OptiPlex 7010/9010 MT (vendor BIOS) | ||
397 | --------------------- | ||
375 | ### Dell OptiPlex 7010/9010 MT (vendor BIOS) | ||
398 | 376 | ||
399 | 377 | This board is essentially identical to the Dell Precision T1650, except that | This board is essentially identical to the Dell Precision T1650, except that |
400 | 378 | it does not support ECC memory. Same wiring. | it does not support ECC memory. Same wiring. |
... | ... | it does not support ECC memory. Same wiring. | |
402 | 380 | You can flash the T1650 image on this machine. NOTE: This applies to the MT | You can flash the T1650 image on this machine. NOTE: This applies to the MT |
403 | 381 | variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*. | variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*. |
404 | 382 | ||
405 | Dell Precision T1650 desktop | ||
406 | ------------------------------------ | ||
383 | ### Dell Precision T1650 desktop | ||
407 | 384 | ||
408 | 385 | Refer to the [T1650 hardware page](t1650.md). External flashing | Refer to the [T1650 hardware page](t1650.md). External flashing |
409 | 386 | required, or you can set the Service Mode jumper and flash internally (from | required, or you can set the Service Mode jumper and flash internally (from |
410 | 387 | vendor firmware, to Libreboot). | vendor firmware, to Libreboot). |
411 | 388 | ||
412 | Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700 | ||
413 | ------------------------------------ | ||
389 | ### Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700 | ||
414 | 390 | ||
415 | 391 | Refer to the [7020/9020 hardware page](dell9020.md). Internal | Refer to the [7020/9020 hardware page](dell9020.md). Internal |
416 | 392 | flashing (from vendor firmware to Libreboot) is possible if you set the Service | flashing (from vendor firmware to Libreboot) is possible if you set the Service |
417 | 393 | Mode jumper. | Mode jumper. |
418 | 394 | ||
419 | HP EliteBook laptops (vendor BIOS) | ||
420 | -------------------- | ||
395 | ### HP EliteBook laptops (vendor BIOS) | ||
421 | 396 | ||
422 | 397 | Refer to the [hardware page]() for info about HP laptops, and | Refer to the [hardware page]() for info about HP laptops, and |
423 | 398 | read the [external flashing guide](spi.md). | read the [external flashing guide](spi.md). |
... | ... | Links to specific HP laptop pages: | |
435 | 410 | These pages provide more info about external flashing. You must remember | These pages provide more info about external flashing. You must remember |
436 | 411 | to [insert vendor files](ivy_has_common.md), if you're using release ROMs. | to [insert vendor files](ivy_has_common.md), if you're using release ROMs. |
437 | 412 | ||
438 | HP Elite 8200 SFF (vendor BIOS) | ||
439 | ------------------------- | ||
413 | ### HP Elite 8200 SFF (vendor BIOS) | ||
440 | 414 | ||
441 | 415 | See: [HP Elite 8200 SFF install guide](hp8200sff.md) | See: [HP Elite 8200 SFF install guide](hp8200sff.md) |
442 | 416 | ||
443 | HP Elite 8300 USDT (vendor BIOS) | ||
444 | ---------------------------- | ||
417 | ### HP Elite 8300 USDT (vendor BIOS) | ||
445 | 418 | ||
446 | 419 | See: [HP Elite 8200 USDT install guide](hp8300usdt.md) | See: [HP Elite 8200 USDT install guide](hp8300usdt.md) |
447 | 420 | ||
448 | ThinkPad X220/X220T/T420/T420s/T520 | ||
449 | ----------------------------------- | ||
421 | ### ThinkPad X220/X220T/T420/T420s/T520 | ||
450 | 422 | ||
451 | 423 | T420/T520: [T420 flash instructions](t420_external.md) | T420/T520: [T420 flash instructions](t420_external.md) |
452 | 424 | ||
... | ... | internally; you must use [an external flasher](spi.md). | |
460 | 432 | Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220 | Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220 |
461 | 433 | has a single 8MB flash, instead of 8MB and 4MB. | has a single 8MB flash, instead of 8MB and 4MB. |
462 | 434 | ||
463 | ThinkPad X230/T430/T530/W530/X230T | ||
464 | ---------------------------------- | ||
435 | ### ThinkPad X230/T430/T530/W530/X230T | ||
465 | 436 | ||
466 | 437 | Internal flashing from vendor BIOS to Libreboot is possible, but not | Internal flashing from vendor BIOS to Libreboot is possible, but not |
467 | 438 | recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md). | recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md). |
... | ... | See: [ThinkPad X230 install guide](x230_external.md). | |
471 | 442 | ||
472 | 443 | Otherwise, refer to [external SPI flashing](spi.md). | Otherwise, refer to [external SPI flashing](spi.md). |
473 | 444 | ||
474 | ThinkPad T60/X60/X60Tablet/X60S | ||
475 | ------------------------------- | ||
445 | ### ThinkPad T60/X60/X60Tablet/X60S | ||
476 | 446 | ||
477 | 447 | Only the Intel GPU is compatible. Do not flash the ATI GPU models. | Only the Intel GPU is compatible. Do not flash the ATI GPU models. |
478 | 448 | ||
... | ... | bootblock, set bucts back to zero: | |
565 | 535 | The second flash can be done by simply following the general internal flashing | The second flash can be done by simply following the general internal flashing |
566 | 536 | guide further down on this page. | guide further down on this page. |
567 | 537 | ||
568 | ThinkPad T480/T480S (vendor BIOS) | ||
569 | ---------------------- | ||
538 | ### ThinkPad T480/T480S (vendor BIOS) | ||
570 | 539 | ||
571 | 540 | See: | See: |
572 | 541 | ||
573 | 542 | * [ThinkPad T480/T480S](t480.md) | * [ThinkPad T480/T480S](t480.md) |
574 | 543 | ||
575 | Thinkpad T440p/W541 (vendor BIOS) | ||
576 | --------------------- | ||
544 | ### Thinkpad T440p/W541 (vendor BIOS) | ||
577 | 545 | ||
578 | 546 | Guides: | Guides: |
579 | 547 | ||
580 | 548 | * [ThinkPad T440p flashing guide](t440p_external.md) | * [ThinkPad T440p flashing guide](t440p_external.md) |
581 | 549 | * [ThinkPad W541 flashing guide](w541_external.md) | * [ThinkPad W541 flashing guide](w541_external.md) |
582 | 550 | ||
583 | HP EliteBook laptops (vendor BIOS) | ||
584 | ------------------------- | ||
551 | ### HP EliteBook laptops (vendor BIOS) | ||
585 | 552 | ||
586 | 553 | Each machine has it's own guide: | Each machine has it's own guide: |
587 | 554 | ||
... | ... | Each machine has it's own guide: | |
594 | 561 | * [HP EliteBook 8560w](hp8560w.md) | * [HP EliteBook 8560w](hp8560w.md) |
595 | 562 | * [HP EliteBook Folio 9470m](hp9470m.md) | * [HP EliteBook Folio 9470m](hp9470m.md) |
596 | 563 | ||
597 | HP Elite desktops (vendor BIOS) | ||
598 | ------------------------- | ||
564 | ### HP Elite desktops (vendor BIOS) | ||
599 | 565 | ||
600 | 566 | Each machine has it's own guide: | Each machine has it's own guide: |
601 | 567 | ||
602 | 568 | * [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) | * [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) |
603 | 569 | * [HP Elite 8300 USDT](hp8300usdt.md) | * [HP Elite 8300 USDT](hp8300usdt.md) |
604 | 570 | ||
605 | ARM-based Chromebooks | ||
606 | --------------------- | ||
571 | ### ARM-based Chromebooks | ||
607 | 572 | ||
608 | 573 | See: [Chromebook flashing instructions](chromebooks.md) | See: [Chromebook flashing instructions](chromebooks.md) |
609 | 574 | ||
... | ... | the x86 machines, because the Chromebooks still use flashrom with | |
612 | 577 | the `-p host` argument instead of `-p internal` when flashing, and you typically | the `-p host` argument instead of `-p internal` when flashing, and you typically |
613 | 578 | need to flash externally, due to Google's security model. | need to flash externally, due to Google's security model. |
614 | 579 | ||
615 | QEMU (arm64 and x86) | ||
616 | -------------------- | ||
580 | ### QEMU (arm64 and x86) | ||
617 | 581 | ||
618 | 582 | Libreboot can be used on QEMU (virtual machine), which is useful for debugging | Libreboot can be used on QEMU (virtual machine), which is useful for debugging |
619 | 583 | payloads and generally trying out Libreboot, without requiring real hardware. | payloads and generally trying out Libreboot, without requiring real hardware. |
... | ... | payloads and generally trying out Libreboot, without requiring real hardware. | |
621 | 585 | See: [Libreboot QEMU guide](../misc/emulation.md) | See: [Libreboot QEMU guide](../misc/emulation.md) |
622 | 586 | ||
623 | 587 | Install via host CPU (internal flashing) | Install via host CPU (internal flashing) |
624 | ======================================== | ||
588 | ---------------------------------------- | ||
625 | 589 | ||
626 | 590 | NOTE: This mainly applies to the x86 machines. | NOTE: This mainly applies to the x86 machines. |
627 | 591 | ||
... | ... | directly. | |
635 | 599 | Internal flashing is often unavailable with the factory firmware, but it is | Internal flashing is often unavailable with the factory firmware, but it is |
636 | 600 | usually possible when Libreboot is running (barring special circumstances). | usually possible when Libreboot is running (barring special circumstances). |
637 | 601 | ||
638 | Run flashprog on host CPU | ||
639 | ------------------------ | ||
602 | ### Run flashprog on host CPU | ||
640 | 603 | ||
641 | 604 | **Always remember to [insert vendor files](ivy_has_common.md), when using | **Always remember to [insert vendor files](ivy_has_common.md), when using |
642 | 605 | release images. Otherwise, these files are added automatically at build | release images. Otherwise, these files are added automatically at build |
643 | 606 | time, when building from source (but they are not present in release images).** | time, when building from source (but they are not present in release images).** |
644 | 607 | ||
645 | ### Flash chip size | ||
608 | #### Flash chip size | ||
646 | 609 | ||
647 | 610 | Use this to find out: | Use this to find out: |
648 | 611 | ||
... | ... | Use this to find out: | |
650 | 613 | ||
651 | 614 | In the output will be information pertaining to your boot flash. | In the output will be information pertaining to your boot flash. |
652 | 615 | ||
653 | ### Howto: read/write/erase the boot flash | ||
616 | #### Howto: read/write/erase the boot flash | ||
654 | 617 | ||
655 | 618 | How to read the current chip contents: | How to read the current chip contents: |
656 | 619 | ||
... | ... | How to erase and rewrite the chip contents: | |
664 | 627 | sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom | sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom |
665 | 628 | ||
666 | 629 | NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables | NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables |
667 | the safety checks in flashprog. Flashrom and coreboot change a lot, over the years, | ||
630 | the safety checks in flashprog. Flashprog and coreboot change a lot, over the years, | ||
668 | 631 | and sometimes it's necessary to use this option. If you're scared, then just | and sometimes it's necessary to use this option. If you're scared, then just |
669 | 632 | follow the above instructions, but remove that option. So, just use `-p internal`. | follow the above instructions, but remove that option. So, just use `-p internal`. |
670 | 633 | If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't | If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't |
... | ... | NOTE: there are exceptions where the above is not possible. Read about them in | |
680 | 643 | the sections below: | the sections below: |
681 | 644 | ||
682 | 645 | Removed boards | Removed boards |
683 | ============== | ||
646 | -------------- | ||
684 | 647 | ||
685 | 648 | These boards were in Libreboot, but have been removed with the intention of | These boards were in Libreboot, but have been removed with the intention of |
686 | 649 | re-adding them at a later date. They were removed due to issues. List: | re-adding them at a later date. They were removed due to issues. List: |
... | ... | re-adding them at a later date. They were removed due to issues. List: | |
697 | 660 | - [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md) | - [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md) |
698 | 661 | - Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`) | - Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`) |
699 | 662 | ||
700 | NOTES about removed boards | ||
701 | -------------------------- | ||
663 | ### NOTES about removed boards | ||
702 | 664 | ||
703 | 665 | **WARNING: veyron speedy boards (e.g. C201) have non-functional video init as | **WARNING: veyron speedy boards (e.g. C201) have non-functional video init as |
704 | 666 | of 19 February 2023, and no fix is yet available on that date. See: | of 19 February 2023, and no fix is yet available on that date. See: |
... | ... | for now, and have been deleted from the Libreboot 20221214 and 20230319 | |
717 | 679 | releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e> | releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e> |
718 | 680 | and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>** | and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>** |
719 | 681 | ||
720 | d945gclf: Doesn't boot at all, according to last report. D510MO is still in | ||
682 | D945GCLF: Doesn't boot at all, according to last report. D510MO is still in | ||
721 | 683 | lbmk but still was reported problematic; other boards should be fine (see list | lbmk but still was reported problematic; other boards should be fine (see list |
722 | 684 | above). | above). |
723 | 685 |
File site/docs/install/ivy_has_common.md changed (mode: 100644) (index 3541e0e..5ddc40b) | |||
... | ... | title: Insert vendor files not included in release images | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | Libreboot replaces proprietary BIOS/UEFI firmware, but some newer boards still | ||
10 | occasionally need code from the hardware manufacturer in order to boot properly. | ||
11 | This document will teach you how to handle such a scenario, and how to check | ||
12 | for it. For more context, please read Libreboot's [Binary Blob Reduction | ||
13 | Policy](../../news/policy.md) and [Freedom Status](../../freedom-status.md) | ||
14 | pages. | ||
15 | |||
6 | 16 | **PLEASE MAKE SURE you read and follow the instructions on this page, prior | **PLEASE MAKE SURE you read and follow the instructions on this page, prior |
7 | 17 | to flashing Libreboot, if required for your mainboard; failure to heed this | to flashing Libreboot, if required for your mainboard; failure to heed this |
8 | 18 | warning can and will result in a soft-brick, which would then necessitate | warning can and will result in a soft-brick, which would then necessitate |
... | ... | guide to change the GbE MAC address in the flash, if your board has an Intel | |
15 | 25 | Gigabit Ethernet device (where an Intel Flash Descriptor is used). | Gigabit Ethernet device (where an Intel Flash Descriptor is used). |
16 | 26 | ||
17 | 27 | WARNING: eCryptfs file name limits | WARNING: eCryptfs file name limits |
18 | ================================= | ||
28 | ---------------------------------- | ||
19 | 29 | ||
20 | 30 | Do not run the build system on a eCryptfs file system, because it has | Do not run the build system on a eCryptfs file system, because it has |
21 | 31 | very short file name limits and Libreboot's build system deals with very | very short file name limits and Libreboot's build system deals with very |
... | ... | long file names. We commonly get reports from this by Linux Mint users | |
23 | 33 | who encrypt their home directory with eCryptfs; regular LUKS encryption will | who encrypt their home directory with eCryptfs; regular LUKS encryption will |
24 | 34 | do nicely. | do nicely. |
25 | 35 | ||
26 | **Install build dependencies first** | ||
27 | ================================ | ||
36 | Install build dependencies first | ||
37 | ------------------------------------ | ||
28 | 38 | ||
29 | 39 | **You will be compiling several small utilities from source code. This means | **You will be compiling several small utilities from source code. This means |
30 | 40 | you need the compilers and various libraries.** | you need the compilers and various libraries.** |
... | ... | working. The insertion must work correctly, prior to Libreboot installation, | |
37 | 47 | if your board requires it, otherwise your board simply will not boot.** | if your board requires it, otherwise your board simply will not boot.** |
38 | 48 | ||
39 | 49 | Introduction | Introduction |
40 | ============ | ||
50 | ------------ | ||
41 | 51 | ||
42 | 52 | On *some* boards, but certainly not all of them, certain files are required from | On *some* boards, but certainly not all of them, certain files are required from |
43 | 53 | the hardware vendor. Libreboot has strict [rules](../../news/policy.md) | the hardware vendor. Libreboot has strict [rules](../../news/policy.md) |
... | ... | the [Freedom Status](../../freedom-status.md) page. | |
55 | 65 | **If in doubt, you should simply follow these instructions. If your board | **If in doubt, you should simply follow these instructions. If your board |
56 | 66 | doesn't need vendor files, the tar archive won't be modified.** | doesn't need vendor files, the tar archive won't be modified.** |
57 | 67 | ||
58 | MAC address | ||
59 | ----------- | ||
68 | ### MAC address | ||
60 | 69 | ||
61 | 70 | Regardless of whether your board needs vendorfiles or not, you can also use | Regardless of whether your board needs vendorfiles or not, you can also use |
62 | 71 | this command to change the MAC address on systems with Intel GbE regions in | this command to change the MAC address on systems with Intel GbE regions in |
... | ... | the flash, where an Intel gigabit ethernet device is used. | |
65 | 74 | For example, a Lenovo ThinkPad X200 doesn't need any files added, but can still | For example, a Lenovo ThinkPad X200 doesn't need any files added, but can still |
66 | 75 | have the mac address changed; please continue reading! | have the mac address changed; please continue reading! |
67 | 76 | ||
68 | Injecting vendor files into tarballs | ||
69 | ------------------------------------ | ||
77 | ### Injecting vendor files into tarballs | ||
70 | 78 | ||
71 | 79 | 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. |
72 | 80 | ||
... | ... | Older versions left the tarball unmodified, and extracted the modified images | |
131 | 139 | to `bin/release/` - on current behaviour, you inject the tarball and then | to `bin/release/` - on current behaviour, you inject the tarball and then |
132 | 140 | extract the tarball yourself afterward, to flash the modified images. | extract the tarball yourself afterward, to flash the modified images. |
133 | 141 | ||
134 | Behaviour changes in Libreboot 20241206 rev8 | ||
135 | -------------------------------------------- | ||
142 | ### Behaviour changes in Libreboot 20241206 rev8 | ||
136 | 143 | ||
137 | 144 | *Older* versions of this script would have produced the injected images under | *Older* versions of this script would have produced the injected images under |
138 | 145 | the `bin/release/` directory, and/or allow you to do it on specific ROM images. | the `bin/release/` directory, and/or allow you to do it on specific ROM images. |
... | ... | for Libreboot to retroactively modify the official images in this way, since | |
201 | 208 | using the older tarballs. | using the older tarballs. |
202 | 209 | ||
203 | 210 | Check that the files were inserted | Check that the files were inserted |
204 | ================================== | ||
211 | ---------------------------------- | ||
205 | 212 | ||
206 | Automatic verification | ||
207 | ---------------------- | ||
213 | ### Automatic verification | ||
208 | 214 | ||
209 | 215 | You *must* ensure that the files were inserted. The inject command automatically | You *must* ensure that the files were inserted. The inject command automatically |
210 | 216 | verifies checksums of the complete images, when you run it directly on a | verifies checksums of the complete images, when you run it directly on a |
... | ... | be modified. If you're using newer release images with `DO_NOT_FLASH` and | |
215 | 221 | the one-byte padding (as described above), that's a good indicator, but older | the one-byte padding (as described above), that's a good indicator, but older |
216 | 222 | release images didn't have this modification. | release images didn't have this modification. |
217 | 223 | ||
218 | Manual inspection | ||
219 | ----------------- | ||
224 | ### Manual inspection | ||
220 | 225 | ||
221 | 226 | You could check the files manually, if you're paranoid, after insertion. | You could check the files manually, if you're paranoid, after insertion. |
222 | 227 | ||
... | ... | uses MEv11 with Intel Boot Guard, the boot guard is automatically disabled | |
266 | 271 | by processing the MEv11 image with Mate Kukri's [deguard](deguard.md) utility. | by processing the MEv11 image with Mate Kukri's [deguard](deguard.md) utility. |
267 | 272 | ||
268 | 273 | Errata | Errata |
269 | ====== | ||
274 | ------ | ||
270 | 275 | ||
271 | 276 | This section should not concern you, if you're using newer Libreboot releases. | This section should not concern you, if you're using newer Libreboot releases. |
272 | 277 | This section largely concerns *bugs* which existed in older releases, pertaining | This section largely concerns *bugs* which existed in older releases, pertaining |
File site/docs/install/ivy_internal.md changed (mode: 100644) (index 7adb989..d782e77) | |||
... | ... | title: Ivybridge internal flashing | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo ThinkPad X230 laptop motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
12 | |||
13 | This document demonstrates an *internal flashing* method, by exploiting a | ||
14 | little-known security vulnerability in Lenovo's original UEFI firmware. | ||
15 | |||
6 | 16 | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR |
7 | 17 | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions |
8 | 18 | there, before flashing. For posterity, | there, before flashing. For posterity, |
9 | 19 | [here is the link again](ivy_has_common.md).** | [here is the link again](ivy_has_common.md).** |
10 | 20 | ||
11 | 21 | Ch1p's guide | Ch1p's guide |
12 | ============ | ||
22 | ------------ | ||
13 | 23 | ||
14 | 24 | This page tells you how to flash an ivybridge ThinkPad with Libreboot, | This page tells you how to flash an ivybridge ThinkPad with Libreboot, |
15 | 25 | internally, when it has the Lenovo firmware on it. It was written independently | internally, when it has the Lenovo firmware on it. It was written independently |
... | ... | coreboot patch: | |
36 | 46 | Anyway, follow ch1p's guide or this one. Ch1p was on Libreboot IRC and linked | Anyway, follow ch1p's guide or this one. Ch1p was on Libreboot IRC and linked |
37 | 47 | the above guide, so it has been added here to honour him. | the above guide, so it has been added here to honour him. |
38 | 48 | ||
39 | Introduction | ||
40 | ============ | ||
41 | |||
42 | 49 | External flashing still recommended | External flashing still recommended |
43 | 50 | ----------------------------------- | ----------------------------------- |
44 | 51 | ||
... | ... | or just a dead ThinkPad. Proceed at your own risk! | |
58 | 65 | If you prefer external flashing, see: [external flashing](x230_external.md) | If you prefer external flashing, see: [external flashing](x230_external.md) |
59 | 66 | ||
60 | 67 | Internal flashing from vendor firmware (ThinkPads only) | Internal flashing from vendor firmware (ThinkPads only) |
61 | ---------------------------------------- | ||
68 | ------------------------------------------------------- | ||
62 | 69 | ||
63 | 70 | IVYBRIDGE ONLY: | IVYBRIDGE ONLY: |
64 | 71 |
File site/docs/install/kcma-d8.md changed (mode: 100644) (index 960eb2a..f3952ab) | |||
1 | 1 | --- | --- |
2 | title: ASUS KCMA-D8 desktop/workstation board | ||
2 | title: Install Libreboot on ASUS KCMA-D8 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | TODO: this page is OLD. check that the info is still valid. | TODO: this page is OLD. check that the info is still valid. |
7 | 7 | ||
8 | Introduction | ||
9 | ============ | ||
8 | Open source BIOS/UEFI firmware | ||
9 | ------------------------------ | ||
10 | |||
11 | This document will teach you how to install Libreboot, on your | ||
12 | ASUS KCMA-D8 server/workstation motherboard. Libreboot replaces proprietary | ||
13 | BIOS/UEFI firmware. | ||
10 | 14 | ||
11 | 15 | Specifications available here: | Specifications available here: |
12 | 16 | <https://www.asus.com/uk/Commercial-Servers-Workstations/KCMAD8/> | <https://www.asus.com/uk/Commercial-Servers-Workstations/KCMAD8/> |
... | ... | If you currently have the ASUS firmware, please ignore the above link and | |
36 | 40 | instead refer to the section below: | instead refer to the section below: |
37 | 41 | ||
38 | 42 | Flashing | Flashing |
39 | ======== | ||
43 | -------- | ||
40 | 44 | ||
41 | 45 | The default ASUS firmware write-protects the flash, so you have to remove the | The default ASUS firmware write-protects the flash, so you have to remove the |
42 | 46 | chip and re-flash it using external hardware. | chip and re-flash it using external hardware. |
... | ... | Refer to the following guide:\ | |
56 | 60 | [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) | [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) |
57 | 61 | ||
58 | 62 | PCI option ROMs | PCI option ROMs |
59 | =============== | ||
63 | --------------- | ||
60 | 64 | ||
61 | 65 | Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and | Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and |
62 | 66 | loading PCI option ROMs automatically, both in GRUB and SeaBIOS on this machine. | loading PCI option ROMs automatically, both in GRUB and SeaBIOS on this machine. |
... | ... | So for example, if you wish to use an add-on graphics card, you can! It's no | |
66 | 70 | problem, and should work just fine. | problem, and should work just fine. |
67 | 71 | ||
68 | 72 | CPU coolers | CPU coolers |
69 | =========== | ||
73 | ----------- | ||
70 | 74 | ||
71 | 75 | With some creativity, standard AM3+ coolers will work fine. | With some creativity, standard AM3+ coolers will work fine. |
72 | 76 | ||
73 | 77 | 2 x Socket C32 (LGA1207) available, so you can use 2 CPUs. (up to 32GiB per CPU) | 2 x Socket C32 (LGA1207) available, so you can use 2 CPUs. (up to 32GiB per CPU) |
74 | 78 | ||
75 | 79 | CPU compatibility | CPU compatibility |
76 | ================= | ||
80 | ----------------- | ||
77 | 81 | ||
78 | 82 | - Opteron 4100 series: Incompatible | - Opteron 4100 series: Incompatible |
79 | 83 | - Opteron 4200 series: Compatible | - Opteron 4200 series: Compatible |
80 | 84 | - Opteron 4300 series: Compatible | - Opteron 4300 series: Compatible |
81 | 85 | ||
82 | 86 | Board status (compatibility) {#boardstatus} | Board status (compatibility) {#boardstatus} |
83 | ============================ | ||
87 | ------------------------------------- | ||
84 | 88 | ||
85 | 89 | There are two ways to identify a supported KCMA-D8 board: | There are two ways to identify a supported KCMA-D8 board: |
86 | 90 | ||
... | ... | For more detailed information regarding the coreboot port, see | |
99 | 103 | <https://raptorengineeringinc.com/coreboot/kcma-d8-status.php> | <https://raptorengineeringinc.com/coreboot/kcma-d8-status.php> |
100 | 104 | ||
101 | 105 | Form factor {#formfactor} | Form factor {#formfactor} |
102 | =========== | ||
106 | ----------------------- | ||
103 | 107 | ||
104 | 108 | This board is ATX form factor. While the [ATX standard, version 2.2](https://web.archive.org/web/20120725150314/http://www.formfactors.org/developer/specs/atx2_2.pdf) | This board is ATX form factor. While the [ATX standard, version 2.2](https://web.archive.org/web/20120725150314/http://www.formfactors.org/developer/specs/atx2_2.pdf) |
105 | 109 | specifies board dimensions 305mm x 244mm, this board measures 305mm x 253mm; | specifies board dimensions 305mm x 244mm, this board measures 305mm x 253mm; |
106 | 110 | please ensure that your case supports this extra ~cm in width. | please ensure that your case supports this extra ~cm in width. |
107 | 111 | ||
108 | 112 | IPMI iKVM module add-on {#ipmi} | IPMI iKVM module add-on {#ipmi} |
109 | ======================= | ||
113 | ---------------------------- | ||
110 | 114 | ||
111 | 115 | Don't use it. It uses proprietary firmware and adds a backdoor (remote | Don't use it. It uses proprietary firmware and adds a backdoor (remote |
112 | 116 | out-of-band management chip, similar to the [Intel Management | out-of-band management chip, similar to the [Intel Management |
... | ... | mainboard since it's on the add-on module, which you don't have to | |
116 | 120 | install. | install. |
117 | 121 | ||
118 | 122 | Flash chips {#flashchips} | Flash chips {#flashchips} |
119 | =========== | ||
123 | ----------------------- | ||
120 | 124 | ||
121 | 125 | 2MiB flash chips are included by default, on these boards. It's on a | 2MiB flash chips are included by default, on these boards. It's on a |
122 | 126 | P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: | P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: |
... | ... | Ideally, you should not hot-swap. Only remove the IC when the system is | |
133 | 137 | powered down and disconnected from mains. | powered down and disconnected from mains. |
134 | 138 | ||
135 | 139 | Native graphics initialization {#graphics} | Native graphics initialization {#graphics} |
136 | ============================== | ||
140 | ----------------------------------------- | ||
137 | 141 | ||
138 | 142 | Only text-mode is known to work, but linux(kernel) can initialize the | Only text-mode is known to work, but linux(kernel) can initialize the |
139 | 143 | framebuffer display (if it has KMS - kernel mode setting). | framebuffer display (if it has KMS - kernel mode setting). |
... | ... | because the Nouveau driver can't increase the GPU clock (it doesn't know how, | |
147 | 151 | as of 18 March 2021). | as of 18 March 2021). |
148 | 152 | ||
149 | 153 | Current issues {#issues} | Current issues {#issues} |
150 | ============== | ||
154 | ---------------------- | ||
151 | 155 | ||
152 | 156 | - Opteron 4100 series CPUs are currently incompatible | - Opteron 4100 series CPUs are currently incompatible |
153 | 157 | - LRDIMM memory modules are currently incompatible | - LRDIMM memory modules are currently incompatible |
File site/docs/install/kfsn4-dre.md changed (mode: 100644) (index f8b61c5..31fa80c) | |||
1 | 1 | --- | --- |
2 | title: ASUS KFSN4-DRE server/workstation board | ||
2 | title: Install Libreboot on ASUS KFSN4-DRE | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
48 | 48 | | **SeaBIOS with GRUB** | Partially works | | | **SeaBIOS with GRUB** | Partially works | |
49 | 49 | </div> | </div> |
50 | 50 | ||
51 | Open source BIOS/UEFI firmware | ||
52 | ------------------------------ | ||
53 | |||
54 | This document will teach you how to install Libreboot, on your | ||
55 | ASUS KFSN4-DRE server/workstation motherboard. Libreboot replaces proprietary | ||
56 | BIOS/UEFI firmware. | ||
57 | |||
51 | 58 | This is a server board using AMD hardware (Fam10h). It can also be used | This is a server board using AMD hardware (Fam10h). It can also be used |
52 | 59 | for building a high-powered workstation. Powered by libreboot. | for building a high-powered workstation. Powered by libreboot. |
53 | 60 | ||
... | ... | The reason why was explained, in | |
60 | 67 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
61 | 68 | ||
62 | 69 | Form factor {#formfactor} | Form factor {#formfactor} |
63 | =========== | ||
70 | --------------------- | ||
64 | 71 | ||
65 | 72 | These boards use the SSI EEB 3.61 form factor; make sure that your case | These boards use the SSI EEB 3.61 form factor; make sure that your case |
66 | 73 | supports this. This form factor is similar to E-ATX in that the size is | supports this. This form factor is similar to E-ATX in that the size is |
67 | 74 | identical, but the position of the screws are different. | identical, but the position of the screws are different. |
68 | 75 | ||
69 | 76 | Flash chips {#flashchips} | Flash chips {#flashchips} |
70 | =========== | ||
77 | ----------------------- | ||
71 | 78 | ||
72 | 79 | These boards use LPC flash (not SPI), in a PLCC socket. The default | These boards use LPC flash (not SPI), in a PLCC socket. The default |
73 | 80 | flash size 1MiB (8Mbits), and can be upgraded to 2MiB (16Mbits). | flash size 1MiB (8Mbits), and can be upgraded to 2MiB (16Mbits). |
... | ... | extractor. These can be found online. See | |
80 | 87 | <http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools>* | <http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools>* |
81 | 88 | ||
82 | 89 | Native graphics initialization {#graphics} | Native graphics initialization {#graphics} |
83 | ============================== | ||
90 | --------------------------------------- | ||
84 | 91 | ||
85 | 92 | Native graphics initialization exists (XGI Z9s) for this board. | Native graphics initialization exists (XGI Z9s) for this board. |
86 | 93 | Framebuffer- and text-mode both work. A serial port is also available. | Framebuffer- and text-mode both work. A serial port is also available. |
87 | 94 | ||
88 | 95 | Memory | Memory |
89 | ====== | ||
96 | ------- | ||
90 | 97 | ||
91 | 98 | DDR2 533/667 Registered ECC. 16 slots. Total capacity up to 64GiB. | DDR2 533/667 Registered ECC. 16 slots. Total capacity up to 64GiB. |
92 | 99 | ||
93 | 100 | Hex-core CPUs {#hexcore} | Hex-core CPUs {#hexcore} |
94 | ============= | ||
101 | --------------------- | ||
95 | 102 | ||
96 | 103 | PCB revision 1.05G is the latest version of this board and the best one | PCB revision 1.05G is the latest version of this board and the best one |
97 | 104 | (the revision number is be printed on the board), if you want to use | (the revision number is be printed on the board), if you want to use |
... | ... | To be sure your board supports a CPU check the official ASUS website here: | |
105 | 112 | If you are running a Hex-Core CPU on any board version, please contact us. | If you are running a Hex-Core CPU on any board version, please contact us. |
106 | 113 | ||
107 | 114 | Board configurations {#configurations} | Board configurations {#configurations} |
108 | ============== | ||
115 | ---------------------------------------- | ||
116 | |||
109 | 117 | There are 7 different configurations of this board: "standard", 2S, iKVM, | There are 7 different configurations of this board: "standard", 2S, iKVM, |
110 | 118 | iKVM/IST, SAS, SAS/iKVM and SAS/iKVM/IST. | iKVM/IST, SAS, SAS/iKVM and SAS/iKVM/IST. |
111 | 119 | ||
... | ... | The IST versions with PCB revision 1.05G are the ones who are believed to | |
124 | 132 | support the six core Opteron Istanbul processors (2400 and 8400 series). | support the six core Opteron Istanbul processors (2400 and 8400 series). |
125 | 133 | ||
126 | 134 | Current issues {#issues} | Current issues {#issues} |
127 | ============== | ||
135 | ----------------------- | ||
128 | 136 | ||
129 | 137 | - There seems to be a 30 second bootblock delay (observed by | - There seems to be a 30 second bootblock delay (observed by |
130 | 138 | tpearson); the system otherwise boots and works as expected. See | tpearson); the system otherwise boots and works as expected. See |
... | ... | Current issues {#issues} | |
151 | 159 | the USB booting doesn't work. | the USB booting doesn't work. |
152 | 160 | ||
153 | 161 | Other information | Other information |
154 | ================= | ||
162 | ------------------ | ||
155 | 163 | ||
156 | 164 | [specifications](https://web.archive.org/web/20181212180051/http://ftp.tekwind.co.jp/pub/asustw/mb/Socket%20F/KFSN4-DRE/Manual/e3335_kfsn4-dre.pdf) | [specifications](https://web.archive.org/web/20181212180051/http://ftp.tekwind.co.jp/pub/asustw/mb/Socket%20F/KFSN4-DRE/Manual/e3335_kfsn4-dre.pdf) |
157 | 165 |
File site/docs/install/kgpe-d16.md changed (mode: 100644) (index e6bc293..51ae60e) | |||
... | ... | title: ASUS KGPE-D16 server/workstation board | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | ASUS KGPE-D16 server/workstation motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
12 | |||
6 | 13 | TODO: OLD page. TODO: check that all the info is still valid. | TODO: OLD page. TODO: check that all the info is still valid. |
7 | 14 | ||
8 | Introduction | ||
9 | ============ | ||
15 | Free your BIOS today! | ||
16 | --------------------- | ||
10 | 17 | ||
11 | 18 | This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs | This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs |
12 | 19 | available). It can also be used for building a high-powered workstation. | available). It can also be used for building a high-powered workstation. |
... | ... | possible to re-flash using software running in Linux on the | |
26 | 33 | KGPE-D16, without using external hardware. | KGPE-D16, without using external hardware. |
27 | 34 | ||
28 | 35 | CPU compatibility | CPU compatibility |
29 | ================= | ||
36 | ----------------- | ||
30 | 37 | ||
31 | 38 | Opteron 62xx and 63xx CPUs work just fine. | Opteron 62xx and 63xx CPUs work just fine. |
32 | 39 | ||
33 | 40 | Board status (compatibility) {#boardstatus} | Board status (compatibility) {#boardstatus} |
34 | ============================ | ||
41 | --------------------- | ||
35 | 42 | ||
36 | 43 | See <https://raptorengineeringinc.com/coreboot/kgpe-d16-status.php>. | See <https://raptorengineeringinc.com/coreboot/kgpe-d16-status.php>. |
37 | 44 | ||
38 | 45 | Form factor {#formfactor} | Form factor {#formfactor} |
39 | =========== | ||
46 | ---------------------- | ||
40 | 47 | ||
41 | 48 | These boards use the SSI EEB 3.61 form factor; make sure that your case | These boards use the SSI EEB 3.61 form factor; make sure that your case |
42 | 49 | supports this. This form factor is similar to E-ATX in that the size is | supports this. This form factor is similar to E-ATX in that the size is |
43 | 50 | identical, but the position of the screws are different. | identical, but the position of the screws are different. |
44 | 51 | ||
45 | 52 | IPMI iKVM module add-on {#ipmi} | IPMI iKVM module add-on {#ipmi} |
46 | ======================= | ||
53 | -------------------------- | ||
47 | 54 | ||
48 | 55 | Don't use it. It uses proprietary firmware and adds a backdoor (remote | Don't use it. It uses proprietary firmware and adds a backdoor (remote |
49 | 56 | out-of-band management chip, similar to the [Intel Management | out-of-band management chip, similar to the [Intel Management |
... | ... | mainboard since it's on the add-on module, which you don't have to | |
53 | 60 | install. | install. |
54 | 61 | ||
55 | 62 | Flash chips {#flashchips} | Flash chips {#flashchips} |
56 | =========== | ||
63 | -------------------------- | ||
57 | 64 | ||
58 | 65 | 2MiB flash chips are included by default, on these boards. It's on a | 2MiB flash chips are included by default, on these boards. It's on a |
59 | 66 | P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: | P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: |
... | ... | This guide shows how to flash the chip:\ | |
72 | 79 | [25xx NOR flashing guide](../install/spi.md) | [25xx NOR flashing guide](../install/spi.md) |
73 | 80 | ||
74 | 81 | Native graphics initialization {#graphics} | Native graphics initialization {#graphics} |
75 | ============================== | ||
82 | ---------------------------------- | ||
76 | 83 | ||
77 | 84 | Only text-mode is known to work, but linux(kernel) can initialize the | Only text-mode is known to work, but linux(kernel) can initialize the |
78 | 85 | framebuffer display (if it has KMS - kernel mode setting). | framebuffer display (if it has KMS - kernel mode setting). |
79 | 86 | ||
80 | 87 | Current issues {#issues} | Current issues {#issues} |
81 | ============== | ||
88 | ---------------------------------- | ||
82 | 89 | ||
83 | 90 | - LRDIMM memory modules are currently incompatible | - LRDIMM memory modules are currently incompatible |
84 | 91 | (IT MAY WORK NOWADAYS, TODO TEST) | (IT MAY WORK NOWADAYS, TODO TEST) |
File site/docs/install/latitude.md changed (mode: 100644) (index e16fc9a..10d72b1) | |||
1 | 1 | --- | --- |
2 | title: Flashing Libreboot on Dell Latitude laptops | ||
2 | title: Install Libreboot on Dell Latitude laptops | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on various models of | ||
10 | Dell Latitude laptop motherboard, namely Dell Latitude E4300, E6400, E6400 XFR, | ||
11 | E6400 ATG, E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330 | ||
12 | and E6220; you must only install Libreboot on models with *Intel graphics*. | ||
13 | Libreboot replaces proprietary BIOS/UEFI firmware. | ||
14 | |||
15 | In case any models are unlisted in the above paragraph, you should also check | ||
16 | the full list of supported Dell Latitude models on the [Libreboot hardware | ||
17 | compatibility](./#which-systems-are-supported-by-libreboot) page. | ||
18 | |||
6 | 19 | All of the Dell Latitude models can be flashed internally, which means that | All of the Dell Latitude models can be flashed internally, which means that |
7 | 20 | you do not need to disassemble them. You can do it from Linux/BSD, using the | you do not need to disassemble them. You can do it from Linux/BSD, using the |
8 | 21 | instructions on this page. | instructions on this page. |
9 | 22 | ||
10 | 23 | Disable security before flashing | Disable security before flashing |
11 | ================================ | ||
24 | -------------------------------- | ||
12 | 25 | ||
13 | 26 | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR |
14 | 27 | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions |
... | ... | Note that Libreboot does not currently implement UEFI on x86 platforms, but | |
24 | 37 | you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing. | you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing. |
25 | 38 | ||
26 | 39 | MAC address | MAC address |
27 | =========== | ||
40 | ----------- | ||
28 | 41 | ||
29 | 42 | Make sure to set your own MAC address in the ROM image before flashing. | Make sure to set your own MAC address in the ROM image before flashing. |
30 | 43 | Please read the [nvmutil manual](nvmutil.md) which says how to do this. | Please read the [nvmutil manual](nvmutil.md) which says how to do this. |
31 | 44 | ||
32 | 45 | Thermal safety | Thermal safety |
33 | ============== | ||
46 | -------------- | ||
34 | 47 | ||
35 | 48 | **Thermal safety**: this machine shuts down very quickly, when the machine | **Thermal safety**: this machine shuts down very quickly, when the machine |
36 | 49 | exceeds 80c CPU temperature, which is far more conservative than on most | exceeds 80c CPU temperature, which is far more conservative than on most |
... | ... | excellent. More info available [here](../install/dell_thermal.md). This is a | |
39 | 52 | known bug, but otherwise the machine will be mostly stable. | known bug, but otherwise the machine will be mostly stable. |
40 | 53 | ||
41 | 54 | Machine-specific notes | Machine-specific notes |
42 | ====================== | ||
55 | ---------------------- | ||
43 | 56 | ||
44 | Latitude E6400 | ||
45 | -------------- | ||
57 | ### Latitude E6400 | ||
46 | 58 | ||
47 | 59 | Vendor files not required for Dell Latitude E6400 if you have the Intel GPU. | Vendor files not required for Dell Latitude E6400 if you have the Intel GPU. |
48 | 60 | ||
49 | 61 | If you have the Nvidia model, please use the `e6400nvidia_4mb` target, and | If you have the Nvidia model, please use the `e6400nvidia_4mb` target, and |
50 | 62 | make sure to run the [inject script](ivy_has_common.md) prior to flashing. | make sure to run the [inject script](ivy_has_common.md) prior to flashing. |
51 | 63 | ||
52 | E6400 nvidia issues | ||
53 | ------------------- | ||
64 | ### E6400 nvidia issues | ||
54 | 65 | ||
55 | 66 | See: <https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758> | See: <https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758> |
56 | 67 | ||
... | ... | The `nv` drivers on BSD systems generally work, but can have severe performance | |
59 | 70 | issues; use of a tiling window manager is recommended, on BSD systems, because | issues; use of a tiling window manager is recommended, on BSD systems, because |
60 | 71 | moving windows around can literally lag a lot otherwise, on most window managers. | moving windows around can literally lag a lot otherwise, on most window managers. |
61 | 72 | ||
62 | dGPU variants | ||
63 | ------------- | ||
73 | ### dGPU variants | ||
64 | 74 | ||
65 | 75 | On everything except E6400, Libreboot only supports the variant with an Intel | On everything except E6400, Libreboot only supports the variant with an Intel |
66 | 76 | GPU. Therefore, you must *only* purchase a Dell Latitude that has the Intel | GPU. Therefore, you must *only* purchase a Dell Latitude that has the Intel |
... | ... | graphics; even on E6400, this is good advice, due to issues with the Nvidia | |
68 | 78 | GPU on E6400, documented later in this guide. | GPU on E6400, documented later in this guide. |
69 | 79 | ||
70 | 80 | Internal flashing | Internal flashing |
71 | ================= | ||
81 | ----------------- | ||
72 | 82 | ||
73 | 83 | You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and | You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and |
74 | 84 | run `flashprog` from there, for Libreboot installation. Certain other steps | run `flashprog` from there, for Libreboot installation. Certain other steps |
... | ... | successful. If you don't see that, or you're unsure, please [contact the | |
130 | 140 | Libreboot project via IRC](../../contact.md). | Libreboot project via IRC](../../contact.md). |
131 | 141 | ||
132 | 142 | External flashing | External flashing |
133 | ================= | ||
143 | ----------------- | ||
134 | 144 | ||
135 | General guidance | ||
136 | ---------------- | ||
145 | ### General guidance | ||
137 | 146 | ||
138 | Machine-specific disassembly instructions not provided, but you can find | ||
147 | Machine-specific disassembly instructions are not provided, but you can find | ||
139 | 148 | the hardware maintenance manual for your Latitude module online. Just search | the hardware maintenance manual for your Latitude module online. Just search |
140 | 149 | for it. The flash chips(s) is/are usually under the keyboard/palmrest. Near | for it. The flash chips(s) is/are usually under the keyboard/palmrest. Near |
141 | 150 | to the PCH/southbridge. | to the PCH/southbridge. |
... | ... | Please read the [external SPI flash guide](spi.md) | |
153 | 162 | ||
154 | 163 | External flashing is usually not required, on these machines. | External flashing is usually not required, on these machines. |
155 | 164 | ||
156 | Chip size guidance | ||
157 | ------------------ | ||
165 | ### Chip size guidance | ||
158 | 166 | ||
159 | SOme Dell Latitudes use a single flash chip, so you can | ||
167 | Some Dell Latitudes use a single flash chip, so you can | ||
160 | 168 | just use the ROM images as-is. | just use the ROM images as-is. |
161 | 169 | ||
162 | 170 | If there are two flash chips, you must split the ROM images. Check the silk | If there are two flash chips, you must split the ROM images. Check the silk |
File site/docs/install/mac_address.md changed (mode: 100644) (index 8d8cbc9..8c857f5) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Introduction (GM45+e1000) | Introduction (GM45+e1000) |
7 | ========================= | ||
7 | ------------------------- | ||
8 | 8 | ||
9 | 9 | This section is applicable to all libreboot-supported laptops with the | This section is applicable to all libreboot-supported laptops with the |
10 | 10 | mobile 4 series chipset (as shown in `$ lspci`) | mobile 4 series chipset (as shown in `$ lspci`) |
... | ... | for the built-in gigabit ethernet controller is stored inside the flash chip, | |
17 | 17 | along with libreboot and other configuration data. Therefore, installing | along with libreboot and other configuration data. Therefore, installing |
18 | 18 | libreboot will overwrite it. | libreboot will overwrite it. |
19 | 19 | ||
20 | Thus, for these laptops, prebuilt libreboot already contains a generic | ||
21 | MAC address in the configuration section. This address is `00:f5:f0:40:71:fe | ||
22 | in builds before 2018-01-16 and `00:4c:69:62:72:65` (see the ascii character | ||
23 | set) afterwards. | ||
20 | Thus, for these laptops, prebuilt libreboot images already contain a generic | ||
21 | MAC address in the GbE region. | ||
24 | 22 | Unless you change it, your computer will boot and use it. This can lead | Unless you change it, your computer will boot and use it. This can lead |
25 | 23 | to network problems if you have more than one libreboot computer on | to network problems if you have more than one libreboot computer on |
26 | the same layer2 network (e.g. on the same network switch). The switch | ||
27 | (postman) will simply not know who to deliver to as the MAC (house) addresses | ||
28 | will be the same. | ||
24 | the same layer2 network (e.g. on the same network switch). | ||
29 | 25 | ||
30 | 26 | To prevent these address clashes, you can either modify prebuilt libreboot | To prevent these address clashes, you can either modify prebuilt libreboot |
31 | 27 | to use an address of your own choosing or you can change the address in your | to use an address of your own choosing or you can change the address in your |
... | ... | In either case, it is a good idea to write down the address that your | |
35 | 31 | computer originally had. | computer originally had. |
36 | 32 | ||
37 | 33 | Obtaining the existing MAC address | Obtaining the existing MAC address |
38 | ================================== | ||
34 | ---------------------------------- | ||
39 | 35 | ||
40 | 36 | The existing MAC address may be obtained by the following methods: | The existing MAC address may be obtained by the following methods: |
41 | 37 | ||
... | ... | The existing MAC address may be obtained by the following methods: | |
65 | 61 | updated. | updated. |
66 | 62 | ||
67 | 63 | Changing the MAC address in the operating system | Changing the MAC address in the operating system |
68 | ================================================ | ||
64 | ------------------------------------------------ | ||
69 | 65 | ||
70 | 66 | There are three portable ways of doing so: | There are three portable ways of doing so: |
71 | 67 | ||
... | ... | configuration. Refer to your operating system's documentation for | |
91 | 87 | how to do this. | how to do this. |
92 | 88 | ||
93 | 89 | Changing the MAC address on X200/T400/T500/W500 | Changing the MAC address on X200/T400/T500/W500 |
94 | =============================================== | ||
90 | ----------------------------------------------- | ||
95 | 91 | ||
96 | 92 | On GM45 laptops with ICH9M southbridge and Intel PHY module, the MAC address | On GM45 laptops with ICH9M southbridge and Intel PHY module, the MAC address |
97 | 93 | is hardcoded in boot flash, which means it can be changed if you re-flash. | is hardcoded in boot flash, which means it can be changed if you re-flash. |
... | ... | If *all* you want to do is change the MAC address, you might try `nvmutil` | |
102 | 98 | instead. See notes below: | instead. See notes below: |
103 | 99 | ||
104 | 100 | Changing the MAC address on ivybridge/sandybridge/haswell (e.g. X230/T440p) | Changing the MAC address on ivybridge/sandybridge/haswell (e.g. X230/T440p) |
105 | ========================================================= | ||
101 | ----------------------------------------------------------------- | ||
106 | 102 | ||
107 | 103 | See [nvmutil documentation](../install/nvmutil.md) | See [nvmutil documentation](../install/nvmutil.md) |
108 | 104 | ||
... | ... | which the build system automatically fetches from the internet). | |
122 | 118 | ||
123 | 119 | You can use `nvmutil` to change the existing MAC address in a GbE region. This | You can use `nvmutil` to change the existing MAC address in a GbE region. This |
124 | 120 | sets the "hardcoded" MAC address, typically a globally assigned one set by | sets the "hardcoded" MAC address, typically a globally assigned one set by |
125 | the vendor. | ||
121 | the vendor, but you can use local addresses, and you can use randomised MACs. |
File site/docs/install/macbook21.md changed (mode: 100644) (index 52e2cac..bde8002) | |||
1 | 1 | --- | --- |
2 | title: MacBook2,1 and MacBook1,1 | ||
2 | title: Install Libreboot on MacBook2,1 and MacBook1,1 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | x-toc-enable: true | |
20 | 20 | | **Graphics** | Intel GMA 950 | | | **Graphics** | Intel GMA 950 | |
21 | 21 | | **Display** | 1280x800 TFT | | | **Display** | 1280x800 TFT | |
22 | 22 | | **Memory** | 512MB, 1GB (upgradable to 4GB with 3GB usable) | | | **Memory** | 512MB, 1GB (upgradable to 4GB with 3GB usable) | |
23 | | **Architecture** | x86_64 | | ||
23 | | **Architecture** | x86\_64 | | ||
24 | 24 | | **EC** | Proprietary | | | **EC** | Proprietary | |
25 | 25 | | **Original boot firmware** | Apple EFI | | | **Original boot firmware** | Apple EFI | |
26 | 26 | | **Intel ME/AMD PSP** | Not present. | | | **Intel ME/AMD PSP** | Not present. | |
... | ... | P*: Partially works with vendor firmware | |
50 | 50 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
51 | 51 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
52 | 52 | </div> | </div> |
53 | |||
54 | Open source BIOS/UEFI firmware | ||
55 | ------------------------- | ||
56 | |||
57 | This document will teach you how to install Libreboot, on your | ||
58 | Apple MacBook 2,1 2005-2007 laptop motherboard. Libreboot replaces proprietary | ||
59 | BIOS/UEFI firmware. | ||
60 | |||
53 | 61 | The MacBook1,1 and MacBook2,1 are very similar to the | The MacBook1,1 and MacBook2,1 are very similar to the |
54 | 62 | ThinkPad X60. It shares some hardware with the X60 such as the chipset. | ThinkPad X60. It shares some hardware with the X60 such as the chipset. |
55 | 63 | ||
... | ... | uses Core Duo processors (supports 32-bit OS but not 64-bit), and it is | |
63 | 71 | believed that this is the only difference. | believed that this is the only difference. |
64 | 72 | ||
65 | 73 | Compatibility | Compatibility |
66 | ============= | ||
74 | ------------- | ||
67 | 75 | ||
68 | 76 | The following pages list many models of MacBook1,1 and MacBook2,1: | The following pages list many models of MacBook1,1 and MacBook2,1: |
69 | 77 | ||
70 | 78 | * <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1> | * <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1> |
71 | 79 | * <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1> | * <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1> |
72 | 80 | ||
73 | Models | ||
74 | ------ | ||
81 | ### Models | ||
75 | 82 | ||
76 | 83 | Specifically (Order No. / Model No. / CPU) for the MacBook1,1: | Specifically (Order No. / Model No. / CPU) for the MacBook1,1: |
77 | 84 | ||
... | ... | then don't forget to [send a patch](../../git.md), confirming that it | |
99 | 106 | actually works! | actually works! |
100 | 107 | ||
101 | 108 | Internal flashing | Internal flashing |
102 | ================= | ||
109 | ----------------- | ||
103 | 110 | ||
104 | 111 | MacBook2,1 can always be flashed internally, even if running Apple firmware: | MacBook2,1 can always be flashed internally, even if running Apple firmware: |
105 | 112 | ||
... | ... | The MacBook1,1 can't be flashed internally if running the Apple EFI firmware. | |
114 | 121 | You must flash externally. | You must flash externally. |
115 | 122 | ||
116 | 123 | External flashing | External flashing |
117 | ================= | ||
124 | ----------------- | ||
118 | 125 | ||
119 | 126 | MacBook1,1 requires external flashing, if running the default Apple firmware. | MacBook1,1 requires external flashing, if running the default Apple firmware. |
120 | 127 | MacBook2,1 can be flashed internally, regardless. | MacBook2,1 can be flashed internally, regardless. |
... | ... | Refer to the following guide:\ | |
134 | 141 | [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) | [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) |
135 | 142 | ||
136 | 143 | OSes using Linux on Apple EFI firmware | OSes using Linux on Apple EFI firmware |
137 | ====================================== | ||
144 | -------------------------------------- | ||
138 | 145 | ||
139 | 146 | You have 2 choices for booting up OSes using Linux as their kernel | You have 2 choices for booting up OSes using Linux as their kernel |
140 | 147 | on the MacBook: | on the MacBook: |
... | ... | on the MacBook: | |
143 | 150 | ||
144 | 151 | * Boot via a CD or DVD. | * Boot via a CD or DVD. |
145 | 152 | ||
146 | Boot via a CD or DVD | ||
147 | -------------------- | ||
153 | ### Boot via a CD or DVD | ||
148 | 154 | ||
149 | 155 | The Apple EFI firmware contains a PC BIOS emulation layer for booting | The Apple EFI firmware contains a PC BIOS emulation layer for booting |
150 | 156 | Microsoft Windows on CDs and DVDs. That emulation layer **only** works | Microsoft Windows on CDs and DVDs. That emulation layer **only** works |
... | ... | should boot up properly automatically. | |
174 | 180 | to it using GRUB, despite the fact that it does sometimes show up. You | to it using GRUB, despite the fact that it does sometimes show up. You |
175 | 181 | also won't be able to boot it up when using Libreboot.* | also won't be able to boot it up when using Libreboot.* |
176 | 182 | ||
177 | Boot via USB | ||
178 | ------------ | ||
183 | ### Boot via USB | ||
179 | 184 | ||
180 | 185 | This method is harder than booting from a CD/DVD and may soft-brick your | This method is harder than booting from a CD/DVD and may soft-brick your |
181 | 186 | MacBook but it's the only way to boot up successfully from a USB. | MacBook but it's the only way to boot up successfully from a USB. |
... | ... | the CMOS/PRAM battery, wait a few minutes, and put it back in. | |
213 | 218 | to reconfigure GRUB2 correctly, else your system won't boot.* | to reconfigure GRUB2 correctly, else your system won't boot.* |
214 | 219 | ||
215 | 220 | Coreboot wiki page | Coreboot wiki page |
216 | ================== | ||
221 | ------------------ | ||
217 | 222 | ||
218 | 223 | The following page has some information: | The following page has some information: |
219 | 224 | ||
220 | 225 | * <https://www.coreboot.org/Board:apple/macbook21> | * <https://www.coreboot.org/Board:apple/macbook21> |
221 | 226 | ||
222 | 227 | Issues and solutions/workarounds | Issues and solutions/workarounds |
223 | ================================ | ||
228 | -------------------------------- | ||
224 | 229 | ||
225 | 230 | There is one mouse button only, however multiple finger tapping | There is one mouse button only, however multiple finger tapping |
226 | 231 | works. The Apple logo on the | works. The Apple logo on the |
... | ... | should [cover it up](http://cweiske.de/tagebuch/tuxbook.htm). | |
231 | 236 | software. Webcams are a privacy and security risk; cover it up! Or | software. Webcams are a privacy and security risk; cover it up! Or |
232 | 237 | remove it.* | remove it.* |
233 | 238 | ||
234 | Make it overheat less | ||
235 | --------------------- | ||
239 | ### Make it overheat less | ||
236 | 240 | ||
237 | 241 | NOTE: on newer libreboot revisions, this section is less relevant, because C3 | NOTE: on newer libreboot revisions, this section is less relevant, because C3 |
238 | 242 | states are supported now. However, this section may still be useful, so it will | states are supported now. However, this section may still be useful, so it will |
... | ... | PLATFORM_PROFILE_ON_BAT=low-power | |
272 | 276 | ||
273 | 277 | The MacBook will still overheat, just less. | The MacBook will still overheat, just less. |
274 | 278 | ||
275 | Enable AltGr | ||
276 | ------------ | ||
279 | ### Enable AltGr | ||
277 | 280 | ||
278 | 281 | The keyboard has a keypad enter instead of an AltGr. The first key on | The keyboard has a keypad enter instead of an AltGr. The first key on |
279 | 282 | the right side of the spacebar is the Apple "command" key. On its | the right side of the spacebar is the Apple "command" key. On its |
... | ... | line: | |
297 | 300 | ||
298 | 301 | to the file /etc/vconsole.conf and then restart the computer. | to the file /etc/vconsole.conf and then restart the computer. |
299 | 302 | ||
300 | Make touchpad more responsive | ||
301 | ----------------------------- | ||
303 | ### Make touchpad more responsive | ||
302 | 304 | ||
303 | 305 | Linux kernels of version 3.15 or lower might make the touchpad | Linux kernels of version 3.15 or lower might make the touchpad |
304 | 306 | extremely sluggish. A user reported that they could get better | extremely sluggish. A user reported that they could get better |
305 | response from the touchpad with the following in their xorg.conf: | ||
307 | response from the touchpad with the following in their `xorg.conf`: | ||
306 | 308 | ||
307 | 309 | ``` | ``` |
308 | 310 | Section "InputClass" | Section "InputClass" |
File site/docs/install/nvmutil.md changed (mode: 100644) (index 5f5b876..f131dfa) | |||
1 | 1 | --- | --- |
2 | title: nvmutil manual | ||
2 | title: nvmutil usage instructions | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | With this software, you can change the MAC address inside GbE regions | With this software, you can change the MAC address inside GbE regions |
7 | on any system that uses an Intel Flash Descriptor. | ||
7 | on any system that uses an Intel Flash Descriptor. This software works well | ||
8 | on most/all of the major Linux or BSD operating systems. | ||
8 | 9 | ||
9 | 10 | This is the reference documentation for `nvmutil`, but an automated script | This is the reference documentation for `nvmutil`, but an automated script |
10 | 11 | using nvmutil is available for ivy/sandybridge and haswell hardware, when | using nvmutil is available for ivy/sandybridge and haswell hardware, when |
... | ... | inserting vendor files, which you can use to change the MAC address. See: | |
15 | 16 | You can use the documentation below, if you wish to use `nvmutil` manually. | You can use the documentation below, if you wish to use `nvmutil` manually. |
16 | 17 | Continue reading... | Continue reading... |
17 | 18 | ||
18 | Introduction | ||
19 | ============ | ||
19 | Change the Intel GbE MAC address | ||
20 | -------------------------------- | ||
20 | 21 | ||
21 | This is the manual for `nvmutil`, included in the Libreboot, | ||
22 | build system (lbmk) under `util/nvmutil/`. This program lets you modify | ||
23 | the MAC address, correct/verify/invalidate checksums, | ||
24 | swap/copy and dump regions on Intel PHY NVM images, | ||
25 | which are small binary configuration files that go | ||
26 | in flash, for Gigabit (ethernet) Intel NICs. | ||
22 | This is the manual for `nvmutil`, included within the [Libreboot build | ||
23 | system](../maintain/) (lbmk) under `util/nvmutil/`. This program lets you modify | ||
24 | the MAC address, correct/verify/invalidate checksums, swap/copy and dump regions | ||
25 | on Intel PHY NVM images, which are small binary configuration files that go in | ||
26 | flash, for Gigabit (ethernet) Intel NICs. | ||
27 | 27 | ||
28 | 28 | **Please [install build dependencies](../build/) before you do this.** | **Please [install build dependencies](../build/) before you do this.** |
29 | 29 | ||
30 | This software is largely targeted at coreboot users, | ||
31 | but it can be used on most modern Intel systems, or | ||
32 | most systems from about 2008/2009 onwards. | ||
33 | |||
34 | NOTE: Libreboot X200/X200T/X200S/T400/T400S/T500/W500/R400 | ||
35 | users should know that this software does *not* | ||
36 | replace `ich9gen`, because that program generates entire | ||
37 | ICH9M IFD+GbE regions, in addition to letting you set the | ||
38 | MAC address. *This* program, `nvmutil`, can *also* set | ||
39 | the MAC address on those machines, but it operates on a | ||
40 | single GbE dump that is already created. | ||
41 | |||
42 | This program is operated on dumps of the GbE NVM image, | ||
43 | which normally goes in the boot flash (alongside BIOS/UEFI | ||
44 | or coreboot, IFD and other regions in the flash). The first | ||
45 | half of this README is dedicated to precisely this, telling | ||
46 | you how to dump or otherwise acquire that file; the second | ||
47 | half of this README then tells you how to operate on it, | ||
48 | using `nvmutil`. | ||
30 | This software is largely targeted at coreboot users, but it can be used on most | ||
31 | modern Intel systems, or most systems from about 2008/2009 onwards, regardless | ||
32 | of which boot firmware they have. | ||
33 | |||
34 | This program is operated on dumps of the GbE NVM image, which normally goes in | ||
35 | the boot flash (alongside BIOS/UEFI or coreboot, IFD and other regions in | ||
36 | the flash). The first half of this README is dedicated to precisely this, | ||
37 | telling you how to dump or otherwise acquire that file; the second half of this | ||
38 | README then tells you how to operate on it, using `nvmutil`. | ||
49 | 39 | ||
50 | 40 | Automatic MAC address changer | Automatic MAC address changer |
51 | 41 | ----------------------------- | ----------------------------- |
... | ... | is provided without argument, or no argument is given, the MAC address is | |
73 | 63 | randomised. Otherwise, you can specify an arbitrary address. | randomised. Otherwise, you can specify an arbitrary address. |
74 | 64 | ||
75 | 65 | The `?` character is random, and you can specify that any of them be random, | The `?` character is random, and you can specify that any of them be random, |
76 | while setting others (or all of them) arbitrarily. | ||
66 | while setting others (or all of them) arbitrarily. On the corresponding nibble, | ||
67 | the bit for unicast/multicast and global/local are set accordingly, so that | ||
68 | randomly generated addresses are *always* unicast and *local*, unless the | ||
69 | corresponding nibble is set arbitrarily; if the latter, then an error is thrown | ||
70 | if the arbitrary nibble corresponds to a multicast MAC address (and when errors | ||
71 | are thrown, the file shall remain unchanged). More information about error | ||
72 | handling is provided, later in this document. | ||
77 | 73 | ||
78 | 74 | The `restore` option restores the original one. The command works by using a | The `restore` option restores the original one. The command works by using a |
79 | 75 | reference GbE image file present in Libreboot's build system, for the given | reference GbE image file present in Libreboot's build system, for the given |
80 | 76 | mainboard. | mainboard. |
81 | 77 | ||
82 | 78 | How to download newer versions | How to download newer versions |
83 | ============================== | ||
79 | ------------------------------ | ||
84 | 80 | ||
85 | 81 | Simply pull down the latest changes in `lbmk.git`. The `nvmutil` | Simply pull down the latest changes in `lbmk.git`. The `nvmutil` |
86 | 82 | software is now part of lbmk, since 17 November 2022. | software is now part of lbmk, since 17 November 2022. |
... | ... | More info about git: | |
90 | 86 | * <https://git-scm.com/> | * <https://git-scm.com/> |
91 | 87 | ||
92 | 88 | Context | Context |
93 | ======= | ||
89 | ------- | ||
94 | 90 | ||
95 | 91 | On many Intel systems with an IFD (Intel Flash Descriptor), the | On many Intel systems with an IFD (Intel Flash Descriptor), the |
96 | 92 | Intel PHY (Gigabit Ethernet) stores its configuration, binary | Intel PHY (Gigabit Ethernet) stores its configuration, binary |
... | ... | This 4KB region is then repeated, to make an 8KB region in | |
121 | 117 | flash, known as the *GbE region*. In `nvmutil`, the first part | flash, known as the *GbE region*. In `nvmutil`, the first part |
122 | 118 | is referred to as *part 0* and the second part as *part 1*. | is referred to as *part 0* and the second part as *part 1*. |
123 | 119 | ||
124 | Known compatible PHYs | ||
125 | --------------------- | ||
120 | ### Known compatible PHYs | ||
126 | 121 | ||
127 | 122 | TODO: write a full list her ofe what actual PHYs are known to work. | TODO: write a full list her ofe what actual PHYs are known to work. |
128 | 123 | ||
... | ... | files; it is assumed that intel would later change the | |
135 | 130 | file size and/or checksum value and/or checksum location. | file size and/or checksum value and/or checksum location. |
136 | 131 | ||
137 | 132 | How to obtain the GbE file | How to obtain the GbE file |
138 | ========================== | ||
133 | -------------------------- | ||
139 | 134 | ||
140 | 135 | The chip containing your BIOS/UEFI firmware (or coreboot) has | The chip containing your BIOS/UEFI firmware (or coreboot) has |
141 | 136 | it, if you have an Intel PHY for gigabit ethernet. | it, if you have an Intel PHY for gigabit ethernet. |
... | ... | containing your NIC's configuration. This is the part that | |
145 | 140 | many people will struggle with, so we will dedicated an | many people will struggle with, so we will dedicated an |
146 | 141 | entire next section to it: | entire next section to it: |
147 | 142 | ||
148 | Use flashprog | ||
149 | ------------ | ||
143 | ### Use flashprog | ||
150 | 144 | ||
151 | 145 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) |
152 | 146 | now, as of 27 January 2024, which is a fork of flashrom. | now, as of 27 January 2024, which is a fork of flashrom. |
... | ... | option should be changed accordingly. Read flashprog | |
197 | 191 | documentation, and make sure you have everything | documentation, and make sure you have everything |
198 | 192 | properly configured. | properly configured. |
199 | 193 | ||
200 | Use ifdtool | ||
201 | ----------- | ||
194 | ### Use ifdtool | ||
202 | 195 | ||
203 | 196 | NOTE: This has only been tested on systems that use IFDv1 | NOTE: This has only been tested on systems that use IFDv1 |
204 | 197 | (Intel Flash Descriptor, version 1). This distinction, between | (Intel Flash Descriptor, version 1). This distinction, between |
... | ... | SPI1. You should adjust the above parameters, according | |
311 | 304 | to your configuration. | to your configuration. |
312 | 305 | ||
313 | 306 | How to compile source code | How to compile source code |
314 | ========================== | ||
307 | -------------------------- | ||
315 | 308 | ||
316 | 309 | The nvmutil source code is located under `util/nvmutil/` in the | The nvmutil source code is located under `util/nvmutil/` in the |
317 | 310 | lbmk repository. A makefile is included there, for you to build an | lbmk repository. A makefile is included there, for you to build an |
... | ... | The `nvmutil` software has been build-tested on `Clang`, `GCC` | |
336 | 329 | and `tcc`. Only standard library functions (plus `err.h`) are | and `tcc`. Only standard library functions (plus `err.h`) are |
337 | 330 | used, so you don't need any extra libraries. | used, so you don't need any extra libraries. |
338 | 331 | ||
339 | How to compile it | ||
340 | ----------------- | ||
332 | ### How to compile nvmutil | ||
341 | 333 | ||
342 | 334 | First, ensure that the current working directory is your | First, ensure that the current working directory is your |
343 | 335 | copy of the nvmutil source code! | copy of the nvmutil source code! |
... | ... | whatever is in your `$PATH` for userspace programs). | |
353 | 345 | TODO: Add `make install` to the Makefile, portably. | TODO: Add `make install` to the Makefile, portably. |
354 | 346 | ||
355 | 347 | How to use nvmutil | How to use nvmutil |
356 | ================== | ||
348 | ------------------ | ||
357 | 349 | ||
358 | 350 | You run it, passing as argument the path to a file, and you run | You run it, passing as argument the path to a file, and you run |
359 | 351 | commands on that file. This section will tell you how to | commands on that file. This section will tell you how to |
... | ... | done that, you could still run it in cwd for instance: | |
365 | 357 | ||
366 | 358 | ./nvm bla bla bla | ./nvm bla bla bla |
367 | 359 | ||
368 | Exit status | ||
369 | ----------- | ||
360 | ### Exit status | ||
370 | 361 | ||
371 | 362 | The `nvmutil` program uses `errno` extensively. The best error | The `nvmutil` program uses `errno` extensively. The best error |
372 | 363 | handling is done this way, the Unix way. Error handling is extremely | handling is done this way, the Unix way. Error handling is extremely |
... | ... | of size *8KB*. | |
392 | 383 | Additional rules regarding exit status shall apply, depending on | Additional rules regarding exit status shall apply, depending on |
393 | 384 | what command you use. Commands are documented in the following sections: | what command you use. Commands are documented in the following sections: |
394 | 385 | ||
395 | Change MAC address | ||
396 | ------------------ | ||
386 | ### Change MAC address | ||
397 | 387 | ||
398 | 388 | The `nvm` program lets you change the MAC address. It sets | The `nvm` program lets you change the MAC address. It sets |
399 | 389 | a valid checksum, after changing the MAC address. This program | a valid checksum, after changing the MAC address. This program |
... | ... | corrected if you use the `setchecksum` command | |
458 | 448 | in `nvmutil`. It is common for vendor gbe files to contain | in `nvmutil`. It is common for vendor gbe files to contain |
459 | 449 | one valid part and one invalid part, per checksum rules. | one valid part and one invalid part, per checksum rules. |
460 | 450 | ||
461 | Verify checksums (and show MAC addresses) | ||
462 | ----------------------------------------- | ||
451 | ### Verify checksums (and show MAC addresses) | ||
463 | 452 | ||
464 | 453 | This command *only* requires *read* access on files. | This command *only* requires *read* access on files. |
465 | 454 | ||
... | ... | NOTE: This will exit with zero status if at least one part | |
475 | 464 | contains a valid checksum. If both parts are invalid, nvmutil | contains a valid checksum. If both parts are invalid, nvmutil |
476 | 465 | will exit with non-zero status. | will exit with non-zero status. |
477 | 466 | ||
478 | Copy part | ||
479 | --------- | ||
467 | ### Copy part | ||
480 | 468 | ||
481 | 469 | This command requires read *and* write access on files. | This command requires read *and* write access on files. |
482 | 470 | ||
... | ... | will be performed, and nvmutil will exit with non-zero status. | |
496 | 484 | Otherwise, it will (if all other conditions are met) exit with | Otherwise, it will (if all other conditions are met) exit with |
497 | 485 | zero status. | zero status. |
498 | 486 | ||
499 | Swap parts | ||
500 | ---------- | ||
487 | ### Swap parts | ||
501 | 488 | ||
502 | 489 | This command requires read *and* write access on files. | This command requires read *and* write access on files. |
503 | 490 | ||
... | ... | If *at least one* part is valid, nvmutil will return | |
516 | 503 | with zero exit status. If both parts are invalid, it will | with zero exit status. If both parts are invalid, it will |
517 | 504 | return non-zero. | return non-zero. |
518 | 505 | ||
519 | Set valid checksum | ||
520 | ------------------ | ||
506 | ### Set valid checksum | ||
521 | 507 | ||
522 | 508 | This command requires read *and* write access on files. | This command requires read *and* write access on files. |
523 | 509 | ||
... | ... | set the checksum. There is no feasible way to guard against | |
537 | 523 | use on the wrong file, unlike with the other commands. Please | use on the wrong file, unlike with the other commands. Please |
538 | 524 | make SURE you're running this on the correct file!* | make SURE you're running this on the correct file!* |
539 | 525 | ||
540 | Set invalid checksum | ||
541 | -------------------- | ||
526 | ### Set invalid checksum | ||
542 | 527 | ||
543 | 528 | This command requires read *and* write access on files. | This command requires read *and* write access on files. |
544 | 529 | ||
... | ... | Intel gigabit NICs that don't have a valid checksum. This | |
568 | 553 | is software-defined, and not enforced by the hardware. | is software-defined, and not enforced by the hardware. |
569 | 554 | ||
570 | 555 | History | History |
571 | ======= | ||
556 | ------- | ||
572 | 557 | ||
573 | 558 | A historical change log | A historical change log |
574 | 559 | is included at [docs/install/nvmutilimport.md](nvmutilimport.md), | is included at [docs/install/nvmutilimport.md](nvmutilimport.md), |
... | ... | it was part of osboot, is still available (for reference) here: | |
596 | 581 | ||
597 | 582 | * <https://notabug.org/osboot/nvmutil/> | * <https://notabug.org/osboot/nvmutil/> |
598 | 583 | ||
599 | Please use the latest nvmutil version. The above information is provided | ||
600 | only for reference. | ||
584 | Please use the latest nvmutil version *from lbmk*. The above information is | ||
585 | provided only for reference; it may be useful for future auditing. | ||
586 | |||
587 | TODO | ||
588 | ---- | ||
589 | |||
590 | * Support higher block sizes e.g. 8KB blocks for GbE part sections | ||
591 | * Adapt this into a manpage (useful for Linux package repositories / BSD ports) | ||
592 | * Send nvmutil upstream to coreboot, for inclusion under `util/` | ||
593 | * In addition to the manpage, when sending to coreboot, also adapt this page | ||
594 | for inclusion into doc.coreboot.org |
File site/docs/install/nvmutilimport.md changed (mode: 100644) (index 4fa6f82..e5801a4) | |||
1 | nvmutil assimilation | ||
2 | ==================== | ||
1 | nvmutil import notes | ||
2 | -------------------- | ||
3 | 3 | ||
4 | 4 | Detailed revision history can be found in the Git repository; for code, | Detailed revision history can be found in the Git repository; for code, |
5 | 5 | look at `lbmk.git` and for documentation, look at `lbwww.git`. | look at `lbmk.git` and for documentation, look at `lbwww.git`. |
6 | 6 | ||
7 | Assimilation by Libreboot | ||
8 | ========================= | ||
9 | |||
10 | 7 | With no additional changes to nvmutil, the project became part of lbmk, | With no additional changes to nvmutil, the project became part of lbmk, |
11 | 8 | which is the Libreboot build system. Please refer to Libreboot's imported | which is the Libreboot build system. Please refer to Libreboot's imported |
12 | 9 | version of the nvmutil documentation: [nvmutil.md](nvmutil.md) | version of the nvmutil documentation: [nvmutil.md](nvmutil.md) |
... | ... | shall be preserved on notabug. See: | |
22 | 19 | ||
23 | 20 | <https://notabug.org/osboot/nvmutil> | <https://notabug.org/osboot/nvmutil> |
24 | 21 | ||
25 | nvmutil 20221106 | ||
26 | ================ | ||
22 | Version history (osboot) | ||
23 | ------------------------ | ||
24 | |||
25 | ### nvmutil 20221106 | ||
27 | 26 | ||
28 | 27 | Very minor bugfix release: | Very minor bugfix release: |
29 | 28 | ||
... | ... | Very minor bugfix release: | |
33 | 32 | * Documentation inaccuracies fixed (pertaining to nvmutil exit statuses) | * Documentation inaccuracies fixed (pertaining to nvmutil exit statuses) |
34 | 33 | * Documentation generally tidied up a bit | * Documentation generally tidied up a bit |
35 | 34 | ||
36 | nvmutil 20221103 | ||
37 | ================ | ||
35 | ### nvmutil 20221103 | ||
38 | 36 | ||
39 | 37 | Not much has changed, as this just fixes minor bugs and behavioural | Not much has changed, as this just fixes minor bugs and behavioural |
40 | 38 | quirks seen in the previous release: | quirks seen in the previous release: |
... | ... | quirks seen in the previous release: | |
49 | 47 | fully readable. Previously, nvmutil would exit non-zero if one or both | fully readable. Previously, nvmutil would exit non-zero if one or both |
50 | 48 | checksums was correct, but it now only does this if both are invalid | checksums was correct, but it now only does this if both are invalid |
51 | 49 | ||
52 | nvmutil 20220828 | ||
53 | ================ | ||
50 | ### nvmutil 20220828 | ||
54 | 51 | ||
55 | 52 | No new features have been added. This is a code cleanup and bugfix release. | No new features have been added. This is a code cleanup and bugfix release. |
56 | 53 | ||
... | ... | No new features have been added. This is a code cleanup and bugfix release. | |
73 | 70 | were made (e.g. cleaner argument handling). Tested with tcc on an x86\_64 | were made (e.g. cleaner argument handling). Tested with tcc on an x86\_64 |
74 | 71 | machine, where a 0.16% binary size increase was observed. | machine, where a 0.16% binary size increase was observed. |
75 | 72 | ||
76 | nvmutil 20220815 | ||
77 | ================ | ||
73 | ### nvmutil 20220815 | ||
78 | 74 | ||
79 | 75 | No new features have been added. This is a code cleanup and bugfix release. | No new features have been added. This is a code cleanup and bugfix release. |
80 | 76 | ||
... | ... | No new features have been added. This is a code cleanup and bugfix release. | |
105 | 101 | reduces code bloat in nvmutil. The code still warns you if the MAC address | reduces code bloat in nvmutil. The code still warns you if the MAC address |
106 | 102 | is multicast | is multicast |
107 | 103 | ||
108 | nvmutil 20220810 | ||
109 | ================ | ||
104 | ### nvmutil 20220810 | ||
110 | 105 | ||
111 | 106 | * 3.4% reduction in binary size (as tested with tcc on x86\_64), | * 3.4% reduction in binary size (as tested with tcc on x86\_64), |
112 | 107 | due to code optimizations, *while* adding new checks and new features. | due to code optimizations, *while* adding new checks and new features. |
... | ... | nvmutil 20220810 | |
130 | 125 | * The `setmac` command can now be used without specifying a MAC address, | * The `setmac` command can now be used without specifying a MAC address, |
131 | 126 | which will cause the same behaviour as `setmac ??:??:??:??:??:??` | which will cause the same behaviour as `setmac ??:??:??:??:??:??` |
132 | 127 | ||
133 | nvmutil 20220808 | ||
134 | ================ | ||
128 | ### nvmutil 20220808 | ||
135 | 129 | ||
136 | 130 | Released on 8 August 2022. Changes: | Released on 8 August 2022. Changes: |
137 | 131 | ||
... | ... | Released on 8 August 2022. Changes: | |
173 | 167 | reduction; the other 2/3 of that reduction is due to increased | reduction; the other 2/3 of that reduction is due to increased |
174 | 168 | code efficiency in general. | code efficiency in general. |
175 | 169 | ||
176 | Regarding code size reduction | ||
177 | ----------------------------- | ||
170 | #### Regarding code size reduction | ||
178 | 171 | ||
179 | 172 | My test setup is an x86\_64 machine with `tcc` used | My test setup is an x86\_64 machine with `tcc` used |
180 | 173 | as the compiler; the libc doesn't really matter, if | as the compiler; the libc doesn't really matter, if |
... | ... | binary sizes are much larger with those compilers, even with | |
215 | 208 | optimization flags; despite this, the Makefile in nvmutil | optimization flags; despite this, the Makefile in nvmutil |
216 | 209 | assumes GCC/Clang and sets `CFLAGS` to `-Os`. | assumes GCC/Clang and sets `CFLAGS` to `-Os`. |
217 | 210 | ||
218 | nvmutil 20220802 | ||
219 | ================ | ||
211 | ### nvmutil 20220802 | ||
220 | 212 | ||
221 | 213 | Released on 2 August 2022. Changes: | Released on 2 August 2022. Changes: |
222 | 214 | ||
... | ... | Released on 2 August 2022. Changes: | |
236 | 228 | * More human-friendly messages and help text | * More human-friendly messages and help text |
237 | 229 | * help/version commands actually listed in help output | * help/version commands actually listed in help output |
238 | 230 | ||
239 | nvmutil 20220731 | ||
240 | ================ | ||
231 | ### nvmutil 20220731 | ||
241 | 232 | ||
242 | 233 | Released on 31 July 2022. Changes: | Released on 31 July 2022. Changes: |
243 | 234 | ||
... | ... | Released on 31 July 2022. Changes: | |
250 | 241 | ||
251 | 242 | That's it. Bug fixes and safety features added. Enjoy! | That's it. Bug fixes and safety features added. Enjoy! |
252 | 243 | ||
253 | nvmutil 20220728 | ||
254 | ================ | ||
244 | ### nvmutil 20220728 | ||
255 | 245 | ||
256 | 246 | Initial release. It is functionally equivalent to the | Initial release. It is functionally equivalent to the |
257 | 247 | older `nvmutils`, developed for the osboot project. This | older `nvmutils`, developed for the osboot project. This |
File site/docs/install/playstation.md changed (mode: 100644) (index 5872774..d3dbfd9) | |||
... | ... | if you want it to, and you can! | |
27 | 27 | | **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) | | | **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) | |
28 | 28 | | **Flash chip** | 512KB Mask ROM | | | **Flash chip** | 512KB Mask ROM | |
29 | 29 | </div> | </div> |
30 | Introduction | ||
31 | ============ | ||
30 | |||
31 | Open source playstation (PS1/PSX) BIOS | ||
32 | --------------------------------- | ||
32 | 33 | ||
33 | 34 | This uses the free/opensource BIOS developed by the PCSX-Redux team, which you | This uses the free/opensource BIOS developed by the PCSX-Redux team, which you |
34 | 35 | can learn more about here: | can learn more about here: |
35 | 36 | ||
36 | 37 | <https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios> | <https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios> |
37 | 38 | ||
38 | Build from source | ||
39 | ----------------- | ||
39 | ### Build from source | ||
40 | 40 | ||
41 | 41 | Pre-compiled builds will be in the next Libreboot release, after | Pre-compiled builds will be in the next Libreboot release, after |
42 | 42 | version 20240612. For now, you must compile it from source, but the Libreboot | version 20240612. For now, you must compile it from source, but the Libreboot |
... | ... | This commonly only builds the BIOS part. If you want to build all of PCSX-Redux, | |
67 | 67 | you can, but lbmk does not provide automation for this. | you can, but lbmk does not provide automation for this. |
68 | 68 | ||
69 | 69 | Installation | Installation |
70 | ============ | ||
70 | ------------ | ||
71 | 71 | ||
72 | 72 | If all went well, you should see `openbios.bin` located | If all went well, you should see `openbios.bin` located |
73 | 73 | under the `bin/playstation/` (within lbmk). Alternatively, you may be using | under the `bin/playstation/` (within lbmk). Alternatively, you may be using |
... | ... | a release *after* Libreboot 20240612 that has it pre-built. Either way is fine. | |
75 | 75 | ||
76 | 76 | The `openbios.bin` file is your new BIOS build. | The `openbios.bin` file is your new BIOS build. |
77 | 77 | ||
78 | Emulators | ||
79 | --------- | ||
78 | ### Emulators | ||
80 | 79 | ||
81 | 80 | Most PlayStation emulators rely on low-level emulation to execute the real BIOS. | Most PlayStation emulators rely on low-level emulation to execute the real BIOS. |
82 | 81 | The Open BIOS by PCSX-Redux (as distributed by Libreboot) can also be used, and | The Open BIOS by PCSX-Redux (as distributed by Libreboot) can also be used, and |
... | ... | provided with your chosen PlayStation emulator. You can even freely | |
91 | 90 | redistribute this BIOS, because it's free software (released under MIT license), | redistribute this BIOS, because it's free software (released under MIT license), |
92 | 91 | which is a major advantage over Sony's original BIOS. | which is a major advantage over Sony's original BIOS. |
93 | 92 | ||
94 | Hardware | ||
95 | -------- | ||
93 | ### Hardware | ||
96 | 94 | ||
97 | 95 | Not yet tested by the Libreboot project, but the PCSX-Redux developers have | Not yet tested by the Libreboot project, but the PCSX-Redux developers have |
98 | 96 | stated that it will work on the real console. *It should be noted that the Open | stated that it will work on the real console. *It should be noted that the Open |
... | ... | BIOS much more polished, but a number of games have been tested and it's more | |
116 | 114 | or less fully reliable in most cases. | or less fully reliable in most cases. |
117 | 115 | ||
118 | 116 | Game compatibility | Game compatibility |
119 | ================== | ||
117 | ------------------ | ||
120 | 118 | ||
121 | 119 | The upstream maintains a compatibility list, here: | The upstream maintains a compatibility list, here: |
122 | 120 | ||
... | ... | NOTE: Google Docs, but an option exists on there to export it for LibreOffice | |
126 | 124 | Calc. The list is provided as a spreadsheet. | Calc. The list is provided as a spreadsheet. |
127 | 125 | ||
128 | 126 | Remarks about hardware | Remarks about hardware |
129 | ==================== | ||
127 | ---------------------- | ||
130 | 128 | ||
131 | 129 | Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, | Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, |
132 | 130 | one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, | one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, |
... | ... | We do not yet provide instructions for how to install this on real hardware, in | |
146 | 144 | the Libreboot project, but this can be done at a future date. | the Libreboot project, but this can be done at a future date. |
147 | 145 | ||
148 | 146 | Other mods (hardware) | Other mods (hardware) |
149 | =============== | ||
147 | --------------------- | ||
150 | 148 | ||
151 | Video timings | ||
152 | ------------- | ||
149 | ### Video timings | ||
153 | 150 | ||
154 | 151 | The Open BIOS will not implement any DRM, so it's possible that you might boot | The Open BIOS will not implement any DRM, so it's possible that you might boot |
155 | 152 | out of region games. In an emulator, this is no problem, but it can prove | out of region games. In an emulator, this is no problem, but it can prove |
... | ... | By fixing the timings in this way, your region-free console will also have | |
199 | 196 | correct timings, thus maximum game compatibility, and colours will always be | correct timings, thus maximum game compatibility, and colours will always be |
200 | 197 | correct no matter what video cable you're using. | correct no matter what video cable you're using. |
201 | 198 | ||
202 | Modchips | ||
203 | -------- | ||
199 | ### Modchips | ||
204 | 200 | ||
205 | 201 | If using hardware, you will probably still want a modchip. Many proprietary | If using hardware, you will probably still want a modchip. Many proprietary |
206 | 202 | modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on | modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on |
... | ... | not yet been confirmed by the Libreboot project. | |
228 | 224 | More hardware testing is planned, but the Open BIOS works perfectly in emulators. | More hardware testing is planned, but the Open BIOS works perfectly in emulators. |
229 | 225 | Give it a try! | Give it a try! |
230 | 226 | ||
231 | Boot games on SD cards | ||
232 | ----------------------- | ||
227 | ### Boot games on SD cards | ||
233 | 228 | ||
234 | 229 | The [PicoStation](https://github.com/paulocode/picostation) project provides | The [PicoStation](https://github.com/paulocode/picostation) project provides |
235 | 230 | free firmware for RP2040 devices, which you can solder into a modboard which | free firmware for RP2040 devices, which you can solder into a modboard which |
... | ... | real playstation (the picostation replaces your CD drive). | |
240 | 235 | Not only is this useful in a development context, but it can also be used when | Not only is this useful in a development context, but it can also be used when |
241 | 236 | your CD drive has worn out and no longer reads discs properly. | your CD drive has worn out and no longer reads discs properly. |
242 | 237 | ||
243 | Final remarks | ||
244 | ------------- | ||
238 | ### Final remarks | ||
245 | 239 | ||
246 | 240 | Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will | Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will |
247 | 241 | turn your 90s PlayStation into a very hackable machine. There is | turn your 90s PlayStation into a very hackable machine. There is |
... | ... | simply computers, fully reprogrammable and as such, Libreboot is happy to provid | |
253 | 247 | this support, for the Sony PlayStation | this support, for the Sony PlayStation |
254 | 248 | ||
255 | 249 | Credit | Credit |
256 | ====== | ||
250 | ------ | ||
257 | 251 | ||
258 | 252 | Thanks go to the PCSX-Redux team for their excellent work reverse engineering | Thanks go to the PCSX-Redux team for their excellent work reverse engineering |
259 | 253 | the Sony PS1 BIOS. | the Sony PS1 BIOS. |
File site/docs/install/r400.md changed (mode: 100644) (index 875bddb..a68fac2) | |||
1 | 1 | --- | --- |
2 | title: Flashing the ThinkPad R400 | ||
2 | title: Install Libreboot on Lenovo ThinkPad R400 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
52 | 52 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
53 | 53 | </div> | </div> |
54 | 54 | ||
55 | Dell Latitude E6400 | ||
56 | =================== | ||
55 | Open source BIOS/UEFI firmware | ||
56 | ------------------------- | ||
57 | 57 | ||
58 | **If you haven't bought an R400 yet: the [Dell Latitude | ||
59 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
60 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
61 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
62 | |||
63 | Introduction | ||
64 | ============ | ||
58 | This document will teach you how to install Libreboot, on your | ||
59 | Lenovo ThinkPad R400 laptop motherboard. Libreboot replaces proprietary | ||
60 | BIOS/UEFI firmware. | ||
65 | 61 | ||
66 | 62 | It is believed that all or most R400 laptops are compatible. See notes | It is believed that all or most R400 laptops are compatible. See notes |
67 | 63 | about [CPU | about [CPU |
... | ... | now, as of 27 January 2024, which is a fork of flashrom. | |
85 | 81 | The reason why was explained, in | The reason why was explained, in |
86 | 82 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
87 | 83 | ||
84 | Dell Latitude E6400 | ||
85 | ------------------- | ||
86 | |||
87 | **If you haven't bought an R400 yet: the [Dell Latitude | ||
88 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
89 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
90 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
91 | |||
88 | 92 | EC update {#ecupdate} | EC update {#ecupdate} |
89 | ========= | ||
93 | -------------------- | ||
90 | 94 | ||
91 | 95 | It is recommended that you update to the latest EC firmware version. The | It is recommended that you update to the latest EC firmware version. The |
92 | 96 | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from |
... | ... | TODO: put hardware register logs here like on the [X200](x200.md) and | |
111 | 115 | [T400](t400.md) page. | [T400](t400.md) page. |
112 | 116 | ||
113 | 117 | Installation notes | Installation notes |
114 | ================== | ||
118 | ------------------ | ||
115 | 119 | ||
116 | 120 | [External flashing](spi.md) required, if Lenovo BIOS is running. | [External flashing](spi.md) required, if Lenovo BIOS is running. |
117 | 121 | ||
... | ... | ROM properly first. Although ROM images are provided pre-built in | |
131 | 135 | libreboot, there are some modifications that you need to make to the one | libreboot, there are some modifications that you need to make to the one |
132 | 136 | you chose before flashing. (instructions referenced later in this guide) | you chose before flashing. (instructions referenced later in this guide) |
133 | 137 | ||
134 | Serial port {#serial_port} | ||
135 | ----------- | ||
138 | ### Serial port {#serial_port} | ||
136 | 139 | ||
137 | 140 | EHCI debug might not be needed. It has been reported that the docking | EHCI debug might not be needed. It has been reported that the docking |
138 | 141 | station for this laptop has a serial port, so it might be possible to | station for this laptop has a serial port, so it might be possible to |
139 | 142 | use that instead. | use that instead. |
140 | 143 | ||
141 | 144 | A note about CPUs | A note about CPUs |
142 | ================= | ||
145 | ----------------- | ||
143 | 146 | ||
144 | 147 | [ThinkWiki](http://www.thinkwiki.org/wiki/Category:R400) has a list of | [ThinkWiki](http://www.thinkwiki.org/wiki/Category:R400) has a list of |
145 | 148 | CPUs for this system. The Core 2 Duo P8400 and P8600 are believed to | CPUs for this system. The Core 2 Duo P8400 and P8600 are believed to |
... | ... | work in libreboot. The Core 2 Duo T9600 was confirmed to work, so the | |
147 | 150 | T9400 probably also works. *The Core 2 Duo T5870/5670 and Celeron M | T9400 probably also works. *The Core 2 Duo T5870/5670 and Celeron M |
148 | 151 | 575/585 are untested!* | 575/585 are untested!* |
149 | 152 | ||
150 | Quad-core CPUs | ||
151 | -------------- | ||
153 | ### Quad-core CPUs | ||
152 | 154 | ||
153 | 155 | Incompatible. Do not use. | Incompatible. Do not use. |
154 | 156 | ||
155 | 157 | A note about GPUs | A note about GPUs |
156 | ================= | ||
158 | ----------------- | ||
157 | 159 | ||
158 | 160 | Some models have an Intel GPU, while others have both an ATI and an | Some models have an Intel GPU, while others have both an ATI and an |
159 | 161 | Intel GPU; this is referred to as "Dual Graphics" (previously | Intel GPU; this is referred to as "Dual Graphics" (previously |
... | ... | Intel GPU is used and the ATI GPU is disabled, so native graphics | |
167 | 169 | initialization works all the same. | initialization works all the same. |
168 | 170 | ||
169 | 171 | CPU paste required | CPU paste required |
170 | ================== | ||
172 | ------------------ | ||
171 | 173 | ||
172 | 174 | See [\#paste](#paste). | See [\#paste](#paste). |
173 | 175 | ||
174 | 176 | Flash chip size {#flashchips} | Flash chip size {#flashchips} |
175 | =============== | ||
177 | ----------------------------- | ||
176 | 178 | ||
177 | 179 | Use this to find out: | Use this to find out: |
178 | 180 | ||
... | ... | The reason why was explained, in | |
184 | 186 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
185 | 187 | ||
186 | 188 | MAC address {#macaddress} | MAC address {#macaddress} |
187 | =========== | ||
189 | ------------------------- | ||
188 | 190 | ||
189 | 191 | Refer to [mac\_address.md](../install/mac_address.md). | Refer to [mac\_address.md](../install/mac_address.md). |
190 | 192 | ||
191 | 193 | External flashing | External flashing |
192 | ================= | ||
194 | ----------------- | ||
193 | 195 | ||
194 | 196 | Refer to [spi.md](spi.md) as a guide for external re-flashing. | Refer to [spi.md](spi.md) as a guide for external re-flashing. |
195 | 197 | ||
196 | Disassembly | ||
197 | ----------- | ||
198 | ### Disassembly | ||
198 | 199 | ||
199 | 200 | Remove all screws:\ | Remove all screws:\ |
200 | 201 | \ | \ |
... | ... | Read [this article](spi.md) to learn how you may flash the chip, which is near | |
280 | 281 | to the RAM. | to the RAM. |
281 | 282 | ||
282 | 283 | Thermal paste (IMPORTANT) | Thermal paste (IMPORTANT) |
283 | ========================= | ||
284 | ------------------------- | ||
284 | 285 | ||
285 | 286 | Because part of this procedure involved removing the heatsink, you will | Because part of this procedure involved removing the heatsink, you will |
286 | 287 | need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl | need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl |
... | ... | show how to properly apply the thermal paste. Other guides online detail | |
297 | 298 | the proper application procedure. | the proper application procedure. |
298 | 299 | ||
299 | 300 | Memory | Memory |
300 | ====== | ||
301 | ------ | ||
301 | 302 | ||
302 | 303 | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks |
303 | 304 | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). |
File site/docs/install/spi.md changed (mode: 100644) (index 90f5f9e..7ac8bc4) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Need help? | Need help? |
7 | ========== | ||
7 | ---------- | ||
8 | 8 | ||
9 | 9 | Help is available on [Libreboot IRC](../../contact.md) and other channels. | Help is available on [Libreboot IRC](../../contact.md) and other channels. |
10 | 10 | ||
... | ... | if you want to send your machine in to have Libreboot installed for you. | |
16 | 16 | Leah Rowe, the founder and lead developer of Libreboot, also owns and | Leah Rowe, the founder and lead developer of Libreboot, also owns and |
17 | 17 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
18 | 18 | ||
19 | Introduction | ||
20 | ============ | ||
19 | Install open source BIOS/UEFI firmware | ||
20 | -------------------------------------- | ||
21 | |||
22 | This guide is predominantly about *installing Libreboot* (flashing it) onto | ||
23 | your motherboard's main system flash. You can also adapt this guide for dumping, | ||
24 | erasing and verifying firmware images; this guide shows you how to use | ||
25 | the [flashprog](https://flashprog.org/) software with various external | ||
26 | 25XX NOR flash programmers. This guide is written for *Linux* users, but BSD | ||
27 | operating systems are also compatible with flashprog; Windows might be feasible, | ||
28 | ditto Apple's MacOS, as flashprog can also run on those, but they are not | ||
29 | officially supported by Libreboot, and *we recommend* that you use Linux/BSD. | ||
30 | |||
31 | Although this documentation is written *for the Libreboot project*, it can be | ||
32 | used on any compatible 25xx NOR flash, on any number of devices, such as home | ||
33 | routers and even certain videogame systems. If you're a refurbisher, and not | ||
34 | a Libreboot-based one, but just a regular refurbisher e.g. on eBay, dealing | ||
35 | with proprietary UEFI firmware (and perhaps Windows installations), it may be | ||
36 | that on some of them, SMM-based flash writes are performed to store UEFI firmware | ||
37 | configurations (instead of the old NVRAM/CMOS memory); you could adapt this | ||
38 | guide (and read flashprog documentation) to erase/flash custom configurations, | ||
39 | for example when unlocking boot passwords on the computers that you sell. This | ||
40 | is the power of [Free Software](https://writefreesoftware.org/learn); flashprog | ||
41 | is a Free Software project. The use-case scenario of the humble eBay seller is | ||
42 | real; several of them have in fact used this guide in the past. | ||
43 | |||
44 | So keep that in mind; this is part of the Libreboot installation instructions, | ||
45 | but it can be used for *any* flashing operation on *any* 25xx NOR flash, with | ||
46 | all sorts of firmware; you could also use this to *reverse* a Libreboot | ||
47 | installation, re-flashing the original vendor firmware if you made a dump of it, | ||
48 | **and we definitely recommend backing that up prior to Libreboot installation**. | ||
49 | |||
50 | **Please ensure that your programmer's voltage matches that of the flash IC, | ||
51 | and read this guide carefully to account for proper electrical safety. In | ||
52 | general, these programmers operate at 3.3v, so you'll need a logic level | ||
53 | adapter and e.g. buck converter, if you're dealing with a 1.8V flash IC.** | ||
21 | 54 | ||
22 | 55 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) |
23 | 56 | now, as of 27 January 2024, which is a fork of flashrom. | now, as of 27 January 2024, which is a fork of flashrom. |
... | ... | which uses LPC flash in a PLCC32 socket, which you can simply hot-swap after | |
37 | 70 | booting the vendor firmware, and then flash internally. Simple! | booting the vendor firmware, and then flash internally. Simple! |
38 | 71 | ||
39 | 72 | We will be using | We will be using |
40 | the [flashprog](https://flashprog.org/Flashrom) software which is written to | ||
73 | the [flashprog](https://flashprog.org/) software which is written to | ||
41 | 74 | dump, erase and rewrite these flash chips. | dump, erase and rewrite these flash chips. |
42 | 75 | ||
43 | libreboot currently documents how to use these SPI programmers: | ||
76 | Libreboot currently documents how to use these SPI programmers: | ||
44 | 77 | ||
45 | 78 | * Raspberry Pi Pico / Pico 2 | * Raspberry Pi Pico / Pico 2 |
46 | 79 | * Raspberry Pi (RPi) single-board computers | * Raspberry Pi (RPi) single-board computers |
... | ... | from Linux, with flashprog. | |
65 | 98 | is called *external* because it's not the *internal* one on your mainboard. | is called *external* because it's not the *internal* one on your mainboard. |
66 | 99 | ||
67 | 100 | Raspberry Pi Pico | Raspberry Pi Pico |
68 | ================= | ||
101 | ----------------- | ||
69 | 102 | ||
70 | RP2040/RP2530 both supported | ||
71 | ---------------------------- | ||
103 | ### RP2040/RP2530 both supported | ||
72 | 104 | ||
73 | 105 | **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 | **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 |
74 | 106 | or higher. Releases before this only supported the original Pico, and other | or higher. Releases before this only supported the original Pico, and other |
... | ... | Additionally, all the software running on it is free, down to the full | |
86 | 118 | versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, | versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, |
87 | 119 | but that is not needed for following this guide. | but that is not needed for following this guide. |
88 | 120 | ||
89 | Download serprog firmware pre-compiled | ||
90 | ------------------------- | ||
121 | ### Download serprog firmware pre-compiled | ||
91 | 122 | ||
92 | 123 | Download the pico serprog tarball from Libreboot releases. For example, the | Download the pico serprog tarball from Libreboot releases. For example, the |
93 | 124 | Libreboot 20241206rev8 one would be | Libreboot 20241206rev8 one would be |
... | ... | named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under | |
95 | 126 | the `roms/` directory in each release. With these binaries, you can easily | the `roms/` directory in each release. With these binaries, you can easily |
96 | 127 | get started. | get started. |
97 | 128 | ||
98 | Build serprog firmware from source | ||
99 | ---------------------------------- | ||
129 | ### Build serprog firmware from source (OPTIONAL) | ||
130 | |||
131 | **Pre-compiled binaries are also available, in Libreboot releases.** | ||
100 | 132 | ||
101 | 133 | You can alternatively download the serprog firmware here:\ | You can alternatively download the serprog firmware here:\ |
102 | 134 | <https://codeberg.org/libreboot/pico-serprog>\ | <https://codeberg.org/libreboot/pico-serprog>\ |
... | ... | at `bin/serprog_pico/serprog_pico.uf2` | |
119 | 151 | and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the | and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the |
120 | 152 | file name are for the Pico 2, and they can also be used. | file name are for the Pico 2, and they can also be used. |
121 | 153 | ||
122 | Install the serprog firmware | ||
123 | ---------------------------- | ||
154 | ### Install the serprog firmware | ||
124 | 155 | ||
125 | 156 | First, connect just the Pico to your computer with a micro-USB cable. | First, connect just the Pico to your computer with a micro-USB cable. |
126 | 157 | Mount it like any other USB flash drive. If it isn't detected, you might need | Mount it like any other USB flash drive. If it isn't detected, you might need |
... | ... | release tarball. | |
136 | 167 | **NOTE: Other RP2040/2530 devices will also work. You just have to match | **NOTE: Other RP2040/2530 devices will also work. You just have to match |
137 | 168 | the right pins and use the correct firmware file!** | the right pins and use the correct firmware file!** |
138 | 169 | ||
139 | Logic levels | ||
140 | ------------ | ||
170 | ### Logic levels | ||
141 | 171 | ||
142 | 172 | A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't | A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't |
143 | 173 | destroy your board by sending 5V to it. If you have a 1.8V flash chip, | destroy your board by sending 5V to it. If you have a 1.8V flash chip, |
... | ... | you need to add a logic level converter. **Please ensure that you have matched | |
145 | 175 | the voltage of your programmer to the voltage of your chip; both the data lines | the voltage of your programmer to the voltage of your chip; both the data lines |
146 | 176 | and power lines to the chip must match.** | and power lines to the chip must match.** |
147 | 177 | ||
148 | Wiring | ||
149 | ------ | ||
178 | ### Wiring | ||
150 | 179 | ||
151 | 180 | Disconnect the Pico and proceed to wire it to your | Disconnect the Pico and proceed to wire it to your |
152 | 181 | [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). | [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). |
... | ... | not worth it. The 12Mbps USB port is limiting the actual speed here. | |
182 | 211 | ||
183 | 212 | Higher speeds might work nicely, on Pico 2. | Higher speeds might work nicely, on Pico 2. |
184 | 213 | ||
185 | Do not use CH341A! | ||
186 | ================== | ||
214 | Do not buy CH341A! | ||
215 | ------------------ | ||
216 | |||
217 | This section was heavily expanded, on 19 January 2025, because we see many | ||
218 | people online still talking about the CH341a. Therefore, the hatred has been | ||
219 | amplified. Please read this section carefully, to know why we advise against | ||
220 | use of this particular programmer. | ||
187 | 221 | ||
188 | 222 | NOR flashes on libreboot systems run on 3.3V DC or 1.8V DC, and this includes | NOR flashes on libreboot systems run on 3.3V DC or 1.8V DC, and this includes |
189 | data lines. CH341A has 5V logic levels on data lines, which will damage your | ||
223 | data lines. CH341A can have 5V logic levels on data lines, which can damage your | ||
190 | 224 | SPI flash and also the southbridge that it's connected to, plus anything else | SPI flash and also the southbridge that it's connected to, plus anything else |
191 | 225 | that it's connected to. | that it's connected to. |
192 | 226 | ||
... | ... | resistors) performed, on the black CH341A:\ | |
246 | 280 | The green version (not shown above) may come with 3.3v logic already wired, but | The green version (not shown above) may come with 3.3v logic already wired, but |
247 | 281 | still needs to have pull-up resistors placed for WP/HOLD. | still needs to have pull-up resistors placed for WP/HOLD. |
248 | 282 | ||
283 | Disclaimer: A few (not many, but wily) people have criticised this section of the | ||
284 | documentation, due to a misconception about what it really means and also because | ||
285 | this section was previously very poorly written. So to be clear: | ||
286 | |||
287 | Yes, we are quite well aware that the CH341A can in fact operate at 3.3v, | ||
288 | even unmodified black models; the VCC line is 3.3v, and if when you either | ||
289 | directly wire VCC to WP/HOLD pins yourself, or a pull-up resistor on the | ||
290 | motherboard you're flashing pulls these high at 3.3v, then the logic levels | ||
291 | on the data lines do in fact switch to 3V *during an erase, read or write cycle*. | ||
292 | When no flashing operation is underway, the data lines are outputting at almost | ||
293 | negligable current, so the actual amount of heat generated will be negligable, | ||
294 | and therefore damage is unlikely. However, as stated above and as we will state | ||
295 | again: | ||
296 | |||
297 | * This is bad electrical design. The CH341A can switch flexibly between 3V | ||
298 | and 5V operation, but most flashes today are 1.8V or 5V anyway, and there are | ||
299 | all kinds of scenarios (such as over-current or surge event) where this 5V | ||
300 | idle logic level could still be applied. Modifying your CH341a to 3.3v | ||
301 | only, as defined in the datasheet (and by this page) is highly recommended. | ||
302 | * The drive level is extremely poor anyway, on CH341a, making ISP-based | ||
303 | flashing ill advisable in many cases, such as where the PCH (Intel platforms) | ||
304 | is partly active and the data lines have lower resistance, because some | ||
305 | boards have 0ohms or very low resistance on these lines. | ||
306 | * No pull-ups on the WP/hold lines, when flashing in the socket; they are high | ||
307 | via 0ohm trace to VCC, whereas you are advised to use a pull-up resistor to | ||
308 | mitigate over-current events. | ||
309 | * Crap LDO on the board, and no ESD/overcurrent protection; the CH341a probably | ||
310 | can't provide much current on the VCC line, especially for ISP-based flashing | ||
311 | where the flash shares a common power rail with many other components. | ||
312 | |||
313 | CH341a is cheap junk. Get yourself a Raspberry Pi Pico instead; it's about the | ||
314 | same price, but of much higher quality from an electrical design perspective, | ||
315 | supports much higher (12mA!) drive levels on data lines, can control multiple | ||
316 | chip selects at once; it's just better, in every way. And the Raspberry Pi is | ||
317 | completely reprogrammable, so you can use it for something else when you're | ||
318 | done, e.g. UART dongle, or if you're wily enough, [PlayStation 1 Optical Disc | ||
319 | Emulator](https://github.com/paulocode/picostation) - the Pico is simply a | ||
320 | highly versatile tool, much better value for money than the piece of junk | ||
321 | CH341a. | ||
322 | |||
323 | There is only one instance where the CH341a is *good*, and that is when you're | ||
324 | actually flashing a loose (not soldered) chip, in the ZIF socket on the CH341a | ||
325 | board. It's a DIP-8 socket, and you can also buy WSON-8 and SOIC-8 or SOIC-16 | ||
326 | adapters for it; you can also plug a special adapter board into it that converts | ||
327 | the voltages (VCC and data lines) to 1.8V, for 1.8V flashes (you could also | ||
328 | use that same 1.8V adapter circuit in a breadboard wired to your Pico). On | ||
329 | socket-based flashing, *which is specifically what the CH341a was designed | ||
330 | for*, you don't have to worry about weak drive level because there is nothing | ||
331 | contending with it on the flash IC's data pins. | ||
332 | |||
333 | The *socket-based* flashing operation is what we recommend this programmer | ||
334 | for, *only if you already have one*. We still recommend fixing the issue with | ||
335 | the WP/HOLD pins as described above; if you're doing this, note that there are | ||
336 | also newer models that have a voltage switch and logic level shifter already | ||
337 | on the board, which can be very useful. *Clip-based* flashing (ISP / in-system | ||
338 | programming) is, specifically, what we advise against using the CH341a for. | ||
339 | |||
340 | Even if you *are* doing socket-based flashing, we still suggest buying the Pico | ||
341 | instead, though the Pico doesn't come with a ZIF socket; you can wire the Pico | ||
342 | to a breadboard instead, if you want to use a socket for flashing. Then you | ||
343 | will also have a good ISP device, and the overall cost covering both use-case | ||
344 | scenarios is *lower* (cheaper part cost) than buying a CH341a *and* Pico; and | ||
345 | the Pico can also emulate the PlayStation Optical Disc Drive in your | ||
346 | playstation to boot from SD card instead of your dead CD drive, or could even | ||
347 | be a [JTAG adapter](https://hackaday.com/2022/04/11/need-a-jtag-adapter-use-your-pico/) - | ||
348 | again, the Pico is a reprogrammable device! Whereas, the CH341a is a fixed-function | ||
349 | device (and performs poorly). | ||
350 | |||
351 | Why pay $10 for a CH341a when you can pay $10 for a Raspberry Pi Pico which is | ||
352 | electrically and functionally superior in every way? And the Pico is completely | ||
353 | open source, right down to the boot rom. | ||
354 | |||
249 | 355 | Identify which flash type you have | Identify which flash type you have |
250 | ================================== | ||
356 | ---------------------------------- | ||
251 | 357 | ||
252 | 358 | In all of them, a dot or marking shows pin 1 (in the case of WSON8, pad 1). | In all of them, a dot or marking shows pin 1 (in the case of WSON8, pad 1). |
253 | 359 | ||
... | ... | Use the following photos and then look at your board. When you've figured out | |
255 | 361 | what type of chip you have, use that knowledge and the rest of this guide, to | what type of chip you have, use that knowledge and the rest of this guide, to |
256 | 362 | accomplish your goal, which is to read from and/or write to the boot flash. | accomplish your goal, which is to read from and/or write to the boot flash. |
257 | 363 | ||
258 | SOIC8 | ||
259 | ----- | ||
364 | ### SOIC8 | ||
260 | 365 | ||
261 | 366 |  |  |
262 | 367 | ||
... | ... | SOIC8 | |
271 | 376 | | 7 | HOLD | | | 7 | HOLD | |
272 | 377 | | 8 | VCC | | | 8 | VCC | |
273 | 378 | ||
274 | SOIC16 | ||
275 | ------ | ||
379 | ### SOIC16 | ||
276 | 380 | ||
277 | 381 |  |  |
278 | 382 | ||
... | ... | SOIC16 | |
289 | 393 | ||
290 | 394 | SOIC8 and SOIC16 are the most common types, but there are others: | SOIC8 and SOIC16 are the most common types, but there are others: |
291 | 395 | ||
292 | WSON8 | ||
293 | ----- | ||
396 | ### WSON8 | ||
294 | 397 | ||
295 | 398 | It will be like this on an X200S or X200 Tablet:\ | It will be like this on an X200S or X200 Tablet:\ |
296 | 399 | ||
... | ... | On T400S, it is in this location near the RAM:\ | |
301 | 404 | \ | \ |
302 | 405 | NOTE: in this photo, the chip has been replaced with SOIC8. | NOTE: in this photo, the chip has been replaced with SOIC8. |
303 | 406 | ||
304 | DIP8 | ||
305 | ---- | ||
407 | ### DIP8 | ||
306 | 408 | ||
307 | 409 |  |  |
308 | 410 | ||
309 | 411 | Pinout is the same as SOIC8 above. | Pinout is the same as SOIC8 above. |
310 | 412 | ||
311 | Supply Voltage | ||
312 | -------------- | ||
413 | ### Supply Voltage | ||
313 | 414 | ||
314 | 415 | Historically, all boards that Libreboot supports happened to have SPI NOR chips | Historically, all boards that Libreboot supports happened to have SPI NOR chips |
315 | 416 | which work at 3.3V DC. With the recent addition of Chromebooks whose chips are | which work at 3.3V DC. With the recent addition of Chromebooks whose chips are |
... | ... | connect it to the chip through an adapter or logic level converter, never | |
322 | 423 | directly. | directly. |
323 | 424 | ||
324 | 425 | Software configuration | Software configuration |
325 | ====================== | ||
426 | ---------------------- | ||
326 | 427 | ||
327 | General/Le potato | ||
328 | ----------------- | ||
428 | ### General/Le potato | ||
329 | 429 | ||
330 | 430 | The [generic guide](spi_generic.md) is intended to help those looking to use an | The [generic guide](spi_generic.md) is intended to help those looking to use an |
331 | 431 | SBC which is not listed in this guide. | SBC which is not listed in this guide. |
332 | 432 | The guide will, however, use the libre computer 'Le Potato' as a reference board. | The guide will, however, use the libre computer 'Le Potato' as a reference board. |
333 | 433 | If you have that board, you should refer to the [generic guide.](spi_generic.md) | If you have that board, you should refer to the [generic guide.](spi_generic.md) |
334 | 434 | ||
335 | BeagleBone Black (BBB) | ||
336 | ---------------------- | ||
435 | ### BeagleBone Black (BBB) | ||
337 | 436 | ||
338 | 437 | SSH into your BeagleBone Black. It is assumed that you are running Debian 9 on | SSH into your BeagleBone Black. It is assumed that you are running Debian 9 on |
339 | 438 | your BBB. You will run `flashprog` from your BBB. | your BBB. You will run `flashprog` from your BBB. |
... | ... | Note: flashprog can never write if the flash chip isn't found automatically. | |
395 | 494 | This means that it's working (the clip isn't connected to any flash | This means that it's working (the clip isn't connected to any flash |
396 | 495 | chip, so the error is fine). | chip, so the error is fine). |
397 | 496 | ||
398 | Caution about BBB | ||
399 | ----------------- | ||
497 | ### Caution about BBB | ||
400 | 498 | ||
401 | 499 | BeagleBone Black is not recommended, because it's very slow and unstable for | BeagleBone Black is not recommended, because it's very slow and unstable for |
402 | 500 | SPI flashing, and nowadays much better options exist. We used to mainly | SPI flashing, and nowadays much better options exist. We used to mainly |
... | ... | Software on it, but nowadays there are superior options. | |
405 | 503 | ||
406 | 504 | TODO: document other SPI flashers | TODO: document other SPI flashers |
407 | 505 | ||
408 | Rasberry Pi (RPi) | ||
409 | ----------------- | ||
506 | ### Rasberry Pi (RPi) | ||
410 | 507 | ||
411 | 508 | SSH into your Raspberry Pi. You will run `flashprog` from your Raspberry Pi. | SSH into your Raspberry Pi. You will run `flashprog` from your Raspberry Pi. |
412 | 509 | ||
... | ... | Under the Interface section, you can enable SPI. | |
425 | 522 | ||
426 | 523 | The device for communicating via SPI as at `/dev/spidev0.0` | The device for communicating via SPI as at `/dev/spidev0.0` |
427 | 524 | ||
428 | RPi Drive Strength | ||
429 | ------------------ | ||
430 | Flashrom on the RPi may not be able to detect the SPI flash chip on some | ||
525 | ### RPi Drive Strength | ||
526 | |||
527 | Flashprog on the RPi may not be able to detect the SPI flash chip on some | ||
431 | 528 | systems, even if your wiring and clip are set up perfectly. This may be due to | systems, even if your wiring and clip are set up perfectly. This may be due to |
432 | 529 | the drive strength of the Raspberry Pi GPIOs, which is 8mA by default. Drive | the drive strength of the Raspberry Pi GPIOs, which is 8mA by default. Drive |
433 | 530 | strength is essentially the maximum current the pin can output while also | strength is essentially the maximum current the pin can output while also |
... | ... | See | |
483 | 580 | <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> | <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> |
484 | 581 | for more information about the drive strength control on the Pi. | for more information about the drive strength control on the Pi. |
485 | 582 | ||
486 | Caution about RPi | ||
487 | ----------------- | ||
583 | ### Caution about RPi | ||
488 | 584 | ||
489 | 585 | Basically, the Raspbian project, now called Raspberry Pi OS, put in their repo | Basically, the Raspbian project, now called Raspberry Pi OS, put in their repo |
490 | 586 | an update that added a new "trusted" repository, which just so happened to be | an update that added a new "trusted" repository, which just so happened to be |
... | ... | They then removed it, after a public backlash, via the following commits: | |
504 | 600 | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555> | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555> |
505 | 601 | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6> | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6> |
506 | 602 | ||
507 | Libre firmware on RPi | ||
508 | --------------------- | ||
603 | ### Libre firmware on RPi | ||
509 | 604 | ||
510 | 605 | The boot firmware on older Raspberry Pi models can be replaced, with entirely | The boot firmware on older Raspberry Pi models can be replaced, with entirely |
511 | 606 | libre firmware. This may be a useful additional step, for some users. See: | libre firmware. This may be a useful additional step, for some users. See: |
... | ... | Website: | |
516 | 611 | ||
517 | 612 | <https://librerpi.github.io/> | <https://librerpi.github.io/> |
518 | 613 | ||
519 | Install flashprog | ||
520 | ---------------- | ||
614 | ### Install flashprog | ||
521 | 615 | ||
522 | 616 | If you're using a BBB or RPi, you will do this while SSH'd into those. | If you're using a BBB or RPi, you will do this while SSH'd into those. |
523 | 617 | ||
524 | Flashrom is the software that you will use, for dumping, erasing and rewriting | ||
618 | Flashprog is the software that you will use, for dumping, erasing and rewriting | ||
525 | 619 | the contents of your NOR flash. | the contents of your NOR flash. |
526 | 620 | ||
527 | 621 | In the libreboot build system, from the Git repository, you can download and | In the libreboot build system, from the Git repository, you can download and |
... | ... | for use on x86-64 systems running Ubuntu 20.04, but it should work in Raspbian | |
550 | 644 | on the Raspberry Pi. | on the Raspberry Pi. |
551 | 645 | ||
552 | 646 | Alternatively, you may download flashprog directly from upstream | Alternatively, you may download flashprog directly from upstream |
553 | at <https://flashprog.org/Flashrom> | ||
647 | at <https://flashprog.org/Flashprog> | ||
554 | 648 | ||
555 | 649 | If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to | If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to |
556 | 650 | use a special patched version of flashprog, which you can download here: | use a special patched version of flashprog, which you can download here: |
... | ... | at `config/dependencies/` which you can install | |
565 | 659 | using the `apt-get` software. | using the `apt-get` software. |
566 | 660 | ||
567 | 661 | How to use flashprog | How to use flashprog |
568 | =================== | ||
662 | -------------------- | ||
569 | 663 | ||
570 | 664 | Read past these sections, further down this page, to learn about specific chip | Read past these sections, further down this page, to learn about specific chip |
571 | 665 | types and how to wire them. | types and how to wire them. |
572 | 666 | ||
573 | Reading | ||
574 | ------- | ||
667 | ### Reading | ||
575 | 668 | ||
576 | 669 | Before flashing a new ROM image, it is highly advisable that you dump the | Before flashing a new ROM image, it is highly advisable that you dump the |
577 | 670 | current chip contents to a file. | current chip contents to a file. |
... | ... | You can combine both flashes together with `cat` for example: | |
631 | 724 | Note that you will need this combined rom if you intend to manually extract vendor | Note that you will need this combined rom if you intend to manually extract vendor |
632 | 725 | files, which is a method not officially supported by Libreboot's build system. | files, which is a method not officially supported by Libreboot's build system. |
633 | 726 | ||
634 | Writing | ||
635 | ------- | ||
727 | ### Writing | ||
636 | 728 | ||
637 | 729 | Next, run this command (RPi): | Next, run this command (RPi): |
638 | 730 | ||
... | ... | For example, to split a rom for the x230, t430, t530, or t440p run: | |
668 | 760 | ||
669 | 761 | Flash the resulting roms to each of their respective chips according to the above instructions. | Flash the resulting roms to each of their respective chips according to the above instructions. |
670 | 762 | ||
671 | |||
672 | 763 | Hardware configuration | Hardware configuration |
673 | ====================== | ||
764 | ---------------------- | ||
674 | 765 | ||
675 | 766 | Refer to the above guidance about software configuration. The following advice | Refer to the above guidance about software configuration. The following advice |
676 | 767 | will teach you how to wire each type of flash chip. | will teach you how to wire each type of flash chip. |
677 | 768 | ||
678 | WARNINGS | ||
679 | -------- | ||
769 | ### WARNINGS | ||
680 | 770 | ||
681 | 771 | Do not connect the power source until your chip is otherwise properly | Do not connect the power source until your chip is otherwise properly |
682 | 772 | wired. For instance, do not connect a test clip that has power attached. | wired. For instance, do not connect a test clip that has power attached. |
... | ... | DO NOT connect more than 1 DC power source to your flash chip either! | |
701 | 791 | Mixing voltages like that can easily cause damage to your equipment, and to | Mixing voltages like that can easily cause damage to your equipment, and to |
702 | 792 | your chip/mainboard. | your chip/mainboard. |
703 | 793 | ||
704 | MISO/MOSI/CS/CLK lines | ||
705 | ---------------------- | ||
794 | ### MISO/MOSI/CS/CLK lines | ||
706 | 795 | ||
707 | 796 | You may want to add 47ohm series resistors on these lines, when flashing the | You may want to add 47ohm series resistors on these lines, when flashing the |
708 | 797 | chips. Only do it on those lines (NOT the VCC or GND lines). This provides | chips. Only do it on those lines (NOT the VCC or GND lines). This provides |
709 | 798 | some protection from over-current. On Intel platforms, the SPI flash is usually | some protection from over-current. On Intel platforms, the SPI flash is usually |
710 | 799 | connected via such resistors, directly to the Southbridge chipset. | connected via such resistors, directly to the Southbridge chipset. |
711 | 800 | ||
712 | ISP programming and VCC diode | ||
713 | ----------------------------- | ||
801 | ### ISP programming and VCC diode | ||
714 | 802 | ||
715 | 803 | ISP means in-system programming. It's when you flash a chip that is already | ISP means in-system programming. It's when you flash a chip that is already |
716 | 804 | mounted to the mainboard of your computer that you wish to install libreboot | mounted to the mainboard of your computer that you wish to install libreboot |
... | ... | the flash into a breadboard when flashing. | |
750 | 838 | TODO: Make a page on libreboot.org, showing how to do this on all mainboards | TODO: Make a page on libreboot.org, showing how to do this on all mainboards |
751 | 839 | supported by libreboot. | supported by libreboot. |
752 | 840 | ||
753 | GPIO pins on BeagleBone Black (BBB) | ||
754 | ----------------------------------- | ||
841 | ### GPIO pins on BeagleBone Black (BBB) | ||
755 | 842 | ||
756 | 843 | Use this image for reference when connecting the pomona to the BBB: | Use this image for reference when connecting the pomona to the BBB: |
757 | 844 | <https://beagleboard.org/Support/bone101#headers> (D0 = MISO or connects | <https://beagleboard.org/Support/bone101#headers> (D0 = MISO or connects |
... | ... | to MISO). | |
760 | 847 | On that page, look at the *P9 header*. It is what you will use to wire up your | On that page, look at the *P9 header*. It is what you will use to wire up your |
761 | 848 | chip for flashing. | chip for flashing. |
762 | 849 | ||
763 | GPIO pins on Raspberry Pi (RPi) 40 Pin | ||
764 | -------------------------------------- | ||
850 | ### GPIO pins on Raspberry Pi (RPi) 40 Pin | ||
765 | 851 | ||
766 | 852 | This diagram shows the pinout for most modern Pi's and Pi derivatives. | This diagram shows the pinout for most modern Pi's and Pi derivatives. |
767 | 853 | The diagram shows the pins of an RPi on the left and the two SOIC clips | The diagram shows the pins of an RPi on the left and the two SOIC clips |
... | ... | on the left. | |
769 | 855 | ||
770 | 856 |  |  |
771 | 857 | ||
772 | GPIO pins on Raspberry Pi (RPi) 26 Pin | ||
773 | ------------------------------- | ||
858 | ### GPIO pins on Raspberry Pi (RPi) 26 Pin | ||
774 | 859 | ||
775 | 860 | Diagram of the 26 GPIO Pins of the Raspberry Pi Model B (for the Model | Diagram of the 26 GPIO Pins of the Raspberry Pi Model B (for the Model |
776 | 861 | B+ with 40 pins, start counting from the right and leave 14 pins): | B+ with 40 pins, start counting from the right and leave 14 pins): |
... | ... | B+ with 40 pins, start counting from the right and leave 14 pins): | |
779 | 864 | ||
780 | 865 | Use this as a reference for the other sections in this page, seen below: | Use this as a reference for the other sections in this page, seen below: |
781 | 866 | ||
782 | SOIC8/DIP8/WSON8 wiring diagram | ||
783 | ------------------------------- | ||
867 | ### SOIC8/DIP8/WSON8 wiring diagram | ||
784 | 868 | ||
785 | 869 | Refer to this diagram: | Refer to this diagram: |
786 | 870 | ||
... | ... | will provide a stable 3.3V voltage, with adequate current levels. On those | |
807 | 891 | laptops, this is necessary because the flash shares a common 3.3V DC rail with | laptops, this is necessary because the flash shares a common 3.3V DC rail with |
808 | 892 | many other ICs that all draw quite a lot of current. | many other ICs that all draw quite a lot of current. |
809 | 893 | ||
810 | SOIC16 wiring diagram (Raspberry Pi) | ||
811 | ------------------------------------ | ||
894 | ### SOIC16 wiring diagram (Raspberry Pi) | ||
812 | 895 | ||
813 | 896 | RPi GPIO header:\ | RPi GPIO header:\ |
814 | 897 |  |  |
... | ... | NOTE: pins 1 and 9 are WP/HOLD pins. If flashing a chip on a breadboard, please | |
846 | 929 | use pull-up resistors on those (see notes below), and decoupling capacitor on | use pull-up resistors on those (see notes below), and decoupling capacitor on |
847 | 930 | pin 2 (VCC). | pin 2 (VCC). |
848 | 931 | ||
849 | Pull-up resistors and decoupling capacitors | ||
850 | ------------------------------------------- | ||
932 | ### Pull-up resistors and decoupling capacitors | ||
851 | 933 | ||
852 | 934 | **Do this for chips mounted to a breadboard. Ignore this section if you're | **Do this for chips mounted to a breadboard. Ignore this section if you're |
853 | 935 | flashing a chip that is already soldered to a mainboard.** | flashing a chip that is already soldered to a mainboard.** |
... | ... | WP/HOLD are not pin 3/7 like above, but instead pins 1 and 9, so wire your | |
895 | 977 | pull-up resistors on those. VCC on SOIC16 is pin 2, so wire your decoupling | pull-up resistors on those. VCC on SOIC16 is pin 2, so wire your decoupling |
896 | 978 | capacitors up on that. | capacitors up on that. |
897 | 979 | ||
898 | SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard | ||
899 | -------------------------------------------------- | ||
980 | ### SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard | ||
900 | 981 | ||
901 | 982 | If your system has lower capacity SPI flash, you can upgrade. On *most* systems, | If your system has lower capacity SPI flash, you can upgrade. On *most* systems, |
902 | 983 | SPI flash is memory mapped and the maximum (in practise) that you can use is a | SPI flash is memory mapped and the maximum (in practise) that you can use is a |
... | ... | and good 60/40 or 63/37 leaded solder (don't use lead-free): | |
968 | 1049 |  |  |
969 | 1050 |  |  |
970 | 1051 | ||
971 | SOIC8/SOIC16 soldered to a mainboard | ||
972 | ------------------------------------ | ||
1052 | ### SOIC8/SOIC16 soldered to a mainboard | ||
973 | 1053 | ||
974 | 1054 | This is an example of *in-system programming* or *ISP* for short. | This is an example of *in-system programming* or *ISP* for short. |
975 | 1055 | ||
... | ... | Here is an example of a test clip connected for SOIC16:\ | |
994 | 1074 | And here is an example photo for SOIC8:\ | And here is an example photo for SOIC8:\ |
995 | 1075 |  |  |
996 | 1076 | ||
997 | DIP8 soldered to the mainboard | ||
998 | ------------------------------ | ||
1077 | ### DIP8 soldered to the mainboard | ||
999 | 1078 | ||
1000 | 1079 | It is extremely cursed for DIP8 to be soldered directly to the mainboard. It is | It is extremely cursed for DIP8 to be soldered directly to the mainboard. It is |
1001 | 1080 | usually mounted to a socket. | usually mounted to a socket. |
... | ... | directly soldered. It is almost always mounted in a socket. | |
1010 | 1089 | ||
1011 | 1090 | Your DIP8 IC has the same pinout as a SOIC8 IC. | Your DIP8 IC has the same pinout as a SOIC8 IC. |
1012 | 1091 | ||
1013 | Replace WSON8 IC with SOIC8 | ||
1014 | --------------------------- | ||
1092 | ### Replace WSON8 IC with SOIC8 | ||
1015 | 1093 | ||
1016 | 1094 | **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. | **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. |
1017 | 1095 | They look similar to SOIC8 clips, and they work similarly.** | They look similar to SOIC8 clips, and they work similarly.** |
... | ... | evaporates quickly and it does not leave a corrosive residue. | |
1126 | 1204 | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
1127 | 1205 | ||
1128 | 1206 | LICENSING | LICENSING |
1129 | ========= | ||
1207 | --------- | ||
1130 | 1208 | ||
1131 | 1209 | This page is released under different copyright terms than most other pages | This page is released under different copyright terms than most other pages |
1132 | 1210 | on this website. | on this website. |
File site/docs/install/spi.zh-cn.md changed (mode: 100644) (index bb9b705..eba229a) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Need help? | Need help? |
7 | ========== | ||
7 | ---------- | ||
8 | 8 | ||
9 | 9 | Help is available on [Libreboot IRC](../../contact.md) and other channels. | Help is available on [Libreboot IRC](../../contact.md) and other channels. |
10 | 10 | ||
... | ... | if you want to send your machine in to have Libreboot installed for you. | |
16 | 16 | Leah Rowe, the founder and lead developer of Libreboot, also owns and | Leah Rowe, the founder and lead developer of Libreboot, also owns and |
17 | 17 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
18 | 18 | ||
19 | Introduction | ||
20 | ============ | ||
19 | Install open source BIOS/UEFI firmware | ||
20 | ------------ | ||
21 | 21 | ||
22 | 22 | **[安装之前请先阅读这些指示](ivy_has_common.md),否则你的机器可能会成砖:[安全措施](ivy_has_common.md)** | **[安装之前请先阅读这些指示](ivy_has_common.md),否则你的机器可能会成砖:[安全措施](ivy_has_common.md)** |
23 | 23 | ||
24 | 24 | 本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash;唯一的例外就是 ASUS KFSN4-DRE,它在 PLCC32 芯片座中使用了 LPC flash,你可以在供应商固件启动后,对其进行热切换,然后再内部刷入。十分简单! | 本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash;唯一的例外就是 ASUS KFSN4-DRE,它在 PLCC32 芯片座中使用了 LPC flash,你可以在供应商固件启动后,对其进行热切换,然后再内部刷入。十分简单! |
25 | 25 | ||
26 | 我们会用到 [flashprog](https://flashprog.org/Flashrom) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。 | ||
26 | 我们会用到 [flashprog](https://flashprog.org/) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。 | ||
27 | 27 | ||
28 | 28 | libreboot 目前记录了这些 SPI 编程器的使用方法: | libreboot 目前记录了这些 SPI 编程器的使用方法: |
29 | 29 | ||
... | ... | libreboot 目前记录了这些 SPI 编程器的使用方法: | |
41 | 41 | 你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。 | 你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。 |
42 | 42 | ||
43 | 43 | Raspberry Pi Pico | Raspberry Pi Pico |
44 | ================= | ||
44 | ----------------- | ||
45 | 45 | ||
46 | RP2040/RP2530 both supported | ||
47 | ---------------------------- | ||
46 | ### RP2040/RP2530 both supported | ||
48 | 47 | ||
49 | 48 | **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 | **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 |
50 | 49 | or higher. Releases before this only supported the original Pico, and other | or higher. Releases before this only supported the original Pico, and other |
... | ... | Additionally, all the software running on it is free, down to the full | |
62 | 61 | versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, | versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, |
63 | 62 | but that is not needed for following this guide. | but that is not needed for following this guide. |
64 | 63 | ||
65 | Download serprog firmware pre-compiled | ||
66 | ------------------------- | ||
64 | ### Download serprog firmware pre-compiled | ||
67 | 65 | ||
68 | 66 | Download the pico serprog tarball from Libreboot releases. For example, the | Download the pico serprog tarball from Libreboot releases. For example, the |
69 | 67 | Libreboot 20241206rev8 one would be | Libreboot 20241206rev8 one would be |
... | ... | named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under | |
71 | 69 | the `roms/` directory in each release. With these binaries, you can easily | the `roms/` directory in each release. With these binaries, you can easily |
72 | 70 | get started. | get started. |
73 | 71 | ||
74 | Build serprog firmware from source | ||
75 | ---------------------------------- | ||
72 | ### Build serprog firmware from source | ||
76 | 73 | ||
77 | 74 | You can alternatively download the serprog firmware here:\ | You can alternatively download the serprog firmware here:\ |
78 | 75 | <https://codeberg.org/libreboot/pico-serprog>\ | <https://codeberg.org/libreboot/pico-serprog>\ |
... | ... | at `bin/serprog_pico/serprog_pico.uf2` | |
95 | 92 | and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the | and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the |
96 | 93 | file name are for the Pico 2, and they can also be used. | file name are for the Pico 2, and they can also be used. |
97 | 94 | ||
98 | Install the serprog firmware | ||
99 | ---------------------------- | ||
95 | ### Install the serprog firmware | ||
100 | 96 | ||
101 | 97 | First, connect just the Pico to your computer with a micro-USB cable. | First, connect just the Pico to your computer with a micro-USB cable. |
102 | 98 | Mount it like any other USB flash drive. If it isn't detected, you might need | Mount it like any other USB flash drive. If it isn't detected, you might need |
... | ... | release tarball. | |
112 | 108 | **NOTE: Other RP2040/2530 devices will also work. You just have to match | **NOTE: Other RP2040/2530 devices will also work. You just have to match |
113 | 109 | the right pins and use the correct firmware file!** | the right pins and use the correct firmware file!** |
114 | 110 | ||
115 | Logic levels | ||
116 | ------------ | ||
111 | ### Logic levels | ||
117 | 112 | ||
118 | 113 | A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't | A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't |
119 | 114 | destroy your board by sending 5V to it. If you have a 1.8V flash chip, | destroy your board by sending 5V to it. If you have a 1.8V flash chip, |
... | ... | you need to add a logic level converter. **Please ensure that you have matched | |
121 | 116 | the voltage of your programmer to the voltage of your chip; both the data lines | the voltage of your programmer to the voltage of your chip; both the data lines |
122 | 117 | and power lines to the chip must match.** | and power lines to the chip must match.** |
123 | 118 | ||
124 | Wiring | ||
125 | ------ | ||
119 | ### Wiring | ||
126 | 120 | ||
127 | 121 | Disconnect the Pico and proceed to wire it to your | Disconnect the Pico and proceed to wire it to your |
128 | 122 | [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). | [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). |
... | ... | not worth it. The 12Mbps USB port is limiting the actual speed here. | |
159 | 153 | Higher speeds might work nicely, on Pico 2. | Higher speeds might work nicely, on Pico 2. |
160 | 154 | ||
161 | 155 | 不要使用 CH341A! | 不要使用 CH341A! |
162 | ================== | ||
156 | ---------------- | ||
163 | 157 | ||
164 | 158 | libreboot 支持的机器,NOR flash 使用的是 3.3V DC 或 1.8V DC,这也包括了数据线路。CH341A 在数据线路上有 5V 逻辑电平,这会损伤 SPI flash 和它连接的南桥,以及它连接的其它任何东西。 | libreboot 支持的机器,NOR flash 使用的是 3.3V DC 或 1.8V DC,这也包括了数据线路。CH341A 在数据线路上有 5V 逻辑电平,这会损伤 SPI flash 和它连接的南桥,以及它连接的其它任何东西。 |
165 | 159 | ||
... | ... | libreboot 支持的机器,NOR flash 使用的是 3.3V DC 或 1.8V DC,这也 | |
190 | 184 | 绿色版本(上面未展示)可能已经连接了 3.3v 逻辑电平,但仍然需要为 WP/HOLD 增加上拉电阻。 | 绿色版本(上面未展示)可能已经连接了 3.3v 逻辑电平,但仍然需要为 WP/HOLD 增加上拉电阻。 |
191 | 185 | ||
192 | 186 | 识别你的 flash 类型 | 识别你的 flash 类型 |
193 | ================================== | ||
187 | ------------------- | ||
194 | 188 | ||
195 | 189 | 每一个 flash,都会有一个点或者标记,表明这是第 1 引脚(如 WSON8 的第 1 焊盘)。 | 每一个 flash,都会有一个点或者标记,表明这是第 1 引脚(如 WSON8 的第 1 焊盘)。 |
196 | 190 | ||
197 | 191 | 参考下面的图片,再看看你的主板。搞清楚你的芯片类型之后,根据你了解的情况及本教程剩下的部分,来实现你的目标,即对你的引导 flash 进行读/写。 | 参考下面的图片,再看看你的主板。搞清楚你的芯片类型之后,根据你了解的情况及本教程剩下的部分,来实现你的目标,即对你的引导 flash 进行读/写。 |
198 | 192 | ||
199 | SOIC8 | ||
200 | ----- | ||
193 | ### SOIC8 | ||
201 | 194 | ||
202 | 195 |  |  |
203 | 196 | ||
204 | SOIC16 | ||
205 | ------ | ||
197 | ### SOIC16 | ||
206 | 198 | ||
207 | 199 |  |  |
208 | 200 | ||
209 | 201 | SOIC8 和 SOIC16 是最常见的类型,但也有其他的类型: | SOIC8 和 SOIC16 是最常见的类型,但也有其他的类型: |
210 | 202 | ||
211 | WSON8 | ||
212 | ----- | ||
203 | ### WSON8 | ||
213 | 204 | ||
214 | 205 | X200S 或 X200 Tablet 上是像这样的:\ | X200S 或 X200 Tablet 上是像这样的:\ |
215 | 206 |  |  |
... | ... | T400S 上,是在 RAM 附近的这个位置:\ | |
218 | 209 | \ | \ |
219 | 210 | 注意: 本照片中的芯片换成了 SOIC8 | 注意: 本照片中的芯片换成了 SOIC8 |
220 | 211 | ||
221 | DIP8 | ||
222 | ---- | ||
212 | ### DIP8 | ||
223 | 213 | ||
224 | 214 |  |  |
225 | 215 | ||
226 | 电源电压 | ||
227 | -------------- | ||
216 | ### 电源电压 | ||
228 | 217 | ||
229 | 218 | 之前,Libreboot 支持的所有主板,刚好都有在 3.3V DC 下工作的 SPI NOR 芯片。因为最近添加了额定 1.8V DC 芯片的 Chromebook,所以就不再是这么回事了。 | 之前,Libreboot 支持的所有主板,刚好都有在 3.3V DC 下工作的 SPI NOR 芯片。因为最近添加了额定 1.8V DC 芯片的 Chromebook,所以就不再是这么回事了。 |
230 | 219 | ||
231 | 220 | 检查主板上芯片的元件型号,再查找一下它的数据表。找出它需要的电源电压并记下来。如果它和你外部刷写硬件的输出电压不匹配,那你只能通过适配器或者逻辑电平转换器,把它连至芯片,而绝不能直接连接。 | 检查主板上芯片的元件型号,再查找一下它的数据表。找出它需要的电源电压并记下来。如果它和你外部刷写硬件的输出电压不匹配,那你只能通过适配器或者逻辑电平转换器,把它连至芯片,而绝不能直接连接。 |
232 | 221 | ||
233 | 222 | 软件配置 | 软件配置 |
234 | ====================== | ||
223 | -------- | ||
235 | 224 | ||
236 | 通用/Le potato | ||
237 | ----------------- | ||
225 | ### 通用/Le potato | ||
238 | 226 | ||
239 | 227 | [通用指南](spi_generic.md)可以帮助你使用本指南未列出的 SBC(单板电脑)。不过,那份指南会使用 libre computer 'Le Potato' 作为参考板。如果你有那块板子,你应该参考 [通用指南](spi_generic.md)。 | [通用指南](spi_generic.md)可以帮助你使用本指南未列出的 SBC(单板电脑)。不过,那份指南会使用 libre computer 'Le Potato' 作为参考板。如果你有那块板子,你应该参考 [通用指南](spi_generic.md)。 |
240 | 228 | ||
241 | BeagleBone Black(BBB) | ||
242 | ---------------------- | ||
229 | ### BeagleBone Black(BBB) | ||
243 | 230 | ||
244 | 231 | SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog`。 | SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog`。 |
245 | 232 | ||
... | ... | Note: flashprog can never write if the flash chip isn't found automatically. | |
296 | 283 | ||
297 | 284 | 这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。 | 这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。 |
298 | 285 | ||
299 | BBB 注意事项 | ||
300 | ----------------- | ||
286 | ### BBB 注意事项 | ||
301 | 287 | ||
302 | 288 | 不建议使用 BeagleBone Black,因为拿它来进行 SPI 刷写,速度很慢而且不稳定,并且现在有更好的选择了。我们以前建议使用 BBB,因为它可以完全运行自由软件,但现在有了更佳的选择。 | 不建议使用 BeagleBone Black,因为拿它来进行 SPI 刷写,速度很慢而且不稳定,并且现在有更好的选择了。我们以前建议使用 BBB,因为它可以完全运行自由软件,但现在有了更佳的选择。 |
303 | 289 | ||
304 | 290 | 计划:讲解其他 SPI 刷写工具 | 计划:讲解其他 SPI 刷写工具 |
305 | 291 | ||
306 | Rasberry Pi(RPi) | ||
307 | ----------------- | ||
292 | ### Rasberry Pi(RPi) | ||
308 | 293 | ||
309 | 294 | SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。 | SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。 |
310 | 295 | ||
... | ... | SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。 | |
321 | 306 | ||
322 | 307 | 用于 SPI 通讯的设备位于 `/dev/spidev0.0`。 | 用于 SPI 通讯的设备位于 `/dev/spidev0.0`。 |
323 | 308 | ||
324 | RPi 驱动强度(Drive Strength) | ||
325 | ------------------ | ||
309 | ### RPi 驱动强度(Drive Strength) | ||
326 | 310 | ||
327 | 311 | RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是,在保持高电平最低电压的同时,引脚最高能输出的电流。对树莓派而言,这个电压是 3.0 V。 | RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是,在保持高电平最低电压的同时,引脚最高能输出的电流。对树莓派而言,这个电压是 3.0 V。 |
328 | 312 | ||
... | ... | RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已 | |
352 | 336 | ||
353 | 337 | 见 <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> 了解树莓派上的驱动强度控制。 | 见 <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> 了解树莓派上的驱动强度控制。 |
354 | 338 | ||
355 | RPi 注意事项 | ||
356 | ----------------- | ||
339 | ### RPi 注意事项 | ||
357 | 340 | ||
358 | 341 | 基本上,Raspbian 项目,即现在的 Raspberry Pi OS,对其仓库进行了更新,增加了一个新的“受信任”仓库,这刚好是一个微软软件仓库。他们这么做,似乎是为了 VS Code,但问题在于,这可以让微软自由地控制他们喜欢的依赖(根据 apt-get 规则)。每当你更新,你都会对微软的服务器发送请求。不觉得这很奇怪吗? | 基本上,Raspbian 项目,即现在的 Raspberry Pi OS,对其仓库进行了更新,增加了一个新的“受信任”仓库,这刚好是一个微软软件仓库。他们这么做,似乎是为了 VS Code,但问题在于,这可以让微软自由地控制他们喜欢的依赖(根据 apt-get 规则)。每当你更新,你都会对微软的服务器发送请求。不觉得这很奇怪吗? |
359 | 342 | ||
... | ... | RPi 注意事项 | |
366 | 349 | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555> | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555> |
367 | 350 | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6> | * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6> |
368 | 351 | ||
369 | RPi 的自由固件 | ||
370 | --------------------- | ||
352 | ### RPi 的自由固件 | ||
371 | 353 | ||
372 | 354 | 旧款树莓派的引导固件可以替换成完全自由的固件。对有些用户而言,这额外的一步可能很有用。参见: | 旧款树莓派的引导固件可以替换成完全自由的固件。对有些用户而言,这额外的一步可能很有用。参见: |
373 | 355 | ||
... | ... | RPi 的自由固件 | |
377 | 359 | ||
378 | 360 | <https://librerpi.github.io/> | <https://librerpi.github.io/> |
379 | 361 | ||
380 | 安装 flashprog | ||
381 | ---------------- | ||
362 | ### 安装 flashprog | ||
382 | 363 | ||
383 | 364 | 如果你在使用 BBB 或者 RPi,你需要在 SSH 进去之后再这么做。 | 如果你在使用 BBB 或者 RPi,你需要在 SSH 进去之后再这么做。 |
384 | 365 | ||
385 | Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。 | ||
366 | Flashprog 是用来读出、擦除、重写 NOR flash 内容的软件。 | ||
386 | 367 | ||
387 | 368 | 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行: | 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行: |
388 | 369 | ||
... | ... | Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。 | |
397 | 378 | ||
398 | 379 | 接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。 | 接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。 |
399 | 380 | ||
400 | 或者,你可以直接从上游下载 flashprog,位于:<https://flashprog.org/Flashrom> | ||
381 | 或者,你可以直接从上游下载 flashprog,位于:<https://flashprog.org/> | ||
401 | 382 | ||
402 | 383 | 如果你是在 ThinkPad X200 上刷写 Macronix flash 芯片,则要使用一个 flashprog 的特别修改版,下载地址在这里:<https://vimuser.org/hackrom.tar.xz> —— 其中有修改版的源代码,也有可以直接运行的二进制文件。将 `--workaround-mx` 参数传给 flashprog。这会缓解稳定性问题。 | 如果你是在 ThinkPad X200 上刷写 Macronix flash 芯片,则要使用一个 flashprog 的特别修改版,下载地址在这里:<https://vimuser.org/hackrom.tar.xz> —— 其中有修改版的源代码,也有可以直接运行的二进制文件。将 `--workaround-mx` 参数传给 flashprog。这会缓解稳定性问题。 |
403 | 384 | ||
404 | 385 | 如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。 | 如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。 |
405 | 386 | ||
406 | 387 | 如何使用 flashprog | 如何使用 flashprog |
407 | =================== | ||
388 | ------------------ | ||
408 | 389 | ||
409 | 390 | 请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。 | 请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。 |
410 | 391 | ||
411 | 读出 | ||
412 | ------- | ||
392 | ### 读出 | ||
413 | 393 | ||
414 | 394 | 刷入新的 ROM 镜像之前,强烈建议你将当前芯片的内容读出到一个文件。 | 刷入新的 ROM 镜像之前,强烈建议你将当前芯片的内容读出到一个文件。 |
415 | 395 | ||
... | ... | BBB 的话,这样: | |
449 | 429 | ||
450 | 430 | 注意,如果你要手动提取 blob,那你就需要这个组合而成的 rom。 | 注意,如果你要手动提取 blob,那你就需要这个组合而成的 rom。 |
451 | 431 | ||
452 | 写入 | ||
453 | ------- | ||
432 | ### 写入 | ||
454 | 433 | ||
455 | 434 | 接下来,运行这个命令(RPi): | 接下来,运行这个命令(RPi): |
456 | 435 | ||
... | ... | Verifying flash... VERIFIED. | |
483 | 462 | ||
484 | 463 | ||
485 | 464 | 硬件配置 | 硬件配置 |
486 | ====================== | ||
465 | -------- | ||
487 | 466 | ||
488 | 467 | 软件配置请参考上面的教程。下面的建议会教你如何为每种 flash 芯片接线。 | 软件配置请参考上面的教程。下面的建议会教你如何为每种 flash 芯片接线。 |
489 | 468 | ||
490 | 警告 | ||
491 | -------- | ||
469 | ### 警告 | ||
492 | 470 | ||
493 | 471 | 在芯片还没有正确接好线时,先不要连接电源。例如,不要连接到接通电源的测试夹。 | 在芯片还没有正确接好线时,先不要连接电源。例如,不要连接到接通电源的测试夹。 |
494 | 472 | ||
... | ... | Verifying flash... VERIFIED. | |
500 | 478 | ||
501 | 479 | 也不要给你的 flash 芯片连接超过 1 个 DC 电源!那样混合电压的话,很容易损伤你的设备及芯片/主板。 | 也不要给你的 flash 芯片连接超过 1 个 DC 电源!那样混合电压的话,很容易损伤你的设备及芯片/主板。 |
502 | 480 | ||
503 | MISO/MOSI/CS/CLK 接线 | ||
504 | ---------------------- | ||
481 | ### MISO/MOSI/CS/CLK 接线 | ||
505 | 482 | ||
506 | 483 | 在刷写这些芯片的时候,你可能也想增加 47 欧姆的串联电阻(不是加在 VCC 或 GND 线上)。这可以提供一些过流保护。在 Intel 平台上,SPI flash 直接连接到南桥芯片组时,通常会通过这样的电阻。 | 在刷写这些芯片的时候,你可能也想增加 47 欧姆的串联电阻(不是加在 VCC 或 GND 线上)。这可以提供一些过流保护。在 Intel 平台上,SPI flash 直接连接到南桥芯片组时,通常会通过这样的电阻。 |
507 | 484 | ||
508 | ISP 编程及 VCC 二极管 | ||
509 | ----------------------------- | ||
485 | ### ISP 编程及 VCC 二极管 | ||
510 | 486 | ||
511 | 487 | ISP 即系统内编程(in-system programming)。它指的是,一块芯片已经装在了你想安装 libreboot 的电脑的主板上,而你要对这块芯片进行刷写。 | ISP 即系统内编程(in-system programming)。它指的是,一块芯片已经装在了你想安装 libreboot 的电脑的主板上,而你要对这块芯片进行刷写。 |
512 | 488 | ||
... | ... | ISP 即系统内编程(in-system programming)。它指的是,一块芯片 | |
522 | 498 | ||
523 | 499 | 计划:在 libreboot.org 创建一个页面,讲怎么在 libreboot 支持的所有主板这么做。 | 计划:在 libreboot.org 创建一个页面,讲怎么在 libreboot 支持的所有主板这么做。 |
524 | 500 | ||
525 | BeagleBone Black(BBB)上的 GPIO 引脚 | ||
526 | ----------------------------------- | ||
501 | ### BeagleBone Black(BBB)上的 GPIO 引脚 | ||
527 | 502 | ||
528 | 503 | 把 pomona 夹子连接到 BBB 时,参考这张图片:<https://beagleboard.org/Support/bone101#headers> (D0 = MISO 或连接到 MISO)。 | 把 pomona 夹子连接到 BBB 时,参考这张图片:<https://beagleboard.org/Support/bone101#headers> (D0 = MISO 或连接到 MISO)。 |
529 | 504 | ||
530 | 505 | 如果你要用 *P9 排针*来连接芯片刷写的话,请看那个页面的那个部分。 | 如果你要用 *P9 排针*来连接芯片刷写的话,请看那个页面的那个部分。 |
531 | 506 | ||
532 | 40 引脚树莓派(RPi)的 GPIO 引脚 | ||
533 | -------------------------------------- | ||
507 | ### 40 引脚树莓派(RPi)的 GPIO 引脚 | ||
534 | 508 | ||
535 | 509 | 下图展示了大多数现代树莓派及其衍生版的引脚分配。图中右边是 RPi 的引脚,左边是两个 SOIC 夹。 | 下图展示了大多数现代树莓派及其衍生版的引脚分配。图中右边是 RPi 的引脚,左边是两个 SOIC 夹。 |
536 | 510 | ||
537 | 511 |  |  |
538 | 512 | ||
539 | 26 引脚树莓派(RPi)的 GPIO 引脚 | ||
540 | ------------------------------- | ||
513 | ### 26 引脚树莓派(RPi)的 GPIO 引脚 | ||
541 | 514 | ||
542 | 515 | 树莓派 B 款 26 GPIO 引脚图(对 40 引脚的 B+ 款而言,从右边开始数,剩下 14 个引脚): | 树莓派 B 款 26 GPIO 引脚图(对 40 引脚的 B+ 款而言,从右边开始数,剩下 14 个引脚): |
543 | 516 | ||
... | ... | BeagleBone Black(BBB)上的 GPIO 引脚 | |
545 | 518 | ||
546 | 519 | 此处的信息,也请在阅读以下其他部分时参考: | 此处的信息,也请在阅读以下其他部分时参考: |
547 | 520 | ||
548 | SOIC8/DIP8/WSON8 接线图 | ||
549 | ------------------------------- | ||
521 | ### SOIC8/DIP8/WSON8 接线图 | ||
550 | 522 | ||
551 | 523 | 参考此表: | 参考此表: |
552 | 524 | ||
... | ... | SOIC8/DIP8/WSON8 接线图 | |
567 | 539 | ||
568 | 540 | 注意:在 X60/T60 thinkpad 上,不要连接第 8 引脚。而是将你的 PSU 接在主板供电口上,但不要启动主板。这会提供稳定的 3.3V 电压及足够的电流。在这些笔记本上,这是必要的,因为 flash 和其他许多 IC 共用一路 3.3V DC 电源,这些 IC 都会分走很多电流。 | 注意:在 X60/T60 thinkpad 上,不要连接第 8 引脚。而是将你的 PSU 接在主板供电口上,但不要启动主板。这会提供稳定的 3.3V 电压及足够的电流。在这些笔记本上,这是必要的,因为 flash 和其他许多 IC 共用一路 3.3V DC 电源,这些 IC 都会分走很多电流。 |
569 | 541 | ||
570 | SOIC16 接线图(树莓派) | ||
571 | ------------------------------------ | ||
542 | ### SOIC16 接线图(树莓派) | ||
572 | 543 | ||
573 | 544 | RPi GPIO 排针:\ | RPi GPIO 排针:\ |
574 | 545 |  |  |
... | ... | BBB P9 排针:\ | |
604 | 575 | ||
605 | 576 | 注意:第 1 和第 9 引脚是 WP/HOLD 引脚。在面包板上刷写芯片时,请对它们使用上拉电阻(见上面的注记),并在第 2 引脚(VCC)使用去耦电容。 | 注意:第 1 和第 9 引脚是 WP/HOLD 引脚。在面包板上刷写芯片时,请对它们使用上拉电阻(见上面的注记),并在第 2 引脚(VCC)使用去耦电容。 |
606 | 577 | ||
607 | 上拉电阻和去耦电容 | ||
608 | ------------------------------------------- | ||
578 | ### 上拉电阻和去耦电容 | ||
609 | 579 | ||
610 | 580 | **如果芯片是装在面包板上的,那请遵循这里的步骤。如果你要刷写的芯片已经焊接在了主板上,那请忽略这一部分。** | **如果芯片是装在面包板上的,那请遵循这里的步骤。如果你要刷写的芯片已经焊接在了主板上,那请忽略这一部分。** |
611 | 581 | ||
... | ... | SOIC8/WSON8/DIP8:如果芯片在主板上,那第 8 引脚,即 VCC,就已 | |
626 | 596 | ||
627 | 597 | SOIC16:同上,但在面包板上使用 SOIC16 socket。在 SOIC16 上,WP/HOLD 不同于上面的第 3/7 引脚,而是第 1 和第 9 引脚,所以要把上拉电阻接到那里。SOIC16 上的 VCC 是第 2 引脚,所以要把去耦电容接到那里。 | SOIC16:同上,但在面包板上使用 SOIC16 socket。在 SOIC16 上,WP/HOLD 不同于上面的第 3/7 引脚,而是第 1 和第 9 引脚,所以要把上拉电阻接到那里。SOIC16 上的 VCC 是第 2 引脚,所以要把去耦电容接到那里。 |
628 | 598 | ||
629 | SOIC8/WSON8/DIP8/SOIC16 未安装在主板上 | ||
630 | -------------------------------------------------- | ||
599 | ### SOIC8/WSON8/DIP8/SOIC16 未安装在主板上 | ||
631 | 600 | ||
632 | 601 | 如果你的机器的 SPI flash 容量较低,那你可以升级。在*大多数*机器上,SPI flash 是经过映射的内存,而(实际上)你最大可以使用 16MiB 的芯片。例如,libreboot 的 KGPE-D16 和 KCMA-D8 主板默认有 2MiB flash,但你可以对它们轻松升级。另一个例子是 ThinkPad X200S、X200 Tablet 和 T400S,它们都有 WSON8,而最佳的方案就是将它替换为 SOIC8 flash 芯片。 | 如果你的机器的 SPI flash 容量较低,那你可以升级。在*大多数*机器上,SPI flash 是经过映射的内存,而(实际上)你最大可以使用 16MiB 的芯片。例如,libreboot 的 KGPE-D16 和 KCMA-D8 主板默认有 2MiB flash,但你可以对它们轻松升级。另一个例子是 ThinkPad X200S、X200 Tablet 和 T400S,它们都有 WSON8,而最佳的方案就是将它替换为 SOIC8 flash 芯片。 |
633 | 602 | ||
... | ... | SOIC8/WSON8/DIP8/SOIC16 未安装在主板上 | |
664 | 633 |  |  |
665 | 634 |  |  |
666 | 635 | ||
667 | SOIC8/SOIC16 焊接在主板上 | ||
668 | ------------------------------------ | ||
636 | ### SOIC8/SOIC16 焊接在主板上 | ||
669 | 637 | ||
670 | 638 | 这是*系统内编程*或 *ISP* 的一个简短例子。 | 这是*系统内编程*或 *ISP* 的一个简短例子。 |
671 | 639 | ||
... | ... | Pomona 5252 是一个 SOIC16 测试夹。也有其他的可以用,但这个是 | |
681 | 649 | SOIC8 例子的照片如下:\ | SOIC8 例子的照片如下:\ |
682 | 650 |  |  |
683 | 651 | ||
684 | DIP8 焊接在主板上 | ||
685 | ------------------------------ | ||
652 | ### DIP8 焊接在主板上 | ||
686 | 653 | ||
687 | 654 | 把 DIP8 直接焊接在主板上怪异至极。它通常是安装在芯片座上的。 | 把 DIP8 直接焊接在主板上怪异至极。它通常是安装在芯片座上的。 |
688 | 655 | ||
... | ... | DIP8 焊接在主板上 | |
692 | 659 | ||
693 | 660 | DIP8 IC 的引脚分配和 SOIC8 IC 一样。 | DIP8 IC 的引脚分配和 SOIC8 IC 一样。 |
694 | 661 | ||
695 | 使用 SOIC8 替换 WSON8 IC | ||
696 | --------------------------- | ||
662 | ### 使用 SOIC8 替换 WSON8 IC | ||
697 | 663 | ||
698 | 664 | **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. | **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. |
699 | 665 | They look similar to SOIC8 clips, and they work similarly.** | They look similar to SOIC8 clips, and they work similarly.** |
... | ... | WSON8 IC:\ | |
759 | 725 | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
760 | 726 | ||
761 | 727 | 许可证 | 许可证 |
762 | ========= | ||
728 | ------ | ||
763 | 729 | ||
764 | 730 | 本页面发布所使用的版权条款,不同于本网站上大多数其他页面。 | 本页面发布所使用的版权条款,不同于本网站上大多数其他页面。 |
765 | 731 |
File site/docs/install/spi_generic.md changed (mode: 100644) (index cea61cd..97e143e) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
13 | 13 | there, before flashing. For posterity, | there, before flashing. For posterity, |
14 | 14 | [here is the link again](ivy_has_common.md).** | [here is the link again](ivy_has_common.md).** |
15 | 15 | ||
16 | Background information | ||
17 | ---------------------- | ||
18 | |||
16 | 19 | There are a plethora of single board computers with which you can flash libreboot to a SOIC chip. | There are a plethora of single board computers with which you can flash libreboot to a SOIC chip. |
17 | 20 | Some users might be daunted by the price of a raspberry pi. | Some users might be daunted by the price of a raspberry pi. |
18 | 21 | This guide is intended to help users looking to use a programmer which is not listed in the [main guide.](spi.md) | This guide is intended to help users looking to use a programmer which is not listed in the [main guide.](spi.md) |
... | ... | All of this means that you should try to find a board that is *known* to support | |
29 | 32 | It is *not* enough to know that the board itself supports SPI. | It is *not* enough to know that the board itself supports SPI. |
30 | 33 | ||
31 | 34 | Selecting an Operating System | Selecting an Operating System |
32 | ============================= | ||
35 | ----------------------------- | ||
33 | 36 | ||
34 | 37 | In theory, any linux based operating system will do. | In theory, any linux based operating system will do. |
35 | 38 | In practice, many distros are highly limited when it comes to single-board-computers. | In practice, many distros are highly limited when it comes to single-board-computers. |
... | ... | If your SBC supports [Raspbian](https://www.raspberrypi.com/software/) then usin | |
43 | 46 | As a bonus, you may refer to the [main guide](spi.md) if the SBC you have supports raspbian, should you get confused with this guide. | As a bonus, you may refer to the [main guide](spi.md) if the SBC you have supports raspbian, should you get confused with this guide. |
44 | 47 | ||
45 | 48 | Connecting to your Programmer | Connecting to your Programmer |
46 | ============================= | ||
49 | ----------------------------- | ||
47 | 50 | ||
48 | 51 | Many SBC operating systems enable ssh by default. | Many SBC operating systems enable ssh by default. |
49 | 52 | If the OS you chose does not enable ssh on first boot, try checking the distro documentation and looking for terms such as 'headless install.' | If the OS you chose does not enable ssh on first boot, try checking the distro documentation and looking for terms such as 'headless install.' |
... | ... | SSH to your programmer using the default credentials as specified in your distro | |
61 | 64 | The IP address is the one determined in the earlier step. | The IP address is the one determined in the earlier step. |
62 | 65 | For example: | For example: |
63 | 66 | ||
64 | `ssh root@192.168.0.167` | ||
67 | ssh root@192.168.0.167 | ||
65 | 68 | ||
66 | 69 | Finding GPIO Pins | Finding GPIO Pins |
67 | ================= | ||
70 | ----------------- | ||
68 | 71 | ||
69 | 72 | If you have determined that a board supports SPI then the only step left is to | If you have determined that a board supports SPI then the only step left is to |
70 | 73 | determine the correct location of the SPI pins. | determine the correct location of the SPI pins. |
... | ... | Match each of the categories in the 'signal' column with those in the 'pin' colu | |
76 | 79 | Using this method, you can theoretically use any single board computer with SPI support. | Using this method, you can theoretically use any single board computer with SPI support. |
77 | 80 | ||
78 | 81 | Enabling SPI | Enabling SPI |
79 | ============ | ||
82 | ------------ | ||
80 | 83 | ||
81 | 84 | The modules needed and methods to enable SPI vary based on the SBC you choose. | The modules needed and methods to enable SPI vary based on the SBC you choose. |
82 | 85 | You should always make sure there is a well documented method for enabling SPI on your SBC before purchasing. | You should always make sure there is a well documented method for enabling SPI on your SBC before purchasing. |
... | ... | sudo ldto enable spicc spicc-spidev | |
87 | 90 | sudo ldto merge spicc spicc-spidev | sudo ldto merge spicc spicc-spidev |
88 | 91 | ``` | ``` |
89 | 92 | ||
90 | Using Flashrom | ||
91 | ============== | ||
93 | Using flashprog | ||
94 | -------------- | ||
92 | 95 | ||
93 | 96 | Most linux distros will provide flashprog in their default repositories. | Most linux distros will provide flashprog in their default repositories. |
94 | 97 | You can also download flashprog in binary form with [libreboot utils.](https://libreboot.org/download.html#https) | You can also download flashprog in binary form with [libreboot utils.](https://libreboot.org/download.html#https) |
File site/docs/install/t1650.md changed (mode: 100644) (index 3e77a08..75269d2) | |||
1 | 1 | --- | --- |
2 | title: Dell Precision T1650 | ||
2 | title: Install Libreboot on Dell Precision T1650 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
54 | 54 | | **SeaBIOS** | Works | | | **SeaBIOS** | Works | |
55 | 55 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
56 | 56 | </div> | </div> |
57 | Introduction | ||
58 | ============ | ||
57 | |||
58 | Open source BIOS/UEFI firmware | ||
59 | ------------------------------ | ||
60 | |||
61 | This document will teach you how to install Libreboot, on your | ||
62 | Dell Precision T1650 desktop motherboard. Libreboot replaces proprietary | ||
63 | BIOS/UEFI firmware. | ||
59 | 64 | ||
60 | 65 | **Unavailable in Libreboot 20230625 or earlier. You must [compile from | **Unavailable in Libreboot 20230625 or earlier. You must [compile from |
61 | 66 | source](../build/), or use at least Libreboot 20231021.** | source](../build/), or use at least Libreboot 20231021.** |
... | ... | This is similar code-wise to [Dell | |
67 | 72 | OptiPlex 9010](https://doc.coreboot.org/mainboard/dell/optiplex_9010.html) | OptiPlex 9010](https://doc.coreboot.org/mainboard/dell/optiplex_9010.html) |
68 | 73 | which coreboot supports. | which coreboot supports. |
69 | 74 | ||
70 | Build ROM image from source | ||
71 | --------------------------- | ||
75 | ### Build ROM image from source | ||
72 | 76 | ||
73 | 77 | The build target, when building from source, is thus: | The build target, when building from source, is thus: |
74 | 78 | ||
75 | 79 | ./mk -b coreboot t1650_12mb | ./mk -b coreboot t1650_12mb |
76 | 80 | ||
77 | Installation | ||
78 | ============ | ||
81 | Alternatively, you can use release images, but please ensure that you've | ||
82 | inserted vendor files prior to flashing; see notes. | ||
83 | |||
84 | Install Libreboot | ||
85 | ----------------- | ||
79 | 86 | ||
80 | Insert binary files | ||
81 | ------------------- | ||
87 | ### Insert vendor files | ||
82 | 88 | ||
83 | 89 | If you're using a release ROM, please ensure that you've inserted extra firmware | If you're using a release ROM, please ensure that you've inserted extra firmware |
84 | 90 | required refer to the [guide](../install/ivy_has_common.md) for that. (failure | required refer to the [guide](../install/ivy_has_common.md) for that. (failure |
... | ... | Libreboot's build system automatically downloads and processes these files if | |
88 | 94 | you build Libreboot from source, but the same logic that it uses must be re-run | you build Libreboot from source, but the same logic that it uses must be re-run |
89 | 95 | if you're using a release image. | if you're using a release image. |
90 | 96 | ||
91 | Set MAC address | ||
92 | --------------- | ||
97 | ### Set MAC address | ||
93 | 98 | ||
94 | 99 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
95 | 100 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
96 | 101 | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). | change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). |
97 | 102 | ||
98 | WARNING about CPU/GPU compatibility | ||
99 | ------------------------------- | ||
103 | ### WARNING about CPU/GPU compatibility | ||
100 | 104 | ||
101 | 105 | At the time of testing this board, I didn't have a CPU with graphics built in, | At the time of testing this board, I didn't have a CPU with graphics built in, |
102 | 106 | so I could only use discrete graphics on the PCI-E slot (in my case, Nvidia | so I could only use discrete graphics on the PCI-E slot (in my case, Nvidia |
... | ... | way (SeaBIOS first) because Libreboot's configuration does not tell *coreboot* | |
129 | 133 | to execute VGA Option ROMs, and it's important that we try to prevent bricks | to execute VGA Option ROMs, and it's important that we try to prevent bricks |
130 | 134 | whenever possible. | whenever possible. |
131 | 135 | ||
132 | Flash a ROM image (software) | ||
133 | ----------------- | ||
136 | ### Flash a ROM image (software) | ||
134 | 137 | ||
135 | 138 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
136 | 139 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
... | ... | Here is a close-up: | |
150 | 153 | Simply short those pins, on the header, using a jumper. When you do this, all | Simply short those pins, on the header, using a jumper. When you do this, all |
151 | 154 | flash protections will be disabled. | flash protections will be disabled. |
152 | 155 | ||
153 | Flash a ROM image (hardware) | ||
154 | ----------------- | ||
156 | ### Flash a ROM image (hardware) | ||
155 | 157 | ||
156 | 158 | **REMOVE all power sources and connectors from the machine, before doing this. | **REMOVE all power sources and connectors from the machine, before doing this. |
157 | 159 | This is to prevent short circuiting and power surges while flashing.** | This is to prevent short circuiting and power surges while flashing.** |
... | ... | flashing instructions [in Chinese](../install/spi.zh-cn.md): | |
200 | 202 | Other aspects of the machine are not much to write home about. It's a standard | Other aspects of the machine are not much to write home about. It's a standard |
201 | 203 | desktop PC form factor, and you can just run whatever you want on it. | desktop PC form factor, and you can just run whatever you want on it. |
202 | 204 | ||
203 | Enjoy! | ||
205 | Enjoy your Libreboot machine! |
File site/docs/install/t400.md changed (mode: 100644) (index 62a67da..1821097) | |||
1 | 1 | --- | --- |
2 | title: Flashing the ThinkPad T400 externally | ||
2 | title: Install Libreboot on Lenovo ThinkPad T400 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
51 | 51 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
52 | 52 | </div> | </div> |
53 | 53 | ||
54 | Dell Latitude E6400 | ||
55 | =================== | ||
54 | Open source BIOS/UEFI firmware | ||
55 | ------------------------- | ||
56 | 56 | ||
57 | **If you haven't bought an T400 yet: the [Dell Latitude | ||
58 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
59 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
60 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
61 | |||
62 | Introduction | ||
63 | ============ | ||
57 | This document will teach you how to install Libreboot, on your | ||
58 | Lenovo ThinkPad T400 laptop motherboard. Libreboot replaces proprietary | ||
59 | BIOS/UEFI firmware. | ||
64 | 60 | ||
65 | 61 | It is believed that all or most laptops of the model T400 are compatible. See notes | It is believed that all or most laptops of the model T400 are compatible. See notes |
66 | 62 | about [CPU | about [CPU |
... | ... | now, as of 27 January 2024, which is a fork of flashrom. | |
84 | 80 | The reason why was explained, in | The reason why was explained, in |
85 | 81 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
86 | 82 | ||
83 | Dell Latitude E6400 | ||
84 | ------------------- | ||
85 | |||
86 | **If you haven't bought an T400 yet: the [Dell Latitude | ||
87 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
88 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
89 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
90 | |||
87 | 91 | EC update {#ecupdate} | EC update {#ecupdate} |
88 | ========= | ||
92 | --------------------- | ||
89 | 93 | ||
90 | 94 | It is recommended that you update to the latest EC firmware version. The | It is recommended that you update to the latest EC firmware version. The |
91 | 95 | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from |
... | ... | The T400 is almost identical to the X200, code-wise. See | |
107 | 111 | [x200.md](x200.md). | [x200.md](x200.md). |
108 | 112 | ||
109 | 113 | Installation notes | Installation notes |
110 | ============ | ||
114 | ------------------ | ||
111 | 115 | ||
112 | 116 | [External flashing](spi.md) required, if Lenovo BIOS is running. | [External flashing](spi.md) required, if Lenovo BIOS is running. |
113 | 117 | ||
... | ... | the screws on page 114 (with title "1130 Keyboard bezel") are swapped | |
123 | 127 | and if you follow the HMM you will punch a hole through the bezel in the | and if you follow the HMM you will punch a hole through the bezel in the |
124 | 128 | upper right corner. | upper right corner. |
125 | 129 | ||
126 | Serial port {#serial_port} | ||
127 | ----------- | ||
130 | ### Serial port {#serial_port} | ||
128 | 131 | ||
129 | 132 | EHCI debug might not be needed. It has been reported that the docking | EHCI debug might not be needed. It has been reported that the docking |
130 | 133 | station for this laptop has a serial port, so it might be possible to | station for this laptop has a serial port, so it might be possible to |
131 | 134 | use that instead. | use that instead. |
132 | 135 | ||
133 | 136 | A note about CPUs | A note about CPUs |
134 | ================= | ||
137 | ----------------- | ||
135 | 138 | ||
136 | 139 | [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T400) has a list of | [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T400) has a list of |
137 | 140 | CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed | CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed |
... | ... | to work in libreboot. | |
139 | 142 | ||
140 | 143 | T9600, T9500, T9550 and T9900 are all compatible, as reported by users. | T9600, T9500, T9550 and T9900 are all compatible, as reported by users. |
141 | 144 | ||
142 | Quad-core CPUs | ||
143 | -------------- | ||
145 | ### Quad-core CPUs | ||
144 | 146 | ||
145 | 147 | Very likely to be compatible, but requires hardware modification. | Very likely to be compatible, but requires hardware modification. |
146 | 148 | Based on info from German forum post about installing Core Quad CPU on T500 found in coreboot mailing list. Currently work in progress and no guide available. | Based on info from German forum post about installing Core Quad CPU on T500 found in coreboot mailing list. Currently work in progress and no guide available. |
... | ... | Based on info from German forum post about installing Core Quad CPU on T500 foun | |
148 | 150 | - [Coreboot mailing list post](https://mail.coreboot.org/pipermail/coreboot/2016-November/082463.html) | - [Coreboot mailing list post](https://mail.coreboot.org/pipermail/coreboot/2016-November/082463.html) |
149 | 151 | - [German forum post about install Core Quad on T500](https://thinkpad-forum.de/threads/199129) | - [German forum post about install Core Quad on T500](https://thinkpad-forum.de/threads/199129) |
150 | 152 | ||
151 | |||
152 | 153 | A note about GPUs | A note about GPUs |
153 | ================= | ||
154 | ----------------- | ||
154 | 155 | ||
155 | 156 | Some models have an Intel GPU, while others have both an ATI and an | Some models have an Intel GPU, while others have both an ATI and an |
156 | 157 | Intel GPU; this is referred to as "switchable graphics". In the *BIOS | Intel GPU; this is referred to as "switchable graphics". In the *BIOS |
... | ... | Intel GPU is used and the ATI GPU is disabled, so native graphics | |
163 | 164 | initialization works all the same. | initialization works all the same. |
164 | 165 | ||
165 | 166 | CPU paste required | CPU paste required |
166 | ================== | ||
167 | ------------------ | ||
167 | 168 | ||
168 | 169 | See [\#paste](#paste). | See [\#paste](#paste). |
169 | 170 | ||
170 | 171 | Flash chip size {#flashchips} | Flash chip size {#flashchips} |
171 | =============== | ||
172 | --------------------------- | ||
172 | 173 | ||
173 | 174 | Use this to find out: | Use this to find out: |
174 | 175 | ||
175 | 176 | flashprog -p internal | flashprog -p internal |
176 | 177 | ||
177 | 178 | MAC address {#macaddress} | MAC address {#macaddress} |
178 | =========== | ||
179 | ------------------------ | ||
179 | 180 | ||
180 | 181 | Refer to [mac\_address.md](mac_address.md). | Refer to [mac\_address.md](mac_address.md). |
181 | 182 | ||
182 | 183 | How to flash externally | How to flash externally |
183 | ========================= | ||
184 | ----------------------- | ||
184 | 185 | ||
185 | 186 | Refer to [spi.md](spi.md) as a guide for external re-flashing. | Refer to [spi.md](spi.md) as a guide for external re-flashing. |
186 | 187 | ||
187 | The procedure | ||
188 | ------------- | ||
188 | ### The procedure | ||
189 | 189 | ||
190 | 190 | Remove *all* screws, placing them in the order that you removed them:\ | Remove *all* screws, placing them in the order that you removed them:\ |
191 | 191 |   |   |
... | ... | Refer to the external flashing instructions [here](spi.md), and when you're | |
283 | 283 | done, re-assemble your laptop. | done, re-assemble your laptop. |
284 | 284 | ||
285 | 285 | Thermal paste (IMPORTANT) | Thermal paste (IMPORTANT) |
286 | ========================= | ||
286 | ------------------------- | ||
287 | 287 | ||
288 | 288 | Because part of this procedure involved removing the heatsink, you will | Because part of this procedure involved removing the heatsink, you will |
289 | 289 | need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl | need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl |
... | ... | show how to properly apply the thermal paste. Other guides online detail | |
300 | 300 | the proper application procedure. | the proper application procedure. |
301 | 301 | ||
302 | 302 | Memory | Memory |
303 | ====== | ||
303 | ------ | ||
304 | 304 | ||
305 | 305 | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks |
306 | 306 | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). |
File site/docs/install/t420_external.md changed (mode: 100644) (index c053962..89bf973) | |||
... | ... | title: ThinkPad T420 external flashing | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR | ||
7 | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | ||
8 | there, before flashing. For posterity, | ||
9 | [here is the link again](ivy_has_common.md).** | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo ThinkPad T420 laptop motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
10 | 12 | ||
11 | Read the [Ivybridge/Haswell common guide](/docs/install/ivy_has_common.html) if you want more information. Please note, for Thinkpad T420, splitting the rom is not required. | ||
12 | 13 | The following instructions expect you to have these on hand: | The following instructions expect you to have these on hand: |
13 | 14 | ||
14 | 15 | + a clone of lbmk, can be obtained from `https://codeberg.org/libreboot/lbmk` | + a clone of lbmk, can be obtained from `https://codeberg.org/libreboot/lbmk` |
... | ... | The following instructions expect you to have these on hand: | |
20 | 21 | Preparing a release Rom | Preparing a release Rom |
21 | 22 | ----------------------- | ----------------------- |
22 | 23 | ||
24 | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR | ||
25 | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | ||
26 | there, before flashing. For posterity, | ||
27 | [here is the link again](ivy_has_common.md).** | ||
28 | |||
23 | 29 | **Please follow this prior to flashing, or you may brick your machine.** | **Please follow this prior to flashing, or you may brick your machine.** |
24 | 30 | ||
25 | 31 | Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also | Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also |
File site/docs/install/t440p_external.md changed (mode: 100644) (index 2a274f3..23c2b37) | |||
1 | 1 | --- | --- |
2 | title: ThinkPad T440p external flashing | ||
2 | title: Install Libreboot on Lenovo ThinkPad T440p | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------- | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo ThinkPad T440p laptop motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
12 | |||
6 | 13 | Buy Libreboot preinstalled | Buy Libreboot preinstalled |
7 | ========================== | ||
14 | -------------------------- | ||
8 | 15 | ||
9 | 16 | **Minifree now sells the Libreboot T480, instead of the Libreboot T440p. See: | **Minifree now sells the Libreboot T480, instead of the Libreboot T440p. See: |
10 | 17 | <https://minifree.org/product/libreboot-t480/>** | <https://minifree.org/product/libreboot-t480/>** |
11 | 18 | ||
12 | Introduction | ||
13 | ============ | ||
19 | Safety advice | ||
20 | ------------- | ||
14 | 21 | ||
15 | 22 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) |
16 | 23 | now, as of 27 January 2024, which is a fork of flashrom. | now, as of 27 January 2024, which is a fork of flashrom. |
... | ... | root of that project. To do so, run | |
31 | 38 | ||
32 | 39 | You can now follow the rest of the instructions. | You can now follow the rest of the instructions. |
33 | 40 | ||
34 | Preparing a release Rom | ||
35 | ----------------------- | ||
41 | ### Preparing a release Rom | ||
36 | 42 | ||
37 | 43 | **Please follow this prior to flashing, or you may brick your machine.** | **Please follow this prior to flashing, or you may brick your machine.** |
38 | 44 | ||
... | ... | use this guide to change the built-in MAC address for your Intel Gigabit | |
41 | 47 | Ethernet device; doing so is advisable, because otherwise you will have a | Ethernet device; doing so is advisable, because otherwise you will have a |
42 | 48 | default, generic MAC address. | default, generic MAC address. |
43 | 49 | ||
44 | Splitting The Rom | ||
45 | ----------------- | ||
50 | ### Splitting The Rom | ||
46 | 51 | ||
47 | 52 | You can use `dd` to easily split your rom into the two separate portions for | You can use `dd` to easily split your rom into the two separate portions for |
48 | 53 | external flashing. | external flashing. |
... | ... | Flash the top chip with top.rom, and tho bottom chip with bottom.rom. | |
54 | 59 | Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the | Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the |
55 | 60 | image size is incorrect for the chip you're flashing. | image size is incorrect for the chip you're flashing. |
56 | 61 | ||
57 | |||
58 | Disassembly | ||
59 | ----------- | ||
62 | ### Disassembly | ||
60 | 63 | ||
61 | 64 | Start by removing the back cover screws and the main battery.\ | Start by removing the back cover screws and the main battery.\ |
62 | 65 | <img tabindex=1 src="https://av.libreboot.org/board/t440p/t440p_back.jpg" /><span class="f"><img src="https://av.libreboot.org/board/t440p/t440p_back_orig.jpg" /></span> | <img tabindex=1 src="https://av.libreboot.org/board/t440p/t440p_back.jpg" /><span class="f"><img src="https://av.libreboot.org/board/t440p/t440p_back_orig.jpg" /></span> |
... | ... | You should now be able to see the two flash chips near the RAM.\ | |
82 | 85 | ||
83 | 86 | You can now proceed to [flashing](/docs/install/spi.html) this machine. | You can now proceed to [flashing](/docs/install/spi.html) this machine. |
84 | 87 | ||
85 | `thinkpad_acpi` issues {#thinkpad-acpi} | ||
86 | --------------------------------------- | ||
88 | Errata | ||
89 | ------ | ||
90 | |||
91 | ### thinkpad\_acpi issues {#thinkpad-acpi} | ||
87 | 92 | ||
88 | 93 | It has been reported by that `thinkpad_acpi` does not load correctly on the T440p. | It has been reported by that `thinkpad_acpi` does not load correctly on the T440p. |
89 | 94 | ||
90 | 95 | If you encounter this, check [this page](../../faq.md#thinkpad-acpi) | If you encounter this, check [this page](../../faq.md#thinkpad-acpi) |
91 | 96 | for details as to how to fix this. | for details as to how to fix this. |
92 | 97 | ||
93 | Errata | ||
94 | ====== | ||
98 | ### target names | ||
95 | 99 | ||
96 | 100 | NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer | NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer |
97 | 101 | included for Haswell; MRC is a blob for raminit, but we now provide libre | included for Haswell; MRC is a blob for raminit, but we now provide libre |
File site/docs/install/t480.md changed (mode: 100644) (index c8ba150..ecc4351) | |||
1 | 1 | --- | --- |
2 | title: Lenovo ThinkPad T480/T480s information | ||
2 | title: Install Libreboot on Lenovo ThinkPad T480 and/or T480s | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | there, before flashing. For posterity, | |
13 | 13 | ||
14 | 14 | <div class="specs"> | <div class="specs"> |
15 | 15 | <center> | <center> |
16 | <img tabindex=1 alt="ThinkPad T480" class="p" src="https://av.libreboot.org/t480/t480.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480.jpg" /></span> | ||
16 | <img tabindex=1 alt="Lenovo ThinkPad T480 with Libreboot pre-installed" class="p" src="https://av.libreboot.org/t480/t480.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480.jpg" /></span> | ||
17 | 17 | </center> | </center> |
18 | 18 | ||
19 | 19 | | ***Specifications*** | | | | ***Specifications*** | | |
... | ... | P*: Partially works with vendor firmware | |
58 | 58 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
59 | 59 | </div> | </div> |
60 | 60 | ||
61 | Regarding memory: T480s (S model) has 8GB onboard RAM, and an available DIMM | ||
62 | slot on which an additional 32GB SODIMM can be installed. The regular T480 | ||
63 | has two DIMM slots, allowing 2x32GB DDR4 SODIMMs. | ||
61 | Open source BIOS/UEFI firmware | ||
62 | ------------------------------ | ||
64 | 63 | ||
65 | Thanks go to *Mate Kukri* who implemented both of these excellent coreboot | ||
66 | ports; he is also the author of the deguard utility, which is used to disable | ||
67 | the Intel Boot Guard on these machines; disabling the Boot Guard was necessary | ||
68 | in order to get coreboot working! | ||
64 | This document will teach you how to install Libreboot, on your | ||
65 | Lenovo ThinkPad T480 and/or T480s laptop motherboard. Libreboot replaces | ||
66 | proprietary BIOS/UEFI firmware. | ||
69 | 67 | ||
70 | 68 | Buy pre-installed | Buy pre-installed |
71 | ================= | ||
69 | ----------------- | ||
72 | 70 | ||
73 | 71 | **ThinkPad T480/T480S is available to purchase with Libreboot pre-installed. See: | **ThinkPad T480/T480S is available to purchase with Libreboot pre-installed. See: |
74 | 72 | <https://minifree.org/product/libreboot-t480/>** | <https://minifree.org/product/libreboot-t480/>** |
75 | 73 | ||
76 | Introduction | ||
77 | ============ | ||
74 | ThinkPad T480/T480s information | ||
75 | ------------------------- | ||
76 | |||
77 | Regarding memory: T480s (S model) has 8GB onboard RAM, and an available DIMM | ||
78 | slot on which an additional 32GB SODIMM can be installed. The regular T480 | ||
79 | has two DIMM slots, allowing 2x32GB DDR4 SODIMMs. | ||
78 | 80 | ||
79 | **Unavailable in Libreboot 20241008 or earlier. You must [compile from | ||
80 | source](../build/), or alternatively an image from Libreboot 20241206 or higher. | ||
81 | Thanks go to *Mate Kukri* who implemented both of these excellent coreboot | ||
82 | ports; he is also the author of the deguard utility, which is used to disable | ||
83 | the Intel Boot Guard on these machines; disabling the Boot Guard was necessary | ||
84 | in order to get coreboot working! | ||
81 | 85 | ||
82 | 86 | Official information about the T480 can be found here:\ | Official information about the T480 can be found here:\ |
83 | 87 | <https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480/ThinkPad_T480_Spec.PDF> | <https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480/ThinkPad_T480_Spec.PDF> |
... | ... | use this guide to change the built-in MAC address for your Intel Gigabit | |
99 | 103 | Ethernet device; doing so is advisable, because otherwise you will have a | Ethernet device; doing so is advisable, because otherwise you will have a |
100 | 104 | default, generic MAC address. | default, generic MAC address. |
101 | 105 | ||
102 | Absolutely unsigned Intel ME! | ||
103 | ----------------------------- | ||
106 | ### Absolutely unsigned Intel ME! | ||
104 | 107 | ||
105 | 108 | Libreboot already disables the Intel ME by default, using `me_cleaner`, but | Libreboot already disables the Intel ME by default, using `me_cleaner`, but |
106 | 109 | the T480/T480s specifically have an additional quirk: | the T480/T480s specifically have an additional quirk: |
... | ... | recent Intel systems in Libreboot, so it's certainly a very interesting port! | |
120 | 123 | ||
121 | 124 | Libreboot uses both `me_cleaner` *and* `deguard` on the T480/T480s. | Libreboot uses both `me_cleaner` *and* `deguard` on the T480/T480s. |
122 | 125 | ||
123 | What works in this port: | ||
124 | ----------------------- | ||
126 | ### What works in this port: | ||
125 | 127 | ||
126 | 128 | Intel graphics, internal screen, ethernet, USB, WLAN, HDA verbs (e.g. headphone | Intel graphics, internal screen, ethernet, USB, WLAN, HDA verbs (e.g. headphone |
127 | 129 | jack), S3 suspend/resume, M2 NVMe SSDs and SATA, B+M key NVMe SSDs in WWAN slot, | jack), S3 suspend/resume, M2 NVMe SSDs and SATA, B+M key NVMe SSDs in WWAN slot, |
... | ... | There *are* a few minor exceptions as to what works; this will be covered in | |
133 | 135 | other sections of this page. This port is *almost* perfect, but with some caveats. | other sections of this page. This port is *almost* perfect, but with some caveats. |
134 | 136 | ||
135 | 137 | Build images from source | Build images from source |
136 | ======================== | ||
138 | ------------------------ | ||
137 | 139 | ||
138 | 140 | Please refer to the standard [build instructions](../build/) first. | Please refer to the standard [build instructions](../build/) first. |
139 | 141 | ||
... | ... | differences in their wiring, so you MUST flash the correct image. Please | |
147 | 149 | choose one of the above build targets accordingly.** | choose one of the above build targets accordingly.** |
148 | 150 | ||
149 | 151 | Installation | Installation |
150 | ============ | ||
152 | ------------ | ||
153 | |||
154 | **Please read carefully**, because *many* prerequisite steps are required | ||
155 | prior to Libreboot installation. | ||
151 | 156 | ||
152 | **Insert binary files (DO THIS FIRST)** | ||
153 | ------------------- | ||
157 | ### Insert binary files (DO THIS FIRST) | ||
154 | 158 | ||
155 | 159 | **If you're using a release ROM**, please ensure that you've inserted extra firmware | **If you're using a release ROM**, please ensure that you've inserted extra firmware |
156 | 160 | required. Refer to the [guide](../install/ivy_has_common.md) for that. **(failure | required. Refer to the [guide](../install/ivy_has_common.md) for that. **(failure |
... | ... | If you're [building from source](../build/) via Libreboot's build system, these | |
173 | 177 | files are inserted during build. You only need to manually insert them, using | files are inserted during build. You only need to manually insert them, using |
174 | 178 | the above linked guide, on the pre-compiled release images! | the above linked guide, on the pre-compiled release images! |
175 | 179 | ||
176 | Set MAC address | ||
177 | --------------- | ||
180 | ### Set MAC address | ||
178 | 181 | ||
179 | 182 | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM | This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM |
180 | 183 | region. As such, release/build ROMs will contain the same MAC address. To | region. As such, release/build ROMs will contain the same MAC address. To |
... | ... | change the MAC address, please read [nvmutil documentation](../install/nvmutil.m | |
184 | 187 | argument when using it: `--platform sklkbl`** - otherwise, ifdtool will | argument when using it: `--platform sklkbl`** - otherwise, ifdtool will |
185 | 188 | handle the IFD incorrectly! | handle the IFD incorrectly! |
186 | 189 | ||
187 | Thunderbolt issue (READ THIS BEFORE FLASHING) | ||
188 | ------------------ | ||
190 | ### Thunderbolt issue (READ THIS BEFORE FLASHING) | ||
189 | 191 | ||
190 | 192 | The thunderbolt firmware on launch units had a bug where certain debug | The thunderbolt firmware on launch units had a bug where certain debug |
191 | 193 | info is written on certain events, such as plugging in a charger to the USB-C | info is written on certain events, such as plugging in a charger to the USB-C |
... | ... | centre of the board, and the ThunderBolt flash near the edge of the board, as | |
203 | 205 | it is on the T480, but the T480/T480s use slightly different wiring and they | it is on the T480, but the T480/T480s use slightly different wiring and they |
204 | 206 | have a slightly different board layout. | have a slightly different board layout. |
205 | 207 | ||
208 | #### What is the problem? | ||
209 | |||
206 | 210 | If that flash gets full, thunderbolt PCI-E stops working and fast charging | If that flash gets full, thunderbolt PCI-E stops working and fast charging |
207 | 211 | stops working, but slow charging still works. The issue can be prevented by | stops working, but slow charging still works. The issue can be prevented by |
208 | 212 | updating the firmware. See: | updating the firmware. See: |
... | ... | with Lenovo's software-based flasher, if the issue is already present, so | |
215 | 219 | you *must* flash externally in that case; you can also flash externally, even | you *must* flash externally in that case; you can also flash externally, even |
216 | 220 | if the issue is not yet present. | if the issue is not yet present. |
217 | 221 | ||
222 | #### External flashing recommended | ||
223 | |||
218 | 224 | The benefit of flashing it *externally* is that you would then no longer need | The benefit of flashing it *externally* is that you would then no longer need |
219 | 225 | to boot Windows, because there is currently no way of doing it from Linux, and | to boot Windows, because there is currently no way of doing it from Linux, and |
220 | 226 | Lenovo does not provide a *boot image* like they do for UEFI updates. So, to | Lenovo does not provide a *boot image* like they do for UEFI updates. So, to |
... | ... | Use the [25XX NOR flashing guide](spi.md) if you need to flash this chip. It's | |
226 | 232 | the same guide that you will use for the main system flash, which is a separate | the same guide that you will use for the main system flash, which is a separate |
227 | 233 | flash IC. | flash IC. |
228 | 234 | ||
235 | #### Download ThunderBolt firmware | ||
236 | |||
229 | 237 | The firmware can be extracted from Lenovo's updater, specifically the `.exe` | The firmware can be extracted from Lenovo's updater, specifically the `.exe` |
230 | 238 | file. For your convenience, lbmk (Libreboot's build system) can download this | file. For your convenience, lbmk (Libreboot's build system) can download this |
231 | 239 | for you. Run the following commands in lbmk: | for you. Run the following commands in lbmk: |
... | ... | size (within the `.exe` file) was 256KB. | |
248 | 256 | These files are *also* generated, if you used the `./mk inject` command, | These files are *also* generated, if you used the `./mk inject` command, |
249 | 257 | on a pre-compiled release image, as documented [here](ivy_has_common.md). | on a pre-compiled release image, as documented [here](ivy_has_common.md). |
250 | 258 | ||
259 | #### Flash the ThunderBolt firmware | ||
260 | |||
251 | 261 | **WARNING: DO NOT FLASH IT FIRST; YOU MUST PERFORM SOME PRE-REQUISITE STEPS | **WARNING: DO NOT FLASH IT FIRST; YOU MUST PERFORM SOME PRE-REQUISITE STEPS |
252 | 262 | FIRST, BEFORE FLASHING `tb.bin`**: | FIRST, BEFORE FLASHING `tb.bin`**: |
253 | 263 | ||
... | ... | make sure to flash the correct one for your board: | |
303 | 313 | * T480: `vendorfiles/t480/tb.bin` | * T480: `vendorfiles/t480/tb.bin` |
304 | 314 | * T480s: `vendorfiles/t480s/tb.bin` | * T480s: `vendorfiles/t480s/tb.bin` |
305 | 315 | ||
316 | #### Manual TBT.bin extraction (optional) | ||
317 | |||
318 | If you already used the `./mk -d` commands above, to grab `tb.bin`, then you | ||
319 | can skip this section. | ||
320 | |||
306 | 321 | Libreboot's automated build system has a lot more dependencies. If you want to | Libreboot's automated build system has a lot more dependencies. If you want to |
307 | 322 | avoid installing them, and extract the file manually, you can. Simply download | avoid installing them, and extract the file manually, you can. Simply download |
308 | 323 | the `.exe` file and do this: | the `.exe` file and do this: |
... | ... | the `null.bin` file). Libreboot's build system makes this size configurable | |
325 | 340 | per board, on the theory that we may encounter other flash sizes in the future, | per board, on the theory that we may encounter other flash sizes in the future, |
326 | 341 | when we add more ThinkPads of this generation to Libreboot. | when we add more ThinkPads of this generation to Libreboot. |
327 | 342 | ||
343 | #### Continue flashing ThunderBolt firmware | ||
344 | |||
328 | 345 | Ok, so you have the file. Now you can flash it. | Ok, so you have the file. Now you can flash it. |
329 | 346 | ||
330 | 347 | Example: | Example: |
... | ... | You can repeat the above steps to restore the old firmware version. This is why | |
341 | 358 | you were instructed to make a backup, on the off-chance that you may wish to do | you were instructed to make a backup, on the off-chance that you may wish to do |
342 | 359 | so for some reason in the future. | so for some reason in the future. |
343 | 360 | ||
344 | Troubleshooting: | ||
361 | #### ThunderBolt troubleshooting | ||
345 | 362 | ||
346 | 363 | If you accidentally flashed an incorrect firmware image, or you didn't properly | If you accidentally flashed an incorrect firmware image, or you didn't properly |
347 | 364 | erase and boot first before flashing the new image, you can simply repeat the | erase and boot first before flashing the new image, you can simply repeat the |
... | ... | release after Libreboot 20241206, and many of those have this same issue; when | |
357 | 374 | it does, Libreboot will document this fix for those machines too, and probably | it does, Libreboot will document this fix for those machines too, and probably |
358 | 375 | move these instructions to a dedicated page on the website. | move these instructions to a dedicated page on the website. |
359 | 376 | ||
360 | Flash a ROM image (software) | ||
361 | ----------------------- | ||
377 | ### Flash a Libreboot ROM image (software) | ||
362 | 378 | ||
363 | 379 | If you're already running Libreboot, and you don't have flash protection | If you're already running Libreboot, and you don't have flash protection |
364 | 380 | turned on, [internal flashing](../install/) is possible. | turned on, [internal flashing](../install/) is possible. |
... | ... | The default Libreboot setup removes all flash restrictions, allowing you to | |
367 | 383 | flash internally, from a Linux or BSD systems running on the T480/T480. You must | flash internally, from a Linux or BSD systems running on the T480/T480. You must |
368 | 384 | also [disable /dev/mem protections](devmem.md) for internal flashing to work. | also [disable /dev/mem protections](devmem.md) for internal flashing to work. |
369 | 385 | ||
370 | Flash a ROM image (hardware) | ||
371 | ----------------- | ||
386 | ### Flash a ROM Libreboot image (hardware) | ||
387 | |||
388 | #### Prepare your external programmer | ||
372 | 389 | ||
373 | 390 | **First, please assimilate all knowledge in | **First, please assimilate all knowledge in |
374 | 391 | the [25XX NOR flashing guide](spi.md) - it shows how to program these flash | the [25XX NOR flashing guide](spi.md) - it shows how to program these flash |
... | ... | physically connect to the flash chip.** | |
378 | 395 | Again: this is only necessary if you have Lenovo BIOS, or if you enabled [flash | Again: this is only necessary if you have Lenovo BIOS, or if you enabled [flash |
379 | 396 | write protections](../linux/grub_hardening.md) on an existing Libreboot setup. | write protections](../linux/grub_hardening.md) on an existing Libreboot setup. |
380 | 397 | ||
398 | #### Update Lenovo firmware first | ||
399 | |||
400 | *Before* installing Libreboot for the first time, it is important that you | ||
401 | first update the Lenovo UEFI firmware and EC firmware to a *specific* version, | ||
402 | mentioned below. | ||
403 | |||
381 | 404 | **MAKE SURE to update the Lenovo UEFI firmware before installing Libreboot. | **MAKE SURE to update the Lenovo UEFI firmware before installing Libreboot. |
382 | 405 | You must also make a dump of the NOR flash, before updating Lenovo's firmware, | You must also make a dump of the NOR flash, before updating Lenovo's firmware, |
383 | 406 | and once again before flashing Libreboot, being sure you have good dumps.** | and once again before flashing Libreboot, being sure you have good dumps.** |
... | ... | BIOS/UEFI updater. Once you've updated, you can flash Libreboot. | |
414 | 437 | Please ensure also that you've already dealt with the Thunderbolt issue, which | Please ensure also that you've already dealt with the Thunderbolt issue, which |
415 | 438 | is described above. After all of this, you can flash Libreboot. | is described above. After all of this, you can flash Libreboot. |
416 | 439 | ||
440 | #### Disassemble the T480 | ||
441 | |||
417 | 442 | Find videos online of how to disassemble this, and/or find Lenovo's own | Find videos online of how to disassemble this, and/or find Lenovo's own |
418 | 443 | service manual online. Otherwise, observe: | service manual online. Otherwise, observe: |
419 | 444 | ||
... | ... | both machines, the system flash (for Libreboot) is toward the centre, near | |
453 | 478 | the memory. | the memory. |
454 | 479 | ||
455 | 480 | Post-installation | Post-installation |
456 | ================= | ||
481 | ----------------- | ||
457 | 482 | ||
458 | 483 | These next sections will tell you how to use certain hardware features, which | These next sections will tell you how to use certain hardware features, which |
459 | 484 | work a little bit differently due to idiosyncrasies of coreboot. | work a little bit differently due to idiosyncrasies of coreboot. |
460 | 485 | ||
461 | How to use the headphone jack | ||
462 | -------------- | ||
486 | ### How to use the headphone jack | ||
463 | 487 | ||
464 | 488 | Sometimes the headphone jack might not work automatically. Simply install | Sometimes the headphone jack might not work automatically. Simply install |
465 | 489 | the `pavucontrol` program. Under Output Devices, you can select the headphones | the `pavucontrol` program. Under Output Devices, you can select the headphones |
... | ... | you've inserted manually. | |
468 | 492 | If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This | If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This |
469 | 493 | will be investigated and a hotfix patch made to the Libreboot 20241206 images. | will be investigated and a hotfix patch made to the Libreboot 20241206 images. |
470 | 494 | ||
471 | How to use HDMI audio | ||
472 | ------------------ | ||
495 | ### How to use HDMI audio | ||
473 | 496 | ||
474 | 497 | You can get audio from Displayport/HDMI, but you must select it manually. | You can get audio from Displayport/HDMI, but you must select it manually. |
475 | 498 | For example, you can select it in `pavucontrol` if you're using PulseAudio or | For example, you can select it in `pavucontrol` if you're using PulseAudio or |
476 | 499 | PipeWire. | PipeWire. |
477 | 500 | ||
478 | Touchscreen on T480 | ||
479 | ------------------- | ||
501 | ### Touchscreen on T480 | ||
480 | 502 | ||
481 | 503 | The touchscreen was tested, and confirmed working. Not all models have it, | The touchscreen was tested, and confirmed working. Not all models have it, |
482 | 504 | but it does indeed work perfectly on ones that do. | but it does indeed work perfectly on ones that do. |
483 | 505 | ||
484 | How to use backlight controls | ||
485 | ----------------------------- | ||
506 | ### How to use backlight controls | ||
486 | 507 | ||
487 | 508 | Backlight controls work, via software control (e.g. `xbacklight` utility), but | Backlight controls work, via software control (e.g. `xbacklight` utility), but |
488 | 509 | the Fn keys for it don't currently work, as of 6 December 2024. | the Fn keys for it don't currently work, as of 6 December 2024. |
... | ... | the Fn keys for it don't currently work, as of 6 December 2024. | |
490 | 511 | You can set the backlight manually, or use a hotkey, depending on your window | You can set the backlight manually, or use a hotkey, depending on your window |
491 | 512 | manager or desktop environment. | manager or desktop environment. |
492 | 513 | ||
493 | UART (T480 only. Not T480S) | ||
494 | ---- | ||
514 | ### UART (T480 only. Not T480S) | ||
515 | |||
516 | **You need to have first flashed the correct EC firmware version, as detailed | ||
517 | above.** | ||
495 | 518 | ||
496 | 519 | **NOT supported on the S model (T480s). Please only do it on a T480.** | **NOT supported on the S model (T480s). Please only do it on a T480.** |
497 | 520 | ||
... | ... | soldering skills because it's easy to goof this up if you're not careful. | |
517 | 540 | You can hook this up to any 3.3v TTL UART dongle, to get a serial console. The | You can hook this up to any 3.3v TTL UART dongle, to get a serial console. The |
518 | 541 | correct baud rate is 115200. | correct baud rate is 115200. |
519 | 542 | ||
520 | Idea for 2nd NVMe mod | ||
521 | ---------------------- | ||
543 | ### Idea for 2nd NVMe mod | ||
522 | 544 | ||
523 | 545 | Interestingly, on boards without the Nvidia graphics, the solder pads for all | Interestingly, on boards without the Nvidia graphics, the solder pads for all |
524 | 546 | the componentry (including the GPU) is still present, so you could theoretically | the componentry (including the GPU) is still present, so you could theoretically |
... | ... | NVMe caddy in the remaining space would be how to go about it there. On the | |
535 | 557 | regular T480, the existing caddy area could easily fit two NVMe drives. | regular T480, the existing caddy area could easily fit two NVMe drives. |
536 | 558 | ||
537 | 559 | Errata | Errata |
538 | ====== | ||
560 | ------ | ||
539 | 561 | ||
540 | 562 | Some features either don't work, or are untested, when running Libreboot on | Some features either don't work, or are untested, when running Libreboot on |
541 | 563 | the ThinkPad T480 or T480s. | the ThinkPad T480 or T480s. |
542 | 564 | ||
543 | Power-on after power failure | ||
544 | ---------------------------- | ||
565 | ### Power-on after power failure | ||
545 | 566 | ||
546 | 567 | Older Libreboot revisions made this machine always turn on, when plugging in | Older Libreboot revisions made this machine always turn on, when plugging in |
547 | 568 | a power supply (charger brick), if a previous power loss was observed. This is | a power supply (charger brick), if a previous power loss was observed. This is |
... | ... | by reading the `tree` variable in your board's `target.cfg` file within lbmk). | |
562 | 583 | Use the patch as reference, to modify the coreboot behaviour as you wish, and | Use the patch as reference, to modify the coreboot behaviour as you wish, and |
563 | 584 | re-compile [from source](../build/). | re-compile [from source](../build/). |
564 | 585 | ||
565 | TPM disabled | ||
566 | ------------ | ||
586 | ### TPM disabled | ||
567 | 587 | ||
568 | 588 | The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, | The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, |
569 | 589 | due to buggy TPM drivers there. | due to buggy TPM drivers there. |
570 | 590 | ||
571 | Legacy 8254 timer | ||
572 | ----------------- | ||
591 | ### Legacy 8254 timer | ||
573 | 592 | ||
574 | 593 | Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. | Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. |
575 | 594 | ||
576 | HyperThreading on T480/T480s | ||
577 | ---------------------- | ||
595 | ### HyperThreading on T480/T480s | ||
578 | 596 | ||
579 | 597 | Also called SMT. This is a feature where you get 2 threads on a single core. | Also called SMT. This is a feature where you get 2 threads on a single core. |
580 | 598 | It can improve performance in some workloads, but is actually a performance | It can improve performance in some workloads, but is actually a performance |
... | ... | For example, if you're compiling a large codebase from source that takes hours, | |
600 | 618 | SMT increases the building speed by about 15 percent; for example, a 3 hour | SMT increases the building speed by about 15 percent; for example, a 3 hour |
601 | 619 | build job might take about 2 hours and 40 minutes instead. | build job might take about 2 hours and 40 minutes instead. |
602 | 620 | ||
603 | NFC support in T480 | ||
604 | ------------------- | ||
621 | ### NFC support in T480 | ||
605 | 622 | ||
606 | 623 | Some T480 models might have NFC support but this is untested in Libreboot, and | Some T480 models might have NFC support but this is untested in Libreboot, and |
607 | 624 | probably dosen't work in current Libreboot releases. | probably dosen't work in current Libreboot releases. |
608 | 625 | ||
609 | 626 | The PCH's NFC device is unsupported in Linux anyway. | The PCH's NFC device is unsupported in Linux anyway. |
610 | 627 | ||
611 | Smartcard reader | ||
612 | ---------------- | ||
628 | ### Smartcard reader | ||
613 | 629 | ||
614 | 630 | The smartcard reader is enabled but it is still untested. If you have one, | The smartcard reader is enabled but it is still untested. If you have one, |
615 | 631 | please test it and report back to the Libreboot project. | please test it and report back to the Libreboot project. |
616 | 632 | ||
617 | Thunderbolt not supported yet | ||
618 | ----------------------------- | ||
633 | ### Thunderbolt not supported yet | ||
619 | 634 | ||
620 | 635 | Thunderbolt is a way to get PCI-E on a USB port. With it, you can use | Thunderbolt is a way to get PCI-E on a USB port. With it, you can use |
621 | 636 | high-bandwidth devices such as 10Gbps network interfaces. | high-bandwidth devices such as 10Gbps network interfaces. |
... | ... | from S3 (resume from sleep). If you do test this, please report whether | |
698 | 713 | the Thunderbolt devices actually work, but remember that you must NOT suspend | the Thunderbolt devices actually work, but remember that you must NOT suspend |
699 | 714 | or put your machine to sleep.** | or put your machine to sleep.** |
700 | 715 | ||
701 | Nvidia dGPU not supported | ||
702 | ------------------------- | ||
716 | ### Nvidia dGPU not supported | ||
703 | 717 | ||
704 | 718 | Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics | Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics |
705 | 719 | are still available even on Nvidia models, so Intel graphics are used. | are still available even on Nvidia models, so Intel graphics are used. |
706 | 720 | ||
721 | ### WWAN cards | ||
722 | |||
707 | 723 | B+M key NVMe SSDs in WWAN slot works, other cards are untested. | B+M key NVMe SSDs in WWAN slot works, other cards are untested. |
708 | 724 | ||
709 | `thinkpad_acpi` issues {#thinkpad-acpi} | ||
710 | --------------------------------------- | ||
725 | ### thinkpad\_acpi issues {#thinkpad-acpi} | ||
711 | 726 | ||
712 | 727 | It has been reported that `thinkpad_acpi` does not load correctly on the T480. | It has been reported that `thinkpad_acpi` does not load correctly on the T480. |
713 | 728 | This should also be the case for the T480s. | This should also be the case for the T480s. |
File site/docs/install/t500.md changed (mode: 100644) (index 5226153..7beaa1a) | |||
1 | 1 | --- | --- |
2 | title: ThinkPad T500 external flashing | ||
2 | title: Install Libreboot on Lenovo ThinkPad T500 and/or W500 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | P*: Partially works with vendor firmware | |
51 | 51 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
52 | 52 | </div> | </div> |
53 | 53 | ||
54 | Dell Latitude E6400 | ||
55 | =================== | ||
56 | |||
57 | **If you haven't bought an T500 yet: the [Dell Latitude | ||
58 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
59 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
60 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
54 | Open source BIOS/UEFI firmware | ||
55 | ------------------------- | ||
61 | 56 | ||
62 | Introduction | ||
63 | ============ | ||
57 | This document will teach you how to install Libreboot, on your | ||
58 | Lenovo ThinkPad T500 or ThinkPad W500 laptop motherboard. Libreboot replaces | ||
59 | proprietary BIOS/UEFI firmware. | ||
64 | 60 | ||
65 | 61 | It is believed that all or most T500 laptops are compatible. See notes | It is believed that all or most T500 laptops are compatible. See notes |
66 | 62 | about [CPU | about [CPU |
... | ... | now, as of 27 January 2024, which is a fork of flashrom. | |
86 | 82 | The reason why was explained, in | The reason why was explained, in |
87 | 83 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
88 | 84 | ||
85 | Dell Latitude E6400 | ||
86 | ------------------- | ||
87 | |||
88 | **If you haven't bought an T500 yet: the [Dell Latitude | ||
89 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
90 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
91 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
92 | |||
89 | 93 | EC update {#ecupdate} | EC update {#ecupdate} |
90 | ========= | ||
94 | ------------------- | ||
91 | 95 | ||
92 | 96 | It is recommended that you update to the latest EC firmware version. The | It is recommended that you update to the latest EC firmware version. The |
93 | 97 | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from |
... | ... | The T500 is almost identical to the X200, code-wise. See | |
109 | 113 | [x200.md](x200.md). | [x200.md](x200.md). |
110 | 114 | ||
111 | 115 | Installation notes | Installation notes |
112 | ================== | ||
116 | ------------------ | ||
113 | 117 | ||
114 | 118 | [External flashing](spi.md) required, if Lenovo BIOS is running. | [External flashing](spi.md) required, if Lenovo BIOS is running. |
115 | 119 | ||
... | ... | followed (adapted) if you brick your T500, to know how to recover. | |
119 | 123 | ||
120 | 124 | W500 is also mostly compatible with this guide. | W500 is also mostly compatible with this guide. |
121 | 125 | ||
122 | Serial port {#serial_port} | ||
123 | ----------- | ||
126 | ### Serial port {#serial_port} | ||
124 | 127 | ||
125 | 128 | EHCI debug might not be needed. It has been reported that the docking | EHCI debug might not be needed. It has been reported that the docking |
126 | 129 | station for this laptop has a serial port, so it might be possible to | station for this laptop has a serial port, so it might be possible to |
127 | 130 | use that instead. | use that instead. |
128 | 131 | ||
129 | 132 | A note about CPUs | A note about CPUs |
130 | ================= | ||
133 | ----------------- | ||
131 | 134 | ||
132 | 135 | [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T500) has a list of | [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T500) has a list of |
133 | 136 | CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed | CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed |
... | ... | confirmed working. | |
137 | 140 | T9550 and T9900 was tested by a user, and is compatible as reported in the IRC channel. | T9550 and T9900 was tested by a user, and is compatible as reported in the IRC channel. |
138 | 141 | T9500 and T9400 may also work, but YMMV. | T9500 and T9400 may also work, but YMMV. |
139 | 142 | ||
140 | Quad-core CPUs | ||
141 | -------------- | ||
143 | ### Quad-core CPUs | ||
144 | |||
142 | 145 | Very likely to be compatible, but requires hardware modification. | Very likely to be compatible, but requires hardware modification. |
143 | 146 | Based on info from German forum post about installing Core Quad CPU on T500 found in coreboot mailing list. Currently work in progress and no guide available. | Based on info from German forum post about installing Core Quad CPU on T500 found in coreboot mailing list. Currently work in progress and no guide available. |
144 | 147 | ||
... | ... | everything nicely: | |
154 | 157 | <https://yewtu.be/watch?v=Fs4GjDiOie8> | <https://yewtu.be/watch?v=Fs4GjDiOie8> |
155 | 158 | ||
156 | 159 | A note about GPUs | A note about GPUs |
157 | ================= | ||
160 | ----------------- | ||
158 | 161 | ||
159 | 162 | Some models have an Intel GPU, while others have both an ATI and an | Some models have an Intel GPU, while others have both an ATI and an |
160 | 163 | Intel GPU; this is referred to as "switchable graphics". In the *BIOS | Intel GPU; this is referred to as "switchable graphics". In the *BIOS |
... | ... | Intel GPU is used and the ATI GPU is disabled, so native graphics | |
167 | 170 | initialization works all the same. | initialization works all the same. |
168 | 171 | ||
169 | 172 | CPU paste required | CPU paste required |
170 | ================== | ||
173 | ------------------ | ||
171 | 174 | ||
172 | 175 | See [\#paste](#paste). | See [\#paste](#paste). |
173 | 176 | ||
174 | 177 | Flash chip size {#flashchips} | Flash chip size {#flashchips} |
175 | =============== | ||
178 | ----------------------------- | ||
176 | 179 | ||
177 | 180 | Use this to find out: | Use this to find out: |
178 | 181 | ||
179 | 182 | flashprog -p internal | flashprog -p internal |
180 | 183 | ||
181 | 184 | MAC address {#macaddress} | MAC address {#macaddress} |
182 | =========== | ||
185 | ------------------------ | ||
183 | 186 | ||
184 | 187 | Refer to [mac\_address.md](mac_address.md). | Refer to [mac\_address.md](mac_address.md). |
185 | 188 | ||
186 | 189 | Clip wiring | Clip wiring |
187 | =========== | ||
190 | ----------- | ||
188 | 191 | ||
189 | 192 | Refer to [spi.md](spi.md) as a guide for external re-flashing. | Refer to [spi.md](spi.md) as a guide for external re-flashing. |
190 | 193 | ||
191 | The procedure | ||
192 | ------------- | ||
194 | ### The procedure | ||
193 | 195 | ||
194 | 196 | Remove all screws:\ | Remove all screws:\ |
195 | 197 | \ | \ |
... | ... | Connect your programmer, then connect GND and 3.3V\ | |
292 | 294 | Now flash Libreboot. | Now flash Libreboot. |
293 | 295 | ||
294 | 296 | Thermal paste (IMPORTANT) | Thermal paste (IMPORTANT) |
295 | ========================= | ||
297 | ------------------------- | ||
296 | 298 | ||
297 | 299 | Because part of this procedure involved removing the heatsink, you will | Because part of this procedure involved removing the heatsink, you will |
298 | 300 | need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl | need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl |
... | ... | show how to properly apply the thermal paste. Other guides online detail | |
309 | 311 | the proper application procedure. | the proper application procedure. |
310 | 312 | ||
311 | 313 | Wifi | Wifi |
312 | ==== | ||
314 | ---- | ||
313 | 315 | ||
314 | 316 | It is recommended that you install a new wifi chipset. This can only be | It is recommended that you install a new wifi chipset. This can only be |
315 | 317 | done after installing libreboot, because the original firmware has a | done after installing libreboot, because the original firmware has a |
... | ... | the Intel chip that this T500 came with:\ | |
321 | 323 |   |   |
322 | 324 | ||
323 | 325 | WWAN | WWAN |
324 | ==== | ||
326 | ---- | ||
325 | 327 | ||
326 | 328 | If you have a WWAN/3G card and/or sim card reader, remove them | If you have a WWAN/3G card and/or sim card reader, remove them |
327 | 329 | permanently. The WWAN-3G card has DMA, and proprietary firmware inside; | permanently. The WWAN-3G card has DMA, and proprietary firmware inside; |
... | ... | also track your movements. | |
331 | 333 | Not to be confused with wifi (wifi is fine). | Not to be confused with wifi (wifi is fine). |
332 | 334 | ||
333 | 335 | Memory | Memory |
334 | ====== | ||
336 | ------ | ||
335 | 337 | ||
336 | 338 | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks |
337 | 339 | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). |
File site/docs/install/t60_unbrick.md changed (mode: 100644) (index e12010e..14f8027) | |||
... | ... | title: ThinkPad T60 Recovery guide | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo Thinkpad T60 motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. *This* version of the guide shows you how to | ||
12 | flash using external hardware, which can be useful for un-bricking. | ||
13 | |||
6 | 14 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) |
7 | 15 | now, as of 27 January 2024, which is a fork of flashrom. | now, as of 27 January 2024, which is a fork of flashrom. |
8 | 16 | The reason why was explained, in | The reason why was explained, in |
File site/docs/install/w541_external.md changed (mode: 100644) (index 097136f..e439ba1) | |||
1 | 1 | --- | --- |
2 | title: ThinkPad W541/W540 external flashing | ||
2 | title: Install Libreboot on Lenovo ThinkPad W541 and/or W540 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | NOTE: The same image for W541 also works on the W540, as the motherboard is | ||
7 | identical. | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------- | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo ThinkPad W541 and/or W540 laptop motherboard. Libreboot replaces | ||
11 | proprietary BIOS/UEFI firmware. | ||
12 | |||
13 | NOTE: The same image for W541 also works on the W540, as the motherboards are | ||
14 | identical for coreboot purposes. | ||
8 | 15 | ||
9 | 16 | Buy Libreboot preinstalled | Buy Libreboot preinstalled |
10 | ========================== | ||
17 | -------------------------- | ||
11 | 18 | ||
12 | 19 | **Minifree now sells the Libreboot T480, instead of the Libreboot W541. See: | **Minifree now sells the Libreboot T480, instead of the Libreboot W541. See: |
13 | 20 | <https://minifree.org/product/libreboot-t480/>** | <https://minifree.org/product/libreboot-t480/>** |
14 | 21 | ||
15 | Introduction | ||
16 | ============ | ||
17 | |||
18 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | ||
19 | now, as of 27 January 2024, which is a fork of flashrom. | ||
20 | The reason why was explained, in | ||
21 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | ||
22 | Safety advice | ||
23 | ------------- | ||
22 | 24 | ||
23 | 25 | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR | **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR |
24 | 26 | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions |
... | ... | root of that project. To do so, run | |
34 | 36 | ||
35 | 37 | You can now follow the rest of the instructions. | You can now follow the rest of the instructions. |
36 | 38 | ||
39 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | ||
40 | now, as of 27 January 2024, which is a fork of flashrom. | ||
41 | The reason why was explained, in | ||
42 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | ||
43 | |||
37 | 44 | Preparing a release Rom | Preparing a release Rom |
38 | 45 | ----------------------- | ----------------------- |
39 | 46 | ||
... | ... | used when flashing either of the chips. | |
99 | 106 | ||
100 | 107 | You can now proceed to [flashing](/docs/install/spi.html) this machine. | You can now proceed to [flashing](/docs/install/spi.html) this machine. |
101 | 108 | ||
102 | `thinkpad_acpi` issues {#thinkpad-acpi} | ||
109 | thinkpad\_acpi issues {#thinkpad-acpi} | ||
103 | 110 | --------------------------------------- | --------------------------------------- |
104 | 111 | ||
105 | 112 | It has been reported by a user that `thinkpad_acpi` does not load correctly on | It has been reported by a user that `thinkpad_acpi` does not load correctly on |
... | ... | If you encounter this, check [this page](../../faq.md#thinkpad-acpi) | |
110 | 117 | for details as to how to fix this. | for details as to how to fix this. |
111 | 118 | ||
112 | 119 | Errata | Errata |
113 | ====== | ||
120 | ------ | ||
114 | 121 | ||
115 | 122 | NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer | NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer |
116 | 123 | included for Haswell; MRC is a blob for raminit, but we now provide libre | included for Haswell; MRC is a blob for raminit, but we now provide libre |
File site/docs/install/x200.md changed (mode: 100644) (index 8c65f11..8287ae5) | |||
1 | 1 | --- | --- |
2 | title: First-time ThinkPad X200 flashing | ||
2 | title: Install Libreboot on Lenovo ThinkPad X200 / X200s / X200 Tablet | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
... | ... | x-toc-enable: true | |
18 | 18 | | **Graphics** | Intel GMA X4500MHD | | | **Graphics** | Intel GMA X4500MHD | |
19 | 19 | | **Display** | 1280x800/1440x900 TFT | | | **Display** | 1280x800/1440x900 TFT | |
20 | 20 | | **Memory** | 1,2,3 or 4GB (Upgradable to 8GB, unofficially) | | | **Memory** | 1,2,3 or 4GB (Upgradable to 8GB, unofficially) | |
21 | | **Architecture** | x86_64 | | ||
21 | | **Architecture** | x86\_64 | | ||
22 | 22 | | **EC** | Proprietary | | | **EC** | Proprietary | |
23 | 23 | | **Original boot firmware** | LenovoBIOS | | | **Original boot firmware** | LenovoBIOS | |
24 | 24 | | **Intel ME/AMD PSP** | Present. Can be completly disabled. | | | **Intel ME/AMD PSP** | Present. Can be completly disabled. | |
... | ... | P*: Partially works with vendor firmware | |
49 | 49 | | **SeaBIOS with GRUB** | Works | | | **SeaBIOS with GRUB** | Works | |
50 | 50 | </div> | </div> |
51 | 51 | ||
52 | Dell Latitude E6400 | ||
53 | =================== | ||
52 | Open source BIOS/UEFI firmware | ||
53 | ------------------------- | ||
54 | 54 | ||
55 | **If you haven't bought an X200 yet: the [Dell Latitude | ||
56 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
57 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
58 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
59 | |||
60 | Introduction | ||
61 | ============ | ||
55 | This document will teach you how to install Libreboot, on your | ||
56 | Lenovo ThinkPad X200, X200s or X200 Tablet laptop motherboard. Libreboot | ||
57 | replaces proprietary BIOS/UEFI firmware. | ||
62 | 58 | ||
63 | 59 | It is believed that all X200 laptops are compatible. X200S and X200 | It is believed that all X200 laptops are compatible. X200S and X200 |
64 | 60 | Tablet will also work, [depending on the configuration](#x200s). | Tablet will also work, [depending on the configuration](#x200s). |
... | ... | now, as of 27 January 2024, which is a fork of flashrom. | |
84 | 80 | The reason why was explained, in | The reason why was explained, in |
85 | 81 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
86 | 82 | ||
83 | Dell Latitude E6400 | ||
84 | ------------------- | ||
85 | |||
86 | **If you haven't bought an X200 yet: the [Dell Latitude | ||
87 | E6400](../install/latitude.md) is much easier to flash; no disassembly required, | ||
88 | it can be flashed entirely in software from Dell BIOS to Libreboot. It is the | ||
89 | same hardware generation (GM45), with same CPUs, video processor, etc.** | ||
90 | |||
87 | 91 | EC update {#ecupdate} | EC update {#ecupdate} |
88 | ========= | ||
92 | --------------------- | ||
89 | 93 | ||
90 | 94 | It is recommended that you update to the latest EC firmware version. The | It is recommended that you update to the latest EC firmware version. The |
91 | 95 | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from | [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from |
... | ... | Updated EC firmware has several advantages e.g. better battery | |
106 | 110 | handling. | handling. |
107 | 111 | ||
108 | 112 | Battery Recall {#batteryrecall} | Battery Recall {#batteryrecall} |
109 | ============== | ||
113 | ------------------------------ | ||
110 | 114 | ||
111 | 115 | [On 21 April 2015, Lenovo expanded a recall on Lenovo batteries found in some ThinkPad models, which includes the X200 and X200S.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) | [On 21 April 2015, Lenovo expanded a recall on Lenovo batteries found in some ThinkPad models, which includes the X200 and X200S.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) |
112 | 116 | To find out if you are affected, use [this Lenovo tool.](https://lenovobattery2014.orderz.com/) | To find out if you are affected, use [this Lenovo tool.](https://lenovobattery2014.orderz.com/) |
... | ... | Sources: | |
165 | 169 | Mod](http://forum.thinkpads.com/viewtopic.php?p=660662#p660662) | Mod](http://forum.thinkpads.com/viewtopic.php?p=660662#p660662) |
166 | 170 | - [ThinkWiki.de - X200 Displayumbau](http://thinkwiki.de/X200_Displayumbau) | - [ThinkWiki.de - X200 Displayumbau](http://thinkwiki.de/X200_Displayumbau) |
167 | 171 | ||
168 | ### X200S | ||
172 | #### X200S | ||
169 | 173 | ||
170 | 174 | <http://forum.thinkpads.com/viewtopic.php?p=618928#p618928> explains that the | <http://forum.thinkpads.com/viewtopic.php?p=618928#p618928> explains that the |
171 | 175 | X200S screens/assemblies are thinner. You need to replace the whole lid with | X200S screens/assemblies are thinner. You need to replace the whole lid with |
172 | 176 | one from a normal X200/X201. | one from a normal X200/X201. |
173 | 177 | ||
174 | How to tell if it has an LED or CCFL? {#led_howtotell} | ||
175 | ------------------------------------- | ||
178 | ### How to tell if it has an LED or CCFL? {#led_howtotell} | ||
176 | 179 | ||
177 | 180 | Some X200s have a CCFL backlight and some have an LED backlight, in their LCD | Some X200s have a CCFL backlight and some have an LED backlight, in their LCD |
178 | 181 | panel. This also means that the inverters will vary, so you must be careful if | panel. This also means that the inverters will vary, so you must be careful if |
... | ... | a lamp which contains mercury; dispose according to local, state or federal | |
186 | 189 | laws"* (one with an LED backlit panel will say something different). | laws"* (one with an LED backlit panel will say something different). |
187 | 190 | ||
188 | 191 | Installation notes | Installation notes |
189 | ================== | ||
192 | ------------------ | ||
190 | 193 | ||
191 | 194 | [External flashing](spi.md) required, if running Lenovo BIOS. | [External flashing](spi.md) required, if running Lenovo BIOS. |
192 | 195 | ||
... | ... | re-flash the chip externally while it is powered off with the battery removed. | |
202 | 205 | NOTE: This guide only applies to the regular X200. For X200S and X200 Tablet | NOTE: This guide only applies to the regular X200. For X200S and X200 Tablet |
203 | 206 | flashing, please read other guides available on libreboot.org. | flashing, please read other guides available on libreboot.org. |
204 | 207 | ||
205 | Flash chip size | ||
206 | =============== | ||
208 | ### Flash chip size | ||
207 | 209 | ||
208 | 210 | Run this command on x200 to find out flash chip model and its size: | Run this command on x200 to find out flash chip model and its size: |
209 | 211 | ||
210 | 212 | flashprog -p internal | flashprog -p internal |
211 | 213 | ||
212 | MAC address | ||
213 | =========== | ||
214 | ### MAC address | ||
214 | 215 | ||
215 | 216 | Refer to [mac\_address.md](mac_address.md). | Refer to [mac\_address.md](mac_address.md). |
216 | 217 | ||
217 | The procedure | ||
218 | ------------- | ||
218 | ### The procedure | ||
219 | 219 | ||
220 | 220 | This section is for the X200. This does not apply to the X200S or X200 | This section is for the X200. This does not apply to the X200S or X200 |
221 | 221 | Tablet (for those systems, you have to remove the motherboard | Tablet (for those systems, you have to remove the motherboard |
... | ... | When you're done, put the system back together. If it doesn't boot, try other | |
250 | 250 | RAM modules because raminit is very unreliable on this platform (in coreboot). | RAM modules because raminit is very unreliable on this platform (in coreboot). |
251 | 251 | ||
252 | 252 | Memory | Memory |
253 | ====== | ||
253 | ------ | ||
254 | 254 | ||
255 | 255 | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks | In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks |
256 | 256 | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). | that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). |
... | ... | You should see something like this: | |
276 | 276 | ||
277 | 277 | Now [install Linux](../linux/). | Now [install Linux](../linux/). |
278 | 278 | ||
279 | X200S and X200 Tablet users: GPIO33 trick will not work. | ||
280 | -------------------------------------------------------- | ||
279 | Errata | ||
280 | ------ | ||
281 | |||
282 | ### X200S and X200 Tablet users: GPIO33 trick will not work. | ||
281 | 283 | ||
282 | 284 | sgsit found out about a pin called GPIO33, which can be grounded to | sgsit found out about a pin called GPIO33, which can be grounded to |
283 | 285 | disable the flashing protections by the descriptor and stop the ME from | disable the flashing protections by the descriptor and stop the ME from |
File site/docs/install/x200.uk.md changed (mode: 100644) (index b1ce8af..7064ab2) | |||
... | ... | x-toc-enable: true | |
18 | 18 | | **Графіка** | Intel GMA X4500MHD | | | **Графіка** | Intel GMA X4500MHD | |
19 | 19 | | **Дісплей** | 1280x800/1440x900 TFT | | | **Дісплей** | 1280x800/1440x900 TFT | |
20 | 20 | | **Пам'ять** | 1,2,3 or 4GB (оновлюється до 8GB, неофіційно) | | | **Пам'ять** | 1,2,3 or 4GB (оновлюється до 8GB, неофіційно) | |
21 | | **Архітектура** | x86_64 | | ||
21 | | **Архітектура** | x86\_64 | | ||
22 | 22 | | **EC** | Пропрієтарний | | | **EC** | Пропрієтарний | |
23 | 23 | | **Оригінальна прошивка** | LenovoBIOS | | | **Оригінальна прошивка** | LenovoBIOS | |
24 | 24 | | **Intel ME/AMD PSP** | Наявний. Можна повністю вимкнути. | | | **Intel ME/AMD PSP** | Наявний. Можна повністю вимкнути. | |
... | ... | P*: Частково працює з бінарними компонентами | |
50 | 50 | </div> | </div> |
51 | 51 | ||
52 | 52 | Вступ | Вступ |
53 | ============ | ||
53 | ----- | ||
54 | 54 | ||
55 | 55 | Вважається що всі ноутбуки X200 сумісні. X200S та X200 | Вважається що всі ноутбуки X200 сумісні. X200S та X200 |
56 | 56 | Tablet також працюватимуть, [залежно від конфігурації](#x200s). | Tablet також працюватимуть, [залежно від конфігурації](#x200s). |
... | ... | The reason why was explained, in | |
77 | 77 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
78 | 78 | ||
79 | 79 | Оновлення EC {#ecupdate} | Оновлення EC {#ecupdate} |
80 | ========= | ||
80 | ------------------------ | ||
81 | 81 | ||
82 | 82 | Рекомендується оновити мікропрограму EC до останньої версії. | Рекомендується оновити мікропрограму EC до останньої версії. |
83 | 83 | [Прошивка EC](../../faq.md#ec-embedded-controller-firmware) є окремою від | [Прошивка EC](../../faq.md#ec-embedded-controller-firmware) є окремою від |
... | ... | Lenovo BIOS, ви можете просто запустити утиліту о | |
98 | 98 | з акумулятором. | з акумулятором. |
99 | 99 | ||
100 | 100 | Відкликання батареї {#batteryrecall} | Відкликання батареї {#batteryrecall} |
101 | ============== | ||
101 | ------------------------------------ | ||
102 | 102 | ||
103 | 103 | [21 квітня 2015 року, Lenovo розширила відкликання акумуляторів Lenovo, які були встановлені в деяких моделях Thinkpad, зокрема X200 та X200S.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) | [21 квітня 2015 року, Lenovo розширила відкликання акумуляторів Lenovo, які були встановлені в деяких моделях Thinkpad, зокрема X200 та X200S.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) |
104 | 104 | Щоб дізнатися, чи вас це стосується, використовуйте [цей інструмент Lenovo.](https://lenovobattery2014.orderz.com/) | Щоб дізнатися, чи вас це стосується, використовуйте [цей інструмент Lenovo.](https://lenovobattery2014.orderz.com/) |
... | ... | Lenovo радить власникам відкликаних моделей "в | |
107 | 107 | Після перевірки батареї, Lenovo безкоштовно замінить відкликані батареї. | Після перевірки батареї, Lenovo безкоштовно замінить відкликані батареї. |
108 | 108 | Інструкції щодо заміни батареї для X200/X200s [можна знайти на цій сторінці.](https://pcsupport.lenovo.com/cr/en/parts/pd003507/) | Інструкції щодо заміни батареї для X200/X200s [можна знайти на цій сторінці.](https://pcsupport.lenovo.com/cr/en/parts/pd003507/) |
109 | 109 | ||
110 | Список сумісності LCD {#lcd_supported_list} | ||
111 | ---------------------- | ||
110 | ### Список сумісності LCD {#lcd_supported_list} | ||
112 | 111 | ||
113 | 112 | Список РК-панелей (там перераховані панелі X200): | Список РК-панелей (там перераховані панелі X200): |
114 | 113 | <http://www.thinkwiki.org/wiki/TFT_display> | <http://www.thinkwiki.org/wiki/TFT_display> |
... | ... | Lenovo радить власникам відкликаних моделей "в | |
157 | 156 | Mod](http://forum.thinkpads.com/viewtopic.php?p=660662#p660662) | Mod](http://forum.thinkpads.com/viewtopic.php?p=660662#p660662) |
158 | 157 | - [ThinkWiki.de - X200 Displayumbau](http://thinkwiki.de/X200_Displayumbau) | - [ThinkWiki.de - X200 Displayumbau](http://thinkwiki.de/X200_Displayumbau) |
159 | 158 | ||
160 | ### X200S | ||
159 | #### X200S | ||
161 | 160 | ||
162 | 161 | <http://forum.thinkpads.com/viewtopic.php?p=618928#p618928> пояснює, що | <http://forum.thinkpads.com/viewtopic.php?p=618928#p618928> пояснює, що |
163 | 162 | екрани/блоки X200S тонші. Вам потрібно замінити всю кришку на одну від | екрани/блоки X200S тонші. Вам потрібно замінити всю кришку на одну від |
164 | 163 | звичайного X200/X201. | звичайного X200/X201. |
165 | 164 | ||
166 | Як визначити, чи у нього LED, чи CCFL? {#led_howtotell} | ||
167 | ------------------------------------- | ||
165 | ### Як визначити, чи у нього LED, чи CCFL? {#led_howtotell} | ||
168 | 166 | ||
169 | 167 | Деякі X200 мають підсвічування CCFL, а деякі - світлодіодне підсвічування на РК-панелі. | Деякі X200 мають підсвічування CCFL, а деякі - світлодіодне підсвічування на РК-панелі. |
170 | 168 | Це також означає, що інвертори відрізнятимуться, тому ви повинні бути обережними, | Це також означає, що інвертори відрізнятимуться, тому ви повинні бути обережними, |
... | ... | CCFL містять меркурій. На X200 з CCFL підсвіткою (я | |
178 | 176 | законів"* (на тому, що має світлодіодне підсвічування, буде написано щось інше). | законів"* (на тому, що має світлодіодне підсвічування, буде написано щось інше). |
179 | 177 | ||
180 | 178 | Installation notes | Installation notes |
181 | ================== | ||
179 | ------------------ | ||
182 | 180 | ||
183 | 181 | [External flashing](spi.md) required, if running Lenovo BIOS. | [External flashing](spi.md) required, if running Lenovo BIOS. |
184 | 182 | ||
... | ... | Installation notes | |
195 | 193 | будь-ласка прочитайте інші посібники, доступні на libreboot.org. | будь-ласка прочитайте інші посібники, доступні на libreboot.org. |
196 | 194 | ||
197 | 195 | Розмір флеш-чіпа | Розмір флеш-чіпа |
198 | =============== | ||
196 | ---------------- | ||
199 | 197 | ||
200 | 198 | Виконайте цю команду на x200, щоб дізнатися модель флеш-чіпа та його розмір: | Виконайте цю команду на x200, щоб дізнатися модель флеш-чіпа та його розмір: |
201 | 199 | ||
202 | 200 | flashprog -p internal | flashprog -p internal |
203 | 201 | ||
204 | 202 | MAC адреса | MAC адреса |
205 | =========== | ||
203 | ---------- | ||
206 | 204 | ||
207 | 205 | Зверніться до [mac\_address.md](mac_address.md). | Зверніться до [mac\_address.md](mac_address.md). |
208 | 206 | ||
209 | Процедура | ||
210 | ------------- | ||
207 | ### Процедура | ||
211 | 208 | ||
212 | 209 | Цей розділ стосується X200. Цей не стосується X200S або X200 | Цей розділ стосується X200. Цей не стосується X200S або X200 |
213 | 210 | Tablet (для цих систем потрібно повністю видалити материнську плату, | Tablet (для цих систем потрібно повністю видалити материнську плату, |
... | ... | Tablet (для цих систем потрібно повністю видал | |
242 | 239 | модулі оперативної пам'яті, тому що raminit дуже ненадійний на цій платформі (в coreboot). | модулі оперативної пам'яті, тому що raminit дуже ненадійний на цій платформі (в coreboot). |
243 | 240 | ||
244 | 241 | Пам'ять | Пам'ять |
245 | ====== | ||
242 | ------- | ||
246 | 243 | ||
247 | 244 | У машинах DDR3 з Cantiga (GM45/GS45/PM45), північний міст потребує стіків, | У машинах DDR3 з Cantiga (GM45/GS45/PM45), північний міст потребує стіків, |
248 | 245 | які працюватимуть як PC3-8500 (швидші стіки PC3/PC3L можуть працювати як PC3-8500). | які працюватимуть як PC3-8500 (швидші стіки PC3/PC3L можуть працювати як PC3-8500). |
... | ... | Tablet (для цих систем потрібно повністю видал | |
259 | 256 | ||
260 | 257 |  |  |
261 | 258 | ||
262 | Завантажуйтесь! | ||
263 | -------- | ||
259 | ### Завантажуйтесь! | ||
264 | 260 | ||
265 | 261 | Ви маєте побачити щось подібне цьому: | Ви маєте побачити щось подібне цьому: |
266 | 262 | ||
... | ... | Tablet (для цих систем потрібно повністю видал | |
268 | 264 | ||
269 | 265 | Тепер [встановлюйте Linux](../linux/). | Тепер [встановлюйте Linux](../linux/). |
270 | 266 | ||
271 | Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює. | ||
272 | -------------------------------------------------------- | ||
267 | ### Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює. | ||
273 | 268 | ||
274 | 269 | sgsit дізнався про контакт під назвою GPIO33, який можна заземлити, | sgsit дізнався про контакт під назвою GPIO33, який можна заземлити, |
275 | 270 | щоб вимкнути захист прошивки за допомогою дескриптора та зупинити ME від | щоб вимкнути захист прошивки за допомогою дескриптора та зупинити ME від |
File site/docs/install/x230_external.md changed (mode: 100644) (index 80bd2c4..1b89e18) | |||
... | ... | title: ThinkPad X230/X230T external flashing | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo ThinkPad X230 laptop motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
12 | |||
6 | 13 | **Minifree now sells the Libreboot T480, instead of the Libreboot X230. See: | **Minifree now sells the Libreboot T480, instead of the Libreboot X230. See: |
7 | 14 | <https://minifree.org/product/libreboot-t480/>** | <https://minifree.org/product/libreboot-t480/>** |
8 | 15 |
File site/docs/install/x60_unbrick.md changed (mode: 100644) (index 74107d0..3ec2b92) | |||
1 | 1 | --- | --- |
2 | title: ThinkPad X60 Recovery guide | ||
2 | title: Install Libreboot on Lenovo ThinkPad X60 | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo ThinkPad X60 laptop motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
12 | |||
6 | 13 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) |
7 | 14 | now, as of 27 January 2024, which is a fork of flashrom. | now, as of 27 January 2024, which is a fork of flashrom. |
8 | 15 | The reason why was explained, in | The reason why was explained, in |
File site/docs/install/x60tablet_unbrick.md changed (mode: 100644) (index f3ab37c..13a29ca) | |||
1 | 1 | --- | --- |
2 | title: ThinkPad X60 Tablet Recovery guide | ||
2 | title: Install Libreboot on Lenovo ThinkPad X60 Tablet | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | This document will teach you how to install Libreboot, on your | ||
10 | Lenovo Thinkpad X60 Tablet laptop motherboard. Libreboot replaces proprietary | ||
11 | BIOS/UEFI firmware. | ||
12 | |||
6 | 13 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) |
7 | 14 | now, as of 27 January 2024, which is a fork of flashrom. | now, as of 27 January 2024, which is a fork of flashrom. |
8 | 15 | The reason why was explained, in | The reason why was explained, in |
File site/docs/linux/grub_boot_installer.md changed (mode: 100644) (index 4876ad1..d7a48a3) | |||
1 | 1 | --- | --- |
2 | title: Installing Linux | ||
2 | title: Boot Linux distro installers on Libreboot | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | # Introduction | ||
6 | GRUB payload assumed | ||
7 | -------------------- | ||
7 | 8 | ||
8 | 9 | This guide assumes that you are using the GRUB bootloader directly. | This guide assumes that you are using the GRUB bootloader directly. |
9 | 10 | If you're using SeaBIOS, it's quite intuitive and works similarly to other BIOS | If you're using SeaBIOS, it's quite intuitive and works similarly to other BIOS |
... | ... | Linux distributions, by default). | |
17 | 18 | These instructions are intended to be generic, applicable to just about any | These instructions are intended to be generic, applicable to just about any |
18 | 19 | Linux distribution. | Linux distribution. |
19 | 20 | ||
20 | ## Prepare the USB Drive in Linux | ||
21 | Prepare the USB Drive in Linux | ||
22 | ------------------------------ | ||
23 | |||
21 | 24 | If you downloaded your ISO while on an existing Linux system, here is how | If you downloaded your ISO while on an existing Linux system, here is how |
22 | 25 | to create the bootable Linux USB drive: | to create the bootable Linux USB drive: |
23 | 26 | ||
... | ... | folder, this is the command we would run: | |
40 | 43 | That's it! You should now be able to boot the installer from your USB drive | That's it! You should now be able to boot the installer from your USB drive |
41 | 44 | (the instructions for doing so will be given later). | (the instructions for doing so will be given later). |
42 | 45 | ||
43 | ## Prepare the USB drive in NetBSD | ||
46 | Prepare the USB drive in NetBSD | ||
47 | ------------------------------- | ||
48 | |||
44 | 49 | [This page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) | [This page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) |
45 | 50 | on the NetBSD website shows how to create a NetBSD bootable USB drive, from | on the NetBSD website shows how to create a NetBSD bootable USB drive, from |
46 | 51 | within NetBSD itself. You should the `dd` method documented there. This will | within NetBSD itself. You should the `dd` method documented there. This will |
47 | 52 | work with any Linux ISO image. | work with any Linux ISO image. |
48 | 53 | ||
49 | ## Prepare the USB drive in FreeBSD | ||
54 | Prepare the USB drive in FreeBSD | ||
55 | -------------------------------- | ||
56 | |||
50 | 57 | [This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on the | [This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on the |
51 | 58 | FreeBSD website shows how to create a bootable USB drive for installing | FreeBSD website shows how to create a bootable USB drive for installing |
52 | 59 | FreeBSD. Use the `dd` method documented. This will work with any Linux ISO | FreeBSD. Use the `dd` method documented. This will work with any Linux ISO |
53 | 60 | image. | image. |
54 | 61 | ||
55 | ## Prepare the USB drive in LibertyBSD or OpenBSD | ||
62 | Prepare the USB drive in OpenBSD | ||
63 | -------------------------------- | ||
64 | |||
56 | 65 | If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is how to | If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is how to |
57 | 66 | create the bootable Linux USB drive: | create the bootable Linux USB drive: |
58 | 67 | ||
... | ... | the OpenBSD installer to it with `dd`. Here's an example: | |
78 | 87 | That's it! You should now be able to boot the installer from your USB drive | That's it! You should now be able to boot the installer from your USB drive |
79 | 88 | (the instructions for doing so will be given later). | (the instructions for doing so will be given later). |
80 | 89 | ||
81 | ## GRUB2 config on external media | ||
90 | GRUB2 config on external media | ||
91 | ------------------------------- | ||
82 | 92 | ||
83 | 93 | Pick the menu option: *Search for GRUB2 configuration on external media* | Pick the menu option: *Search for GRUB2 configuration on external media* |
84 | 94 | ||
85 | 95 | If the distro installer image has a `grub.cfg` file inside, this menuentry is | If the distro installer image has a `grub.cfg` file inside, this menuentry is |
86 | 96 | scripted to find it. This works well for many distros. | scripted to find it. This works well for many distros. |
87 | 97 | ||
88 | ## Debian or Devuan net install | ||
98 | Debian or Devuan net installation | ||
99 | --------------------------------- | ||
100 | |||
89 | 101 | Download the Debian or Devuan net installer. You can download the Debian ISO | Download the Debian or Devuan net installer. You can download the Debian ISO |
90 | 102 | from [the Debian homepage](https://www.debian.org/), or the Devuan ISO from | from [the Debian homepage](https://www.debian.org/), or the Devuan ISO from |
91 | 103 | [the Devuan homepage](https://www.devuan.org/). | [the Devuan homepage](https://www.devuan.org/). |
... | ... | You can select the option, in the Libreboot GRUB menu, to load GRUB config | |
97 | 109 | from external media, and that should work just fine. Alternatively, pick one | from external media, and that should work just fine. Alternatively, pick one |
98 | 110 | of the ISOLINUX-related menu options. | of the ISOLINUX-related menu options. |
99 | 111 | ||
100 | ## Booting ISOLINUX Images (Automatic Method) | ||
112 | Booting ISOLINUX Images (Automatic Method) | ||
113 | ------------------------------------------ | ||
114 | |||
101 | 115 | Boot it in GRUB using the `Parse ISOLINUX config (USB)` option. A new menu | Boot it in GRUB using the `Parse ISOLINUX config (USB)` option. A new menu |
102 | 116 | should appear in GRUB, showing the boot options for that distro; this is a GRUB | should appear in GRUB, showing the boot options for that distro; this is a GRUB |
103 | 117 | menu, converted from the usual ISOLINUX menu provided by that distro. | menu, converted from the usual ISOLINUX menu provided by that distro. |
104 | 118 | ||
105 | ## Booting ISOLINUX Images (Manual Method) | ||
119 | Booting ISOLINUX Images (Manual Method) | ||
120 | --------------------------------------- | ||
121 | |||
106 | 122 | These are generic instructions. They may or may not be correct for your | These are generic instructions. They may or may not be correct for your |
107 | 123 | distribution. You must adapt them appropriately, for whatever Linux | distribution. You must adapt them appropriately, for whatever Linux |
108 | 124 | distribution it is that you are trying to install. | distribution it is that you are trying to install. |
... | ... | to see a list of USB devices/partitions. Of course, this will vary from distro | |
152 | 168 | to distro. If you did all of that correctly, then it should now be booting your | to distro. If you did all of that correctly, then it should now be booting your |
153 | 169 | USB drive in the way that you specified. | USB drive in the way that you specified. |
154 | 170 | ||
155 | ## Troubleshooting | ||
171 | Troubleshooting | ||
172 | --------------- | ||
173 | |||
174 | ### Display modes | ||
175 | |||
156 | 176 | Most of these issues occur when using libreboot with coreboot's `text-mode` | Most of these issues occur when using libreboot with coreboot's `text-mode` |
157 | 177 | with libgfxinit for video initialization. This mode is useful for text mode | with libgfxinit for video initialization. This mode is useful for text mode |
158 | 178 | payloads, like `MemTest86+`, which expect `text-mode`, but for Linux | payloads, like `MemTest86+`, which expect `text-mode`, but for Linux |
... | ... | do Kernel Mode Setting, so they are able to initialize a frame buffer in bare | |
162 | 182 | metal regardless of whatever coreboot is doing). | metal regardless of whatever coreboot is doing). |
163 | 183 | ||
164 | 184 | ### debian-installer Graphical Corruption in Text-Mode (Debian and Devuan) | ### debian-installer Graphical Corruption in Text-Mode (Debian and Devuan) |
185 | |||
165 | 186 | When using the ROM images that use Coreboot's `text mode`, instead of the | When using the ROM images that use Coreboot's `text mode`, instead of the |
166 | 187 | coreboot framebuffer, while using libgfxinit, booting the Debian or Devuan net | coreboot framebuffer, while using libgfxinit, booting the Debian or Devuan net |
167 | 188 | installer results in graphical corruption, because it is trying to switch to a | installer results in graphical corruption, because it is trying to switch to a |
File site/docs/linux/grub_cbfs.md changed (mode: 100644) (index 3f7a1fc..8406397) | |||
... | ... | title: Modifying grub.cfg in CBFS | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Configure boot order and so on | ||
7 | ------------------------------ | ||
8 | |||
6 | 9 | Read [Libreboot flashing guides](../install/) before continuing, and make sure | Read [Libreboot flashing guides](../install/) before continuing, and make sure |
7 | 10 | to back up the current flash contents before you consider following this guide. | to back up the current flash contents before you consider following this guide. |
8 | 11 | ||
9 | 12 | Before you follow this guide, it is advisable that you have the ability to | Before you follow this guide, it is advisable that you have the ability to |
10 | 13 | [flash externally](../install/spi.md), just in case something goes wrong. | [flash externally](../install/spi.md), just in case something goes wrong. |
11 | 14 | ||
15 | Libreboot's *GRUB* payload is much more flexible than most other types of boot | ||
16 | payload, but can sometimes require hands-on configuration depending on what you | ||
17 | want to do. | ||
18 | |||
19 | ### Why modify the configuration? | ||
20 | |||
12 | 21 | Libreboot's own GRUB configuration automatically scans for one provided by | Libreboot's own GRUB configuration automatically scans for one provided by |
13 | 22 | your distro, and this automation will usually work. Sometimes, you might wish | your distro, and this automation will usually work. Sometimes, you might wish |
14 | 23 | to override it with your own custom menuentry or additional logic in the GRUB | to override it with your own custom menuentry or additional logic in the GRUB |
... | ... | to actually *put in the config* will not be covered here. | |
17 | 26 | ||
18 | 27 | This guide will simply teach you how to modify the config, but not what to put, | This guide will simply teach you how to modify the config, but not what to put, |
19 | 28 | whereas the [GRUB hardening](../linux/grub_hardening.md) guide specifically | whereas the [GRUB hardening](../linux/grub_hardening.md) guide specifically |
20 | says what to modify; cross reference that page and this page. | ||
29 | says what to modify; cross reference that page and this page, if you want to | ||
30 | follow the GRUB hardening guide. Otherwise, this page contains generic guidance. | ||
21 | 31 | ||
22 | 32 | **Disable security before continuing** | **Disable security before continuing** |
23 | ================================ | ||
33 | -------------------------------------- | ||
24 | 34 | ||
25 | 35 | **Before internal flashing, you must first disable `/dev/mem` protections. Make | **Before internal flashing, you must first disable `/dev/mem` protections. Make |
26 | 36 | sure to re-enable them after you're finished.** | sure to re-enable them after you're finished.** |
... | ... | flashing, from an existing installation. If you're externally flashing the | |
32 | 42 | machine, you can ignore this advice. | machine, you can ignore this advice. |
33 | 43 | ||
34 | 44 | Build dependencies | Build dependencies |
35 | ================== | ||
45 | ------------------ | ||
36 | 46 | ||
37 | 47 | **Please first [install build dependencies](../build/).** | **Please first [install build dependencies](../build/).** |
38 | 48 | ||
39 | Coreboot utilities | ||
40 | ------------------ | ||
49 | ### Coreboot utilities | ||
41 | 50 | ||
42 | 51 | You need `cbfstool` from coreboot. For whatever board you have, check which | You need `cbfstool` from coreboot. For whatever board you have, check which |
43 | 52 | coreboot tree it uses in Libreboot's build system, lbmk. For example, let's | coreboot tree it uses in Libreboot's build system, lbmk. For example, let's |
... | ... | This will result in the following binary: `elf/cbfstool/default/cbfstool` | |
59 | 68 | We won't assume the path to cbfstool, in the remainder of this guide, so | We won't assume the path to cbfstool, in the remainder of this guide, so |
60 | 69 | adapt accordingly. | adapt accordingly. |
61 | 70 | ||
62 | GRUB utilities | ||
63 | -------------- | ||
71 | ### GRUB utilities | ||
64 | 72 | ||
65 | 73 | Again, let's assume the coreboot board is `x200_8mb`. Check the | Again, let's assume the coreboot board is `x200_8mb`. Check the |
66 | 74 | file `config/coreboot/x200_8mb/target.cfg` for `grubtree` - if it's not set, | file `config/coreboot/x200_8mb/target.cfg` for `grubtree` - if it's not set, |
... | ... | This will compile GRUB for the given tree. If you need to use any of the GRUB | |
72 | 80 | utilities, this command will build them and in this example, they will be | utilities, this command will build them and in this example, they will be |
73 | 81 | available under `src/grub/default/`. | available under `src/grub/default/`. |
74 | 82 | ||
75 | Flashprog | ||
76 | --------- | ||
83 | ### Flashprog | ||
77 | 84 | ||
78 | 85 | Compile flashprog like so: | Compile flashprog like so: |
79 | 86 | ||
... | ... | Compile flashprog like so: | |
82 | 89 | A binary will appear at `elf/flashprog/flashprog`. | A binary will appear at `elf/flashprog/flashprog`. |
83 | 90 | ||
84 | 91 | Default GRUB config | Default GRUB config |
85 | =================== | ||
92 | ------------------- | ||
86 | 93 | ||
87 | 94 | The coreboot image has its own filesystem, CBFS, and within CBFS is the GRUB | The coreboot image has its own filesystem, CBFS, and within CBFS is the GRUB |
88 | 95 | binary, and within the GRUB binary is another filesystem called memdisk, where | binary, and within the GRUB binary is another filesystem called memdisk, where |
... | ... | the default GRUB configuration is located. | |
91 | 98 | You can override it by inserting your own GRUB config within CBFS. | You can override it by inserting your own GRUB config within CBFS. |
92 | 99 | ||
93 | 100 | Acquiring a GRUB config | Acquiring a GRUB config |
94 | ======================= | ||
101 | ----------------------- | ||
95 | 102 | ||
96 | Dump the boot flash | ||
97 | ------------------- | ||
103 | ### Dump the boot flash | ||
98 | 104 | ||
99 | 105 | This is only useful if you already inserted a GRUB config in CBFS. Otherwise, | This is only useful if you already inserted a GRUB config in CBFS. Otherwise, |
100 | 106 | you can grab it from Libreboot's build system, lbmk. | you can grab it from Libreboot's build system, lbmk. |
... | ... | look at the [main flashing guide](../install/). | |
105 | 111 | ||
106 | 112 | Those guides show how to dump the flash contents, which you are advised to do. | Those guides show how to dump the flash contents, which you are advised to do. |
107 | 113 | ||
108 | Default GRUB config location | ||
109 | ---------------------------- | ||
114 | ### Default GRUB config location | ||
110 | 115 | ||
111 | 116 | We'll assume that your GRUB tree is `default`, so the | We'll assume that your GRUB tree is `default`, so the |
112 | 117 | file `config/grub/default/config/payload` is your GRUB config; this will be the | file `config/grub/default/config/payload` is your GRUB config; this will be the |
... | ... | Modify *that* file, or the one you extracted if you already inserted a custom | |
116 | 121 | one before, and you will re-insert it when you're done. | one before, and you will re-insert it when you're done. |
117 | 122 | ||
118 | 123 | Insert grubtest.cfg | Insert grubtest.cfg |
119 | =================== | ||
124 | ------------------- | ||
120 | 125 | ||
121 | 126 | Before reading the next section, please note: if you only have the fallback | Before reading the next section, please note: if you only have the fallback |
122 | 127 | GRUB config in memdisk, and no configs in CBFS, you can test the modified | GRUB config in memdisk, and no configs in CBFS, you can test the modified |
... | ... | Libreboot will not automatically load it, but it will be available from the | |
128 | 133 | default GRUB menu. This can be useful for test purposes, hence the name. | default GRUB menu. This can be useful for test purposes, hence the name. |
129 | 134 | ||
130 | 135 | Insert new grub.cfg | Insert new grub.cfg |
131 | =================== | ||
136 | ------------------- | ||
132 | 137 | ||
133 | 138 | If you already have a `grub.cfg` in cbfstool, you can extract and modify that | If you already have a `grub.cfg` in cbfstool, you can extract and modify that |
134 | 139 | one, e.g.: | one, e.g.: |
... | ... | test config from the default menu, before deciding whether to make it the | |
155 | 160 | main config, as `grub.cfg`, overriding the one in GRUB memdisk. | main config, as `grub.cfg`, overriding the one in GRUB memdisk. |
156 | 161 | ||
157 | 162 | Flash the modified ROM image | Flash the modified ROM image |
158 | ============================ | ||
163 | ---------------------------- | ||
159 | 164 | ||
160 | 165 | Check the [Libreboot flashing guide](../install/) which says how to flash the | Check the [Libreboot flashing guide](../install/) which says how to flash the |
161 | 166 | new image. | new image. |
File site/docs/linux/grub_hardening.md changed (mode: 100644) (index c8d57d5..00875d6) | |||
1 | 1 | --- | --- |
2 | title: Hardening GRUB | ||
2 | title: Hardening GRUB (i.e. Secure libreBoot) | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | What is Secure libreBoot? | ||
7 | ------------------------- | ||
8 | |||
9 | Libreboot provides open source BIOS/UEFI firmware, replacing proprietary | ||
10 | BIOS/UEFI firmware, and that precisely is Libreboot primary mission; Libreboot | ||
11 | is a [Free Software](https://writefreesoftware.org/learn) project, *first*. | ||
12 | Our *next* priority is to provide you with *highly secure* boot firmware, free | ||
13 | from backdoors and with well-audited code. *This* document does just that, by | ||
14 | telling you how to *harden* your Libreboot installation against various physical | ||
15 | access attacks. | ||
16 | |||
17 | ### Not UEFI SecureBoot! | ||
18 | |||
19 | UEFI SecureBoot was invented by Microsoft for booting Microsoft Windows. We | ||
20 | don't use UEFI SecureBoot in the Libreboot project, because UEFI SecureBoot | ||
21 | is *completely inferior* to Libreboot's security model. We call our own | ||
22 | security model *Secure libreBoot* and we use neither BIOS nor UEFI; we use GRUB! | ||
23 | |||
24 | *Strong encryption* is the name of the game. You will use the *GRUB payload*. | ||
6 | 25 | GRUB supports various security mechanisms that are not enabled by default. | GRUB supports various security mechanisms that are not enabled by default. |
7 | 26 | This page will tell you how to enable them, for the purpose of boot security, | This page will tell you how to enable them, for the purpose of boot security, |
8 | 27 | both detecting and attempting to prevent certain types of attack. | both detecting and attempting to prevent certain types of attack. |
9 | 28 | ||
29 | Please also expect to brick your machine at least once, because many of these | ||
30 | changes are highly invasive and may even require you to *modify source code*. | ||
10 | 31 | **Make sure you have an [external SPI programmer](../install/spi.md), for | **Make sure you have an [external SPI programmer](../install/spi.md), for |
11 | 32 | recovery purposes, just in case you brick your machine. The modifications | recovery purposes, just in case you brick your machine. The modifications |
12 | documented here are highly invasive and it would be easy to make mistakes.** | ||
33 | documented here are highly invasive. An external SPI programmer can be used | ||
34 | to restore the previous working state, should a brick occur.** | ||
35 | |||
36 | Libreboot's design philosophy is that the most non-technical user must be | ||
37 | catered to first, which means that certain security hardening steps are skipped | ||
38 | by default. With the steps documented here, you will be able to thwart many | ||
39 | types of physical attack on your machine. Many of the types of configurations | ||
40 | documented here are *unique*, and available only in Libreboot! (or otherwise | ||
41 | only *practical* in Libreboot) | ||
13 | 42 | ||
14 | 43 | Full disk encryption | Full disk encryption |
15 | ==================== | ||
44 | -------------------- | ||
16 | 45 | ||
17 | 46 | [Encrypted /boot with LUKS2 on argon2 key derivation is now | [Encrypted /boot with LUKS2 on argon2 key derivation is now |
18 | 47 | possible](../../news/argon2.md) - the work is based on that done by | possible](../../news/argon2.md) - the work is based on that done by |
... | ... | You are advised to do this *first*, because steps below depend on certain | |
33 | 62 | configuration changes to be made on your installed Linux distro. | configuration changes to be made on your installed Linux distro. |
34 | 63 | ||
35 | 64 | **Dependencies (do this first)** | **Dependencies (do this first)** |
36 | ============================= | ||
65 | -------------------------------- | ||
37 | 66 | ||
38 | 67 | **Please read this: [Modifying GRUB in CBFS](grub_cbfs.md)** | **Please read this: [Modifying GRUB in CBFS](grub_cbfs.md)** |
39 | 68 | ||
... | ... | which tells you what modifications to actually perform, whereas the guide | |
42 | 71 | linked above tells you how to apply your modifications for flashing.** | linked above tells you how to apply your modifications for flashing.** |
43 | 72 | ||
44 | 73 | Flash write protection | Flash write protection |
45 | ====================== | ||
74 | ---------------------- | ||
46 | 75 | ||
47 | 76 | Although not strictly related to GRUB, flash protection will prevent anyone | Although not strictly related to GRUB, flash protection will prevent anyone |
48 | 77 | except you from overwriting the flash without permission. This is important, | except you from overwriting the flash without permission. This is important, |
49 | 78 | because you don't want some malicious software running as root from overwriting | because you don't want some malicious software running as root from overwriting |
50 | 79 | your flash, thus removing any of the above protections. | your flash, thus removing any of the above protections. |
51 | 80 | ||
52 | Build-time write protect | ||
53 | --------------------------- | ||
81 | ### Build-time write protect | ||
54 | 82 | ||
55 | 83 | Let's assume your board is `x200_8mb`, do: | Let's assume your board is `x200_8mb`, do: |
56 | 84 | ||
... | ... | Anyway, when you're done, save the config and then build it from source in lbmk. | |
82 | 110 | ||
83 | 111 | See: [build from source](../build/) | See: [build from source](../build/) |
84 | 112 | ||
85 | IFD-based flash protection | ||
86 | -------------------------- | ||
113 | ### IFD-based flash protection | ||
87 | 114 | ||
88 | 115 | **NOTE: This CAN cause bricks on a lot of machines. You should use this with | **NOTE: This CAN cause bricks on a lot of machines. You should use this with |
89 | 116 | care. The FLILL and/or PRx based methods are more reliable - also SMM methods. | care. The FLILL and/or PRx based methods are more reliable - also SMM methods. |
... | ... | version matching the coreboot tree for your mainboard. | |
103 | 130 | Note that this only works for Intel-based systems that use an Intel Flash | Note that this only works for Intel-based systems that use an Intel Flash |
104 | 131 | Descriptor, which is actually most Intel systems that Libreboot supports. | Descriptor, which is actually most Intel systems that Libreboot supports. |
105 | 132 | ||
106 | Other facts | ||
107 | ----------- | ||
133 | ### Other facts | ||
108 | 134 | ||
109 | 135 | Strapping `HDA_SDO` or `HDA_DOCK_EN` requires physical access, because you have | Strapping `HDA_SDO` or `HDA_DOCK_EN` requires physical access, because you have |
110 | 136 | to short a pin on the HDA chip on the motherboard, or there will be a header | to short a pin on the HDA chip on the motherboard, or there will be a header |
... | ... | Enable `CONFIG_STRICT_DEVMEM` in your Linux kernel, or set `securelevel` above | |
121 | 147 | zero on your BSD setup (but BSD cannot be booted with GRUB very easily so | zero on your BSD setup (but BSD cannot be booted with GRUB very easily so |
122 | 148 | it's a moot point). | it's a moot point). |
123 | 149 | ||
124 | FLILL | ||
125 | ----- | ||
150 | ### FLILL | ||
126 | 151 | ||
127 | 152 | On Intel Flash Descriptor, you can insert up to four (4) commands on a list | On Intel Flash Descriptor, you can insert up to four (4) commands on a list |
128 | 153 | within, called *FLILL*; not yet documented, but any SPI command listed here | within, called *FLILL*; not yet documented, but any SPI command listed here |
... | ... | would no longer work during internal flash operations. For example, you could | |
130 | 155 | use it to disable certain erase/write commands. You could also use it to | use it to disable certain erase/write commands. You could also use it to |
131 | 156 | disable *reads*. | disable *reads*. |
132 | 157 | ||
133 | PRx registers | ||
134 | ------------- | ||
158 | ### PRx registers | ||
135 | 159 | ||
136 | 160 | Protected Range registers are available on Intel platforms, to disable flash | Protected Range registers are available on Intel platforms, to disable flash |
137 | 161 | writes. This is not yet documented, and it varies per platform. | writes. This is not yet documented, and it varies per platform. |
138 | 162 | ||
139 | GRUB Password | ||
140 | ============= | ||
163 | GRUB password | ||
164 | ------------- | ||
141 | 165 | ||
142 | 166 | The security of this setup depends on a good GRUB password as GPG signature | The security of this setup depends on a good GRUB password as GPG signature |
143 | 167 | checking can be disabled through the GRUB console with this command: | checking can be disabled through the GRUB console with this command: |
... | ... | GRUB will also ask for a username in addition to the password; the "root" user | |
175 | 199 | is specified above, but you can cahnge it to whatever you want. | is specified above, but you can cahnge it to whatever you want. |
176 | 200 | ||
177 | 201 | Unset superusers | Unset superusers |
178 | ================ | ||
202 | ---------------- | ||
179 | 203 | ||
180 | 204 | Find this line in `grub.cfg`: | Find this line in `grub.cfg`: |
181 | 205 | ||
... | ... | because `unset superusers` in fact disables passwordh authentication, so it's | |
190 | 214 | very important that you comment out this line. | very important that you comment out this line. |
191 | 215 | ||
192 | 216 | Disable the SeaBIOS menu | Disable the SeaBIOS menu |
193 | ==================== | ||
217 | ------------------------ | ||
194 | 218 | ||
195 | 219 | **Very important. Make sure you read this carefully.** | **Very important. Make sure you read this carefully.** |
196 | 220 | ||
... | ... | Release images with `seagrub` in the name already have this bootorder file, | |
218 | 242 | so you only need to disable the menu on these images. If you have the | so you only need to disable the menu on these images. If you have the |
219 | 243 | image with `seabios` in the name (instead of `seagrub`), you must do both. | image with `seabios` in the name (instead of `seagrub`), you must do both. |
220 | 244 | ||
221 | SeaBIOS option ROMs | ||
222 | ------------------- | ||
245 | ### SeaBIOS option ROMs | ||
223 | 246 | ||
224 | 247 | SeaBIOS will also still execute PCI option ROMs. Depending on your preference, | SeaBIOS will also still execute PCI option ROMs. Depending on your preference, |
225 | 248 | you may wish to disable this, but please note that this will break certain | you may wish to disable this, but please note that this will break certain |
... | ... | things like graphics cards. More information is available here: | |
229 | 252 | ||
230 | 253 | If you're using a graphics card, you *need* VGA option ROMs at least. | If you're using a graphics card, you *need* VGA option ROMs at least. |
231 | 254 | ||
232 | GRUBSEA | ||
233 | ------- | ||
255 | ### GRUBSEA | ||
234 | 256 | ||
235 | 257 | Another option is to make it so that GRUB is the primary payload on your board. | Another option is to make it so that GRUB is the primary payload on your board. |
236 | 258 | In this setup, SeaBIOS and U-Boot are still available. | In this setup, SeaBIOS and U-Boot are still available. |
... | ... | and disable the SeaBIOS menu, making SeaBIOS load only GRUB; SeaGRUB is useful | |
250 | 272 | because GRUB will piggyback off of the VGA setup done by SeaBIOS first. | because GRUB will piggyback off of the VGA setup done by SeaBIOS first. |
251 | 273 | ||
252 | 274 | GPG keys | GPG keys |
253 | ======== | ||
275 | -------- | ||
254 | 276 | ||
255 | 277 | First, generate a GPG keypair to use for signing. Option RSA (sign only) | First, generate a GPG keypair to use for signing. Option RSA (sign only) |
256 | 278 | is ok. | is ok. |
... | ... | into CBFS, using instructions already provided on the GRUB CBFS guide linked | |
292 | 314 | above, earlier on in this guide. | above, earlier on in this guide. |
293 | 315 | ||
294 | 316 | Enforce GPG check in GRUB | Enforce GPG check in GRUB |
295 | ========================= | ||
317 | ------------------------- | ||
296 | 318 | ||
297 | 319 | The following must be present in `grub.cfg`, but please note that the | The following must be present in `grub.cfg`, but please note that the |
298 | 320 | background image used by GRUB is in the memdisk by default, not CBFS, so you | background image used by GRUB is in the memdisk by default, not CBFS, so you |
... | ... | the GRUB CBFS guide that was also linked above, earlier on in the article | |
311 | 333 | you're currently reading. | you're currently reading. |
312 | 334 | ||
313 | 335 | Install the new image | Install the new image |
314 | ===================== | ||
336 | --------------------- | ||
315 | 337 | ||
316 | 338 | Now simply flash the new image, using | Now simply flash the new image, using |
317 | 339 | the [flashing instructions](../install/). | the [flashing instructions](../install/). |
... | ... | and the system is now unbootable, that's OK because you can use an | |
322 | 344 | external flasher; please | external flasher; please |
323 | 345 | read [external flashing instructions](../install/spi.md) | read [external flashing instructions](../install/spi.md) |
324 | 346 | ||
347 | Linux kernel hardening | ||
348 | ---------------------- | ||
349 | |||
350 | You may also wish to compile your own kernel, because distro kernels will always | ||
351 | have code in the same place, so attackers are more easily able to know exactly | ||
352 | where to attack your kernel (ROP-based attacks). | ||
353 | |||
354 | The Whonix/KickSecure Linux projects have guidance about Linux kernel | ||
355 | hardening: | ||
356 | |||
357 | * <https://www.kicksecure.com/wiki/System_Hardening_Checklist> | ||
358 | * <https://www.whonix.org/wiki/System_Hardening_Checklist> | ||
359 | * <https://www.kicksecure.com/wiki/Operating_System_Hardening> | ||
360 | |||
361 | There's info there about userspace too, but start with kernel first. Libreboot | ||
362 | is a boot firmware project, so Linux kernel hardening is beyond the scope of | ||
363 | the Libreboot project documentation, **for now**. | ||
364 | |||
365 | (for now, because Libreboot may in fact provide a Linux distro in the flash | ||
366 | at some point, and this page will definitely be updated when that happens) | ||
367 | |||
325 | 368 | References | References |
326 | ========== | ||
369 | ---------- | ||
327 | 370 | ||
328 | 371 | * [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) | * [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) |
329 | 372 | * [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) | * [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) |
File site/docs/linux/index.md changed (mode: 100644) (index bb17991..fc80616) | |||
1 | 1 | --- | --- |
2 | title: Linux guides | ||
2 | title: Install Linux on a Libreboot system | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Booting Linux from GRUB payload | ||
7 | ------------------------------- | ||
8 | |||
6 | 9 | NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM | NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM |
7 | chromebooks. For ARM targets, you should refer to u-boot documentation. | ||
10 | chromebooks. For ARM targets, you should refer | ||
11 | to [u-boot documentation](../uboot/) - separate [U-Boot x86 | ||
12 | documentation](../uboot/uboot-x86.md) is also available. | ||
8 | 13 | ||
9 | 14 | This page is useful for those who wish to use the GRUB GRUB payload directly. | This page is useful for those who wish to use the GRUB GRUB payload directly. |
10 | 15 | If you're using SeaBIOS, the boot process will work similarly to traditional | If you're using SeaBIOS, the boot process will work similarly to traditional |
... | ... | on <https://seabios.org/SeaBIOS> | |
14 | 19 | Linux is generally assumed, especially for Libreboot development, but Libreboot | Linux is generally assumed, especially for Libreboot development, but Libreboot |
15 | 20 | also works quite nicely with [BSD systems](../bsd/). | also works quite nicely with [BSD systems](../bsd/). |
16 | 21 | ||
17 | Useful links | ||
18 | ============ | ||
22 | ### Useful links | ||
19 | 23 | ||
20 | Refer to the following pages: | ||
24 | Refer to these pages, hosted by the Libreboot project: | ||
21 | 25 | ||
22 | 26 | * [How to Prepare and Boot a USB Installer in libreboot Systems](grub_boot_installer.md) | * [How to Prepare and Boot a USB Installer in libreboot Systems](grub_boot_installer.md) |
23 | 27 | * [Modifying the GRUB Configuration in libreboot Systems](grub_cbfs.md) | * [Modifying the GRUB Configuration in libreboot Systems](grub_cbfs.md) |
24 | 28 | * [How to Harden Your GRUB Configuration, for Security](grub_hardening.md) | * [How to Harden Your GRUB Configuration, for Security](grub_hardening.md) |
25 | 29 | ||
26 | NOTE ABOUT VGA MODES and GRUB | ||
27 | ============================= | ||
28 | |||
29 | Libreboot does not support switching VGA modes, when coreboot's libgfxinit is | ||
30 | used on Intel GPUs. Many distros will install GRUB, which Libreboot then finds | ||
31 | and executes, if running SeaBIOS payload; if using GRUB, just the distro's | ||
32 | grub.cfg file is loaded instead, by Libreboot's own GRUB in flash. | ||
33 | |||
34 | Libreboot GRUB boots in text mode or uses the coreboot framebuffer. Anyway, | ||
35 | set `GRUB_TERMINAL=console` in GRUB and you should be fine. This avoids GRUB, | ||
36 | the one provided by your distro, switching video modes. | ||
37 | |||
38 | In Debian for example (steps largely the same on other distros): | ||
39 | |||
40 | Edit `/etc/default/grub` as root, and uncomment or add the line: | ||
41 | |||
42 | GRUB_TERMINAL=console | ||
43 | |||
44 | Then still as root, do these commands: | ||
45 | |||
46 | export PATH="$PATH:/sbin" | ||
47 | update-grub | ||
48 | |||
49 | NOTE: `update-grub` is very much Debian-centric. Not all distros will have it. | ||
50 | On Arch-based distros for instance, you might do: | ||
51 | |||
52 | grub-mkconfig -o /boot/grub/grub.cfg | ||
53 | |||
54 | Now your distro's GRUB menu should work, when your distro's GRUB bootloader is | ||
55 | executed from Libreboot's SeaBIOS payload. | ||
30 | They will provide specific information; the information below pertains mostly | ||
31 | to troubleshooting, and there are some notes about Full Disk Encryption: | ||
56 | 32 | ||
57 | 33 | Encrypted /boot via LUKS2 with argon2 | Encrypted /boot via LUKS2 with argon2 |
58 | ======================================= | ||
34 | ------------------------------------- | ||
59 | 35 | ||
60 | 36 | Full encryption for basic LUKS2 (with PBKDF or argon2 key derivation) is | Full encryption for basic LUKS2 (with PBKDF or argon2 key derivation) is |
61 | 37 | supported in libreboot. Legacy LUKS1 is also supported. On *most* other | supported in libreboot. Legacy LUKS1 is also supported. On *most* other |
... | ... | At the time of the Libreboot 20231021 release, the GRUB upstream (on gnu.org) | |
103 | 79 | did not have these argon2 patches in its source tree, but Libreboot merges and | did not have these argon2 patches in its source tree, but Libreboot merges and |
104 | 80 | maintains them out of tree. | maintains them out of tree. |
105 | 81 | ||
106 | argon2id | ||
107 | -------- | ||
82 | ### argon2id | ||
108 | 83 | ||
109 | 84 | You should *specifically* use argon2id. Please ensure this, because some | You should *specifically* use argon2id. Please ensure this, because some |
110 | 85 | older LUKS2 setups defaulted to the weaker *argon2i*. This post by Matthew | older LUKS2 setups defaulted to the weaker *argon2i*. This post by Matthew |
... | ... | Garret contains information about that: | |
112 | 87 | ||
113 | 88 | <https://mjg59.dreamwidth.org/66429.html> | <https://mjg59.dreamwidth.org/66429.html> |
114 | 89 | ||
90 | Libreboot's GRUB Argon2id implementation was created by Patrick Steinhardt, | ||
91 | who adapted PHC's Argon2 implementation for use in GRUB; Ax33l later added it | ||
92 | to Arch Linux AUR for GRUB 2.06, and Nicholas Johnson rebased *that* for | ||
93 | GRUB 2.12 so that Libreboot could use it. | ||
94 | |||
115 | 95 | NOTE: You should also read the instructions about about `GRUB_TERMINAL`. | NOTE: You should also read the instructions about about `GRUB_TERMINAL`. |
116 | 96 | ||
97 | NOTE ABOUT VGA MODES and GRUB | ||
98 | ----------------------------- | ||
99 | |||
100 | Libreboot does not support switching VGA modes, when coreboot's libgfxinit is | ||
101 | used on Intel GPUs. Many distros will install GRUB, which Libreboot then finds | ||
102 | and executes, if running SeaBIOS payload; if using GRUB, just the distro's | ||
103 | grub.cfg file is loaded instead, by Libreboot's own GRUB in flash. | ||
104 | |||
105 | Libreboot GRUB boots in text mode or uses the coreboot framebuffer. Anyway, | ||
106 | set `GRUB_TERMINAL=console` in GRUB and you should be fine. This avoids GRUB, | ||
107 | the one provided by your distro, switching video modes. | ||
108 | |||
109 | In Debian for example (steps largely the same on other distros): | ||
110 | |||
111 | Edit `/etc/default/grub` as root, and uncomment or add the line: | ||
112 | |||
113 | GRUB_TERMINAL=console | ||
114 | |||
115 | Then still as root, do these commands: | ||
116 | |||
117 | export PATH="$PATH:/sbin" | ||
118 | update-grub | ||
119 | |||
120 | NOTE: `update-grub` is very much Debian-centric. Not all distros will have it. | ||
121 | On Arch-based distros for instance, you might do: | ||
122 | |||
123 | grub-mkconfig -o /boot/grub/grub.cfg | ||
124 | |||
125 | Now your distro's GRUB menu should work, when your distro's GRUB bootloader is | ||
126 | executed from Libreboot's SeaBIOS payload. | ||
127 | |||
117 | 128 | Rebooting system in case of freeze | Rebooting system in case of freeze |
118 | =================================== | ||
129 | ---------------------------------- | ||
119 | 130 | ||
120 | 131 | Linux kernel has a feature to do actions to the system any time, even | Linux kernel has a feature to do actions to the system any time, even |
121 | 132 | with it freezes, this is called a | with it freezes, this is called a |
... | ... | command line paramter. So append `sysrq_always_enabled=1` to your | |
133 | 144 | You can also run `# sysctl kernel.sysrq=1` to enable them. | You can also run `# sysctl kernel.sysrq=1` to enable them. |
134 | 145 | ||
135 | 146 | Fedora won't boot? | Fedora won't boot? |
136 | ================== | ||
147 | ------------------ | ||
137 | 148 | ||
138 | 149 | This may also apply to CentOS or Redhat. Chroot guide can be found on | This may also apply to CentOS or Redhat. Chroot guide can be found on |
139 | 150 | [fedora website](https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/#restoring-bootloader-using-live-disk) | [fedora website](https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/#restoring-bootloader-using-live-disk) |
140 | 151 | ||
141 | linux16 issue | ||
142 | ------------- | ||
152 | ### linux16 issue | ||
143 | 153 | ||
144 | 154 | Libreboot's default GRUB config sources fedora's grub config | Libreboot's default GRUB config sources fedora's grub config |
145 | 155 | `grub.cfg` (in `/boot/grub2/grub.cfg`), fedora by default makes use of the | `grub.cfg` (in `/boot/grub2/grub.cfg`), fedora by default makes use of the |
... | ... | Set the `sixteenbit` variable to an empty string, then run: | |
153 | 163 | ||
154 | 164 | grub2-mkconfig -o /boot/grub2/grub.cfg | grub2-mkconfig -o /boot/grub2/grub.cfg |
155 | 165 | ||
156 | BLS issue | ||
157 | --------- | ||
166 | ### BLS issue | ||
158 | 167 | ||
159 | 168 | With [newer versions of fedora](https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault), | With [newer versions of fedora](https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault), |
160 | 169 | scripts from grub package default to generating [BLS](https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/) | scripts from grub package default to generating [BLS](https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/) |
... | ... | to `/etc/default/grub` (or modify existing one if it already exists): | |
166 | 175 | Then generate `grub.cfg` with: | Then generate `grub.cfg` with: |
167 | 176 | ||
168 | 177 | grub2-mkconfig -o /boot/grub2/grub.cfg | grub2-mkconfig -o /boot/grub2/grub.cfg |
178 | |||
179 | These idiosyncrasies aside, Fedora is a great distro. It's well-tested with the | ||
180 | Libreboot build system, and it boots up just fine. |
File site/docs/maintain/index.md changed (mode: 100644) (index bbe4e00..05ecb62) | |||
1 | 1 | --- | --- |
2 | title: lbmk maintenance manual | ||
2 | title: LibreBoot MaKe (lbmk) build system design and maintenance manual | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) | ||
7 | now, as of 27 January 2024, which is a fork of flashrom. | ||
8 | The reason why was explained, in | ||
9 | the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | ||
6 | Open source BIOS/UEFI firmware | ||
7 | ------------------------------ | ||
8 | |||
9 | Libreboot is a [Free Software](https://writefreesoftware.org/learn) project, | ||
10 | replacing proprietary BIOS/UEFI firmware. It provides coreboot and a number | ||
11 | of *payloads* such as GRUB, U-Boot or SeaBIOS, which boot your operating system. | ||
12 | This document describes the very essence of Libreboot's design, how the project | ||
13 | functions and how releases are made. | ||
10 | 14 | ||
11 | 15 | In addition to this manual, you should also refer to [porting.md](porting.md) | In addition to this manual, you should also refer to [porting.md](porting.md) |
12 | 16 | and [testing.md](testing.md). | and [testing.md](testing.md). |
... | ... | and [testing.md](testing.md). | |
14 | 18 | Please also read about the [lbmk coding style and design](style.md). | Please also read about the [lbmk coding style and design](style.md). |
15 | 19 | ||
16 | 20 | Automated coreboot build system | Automated coreboot build system |
17 | =============================== | ||
21 | ------------------------------- | ||
18 | 22 | ||
19 | 23 | This document describes the entire Libreboot build system, its design philosophy | This document describes the entire Libreboot build system, its design philosophy |
20 | 24 | and how it's used to prepare Libreboot releases; it is provided as a *reference* | and how it's used to prepare Libreboot releases; it is provided as a *reference* |
... | ... | first, it will do so automatically. Therefore, you can run any part of lbmk | |
40 | 44 | on its own, and the entire design is modular. | on its own, and the entire design is modular. |
41 | 45 | ||
42 | 46 | Use Free Software when possible | Use Free Software when possible |
43 | =============================== | ||
47 | ------------------------------- | ||
44 | 48 | ||
45 | 49 | The coreboot software is nominally free, but occasionally requires an | The coreboot software is nominally free, but occasionally requires an |
46 | 50 | additional file or two from the vendor on a few systems. The libreboot | additional file or two from the vendor on a few systems. The libreboot |
... | ... | project *allows* them, only when they are absolutely required. | |
50 | 54 | the [freedom status page](../../freedom-status.md) provides additional details. | the [freedom status page](../../freedom-status.md) provides additional details. |
51 | 55 | ||
52 | 56 | Best practises for learning lbmk | Best practises for learning lbmk |
53 | ================================ | ||
57 | -------------------------------- | ||
54 | 58 | ||
55 | 59 | The follow sections will cover subdirectories, within lbmk. Contrary to what | The follow sections will cover subdirectories, within lbmk. Contrary to what |
56 | 60 | some may otherwise assume, it's best to learn about everything *except* scripts | some may otherwise assume, it's best to learn about everything *except* scripts |
... | ... | bottom-up; most documents take the latter approach, in other projects, but | |
68 | 72 | most people naturally want to learn how a specific thing works first, hence | most people naturally want to learn how a specific thing works first, hence |
69 | 73 | the approach taken here. | the approach taken here. |
70 | 74 | ||
71 | Don't be deceived by simplicity | ||
72 | ------------------------------- | ||
75 | ### Don't be deceived by simplicity | ||
73 | 76 | ||
74 | 77 | Libreboot's build system is powerful, and highly configurable, yet deceptively | Libreboot's build system is powerful, and highly configurable, yet deceptively |
75 | 78 | simple at the same time. Remember this rule, a rule that applies to *all* | simple at the same time. Remember this rule, a rule that applies to *all* |
... | ... | Many people will be shocked by how *small* Libreboot is, at its core. You will | |
80 | 83 | be surprised by just how much can be done with so little. Continue reading! | be surprised by just how much can be done with so little. Continue reading! |
81 | 84 | ||
82 | 85 | System requirements | System requirements |
83 | =================== | ||
86 | ------------------- | ||
84 | 87 | ||
85 | 88 | This concerns system requirements when *building* Libreboot. | This concerns system requirements when *building* Libreboot. |
86 | 89 | ||
87 | Operating system | ||
88 | ---------------- | ||
90 | ### Operating system | ||
89 | 91 | ||
90 | 92 | Any sensible Linux distribution will do. Libreboot's build system is regularly | Any sensible Linux distribution will do. Libreboot's build system is regularly |
91 | 93 | testing on all the major distros. Please do report bugs if you encounter | testing on all the major distros. Please do report bugs if you encounter |
... | ... | build dependencies for these distros. | |
104 | 106 | NOTE: **Linux** is assumed. BSD systems may work, for parts of the build system, | NOTE: **Linux** is assumed. BSD systems may work, for parts of the build system, |
105 | 107 | but BSD systems are currently not well-tested with lbmk. | but BSD systems are currently not well-tested with lbmk. |
106 | 108 | ||
107 | **Dependencies** | ||
108 | ---------------- | ||
109 | ### **Dependencies** | ||
109 | 110 | ||
110 | 111 | **Make sure you have dependencies installed!** | **Make sure you have dependencies installed!** |
111 | 112 | ||
112 | 113 | **The [main build guide](../build) will tell you how to install dependencies, | **The [main build guide](../build) will tell you how to install dependencies, |
113 | 114 | such as GNU toolchains and various libraries.** | such as GNU toolchains and various libraries.** |
114 | 115 | ||
115 | Host CPU | ||
116 | -------- | ||
116 | ### Host CPU | ||
117 | 117 | ||
118 | 118 | At least an Intel Core 2 Duo, though we recommend much faster CPUs if building | At least an Intel Core 2 Duo, though we recommend much faster CPUs if building |
119 | 119 | entire release archives, e.g. quad-core Haswell CPU or better. | entire release archives, e.g. quad-core Haswell CPU or better. |
... | ... | NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but | |
128 | 128 | MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds | MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds |
129 | 129 | are disabled when lbmk detects a 32-bit host CPU. | are disabled when lbmk detects a 32-bit host CPU. |
130 | 130 | ||
131 | Memory | ||
132 | ------ | ||
131 | ### Memory | ||
133 | 132 | ||
134 | 133 | At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended | At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended |
135 | 134 | if you're compiling an a quad-core CPU. | if you're compiling an a quad-core CPU. |
... | ... | For example, when you're building on a quad-core, do this prior to building: | |
140 | 139 | ||
141 | 140 | export XBMK_THREADS=4 | export XBMK_THREADS=4 |
142 | 141 | ||
143 | Disk space | ||
144 | ---------- | ||
142 | ### Disk space | ||
145 | 143 | ||
146 | 144 | About 20GB bare minimum, if only compiling for 1 board. The sources take up a | About 20GB bare minimum, if only compiling for 1 board. The sources take up a |
147 | 145 | lot of space. However, Libreboot is always expanding as it's developed. | lot of space. However, Libreboot is always expanding as it's developed. |
... | ... | fast NVMe (PCI-E) SSD if you can. | |
157 | 155 | project that Libreboot imports, such as coreboot.** | project that Libreboot imports, such as coreboot.** |
158 | 156 | ||
159 | 157 | Environmental variables | Environmental variables |
160 | ======================= | ||
158 | ----------------------- | ||
161 | 159 | ||
162 | XBMK\_THREADS | ||
163 | ------------- | ||
160 | ### XBMK\_THREADS | ||
164 | 161 | ||
165 | 162 | For example: | For example: |
166 | 163 | ||
... | ... | This would build on two threads, when running lbmk. It defaults to 1. | |
171 | 168 | Previous revisions of lbmk used `nproc` by default, but this was set to 1 | Previous revisions of lbmk used `nproc` by default, but this was set to 1 |
172 | 169 | instead, because nproc is not available on every operating system. | instead, because nproc is not available on every operating system. |
173 | 170 | ||
174 | XBMK\_RELEASE | ||
175 | ------------- | ||
171 | ### XBMK\_RELEASE | ||
176 | 172 | ||
177 | 173 | If set to `y`, it signals to `script/roms` that a release is being built, | If set to `y`, it signals to `script/roms` that a release is being built, |
178 | 174 | and it will honour `release="n"` in target.cfg files. You could also set this | and it will honour `release="n"` in target.cfg files. You could also set this |
... | ... | behaves running it in release mode. Do this if you want to: | |
182 | 178 | export XBMK_RELEASE=y | export XBMK_RELEASE=y |
183 | 179 | ||
184 | 180 | Projects/files downloaded/generated by lbmk | Projects/files downloaded/generated by lbmk |
185 | =========================================== | ||
181 | -------------------------------------------- | ||
186 | 182 | ||
187 | 183 | The following sections will describe files and directories that are not | The following sections will describe files and directories that are not |
188 | 184 | included in `lbmk.git`, but *are* created by running various lbmk commands; | included in `lbmk.git`, but *are* created by running various lbmk commands; |
... | ... | many of these will also be provided, pre-generated, under release archives. | |
191 | 187 | Some of these are *downloaded* by Libreboot's build system, automatically, while | Some of these are *downloaded* by Libreboot's build system, automatically, while |
192 | 188 | others are created during the build process based on these downloaded programs. | others are created during the build process based on these downloaded programs. |
193 | 189 | ||
194 | bin/ | ||
195 | --------------- | ||
190 | ### bin/ | ||
196 | 191 | ||
197 | 192 | 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 |
198 | 193 | right arguments: | right arguments: |
... | ... | now only puts coreboot images in `bin/`, with payloads included. | |
216 | 211 | If you still have `elf/` coreboot images in your lbmk tree, please do not | If you still have `elf/` coreboot images in your lbmk tree, please do not |
217 | 212 | use them (and you may aswell delete them). | use them (and you may aswell delete them). |
218 | 213 | ||
219 | cache/ | ||
220 | --------------- | ||
214 | ### cache/ | ||
221 | 215 | ||
222 | 216 | Certain files are cached here automatically, by lbmk. The user need not touch | Certain files are cached here automatically, by lbmk. The user need not touch |
223 | 217 | these files. | these files. |
224 | 218 | ||
225 | cache/app | ||
226 | -------------- | ||
219 | ### cache/app/ | ||
227 | 220 | ||
228 | 221 | When vendor updates are extracted, they go here, which is then processed to | When vendor updates are extracted, they go here, which is then processed to |
229 | 222 | find individual files for use in coreboot images (e.g. KBC1126 EC firmware). | find individual files for use in coreboot images (e.g. KBC1126 EC firmware). |
... | ... | find individual files for use in coreboot images (e.g. KBC1126 EC firmware). | |
231 | 224 | This directory is constantly over-written, so it's essentially another temporary | This directory is constantly over-written, so it's essentially another temporary |
232 | 225 | directory used by the build system. | directory used by the build system. |
233 | 226 | ||
234 | cache/file/ | ||
235 | -------------- | ||
227 | ### cache/file/ | ||
236 | 228 | ||
237 | 229 | Files that are downloaded are hashed, and the cached version of the file | Files that are downloaded are hashed, and the cached version of the file |
238 | 230 | is stored there, named as the SHA512 checksum. This is used for vendor file | is stored there, named as the SHA512 checksum. This is used for vendor file |
... | ... | files relative to the directory locations for those repositories, but subfiles | |
246 | 238 | are not downloaded to the *cached git repository*, only the work directory used | are not downloaded to the *cached git repository*, only the work directory used |
247 | 239 | for building in lbmk. | for building in lbmk. |
248 | 240 | ||
249 | cache/hash | ||
250 | --------------- | ||
241 | ### cache/hash/ | ||
251 | 242 | ||
252 | 243 | When lbmk is handling any project, it sorts a list of files under `config/` | When lbmk is handling any project, it sorts a list of files under `config/` |
253 | 244 | including `config/project` (or `config/project/TREE`) and `config/data/project`. | including `config/project` (or `config/project/TREE`) and `config/data/project`. |
... | ... | If the currently stored hash differs from what's calculated, it means that | |
260 | 251 | the project has changed, and the source directories plus builds are deleted. | the project has changed, and the source directories plus builds are deleted. |
261 | 252 | The project source is then re-prepared and re-build. | The project source is then re-prepared and re-build. |
262 | 253 | ||
263 | cache/repo | ||
264 | -------------- | ||
254 | ### cache/repo/ | ||
265 | 255 | ||
266 | 256 | Git repositories are cached here. This avoids wasting bandwidth, when downloading | Git repositories are cached here. This avoids wasting bandwidth, when downloading |
267 | 257 | multiple repositories. **Git submodules are also cached here!** | multiple repositories. **Git submodules are also cached here!** |
268 | 258 | ||
269 | ec/ | ||
270 | --------------- | ||
259 | ### ec/ | ||
271 | 260 | ||
272 | 261 | KBC1126 EC firmware goes here, required on HP EliteBook laptops. These images | KBC1126 EC firmware goes here, required on HP EliteBook laptops. These images |
273 | 262 | are inserted into those coreboot images, under `elf/` *and* `bin/`. | are inserted into those coreboot images, under `elf/` *and* `bin/`. |
274 | 263 | ||
275 | elf/ | ||
276 | --------------- | ||
264 | ### elf/ | ||
277 | 265 | ||
278 | 266 | **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 |
279 | 267 | under `bin/` instead! - In modern lbmk, only the ones under `bin/` are ever | under `bin/` instead! - In modern lbmk, only the ones under `bin/` are ever |
... | ... | As of Libreboot 20240612, the `elf/` directory must be used by default for all | |
308 | 296 | builds, in an effort to make exclusive use of *out-of-source builds*. As such, | builds, in an effort to make exclusive use of *out-of-source builds*. As such, |
309 | 297 | the `cbutils` directory is no longer used. | the `cbutils` directory is no longer used. |
310 | 298 | ||
311 | mrc/ | ||
312 | --------------- | ||
299 | ### mrc/ | ||
313 | 300 | ||
314 | 301 | Intel System Agent downloaded at build time for HP EliteBook 820 G2. | Intel System Agent downloaded at build time for HP EliteBook 820 G2. |
315 | 302 | ||
316 | 303 | The *Haswell* MRC file is no longer downloaded here, because Haswell machines | The *Haswell* MRC file is no longer downloaded here, because Haswell machines |
317 | 304 | now use native raminit *exclusively*; only Broadwell uses MRC, at present. | now use native raminit *exclusively*; only Broadwell uses MRC, at present. |
318 | 305 | ||
319 | pciroms/ | ||
320 | --------------- | ||
306 | ### pciroms/ | ||
321 | 307 | ||
322 | 308 | PCI Option ROMs, currently used only for the VGA ROM on models of Dell Latitude | PCI Option ROMs, currently used only for the VGA ROM on models of Dell Latitude |
323 | 309 | E6400 containing an Nvidia GPU; it provides video initialisation, where coreboot | E6400 containing an Nvidia GPU; it provides video initialisation, where coreboot |
324 | 310 | currently only initialises Intel GPUs natively, on Libreboot systems. | currently only initialises Intel GPUs natively, on Libreboot systems. |
325 | 311 | ||
326 | release/ | ||
327 | --------------- | ||
312 | ### release/ | ||
328 | 313 | ||
329 | 314 | The script at `build` create tarballs in here, which | The script at `build` create tarballs in here, which |
330 | 315 | constitute regular Libreboot releases. It is meticulously maintained, as per | constitute regular Libreboot releases. It is meticulously maintained, as per |
... | ... | Or with a custom directory: | |
356 | 341 | 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. |
357 | 342 | This is used to create the version number for a given release. | This is used to create the version number for a given release. |
358 | 343 | ||
359 | src/ | ||
360 | ---- | ||
344 | ### src/ | ||
361 | 345 | ||
362 | 346 | Third-party source trees are downloaded into this directory, by lbmk. | Third-party source trees are downloaded into this directory, by lbmk. |
363 | 347 | ||
364 | src/bios\_extract/ | ||
365 | --------------- | ||
348 | ### src/bios\_extract/ | ||
366 | 349 | ||
367 | 350 | Used by the vendor file handler scripts. The upstream that we use is here: | Used by the vendor file handler scripts. The upstream that we use is here: |
368 | 351 | <https://review.coreboot.org/bios_extract> | <https://review.coreboot.org/bios_extract> |
... | ... | The `dell_inspiron_1100_unpacker.py` script is used here, to extract from Dell | |
371 | 354 | BIOS updates, to get at the VGA ROM for Nvidia GPU on certain models of Dell | BIOS updates, to get at the VGA ROM for Nvidia GPU on certain models of Dell |
372 | 355 | Latitude E6400. | Latitude E6400. |
373 | 356 | ||
374 | src/biosutilities/ | ||
375 | --------------- | ||
357 | ### src/biosutilities/ | ||
376 | 358 | ||
377 | 359 | Used by the vendor file handler scripts. The upstream that we use is here: | Used by the vendor file handler scripts. The upstream that we use is here: |
378 | 360 | <https://github.com/platomav/BIOSUtilities> | <https://github.com/platomav/BIOSUtilities> |
... | ... | Used by the vendor file handler scripts. The upstream that we use is here: | |
380 | 362 | Specifically: the pfs extract utility from this is used on Dell vendor updates, | Specifically: the pfs extract utility from this is used on Dell vendor updates, |
381 | 363 | to extract SCH5545 EC (Environment Control) firmware. | to extract SCH5545 EC (Environment Control) firmware. |
382 | 364 | ||
383 | src/coreboot/ | ||
384 | --------------- | ||
365 | ### src/coreboot/ | ||
385 | 366 | ||
386 | 367 | Please also visit: <https://coreboot.org/> | Please also visit: <https://coreboot.org/> |
387 | 368 | ||
... | ... | This may be less efficient on disk usage, but it simplifies the logic greatly. | |
400 | 381 | Coreboot also uses its own toolchain called *crossgcc*, and crossgcc is in fact | Coreboot also uses its own toolchain called *crossgcc*, and crossgcc is in fact |
401 | 382 | compiled *per tree* in Libreboot. | compiled *per tree* in Libreboot. |
402 | 383 | ||
403 | src/deguard/ | ||
404 | ------------ | ||
384 | ### src/deguard/ | ||
405 | 385 | ||
406 | 386 | Mate Kukri's utility that disables the Intel Boot Guard on Intel MEv11-based | Mate Kukri's utility that disables the Intel Boot Guard on Intel MEv11-based |
407 | 387 | PCH. More info available on the [deguard page](../install/deguard.md). | PCH. More info available on the [deguard page](../install/deguard.md). |
... | ... | out and replaced by deguard, with one specific to the target machine. More | |
426 | 406 | information is available on the deguard page, and in the deguard README, | information is available on the deguard page, and in the deguard README, |
427 | 407 | which when downloading in lbmk in the `src/deguard/` directory. | which when downloading in lbmk in the `src/deguard/` directory. |
428 | 408 | ||
429 | src/flashprog/ | ||
430 | --------------- | ||
409 | ### src/flashprog/ | ||
431 | 410 | ||
432 | 411 | Please also visit: <https://flashprog.org/> | Please also visit: <https://flashprog.org/> |
433 | 412 | ||
434 | 413 | Although currently unused by any part of lbmk, we provide flashprog for the | Although currently unused by any part of lbmk, we provide flashprog for the |
435 | convenience of users, and this is copied to release archives. Flashrom is the | ||
414 | convenience of users, and this is copied to release archives. Flashprog is the | ||
436 | 415 | 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 |
437 | 416 | coreboot firmware. | coreboot firmware. |
438 | 417 | ||
439 | src/gpio-scripts | ||
440 | ---------------- | ||
418 | ### src/gpio-scripts | ||
441 | 419 | ||
442 | 420 | This is a fork of the original gpio-scripts. The fork is maintained by Riku | This is a fork of the original gpio-scripts. The fork is maintained by Riku |
443 | 421 | Viitanen, based on code written by Angel Pons (author of the Haswell native | Viitanen, based on code written by Angel Pons (author of the Haswell native |
... | ... | machines, when porting new boards to coreboot. | |
448 | 426 | NOTE: Not included in Libreboot yet, but `intelp2m` is used instead for this | NOTE: Not included in Libreboot yet, but `intelp2m` is used instead for this |
449 | 427 | purpose, on much newer Intel systems (from around Skylake era or later). | purpose, on much newer Intel systems (from around Skylake era or later). |
450 | 428 | ||
451 | src/grub/TREE | ||
452 | --------------- | ||
429 | ### src/grub/TREE | ||
453 | 430 | ||
454 | 431 | Please also visit: <https://www.gnu.org/software/grub/> | Please also visit: <https://www.gnu.org/software/grub/> |
455 | 432 | ||
... | ... | tree contains NVMe SSD support but not xHCI support. The `default` tree contains | |
482 | 459 | no NVMe or xHCI support. All trees otherwise have the same fixes on top of | no NVMe or xHCI support. All trees otherwise have the same fixes on top of |
483 | 460 | upstream GRUB, e.g. fix for Dell Latitude keyboard controllers. | upstream GRUB, e.g. fix for Dell Latitude keyboard controllers. |
484 | 461 | ||
485 | src/int/ | ||
486 | -------- | ||
462 | ### src/int/ | ||
487 | 463 | ||
488 | 464 | Riku Viitanen wrote this tool for debugging, when implementing MXM option ROM | Riku Viitanen wrote this tool for debugging, when implementing MXM option ROM |
489 | 465 | support in coreboot and SeaBIOS, for the HP EliteBook 8560w. | support in coreboot and SeaBIOS, for the HP EliteBook 8560w. |
490 | 466 | ||
491 | src/memtest86plus/ | ||
492 | --------------- | ||
467 | ### src/memtest86plus/ | ||
493 | 468 | ||
494 | 469 | Please also visit: <https://www.memtest.org/> | Please also visit: <https://www.memtest.org/> |
495 | 470 | ||
496 | 471 | This is provided inside ROM images, as a payload executed from main GRUB or | This is provided inside ROM images, as a payload executed from main GRUB or |
497 | 472 | SeaBIOS payload. It checks for corrupted memory. | SeaBIOS payload. It checks for corrupted memory. |
498 | 473 | ||
499 | src/mxmdump/ | ||
500 | ------------ | ||
474 | ### src/mxmdump/ | ||
501 | 475 | ||
502 | 476 | Riku Viitanen wrote this utility, for dumping the MXM config on graphics cards | Riku Viitanen wrote this utility, for dumping the MXM config on graphics cards |
503 | 477 | that use it. The HP EliteBook 8560w uses these cards, and normally you would | that use it. The HP EliteBook 8560w uses these cards, and normally you would |
... | ... | SeaBIOS. If the MXM data is not handled, the VGA option ROM (when executed) | |
510 | 484 | will often complain and refuse to boot; some of them can be hacked to bypass | will often complain and refuse to boot; some of them can be hacked to bypass |
511 | 485 | this fact, but such hacks are no longer required because of Riku's tool. | this fact, but such hacks are no longer required because of Riku's tool. |
512 | 486 | ||
513 | src/seabios/ | ||
514 | --------------- | ||
487 | ### src/seabios/ | ||
515 | 488 | ||
516 | 489 | Please also visit: <https://www.seabios.org/SeaBIOS> | Please also visit: <https://www.seabios.org/SeaBIOS> |
517 | 490 | ||
... | ... | particular, the BSD bootloaders can be executed from SeaBIOS. | |
523 | 496 | This is provided as a coreboot payload, either as first payload or it can be | This is provided as a coreboot payload, either as first payload or it can be |
524 | 497 | executed from GRUB (if GRUB is the main payload, on a given target). | executed from GRUB (if GRUB is the main payload, on a given target). |
525 | 498 | ||
526 | src/u-boot/ | ||
527 | --------------- | ||
499 | ### src/u-boot/ | ||
528 | 500 | ||
529 | 501 | Please also visit: <https://www.denx.de/project/u-boot/> | Please also visit: <https://www.denx.de/project/u-boot/> |
530 | 502 | ||
... | ... | More information can be found on the [U-Boot x86 page](../uboot/uboot-x86.md); | |
541 | 513 | it is available as an alternative to the traditional SeaBIOS and GRUB payloads, | it is available as an alternative to the traditional SeaBIOS and GRUB payloads, |
542 | 514 | and it can successfully boot UEFI applications on x86 Libreboot systems. | and it can successfully boot UEFI applications on x86 Libreboot systems. |
543 | 515 | ||
544 | src/uefitool/ | ||
545 | --------------- | ||
516 | ### src/uefitool/ | ||
546 | 517 | ||
547 | 518 | Please also visit: <https://github.com/LongSoft/UEFITool> | Please also visit: <https://github.com/LongSoft/UEFITool> |
548 | 519 | ||
... | ... | firmware (used for fan control on Dell Precision T1650). | |
553 | 524 | This has also been modified to build reliably on non-glibc-based systems e.g. | This has also been modified to build reliably on non-glibc-based systems e.g. |
554 | 525 | Alpine Linux, which uses musl libc. | Alpine Linux, which uses musl libc. |
555 | 526 | ||
556 | src/pcsx-redux | ||
557 | ---------------- | ||
527 | ### src/pcsx-redux/ | ||
558 | 528 | ||
559 | 529 | PCSX-Redux is a Sony Playstation (PS1/PSX) emulator, but Libreboot only uses | PCSX-Redux is a Sony Playstation (PS1/PSX) emulator, but Libreboot only uses |
560 | 530 | one part from it: the Open BIOS. This is used by Libreboot to provide an | one part from it: the Open BIOS. This is used by Libreboot to provide an |
... | ... | More information available on the [PlayStation page](../install/playstation.md). | |
565 | 535 | This is automatically compiled by the main build script, and the resulting | This is automatically compiled by the main build script, and the resulting |
566 | 536 | BIOS image is provided in Libreboot release archives. | BIOS image is provided in Libreboot release archives. |
567 | 537 | ||
568 | src/pico-serprog | ||
569 | --------------------------- | ||
538 | ### src/pico-serprog/ | ||
570 | 539 | ||
571 | 540 | Used by lbmk, to build firmware for serprog-based SPI flashers with RP2040 SoC. | Used by lbmk, to build firmware for serprog-based SPI flashers with RP2040 SoC. |
572 | 541 | Alongside this, `util-fw/rp2040/pico-sdk` is imported which is required for | Alongside this, `util-fw/rp2040/pico-sdk` is imported which is required for |
... | ... | Please visit these pages: | |
577 | 546 | * <https://github.com/raspberrypi/pico-sdk> | * <https://github.com/raspberrypi/pico-sdk> |
578 | 547 | * <https://codeberg.org/libreboot/pico-serprog> | * <https://codeberg.org/libreboot/pico-serprog> |
579 | 548 | ||
580 | src/stm32-vserprog | ||
581 | ---------------------- | ||
549 | ### src/stm32-vserprog/ | ||
582 | 550 | ||
583 | 551 | Used by lbmk, to build firmware for serprog-based SPI flashers with STM32 MCU. | Used by lbmk, to build firmware for serprog-based SPI flashers with STM32 MCU. |
584 | 552 | Alongside this, `libopencm3` is imported which is required for building it. | Alongside this, `libopencm3` is imported which is required for building it. |
... | ... | Before moving onto configurations, we will now cover *utilities* provided by | |
593 | 561 | Libreboot itself (included within lbmk, rather than being downloaded like the | Libreboot itself (included within lbmk, rather than being downloaded like the |
594 | 562 | third party projects listed above): | third party projects listed above): |
595 | 563 | ||
596 | tmp/ | ||
597 | --------------- | ||
564 | ### tmp/ | ||
598 | 565 | ||
599 | 566 | The `TMPDIR` environmental variable is set by lbmk, to a location under `/tmp`, | The `TMPDIR` environmental variable is set by lbmk, to a location under `/tmp`, |
600 | 567 | but some users may have `/tmp` mounted as a *tmpfs* (file system in RAM), and | but some users may have `/tmp` mounted as a *tmpfs* (file system in RAM), and |
... | ... | may not have much RAM. | |
603 | 570 | Where large files (or a large number of files) are handled by lbmk on a | Where large files (or a large number of files) are handled by lbmk on a |
604 | 571 | temporary basis, this `tmp/` directory is created and then used. | temporary basis, this `tmp/` directory is created and then used. |
605 | 572 | ||
606 | vendorfiles/ | ||
607 | --------------- | ||
573 | ### vendorfiles/ | ||
608 | 574 | ||
609 | 575 | Used by the vendor file handler scripts, referenced in certain coreboot configs. | Used by the vendor file handler scripts, referenced in certain coreboot configs. |
610 | 576 | ||
... | ... | here; not all such files are downloaded here however, as some are handled under | |
613 | 579 | separate directories. | separate directories. |
614 | 580 | ||
615 | 581 | util/ | util/ |
616 | =============== | ||
582 | ----- | ||
617 | 583 | ||
618 | 584 | If a codebase is not frequently used by Libreboot, is actively developed (making | If a codebase is not frequently used by Libreboot, is actively developed (making |
619 | 585 | it not viable to maintain in Libreboot) or the codebase is very large, we would | it not viable to maintain in Libreboot) or the codebase is very large, we would |
... | ... | where the intention is that `lbmk.git` itself should be small and efficient. | |
623 | 589 | Where appropriate, and where the code is small enough, or it is otherwise deemed | Where appropriate, and where the code is small enough, or it is otherwise deemed |
624 | 590 | desirable, `lbmk.git` provides a few utilities as part of itself, namely: | desirable, `lbmk.git` provides a few utilities as part of itself, namely: |
625 | 591 | ||
626 | util/dell-flash-unlock/ | ||
627 | --------------- | ||
592 | ### util/dell-flash-unlock/ | ||
628 | 593 | ||
629 | 594 | This program, written by Nicholas Chin, unlocks the boot flash on Dell Latitude | This program, written by Nicholas Chin, unlocks the boot flash on Dell Latitude |
630 | 595 | E6400; it permits internal flashing, from factory firmware to Libreboot, so that | E6400; it permits internal flashing, from factory firmware to Libreboot, so that |
... | ... | the user need not disassemble and flash externally. | |
633 | 598 | It also supports several other Dell laptops, with similar ECs. Check the | It also supports several other Dell laptops, with similar ECs. Check the |
634 | 599 | README file included in this directory, for more information. | README file included in this directory, for more information. |
635 | 600 | ||
636 | util/me7\_update\_parser/ | ||
637 | --------------- | ||
601 | ### util/me7\_update\_parser/ | ||
638 | 602 | ||
639 | 603 | This is a special fork of `me_cleaner`, specifically for parsing and neutering | This is a special fork of `me_cleaner`, specifically for parsing and neutering |
640 | 604 | Intel ME images provided by Lenovo for ThinkPad X220 and other Lenovo | Intel ME images provided by Lenovo for ThinkPad X220 and other Lenovo |
... | ... | auto-neuters Intel ME images, during build, so that the user does not have to | |
650 | 614 | manually extract such images from dumps of the original vendor firmware (in | manually extract such images from dumps of the original vendor firmware (in |
651 | 615 | the flash) on a given machine. | the flash) on a given machine. |
652 | 616 | ||
653 | util/nvmutil/ | ||
654 | --------------- | ||
617 | ### util/nvmutil/ | ||
655 | 618 | ||
656 | 619 | The `nvmutil` software allows you to set the MAC address on Intel GbE NVM | The `nvmutil` software allows you to set the MAC address on Intel GbE NVM |
657 | 620 | files. It also allows you to set *random* MAC addresses, in addition to | files. It also allows you to set *random* MAC addresses, in addition to |
... | ... | about here: | |
662 | 625 | ||
663 | 626 | [nvmutil manual](../install/nvmutil.md) | [nvmutil manual](../install/nvmutil.md) |
664 | 627 | ||
665 | util/spkmodem\_recv/ | ||
666 | --------------- | ||
628 | ### util/spkmodem\_recv/ | ||
667 | 629 | ||
668 | 630 | Libreboot imported this from coreboot, who is turn imported it from GRUB with | Libreboot imported this from coreboot, who is turn imported it from GRUB with |
669 | 631 | little to no modification. | little to no modification. |
... | ... | do this. Other improvemnts include: | |
700 | 662 | by lbmk: | by lbmk: |
701 | 663 | ||
702 | 664 | config/ | config/ |
703 | ======= | ||
665 | ------- | ||
704 | 666 | ||
705 | 667 | This directory contains configuration files, used by the Libreboot build | This directory contains configuration files, used by the Libreboot build |
706 | 668 | system. These next sections will cover specific configuration files. | system. These next sections will cover specific configuration files. |
707 | 669 | ||
708 | config/PROJECT\*/nuke.list | ||
709 | -------------------------- | ||
670 | ### config/PROJECT\*/nuke.list | ||
710 | 671 | ||
711 | 672 | The script `include/git.sh` handles deletion of certain files, for downloaded | The script `include/git.sh` handles deletion of certain files, for downloaded |
712 | 673 | projects, based on a `nuke.list` file that can (for single-tree projects) be | projects, based on a `nuke.list` file that can (for single-tree projects) be |
... | ... | foo/bar.txt | |
724 | 685 | Ditto `src/flashprog/`, if you wanted to delete a file from in there, as one | Ditto `src/flashprog/`, if you wanted to delete a file from in there, as one |
725 | 686 | other example. Deletions occur when the source tree is created. | other example. Deletions occur when the source tree is created. |
726 | 687 | ||
727 | config/vendor/ | ||
728 | --------------- | ||
688 | ### config/vendor/ | ||
729 | 689 | ||
730 | 690 | 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 |
731 | 691 | feasible, backup URLs are also provided. SHA512 checksums are defined, so that | feasible, backup URLs are also provided. SHA512 checksums are defined, so that |
... | ... | installing Libreboot or any other spin of coreboot. | |
741 | 701 | This file is also used to define the VGA ROM, on Nvidia models of Dell Latitude | This file is also used to define the VGA ROM, on Nvidia models of Dell Latitude |
742 | 702 | E6400. | E6400. |
743 | 703 | ||
744 | config/coreboot | ||
745 | --------------- | ||
704 | ### config/coreboot/ | ||
746 | 705 | ||
747 | ### config/coreboot/BOARDNAME/ | ||
706 | #### config/coreboot/BOARDNAME/ | ||
748 | 707 | ||
749 | 708 | 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 |
750 | 709 | that do not define defconfigs also exist here; for example, the `default` | that do not define defconfigs also exist here; for example, the `default` |
... | ... | the vendor scripts, for adding or removing certain vendor firmware (for example, | |
759 | 718 | a config will define where `me.bin` is located, and if it doesn't exist, the | a config will define where `me.bin` is located, and if it doesn't exist, the |
760 | 719 | vendor scripts will look up that file and download/process it with `me_cleaner`). | vendor scripts will look up that file and download/process it with `me_cleaner`). |
761 | 720 | ||
762 | ### config/coreboot/BOARDNAME/patches/ | ||
721 | #### config/coreboot/BOARDNAME/patches/ | ||
763 | 722 | ||
764 | 723 | For any given coreboot tree, patches with the `patch` file extension are placed | For any given coreboot tree, patches with the `patch` file extension are placed |
765 | 724 | here, alphanumerically in the order that they should be applied. | here, alphanumerically in the order that they should be applied. |
766 | 725 | ||
767 | 726 | These patches are then so applied, when lbmk downloads the given source tree. | These patches are then so applied, when lbmk downloads the given source tree. |
768 | 727 | ||
769 | ### config/coreboot/BOARDNAME/target.cfg | ||
728 | #### config/coreboot/BOARDNAME/target.cfg | ||
770 | 729 | ||
771 | 730 | This file can contain several configuration lines, each being a string, such | This file can contain several configuration lines, each being a string, such |
772 | 731 | as: | as: |
... | ... | by this variable, to also be present. | |
876 | 835 | The `grubtree` option specifies which GRUB tree to use. If unset, it defers to | The `grubtree` option specifies which GRUB tree to use. If unset, it defers to |
877 | 836 | the `default` GRUB tree. | the `default` GRUB tree. |
878 | 837 | ||
879 | ### config/coreboot/BOARDNAME/config/ | ||
838 | #### config/coreboot/BOARDNAME/config/ | ||
880 | 839 | ||
881 | 840 | Files in this directory are *coreboot* configuration files. | Files in this directory are *coreboot* configuration files. |
882 | 841 | ||
... | ... | Even if your board doesn't actually use `libgfxinit`, the config for it should | |
954 | 913 | still be named as such. From a user's perspective, it really makes no | still be named as such. From a user's perspective, it really makes no |
955 | 914 | difference. | difference. |
956 | 915 | ||
957 | config/dependencies/ | ||
958 | --------------- | ||
916 | ### config/dependencies/ | ||
959 | 917 | ||
960 | 918 | 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 |
961 | 919 | referenced when running: | referenced when running: |
... | ... | These files define a list of packages, and the correct package manager command | |
966 | 924 | 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 |
967 | 925 | are required for compiling Libreboot from source code. | are required for compiling Libreboot from source code. |
968 | 926 | ||
969 | config/git/ | ||
970 | --------------- | ||
927 | ### config/git/ | ||
971 | 928 | ||
972 | 929 | Configuration related to third-party Git repositories, that Libreboot makes | Configuration related to third-party Git repositories, that Libreboot makes |
973 | 930 | use of. | use of. |
... | ... | of their own; for example, `config/grub/` exists. | |
982 | 939 | Multiple files exist here, and they are *concatenated* in a temporary file by | Multiple files exist here, and they are *concatenated* in a temporary file by |
983 | 940 | lbmk, which is then scanned to find information about projects. | lbmk, which is then scanned to find information about projects. |
984 | 941 | ||
985 | config/data/PROJECT/mkhelper.cfg | ||
986 | -------------------------------- | ||
942 | ### config/data/PROJECT/mkhelper.cfg | ||
987 | 943 | ||
988 | 944 | These `mkhelper.cfg` files define common configuration that can be supplied | These `mkhelper.cfg` files define common configuration that can be supplied |
989 | 945 | for any single- or multi-tree project. Arguments available are as follows: | for any single- or multi-tree project. Arguments available are as follows: |
... | ... | In the simplest of terms, you may regard mkhelpers as *plugins*, of a sort. | |
1028 | 984 | They simply extend the core functionality of the build system, in a way that | They simply extend the core functionality of the build system, in a way that |
1029 | 985 | can differ flexibly between projects. | can differ flexibly between projects. |
1030 | 986 | ||
1031 | GRUB config | ||
1032 | --------------- | ||
987 | ### GRUB config | ||
1033 | 988 | ||
1034 | ### config/data/grub/background | ||
989 | #### config/data/grub/background/ | ||
1035 | 990 | ||
1036 | 991 | Splash screen images applied duing startup when using the GRUB payload. | Splash screen images applied duing startup when using the GRUB payload. |
1037 | 992 | ||
1038 | ### config/data/grub/background/background1024x768.png | ||
993 | #### config/data/grub/background/background1024x768.png | ||
1039 | 994 | ||
1040 | 995 | Used on ThinkPad X60 and T60. | Used on ThinkPad X60 and T60. |
1041 | 996 | ||
1042 | ### config/data/grub/background/background1280x800.png | ||
997 | #### config/data/grub/background/background1280x800.png | ||
1043 | 998 | ||
1044 | 999 | Used on all other machines, besides X60 and T60 thinkpads. | Used on all other machines, besides X60 and T60 thinkpads. |
1045 | 1000 | ||
... | ... | example, `config/coreboot/x60/target.cfg` specifies this: | |
1049 | 1004 | ||
1050 | 1005 | grub_background="background1024x768.png" | grub_background="background1024x768.png" |
1051 | 1006 | ||
1052 | ### config/data/grub/background/COPYING | ||
1007 | #### config/data/grub/background/COPYING | ||
1053 | 1008 | ||
1054 | 1009 | Licensing info for GRUB bootsplash images. | Licensing info for GRUB bootsplash images. |
1055 | 1010 | ||
1056 | ### config/grub/TREE/config/ | ||
1011 | #### config/grub/TREE/config/ | ||
1057 | 1012 | ||
1058 | 1013 | GRUB configuration files. | GRUB configuration files. |
1059 | 1014 | ||
1060 | ### config/grub/config/AUTHORS | ||
1015 | #### config/grub/config/AUTHORS | ||
1061 | 1016 | ||
1062 | 1017 | Author info for GRUB configuration files. | Author info for GRUB configuration files. |
1063 | 1018 | ||
1064 | ### config/grub/config/COPYING | ||
1019 | #### config/grub/config/COPYING | ||
1065 | 1020 | ||
1066 | 1021 | Licensing info for GRUB configuration files. | Licensing info for GRUB configuration files. |
1067 | 1022 | ||
1068 | ### config/grub/TREE/config/payload | ||
1023 | #### config/grub/TREE/config/payload | ||
1069 | 1024 | ||
1070 | 1025 | This is a configuration file. It is used to program GRUB's shell. | This is a configuration file. It is used to program GRUB's shell. |
1071 | 1026 | ||
... | ... | A `grubtest.cfg` can be inserted into CBFS, but it will not override the | |
1079 | 1034 | default `grub.cfg` (either in CBFS or on memdisk); however, the one in memdisk | default `grub.cfg` (either in CBFS or on memdisk); however, the one in memdisk |
1080 | 1035 | will provide a menuentry for switching to this, if available. | will provide a menuentry for switching to this, if available. |
1081 | 1036 | ||
1082 | ### config/data/grub/memdisk.cfg | ||
1037 | #### config/data/grub/memdisk.cfg | ||
1083 | 1038 | ||
1084 | 1039 | This GRUB configuration checks whether `grub.cfg` exists in CBFS and switches | This GRUB configuration checks whether `grub.cfg` exists in CBFS and switches |
1085 | 1040 | to that first (not provided by default) or, if one is not available in CBFS, | to that first (not provided by default) or, if one is not available in CBFS, |
... | ... | The GRUB memdisk is a file system within `grub.elf`, itself stored within the | |
1089 | 1044 | coreboot file system named *CBFS*, which is part of the coreboot ROM image on | coreboot file system named *CBFS*, which is part of the coreboot ROM image on |
1090 | 1045 | every coreboot target. | every coreboot target. |
1091 | 1046 | ||
1092 | ### config/data/grub/keymap/ | ||
1047 | #### config/data/grub/keymap/ | ||
1093 | 1048 | ||
1094 | 1049 | Keymap files used by GRUB. They can alter the character set corresponding to | Keymap files used by GRUB. They can alter the character set corresponding to |
1095 | 1050 | inputted scancodes. | inputted scancodes. |
1096 | 1051 | ||
1097 | ### config/data/grub/keymap/\*.gkb | ||
1052 | #### config/data/grub/keymap/\*.gkb | ||
1098 | 1053 | ||
1099 | 1054 | The keymap files themselves. These are inserted into the GRUB memdisk, and | The keymap files themselves. These are inserted into the GRUB memdisk, and |
1100 | 1055 | the `grub.cfg` file can specify which one is to be used. | the `grub.cfg` file can specify which one is to be used. |
... | ... | These files are binary-encoded, defining which characters correspond to which | |
1103 | 1058 | scancodes. It is handled by `grub-core/commands/keylayouts.c` in the GRUB source | scancodes. It is handled by `grub-core/commands/keylayouts.c` in the GRUB source |
1104 | 1059 | code. | code. |
1105 | 1060 | ||
1106 | ### config/data/grub/module/TREE | ||
1061 | #### config/data/grub/module/TREE | ||
1107 | 1062 | ||
1108 | 1063 | This defines which modules are inserted into `grub.elf`. These modules can be | This defines which modules are inserted into `grub.elf`. These modules can be |
1109 | 1064 | anything from file systems, small applications/utilities, launchers (e.g. | anything from file systems, small applications/utilities, launchers (e.g. |
... | ... | This list is used by lbmk when it runs `grub-mkstandalone`, which is the utility | |
1117 | 1072 | from GRUB that generates `grub.elf` files (to be compressed inside CBFS and then | from GRUB that generates `grub.elf` files (to be compressed inside CBFS and then |
1118 | 1073 | executed as a coreboot payload). | executed as a coreboot payload). |
1119 | 1074 | ||
1120 | ### config/grub/TREE/patches/ | ||
1075 | #### config/grub/TREE/patches/ | ||
1121 | 1076 | ||
1122 | 1077 | For a given GRUB revision, patches with the `patch` file extension are placed | For a given GRUB revision, patches with the `patch` file extension are placed |
1123 | 1078 | here, alphanumerically in the order that they should be applied. For example, | here, alphanumerically in the order that they should be applied. For example, |
... | ... | partitions to be decrypted by GRUB. | |
1126 | 1081 | ||
1127 | 1082 | These patches are then so applied, when lbmk downloads the given source tree. | These patches are then so applied, when lbmk downloads the given source tree. |
1128 | 1083 | ||
1129 | config/ifd/\* | ||
1130 | --------------- | ||
1084 | ### config/ifd/\* | ||
1131 | 1085 | ||
1132 | 1086 | Intel Flash Descriptors and GbE NVM images, which are binary-encoded | Intel Flash Descriptors and GbE NVM images, which are binary-encoded |
1133 | 1087 | configuration files. These files are referenced in coreboot defconfigs, used | configuration files. These files are referenced in coreboot defconfigs, used |
1134 | 1088 | by lbmk to build coreboot ROM images. | by lbmk to build coreboot ROM images. |
1135 | 1089 | ||
1136 | config/seabios/ | ||
1137 | --------------- | ||
1090 | ### config/seabios/ | ||
1138 | 1091 | ||
1139 | ### config/data/seabios/build.list | ||
1092 | #### config/data/seabios/build.list | ||
1140 | 1093 | ||
1141 | 1094 | When a given SeaBIOS tree is compiled, for a given target, this file defines | When a given SeaBIOS tree is compiled, for a given target, this file defines |
1142 | 1095 | which files to copy from the `seabios/` directory, which are then copied to | which files to copy from the `seabios/` directory, which are then copied to |
1143 | 1096 | a location under `elf/seabios`. | a location under `elf/seabios`. |
1144 | 1097 | ||
1145 | ### config/seabios/default/ | ||
1098 | #### config/seabios/default/ | ||
1146 | 1099 | ||
1147 | 1100 | Currently the only tree in use, this defines what SeaBIOS revision is to be | Currently the only tree in use, this defines what SeaBIOS revision is to be |
1148 | 1101 | used, when the SeaBIOS payload is enabled on a given coreboot target. | used, when the SeaBIOS payload is enabled on a given coreboot target. |
1149 | 1102 | ||
1150 | ### config/seabios/default/config/ | ||
1103 | #### config/seabios/default/config/ | ||
1151 | 1104 | ||
1152 | 1105 | Configuration files go in here. | Configuration files go in here. |
1153 | 1106 | ||
1154 | ### config/seabios/default/config/libgfxinit | ||
1107 | #### config/seabios/default/config/libgfxinit | ||
1155 | 1108 | ||
1156 | 1109 | Configuration file for when native video initialisation is available in | Configuration file for when native video initialisation is available in |
1157 | 1110 | coreboot. | coreboot. |
1158 | 1111 | ||
1159 | ### config/seabios/default/config/normal | ||
1112 | #### config/seabios/default/config/normal | ||
1160 | 1113 | ||
1161 | 1114 | Configuration file for when native video initialisation is unavailable in | Configuration file for when native video initialisation is unavailable in |
1162 | 1115 | coreboot, and VGA ROM initialisation is also not provided by coreboot (in | coreboot, and VGA ROM initialisation is also not provided by coreboot (in |
1163 | 1116 | this configuration, the usual setup will be that *SeaBIOS* finds and | this configuration, the usual setup will be that *SeaBIOS* finds and |
1164 | 1117 | executes them, instead of coreboot). | executes them, instead of coreboot). |
1165 | 1118 | ||
1166 | ### config/seabios/default/config/vgarom | ||
1119 | #### config/seabios/default/config/vgarom | ||
1167 | 1120 | ||
1168 | 1121 | Configuration file for when native video initialisation is unavailable in | Configuration file for when native video initialisation is unavailable in |
1169 | 1122 | coreboot, and VGA ROM initialisation is provided by coreboot; in this setup, | coreboot, and VGA ROM initialisation is provided by coreboot; in this setup, |
1170 | 1123 | SeaBIOS should not execute VGA ROMs. | SeaBIOS should not execute VGA ROMs. |
1171 | 1124 | ||
1172 | ### config/seabios/default/target.cfg | ||
1125 | #### config/seabios/default/target.cfg | ||
1173 | 1126 | ||
1174 | 1127 | Similar concept to `target.cfg` files provided by coreboot. This specifies | Similar concept to `target.cfg` files provided by coreboot. This specifies |
1175 | 1128 | which SeaBIOS revision (from Git) is to be used, when compiling SeaBIOS images. | which SeaBIOS revision (from Git) is to be used, when compiling SeaBIOS images. |
1176 | 1129 | ||
1177 | config/u-boot/ | ||
1178 | --------------- | ||
1130 | ### config/u-boot/ | ||
1179 | 1131 | ||
1180 | 1132 | This directory contains configuration, patches and so on, for each mainboard | This directory contains configuration, patches and so on, for each mainboard |
1181 | 1133 | that can use U-Boot as a payload in the `lbmk` build system. U-Boot doesn't yet | that can use U-Boot as a payload in the `lbmk` build system. U-Boot doesn't yet |
1182 | 1134 | have reliable generic configurations that can work across all coreboot boards | have reliable generic configurations that can work across all coreboot boards |
1183 | 1135 | (per-architecture), so these are used to build it per-board. | (per-architecture), so these are used to build it per-board. |
1184 | 1136 | ||
1185 | ### config/data/u-boot/build.list | ||
1137 | #### config/data/u-boot/build.list | ||
1186 | 1138 | ||
1187 | 1139 | When a given U-Boot tree is compiled, for a given target, this file defines | When a given U-Boot tree is compiled, for a given target, this file defines |
1188 | 1140 | which files to copy from the U-Boot source build, which are then copied to | which files to copy from the U-Boot source build, which are then copied to |
1189 | 1141 | a location under `elf/u-boot/`. | a location under `elf/u-boot/`. |
1190 | 1142 | ||
1191 | ### config/u-boot/TREENAME/ | ||
1143 | #### config/u-boot/TREENAME/ | ||
1192 | 1144 | ||
1193 | 1145 | Each `TREENAME` directory defines configuration for a corresponding mainboard. | Each `TREENAME` directory defines configuration for a corresponding mainboard. |
1194 | 1146 | It doesn't actually have to be for a board; it can also be used to just define | It doesn't actually have to be for a board; it can also be used to just define |
... | ... | a U-Boot revision, with patches and so on. To enable use as a payload in ROM | |
1196 | 1148 | images, this must have the same name as its `config/coreboot/TREENAME/` | images, this must have the same name as its `config/coreboot/TREENAME/` |
1197 | 1149 | counterpart. | counterpart. |
1198 | 1150 | ||
1199 | ### config/u-boot/TREENAME/patches/ | ||
1151 | #### config/u-boot/TREENAME/patches/ | ||
1200 | 1152 | ||
1201 | 1153 | For any given U-Boot tree, patches with the `patch` file extension are placed | For any given U-Boot tree, patches with the `patch` file extension are placed |
1202 | 1154 | here, alphanumerically in the order that they should be applied. | here, alphanumerically in the order that they should be applied. |
1203 | 1155 | ||
1204 | 1156 | These patches are then so applied, when lbmk downloads the given source tree. | These patches are then so applied, when lbmk downloads the given source tree. |
1205 | 1157 | ||
1206 | ### config/u-boot/TREENAME/target.cfg | ||
1158 | #### config/u-boot/TREENAME/target.cfg | ||
1207 | 1159 | ||
1208 | 1160 | This file can contain several configuration lines, each being a string, such | This file can contain several configuration lines, each being a string, such |
1209 | 1161 | as: | as: |
... | ... | to a non-native arch means that necessary crossgcc-arch will be compiled and be | |
1239 | 1191 | available when building roms, but not necessarily built or discovered when | available when building roms, but not necessarily built or discovered when |
1240 | 1192 | individual scripts are called manually.* | individual scripts are called manually.* |
1241 | 1193 | ||
1242 | ### config/u-boot/TREENAME/config/ | ||
1194 | #### config/u-boot/TREENAME/config/ | ||
1243 | 1195 | ||
1244 | 1196 | Files in this directory are *U-Boot* configuration files. Configuration file | Files in this directory are *U-Boot* configuration files. Configuration file |
1245 | 1197 | names can be anything, but for now `default` is the only one used. | names can be anything, but for now `default` is the only one used. |
... | ... | Another interesting config option is `CONFIG_POSITION_INDEPENDENT` for ARM | |
1269 | 1221 | boards, which has been so far enabled in the ones `lbmk` supports, just to be | boards, which has been so far enabled in the ones `lbmk` supports, just to be |
1270 | 1222 | safe. | safe. |
1271 | 1223 | ||
1272 | config/submodule | ||
1273 | ---------------- | ||
1224 | ### config/submodule/ | ||
1274 | 1225 | ||
1275 | 1226 | In here you can find submodule configurations for projects. It works for both | In here you can find submodule configurations for projects. It works for both |
1276 | 1227 | single- and multi-tree projects. Use the existing examples as reference. | single- and multi-tree projects. Use the existing examples as reference. |
... | ... | because files are not extracted, only placed at their configured destination). | |
1313 | 1264 | The destination path in `module.list` is relative to the location of the main | The destination path in `module.list` is relative to the location of the main |
1314 | 1265 | Git repository under which it is placed. | Git repository under which it is placed. |
1315 | 1266 | ||
1316 | config/data/PROJECT | ||
1317 | ------------------- | ||
1267 | ### config/data/PROJECT/ | ||
1318 | 1268 | ||
1319 | 1269 | Random configuration data provided on a per-project basis. Complements | Random configuration data provided on a per-project basis. Complements |
1320 | 1270 | the `config/PROJECT` directory. | the `config/PROJECT` directory. |
1321 | 1271 | ||
1322 | U-Boot build system | ||
1323 | ------------------- | ||
1272 | ### U-Boot build system | ||
1324 | 1273 | ||
1325 | 1274 | If you wish to know about U-Boot, refer here:\ | If you wish to know about U-Boot, refer here:\ |
1326 | 1275 | <https://u-boot.readthedocs.io/en/latest/> | <https://u-boot.readthedocs.io/en/latest/> |
... | ... | configs, but not for adding them. Adding them is to be done manually, based on | |
1352 | 1301 | the above guidance. | the above guidance. |
1353 | 1302 | ||
1354 | 1303 | Config files in lbmk root directory | Config files in lbmk root directory |
1355 | =================================== | ||
1304 | ----------------------------------- | ||
1356 | 1305 | ||
1357 | projectsite | ||
1358 | ------------- | ||
1306 | ### projectsite | ||
1359 | 1307 | ||
1360 | 1308 | Domain name linking to the project home page (e.g. libreboot.org). | Domain name linking to the project home page (e.g. libreboot.org). |
1361 | 1309 | ||
1362 | projectname | ||
1363 | --------------- | ||
1310 | ### projectname | ||
1364 | 1311 | ||
1365 | 1312 | This is a text file, containing a single line that says `libreboot`. This string | This is a text file, containing a single line that says `libreboot`. This string |
1366 | 1313 | is used by the build system, when naming releases alongside the version number. | is used by the build system, when naming releases alongside the version number. |
1367 | 1314 | ||
1368 | version | ||
1369 | --------------- | ||
1315 | ### version | ||
1370 | 1316 | ||
1371 | 1317 | Updated each time lbmk runs, based on either `git describe` or, on release | Updated each time lbmk runs, based on either `git describe` or, on release |
1372 | 1318 | archives, this file is static and never changes. It says what Libreboot revision | archives, this file is static and never changes. It says what Libreboot revision |
1373 | 1319 | is currently in use (or was in use, if lbmk isn't running). | is currently in use (or was in use, if lbmk isn't running). |
1374 | 1320 | ||
1375 | versiondate | ||
1376 | --------------- | ||
1321 | ### versiondate | ||
1377 | 1322 | ||
1378 | 1323 | Updated each time lbmk runs, based on either `git describe` or, on release | Updated each time lbmk runs, based on either `git describe` or, on release |
1379 | 1324 | archives, this file is static and never changes. It says the *time* of | archives, this file is static and never changes. It says the *time* of |
... | ... | At last, you will now learn about the *scripts* (exclusively written as | |
1383 | 1328 | posix shell scripts) that constitute the entire Libreboot build system, lbmk: | posix shell scripts) that constitute the entire Libreboot build system, lbmk: |
1384 | 1329 | ||
1385 | 1330 | Scripts in root directory of lbmk | Scripts in root directory of lbmk |
1386 | ================================= | ||
1331 | --------------------------------- | ||
1387 | 1332 | ||
1388 | build | ||
1389 | --------------- | ||
1333 | ### build | ||
1390 | 1334 | ||
1391 | 1335 | This is the main build script. | This is the main build script. |
1392 | 1336 | ||
... | ... | You can also know what build system revision you have by running: | |
1410 | 1354 | 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. |
1411 | 1355 | ||
1412 | 1356 | include/ | include/ |
1413 | =============== | ||
1357 | -------- | ||
1414 | 1358 | ||
1415 | 1359 | This directory contains *helper scripts*, to be included | This directory contains *helper scripts*, to be included |
1416 | 1360 | by main scripts using the `.` command (called the `source` | by main scripts using the `.` command (called the `source` |
1417 | 1361 | command in `bash`, but we rely upon posix `sh` only). | command in `bash`, but we rely upon posix `sh` only). |
1418 | 1362 | ||
1419 | include/git.sh | ||
1420 | -------------- | ||
1363 | ### include/git.sh | ||
1421 | 1364 | ||
1422 | 1365 | These functions in here previously existed as independent scripts, but they | These functions in here previously existed as independent scripts, but they |
1423 | 1366 | 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 |
... | ... | These functions deal with git cloning, submodule updates, revision resets and | |
1427 | 1370 | the application of patch files via `git am`. *Every* git repository downloaded | the application of patch files via `git am`. *Every* git repository downloaded |
1428 | 1371 | by lbmk is handled by the functions in this file. | by lbmk is handled by the functions in this file. |
1429 | 1372 | ||
1430 | include/mrc.sh | ||
1431 | -------------- | ||
1373 | ### include/mrc.sh | ||
1432 | 1374 | ||
1433 | 1375 | This was previously a separate script. The download logic was removed, and | This was previously a separate script. The download logic was removed, and |
1434 | 1376 | now the logic under `include/vendor.sh` is used for downloads. This file now | now the logic under `include/vendor.sh` is used for downloads. This file now |
... | ... | it is provided as an include to bypass license incompatibility. It has been | |
1442 | 1384 | heavily modified to use the same style of logic and general control flow used | heavily modified to use the same style of logic and general control flow used |
1443 | 1385 | in the script at `include/vendor.sh`, and it is used from there. | in the script at `include/vendor.sh`, and it is used from there. |
1444 | 1386 | ||
1445 | include/lib.sh | ||
1446 | --------------- | ||
1387 | ### include/lib.sh | ||
1447 | 1388 | ||
1448 | 1389 | Several other parts of lbmk also use this file. It is added to as little as | Several other parts of lbmk also use this file. It is added to as little as |
1449 | 1390 | possible, and contains miscallaneous functions that don't belong anywhere else. | possible, and contains miscallaneous functions that don't belong anywhere else. |
... | ... | so if for example you say `mk coreboot`, it would build every coreboot target. | |
1468 | 1409 | This is useful for the release build logic, because now it can much more simply | This is useful for the release build logic, because now it can much more simply |
1469 | 1410 | build all of Libreboot, while still being flexible about it. | build all of Libreboot, while still being flexible about it. |
1470 | 1411 | ||
1471 | include/rom.sh | ||
1472 | ----------- | ||
1412 | ### include/rom.sh | ||
1473 | 1413 | ||
1474 | 1414 | This builds coreboot ROM images. Specifically, this contains mkhelper functions. | This builds coreboot ROM images. Specifically, this contains mkhelper functions. |
1475 | 1415 | It also builds serprog images, and it could be used to provide functions for | It also builds serprog images, and it could be used to provide functions for |
... | ... | CCACHE is automatically used, when building coreboot, but not currently for | |
1540 | 1480 | other projects. This is done by cooking coreboot configs at build time, enabling | other projects. This is done by cooking coreboot configs at build time, enabling |
1541 | 1481 | coreboot's build option for it. | coreboot's build option for it. |
1542 | 1482 | ||
1543 | Serprog images: | ||
1544 | -------------- | ||
1483 | ### Serprog images: | ||
1545 | 1484 | ||
1546 | 1485 | Build firmware images for serprog-based SPI programmers, where they use an | Build firmware images for serprog-based SPI programmers, where they use an |
1547 | 1486 | STM32 MCU. It also builds for RP2040-based programmers like Raspberry Pi Pico. | STM32 MCU. It also builds for RP2040-based programmers like Raspberry Pi Pico. |
... | ... | Example command: `./mk -b stm32-vserprog` | |
1553 | 1492 | This also uses `rom.sh` as with the coreboot image build logic. It's all | This also uses `rom.sh` as with the coreboot image build logic. It's all |
1554 | 1493 | defined in that file, so read the main section pertaining to this file. | defined in that file, so read the main section pertaining to this file. |
1555 | 1494 | ||
1556 | include/vendor.sh | ||
1557 | ----------------- | ||
1495 | ### include/vendor.sh | ||
1558 | 1496 | ||
1559 | 1497 | Helper functions for downloading and injecting vendor files. How to use: | Helper functions for downloading and injecting vendor files. How to use: |
1560 | 1498 | ||
... | ... | Refer elsewhere in the documentation for how to handle vendor files, and/or | |
1565 | 1503 | read [the guide](../install/ivy_has_common.md). | read [the guide](../install/ivy_has_common.md). |
1566 | 1504 | ||
1567 | 1505 | script/ | script/ |
1568 | ======= | ||
1506 | ------- | ||
1569 | 1507 | ||
1570 | script/trees | ||
1571 | ------------ | ||
1508 | ### script/trees | ||
1572 | 1509 | ||
1573 | 1510 | *This* is the other beating heart of Libreboot. Used heavily by Libreboot, this | *This* is the other beating heart of Libreboot. Used heavily by Libreboot, this |
1574 | 1511 | script is what handles defconfig files for SeaBIOS, U-Boot *and* coreboot; it | script is what handles defconfig files for SeaBIOS, U-Boot *and* coreboot; it |
File site/docs/maintain/porting.md changed (mode: 100644) (index e464e9b..dff145f) | |||
... | ... | Most boards in coreboot can be quite easily ported to libreboot. | |
16 | 16 | You don't need any knowledge of a particular programming language or | You don't need any knowledge of a particular programming language or |
17 | 17 | technology in general to port a board. | technology in general to port a board. |
18 | 18 | If you want to make more major contributions to the build system, | If you want to make more major contributions to the build system, |
19 | please read the [main maintenance page.](/docs/maintain/index.html) | ||
19 | please read the [LibreBoot MaKe (lbmk) build system design and maintenance | ||
20 | manual](./). | ||
21 | |||
22 | Background information | ||
23 | ---------------------- | ||
20 | 24 | ||
21 | 25 | You will certainly need flashing equipment if you wish to follow this guide. | You will certainly need flashing equipment if you wish to follow this guide. |
22 | 26 | See the [flashing guide](/docs/install/spi.html) to find out what you'll need. | See the [flashing guide](/docs/install/spi.html) to find out what you'll need. |
... | ... | unclear, then contact libreboot developers. | |
42 | 46 | The best way to get in touch is via [libreboot irc.](/contact.html#irc-chatroom) | The best way to get in touch is via [libreboot irc.](/contact.html#irc-chatroom) |
43 | 47 | ||
44 | 48 | Cloning lbmk | Cloning lbmk |
45 | ============ | ||
49 | ------------ | ||
46 | 50 | ||
47 | 51 | Before you try to get any work done, you'll need to clone the lbmk (libreboot make) | Before you try to get any work done, you'll need to clone the lbmk (libreboot make) |
48 | 52 | project. | project. |
... | ... | the project. | |
53 | 57 | ||
54 | 58 | If you want more information on building lbmk see [the build instructions.](/docs/build/index.html) | If you want more information on building lbmk see [the build instructions.](/docs/build/index.html) |
55 | 59 | ||
56 | Coreboot Config | ||
57 | =============== | ||
60 | Coreboot config | ||
61 | --------------- | ||
58 | 62 | ||
59 | 63 | Coreboot payloads (GRUB, Seabios, etc) are built separately. | Coreboot payloads (GRUB, Seabios, etc) are built separately. |
60 | 64 | You therefore only need to focus on the coreboot config(s) for `board.` | You therefore only need to focus on the coreboot config(s) for `board.` |
... | ... | If you try to flash this rom and it fails, then there are two probable reasons: | |
94 | 98 | Solutions to these problems follow in the proceeding sections. | Solutions to these problems follow in the proceeding sections. |
95 | 99 | ||
96 | 100 | Wrong CBFS and or ROM size | Wrong CBFS and or ROM size |
97 | ========================== | ||
101 | -------------------------- | ||
98 | 102 | ||
99 | 103 | Different boards have different flash chip setups. | Different boards have different flash chip setups. |
100 | 104 | Generally, you have one or two flash chips with a combined size of 4-16MB. | Generally, you have one or two flash chips with a combined size of 4-16MB. |
... | ... | for various rom sizes. | |
113 | 117 | | 12MB | 0xBE0000 | | | 12MB | 0xBE0000 | |
114 | 118 | | 16MB | 0xFE0000 | | | 16MB | 0xFE0000 | |
115 | 119 | ||
116 | Getting Help | ||
117 | ============ | ||
120 | Getting help | ||
121 | ------------ | ||
118 | 122 | ||
119 | 123 | Once you have tried everything above, you might find that the board still doesn't | Once you have tried everything above, you might find that the board still doesn't |
120 | 124 | work. | work. |
File site/docs/maintain/porting.uk.md changed (mode: 100644) (index faaaa73..e33022a) | |||
... | ... | libreboot як `плата.` | |
40 | 40 | Найкращий шлях вийти на зв'язок через [irc libreboot.](/contact.uk.html#кімната-irc) | Найкращий шлях вийти на зв'язок через [irc libreboot.](/contact.uk.html#кімната-irc) |
41 | 41 | ||
42 | 42 | Клонування lbmk | Клонування lbmk |
43 | ============ | ||
43 | --------------- | ||
44 | 44 | ||
45 | 45 | Перед тим, як ви спробуєте зробити будь-яку роботу, вам потрібно буде клонувати проект lbmk (libreboot make). | Перед тим, як ви спробуєте зробити будь-яку роботу, вам потрібно буде клонувати проект lbmk (libreboot make). |
46 | 46 | Щоб зробити це, ви будете потребувати git, встановлений на вашій машині. Ви можете потім клонувати | Щоб зробити це, ви будете потребувати git, встановлений на вашій машині. Ви можете потім клонувати |
... | ... | libreboot як `плата.` | |
51 | 51 | Якщо ви хочете більше інформації про побудову lbmk, дивіться [інструкції побудови.](/docs/build/index.uk.html) | Якщо ви хочете більше інформації про побудову lbmk, дивіться [інструкції побудови.](/docs/build/index.uk.html) |
52 | 52 | ||
53 | 53 | Конфігурація Coreboot | Конфігурація Coreboot |
54 | =============== | ||
54 | --------------------- | ||
55 | 55 | ||
56 | 56 | Корисні навантаження Coreboot (GRUB, Seabios, і так далі) будуються окремо. | Корисні навантаження Coreboot (GRUB, Seabios, і так далі) будуються окремо. |
57 | 57 | Ви таким чином тільки потребуєте фокусуватись на конфігурації(ях) coreboot для `плати.` | Ви таким чином тільки потребуєте фокусуватись на конфігурації(ях) coreboot для `плати.` |
... | ... | libreboot як `плата.` | |
91 | 91 | Рішення до цих проблем ідуть в наступних розділах. | Рішення до цих проблем ідуть в наступних розділах. |
92 | 92 | ||
93 | 93 | Неправильний розмір CBFS та/або розмір ROM | Неправильний розмір CBFS та/або розмір ROM |
94 | ========================== | ||
94 | ------------------------------------------ | ||
95 | 95 | ||
96 | 96 | Різні плати мають різні налаштування чіпів флеш-пам'яті. | Різні плати мають різні налаштування чіпів флеш-пам'яті. |
97 | 97 | Загалом, ви маєте один або два флеш-пам'яті з сумарним розміром в 4-16Мбайт. | Загалом, ви маєте один або два флеш-пам'яті з сумарним розміром в 4-16Мбайт. |
... | ... | libreboot як `плата.` | |
111 | 111 | | 16Мбайт | 0xFE0000 | | | 16Мбайт | 0xFE0000 | |
112 | 112 | ||
113 | 113 | Отримання допомоги | Отримання допомоги |
114 | ============ | ||
114 | ------------------ | ||
115 | 115 | ||
116 | 116 | Коли ви спробували все вищенаведене, ви могли би знайти, що ця плата досі не | Коли ви спробували все вищенаведене, ви могли би знайти, що ця плата досі не |
117 | 117 | працює. | працює. |
File site/docs/maintain/style.md changed (mode: 100644) (index 702ef76..ef95d33) | |||
... | ... | and several practises may persist in spite of it; nonetheless, this article | |
13 | 13 | shall serve as a reference for lbmk development. | shall serve as a reference for lbmk development. |
14 | 14 | ||
15 | 15 | NO BASHISMS | NO BASHISMS |
16 | =========== | ||
16 | ----------- | ||
17 | 17 | ||
18 | 18 | Libreboot's build system was previously written in Bash, and actually used | Libreboot's build system was previously written in Bash, and actually used |
19 | 19 | Bash-specific behaviour. This was later *corrected*, thanks largely to work | Bash-specific behaviour. This was later *corrected*, thanks largely to work |
... | ... | and an even more excellent introduction: | |
27 | 27 | (seriously, it's good. Read it!) | (seriously, it's good. Read it!) |
28 | 28 | ||
29 | 29 | Design | Design |
30 | ====== | ||
30 | ------ | ||
31 | 31 | ||
32 | 32 | Libreboot's build system design is very simple: put as much as possible | Libreboot's build system design is very simple: put as much as possible |
33 | 33 | under `config/`, and keep actual logic to a minimum. | under `config/`, and keep actual logic to a minimum. |
34 | 34 | ||
35 | 35 | You can read about that design in the [lbmk maintenance manual](index.md). | You can read about that design in the [lbmk maintenance manual](index.md). |
36 | 36 | ||
37 | No Makefiles | ||
38 | ------------ | ||
37 | ### No Makefiles | ||
39 | 38 | ||
40 | 39 | We have Makefiles in some C programs, under `util/`, and projects that we import | We have Makefiles in some C programs, under `util/`, and projects that we import |
41 | 40 | may use Makefiles, but lbmk itself does not contain any Makefiles. Instead, we | may use Makefiles, but lbmk itself does not contain any Makefiles. Instead, we |
... | ... | code is more readable. It's easier to implement a cleaner coding style, which | |
46 | 45 | the next sections will cover. | the next sections will cover. |
47 | 46 | ||
48 | 47 | Coding style | Coding style |
49 | ============ | ||
48 | ------------ | ||
50 | 49 | ||
51 | 50 | Read <https://man.openbsd.org/style.9> and go read a few userland program source | Read <https://man.openbsd.org/style.9> and go read a few userland program source |
52 | 51 | trees in OpenBSD's main CVS tree. This is the style that inspires the lbmk | trees in OpenBSD's main CVS tree. This is the style that inspires the lbmk |
... | ... | Libreboot scripts, and also C programs like `nvmutil`, are heavily inspired by | |
60 | 59 | this style. We insist on its use, because this style is extremely readable and | this style. We insist on its use, because this style is extremely readable and |
61 | 60 | forces you to write better code. | forces you to write better code. |
62 | 61 | ||
63 | main on top | ||
64 | ----------- | ||
62 | ### main on top | ||
65 | 63 | ||
66 | 64 | In every lbmk script, it is our intention that there be a `main()` function. | In every lbmk script, it is our intention that there be a `main()` function. |
67 | 65 | All logic should be inside a function, and `main()` should be the function that | All logic should be inside a function, and `main()` should be the function that |
68 | 66 | executes first; at the bottom of each script, insert this line: | executes first; at the bottom of each script, insert this line: |
69 | 67 | ||
70 | main $@ | ||
68 | main "$@" | ||
71 | 69 | ||
72 | 70 | This will execute `main()`, passing any arguments (from the user's shell) to it. | This will execute `main()`, passing any arguments (from the user's shell) to it. |
73 | 71 | ||
74 | Top-down logic | ||
75 | -------------- | ||
72 | ### Top-down logic | ||
76 | 73 | ||
77 | 74 | *Every* function called from main should always be *below* the calling function. | *Every* function called from main should always be *below* the calling function. |
78 | 75 | Therefore, if multiple functions call a given function, that function should be | Therefore, if multiple functions call a given function, that function should be |
... | ... | complicated_function() | |
118 | 115 | do_some_complicated_stuff || return 1 | do_some_complicated_stuff || return 1 |
119 | 116 | } | } |
120 | 117 | ||
121 | main $@ | ||
118 | main "$@" | ||
122 | 119 | ``` | ``` |
123 | 120 | ||
124 | PWD is always root of lbmk | ||
125 | -------------------------- | ||
121 | ### PWD is always root of lbmk | ||
126 | 122 | ||
127 | 123 | In any script executed by lbmk, under `script/`, the work directory is relative | In any script executed by lbmk, under `script/`, the work directory is relative |
128 | 124 | to the main `lbmk` script. In other words, all scripts under `script/` also | to the main `lbmk` script. In other words, all scripts under `script/` also |
... | ... | assume this. | |
131 | 127 | This is actually one of the reasons for that design, as also alluded to in | This is actually one of the reasons for that design, as also alluded to in |
132 | 128 | the main [lbmk maintenance manual](index.md). | the main [lbmk maintenance manual](index.md). |
133 | 129 | ||
134 | main should only be a simple skeleton | ||
135 | ------------------------------------- | ||
130 | ### main should only be a simple skeleton | ||
136 | 131 | ||
137 | 132 | The `main()` function should not implement much logic itself. Each script in | The `main()` function should not implement much logic itself. Each script in |
138 | 133 | lbmk is its own program. The `main()` function should contain the overall | lbmk is its own program. The `main()` function should contain the overall |
... | ... | be below a function that builds ROM images with SeaBIOS payloads inside them, | |
144 | 139 | when building coreboot ROM images. | when building coreboot ROM images. |
145 | 140 | ||
146 | 141 | One task, one script | One task, one script |
147 | ==================== | ||
142 | -------------------- | ||
148 | 143 | ||
149 | 144 | Not literally *one task*, but one theme, one *kind* of overall task. For | Not literally *one task*, but one theme, one *kind* of overall task. For |
150 | 145 | example, `script/build/roms` builds final ROM images of coreboot, | example, `script/build/roms` builds final ROM images of coreboot, |
... | ... | another program that does another thing very well; programs communicate with | |
155 | 150 | each other via the universal method, namely text. | each other via the universal method, namely text. |
156 | 151 | ||
157 | 152 | Error handling | Error handling |
158 | ============== | ||
153 | -------------- | ||
159 | 154 | ||
160 | 155 | Where feasible, a script should do: | Where feasible, a script should do: |
161 | 156 | ||
... | ... | For example: | |
183 | 178 | ||
184 | 179 | $err "function_name: this shit doesn't work. fix it." | $err "function_name: this shit doesn't work. fix it." |
185 | 180 | ||
186 | Do not directly exit | ||
187 | -------------------- | ||
181 | ### Do not directly exit | ||
188 | 182 | ||
189 | 183 | Please try to use `err` for all error exits. | Please try to use `err` for all error exits. |
190 | 184 | ||
... | ... | A script should either return zero status, or call `err()`. | |
196 | 190 | An individual function may, in some cases, return 1 or 0 itself, which would | An individual function may, in some cases, return 1 or 0 itself, which would |
197 | 191 | then be handled accordingly by the calling function. | then be handled accordingly by the calling function. |
198 | 192 | ||
199 | How to handle errors | ||
200 | -------------------- | ||
193 | ### How to handle errors | ||
201 | 194 | ||
202 | 195 | There are some instances where errors should be *ignored*, in which case you | There are some instances where errors should be *ignored*, in which case you |
203 | 196 | might do: | might do: |
... | ... | command succeeded, then do this. | |
211 | 204 | Never mix `&&` and `||` | Never mix `&&` and `||` |
212 | 205 | ||
213 | 206 | If/else blocks | If/else blocks |
214 | ============== | ||
207 | -------------- | ||
215 | 208 | ||
216 | 209 | Keep these simple, and where possible, maybe don't use them at all! For | Keep these simple, and where possible, maybe don't use them at all! For |
217 | 210 | example: | example: |
... | ... | or | |
236 | 229 | do something | do something |
237 | 230 | ``` | ``` |
238 | 231 | ||
239 | Warnings | ||
240 | -------- | ||
232 | ### Warnings | ||
241 | 233 | ||
242 | 234 | In C, the `stderr` file is 2 as represented by `int fd` style. In shell scripts, | In C, the `stderr` file is 2 as represented by `int fd` style. In shell scripts, |
243 | 235 | it's the same: 1 for standard output, 2 for errors/warnings. The `err` function | it's the same: 1 for standard output, 2 for errors/warnings. The `err` function |
... | ... | should not yield an exit, you should do something like this: | |
249 | 241 | printf "function_name: this is dodgy stuff. fix it maybe?\n" 1>&2 | printf "function_name: this is dodgy stuff. fix it maybe?\n" 1>&2 |
250 | 242 | ||
251 | 243 | Avoid passing arguments excessively | Avoid passing arguments excessively |
252 | =================================== | ||
244 | ----------------------------------- | ||
253 | 245 | ||
254 | 246 | In functions, use of arguments passed to them can be useful, but in general, | In functions, use of arguments passed to them can be useful, but in general, |
255 | 247 | they should be avoided; use global variables when feasible. | they should be avoided; use global variables when feasible. |
256 | 248 | ||
257 | 249 | Do not exceed 80 characters per line | Do not exceed 80 characters per line |
258 | ==================================== | ||
250 | ------------------------------------ | ||
259 | 251 | ||
260 | 252 | See: RFC 3676 | See: RFC 3676 |
261 | 253 | ||
262 | 254 | Excessively long code lines are really annoying to read. | Excessively long code lines are really annoying to read. |
263 | 255 | ||
264 | 256 | Use tab-based indendation | Use tab-based indendation |
265 | ========================= | ||
257 | ------------------------- | ||
266 | 258 | ||
267 | 259 | A new line should begin with tab indentation, in a function. | A new line should begin with tab indentation, in a function. |
268 | 260 | ||
269 | Multi-line commands | ||
270 | ------------------- | ||
261 | ### Multi-line commands | ||
271 | 262 | ||
272 | 263 | Use \\ at the end, as you would, but use *four spaces* to indent on the | Use \\ at the end, as you would, but use *four spaces* to indent on the |
273 | 264 | follow-up line. For example: | follow-up line. For example: |
... | ... | function_name() | |
281 | 272 | ``` | ``` |
282 | 273 | ||
283 | 274 | Use printf! | Use printf! |
284 | =========== | ||
275 | ----------- | ||
285 | 276 | ||
286 | 277 | Don't use `echo` unless there's some compelling reason to do so. | Don't use `echo` unless there's some compelling reason to do so. |
287 | 278 | ||
288 | 279 | The `printf` functionality is more standard, across various sh implementations. | The `printf` functionality is more standard, across various sh implementations. |
289 | 280 | ||
290 | 281 | env | env |
291 | === | ||
282 | --- | ||
292 | 283 | ||
293 | 284 | Don't do: | Don't do: |
294 | 285 | ||
... | ... | Do: | |
301 | 292 | This is more portable, between various Unix systems. | This is more portable, between various Unix systems. |
302 | 293 | ||
303 | 294 | Be portable! | Be portable! |
304 | ============ | ||
295 | ------------ | ||
305 | 296 | ||
306 | 297 | In addition to not using bashisms, commands that lbmk uses must also | In addition to not using bashisms, commands that lbmk uses must also |
307 | 298 | be portable; where possible, third party projects should be tweaked. | be portable; where possible, third party projects should be tweaked. |
... | ... | Work+testing is sorely needed, in this area. It would be nice if Libreboot | |
315 | 306 | could be built on BSD systems, for example. | could be built on BSD systems, for example. |
316 | 307 | ||
317 | 308 | Do as little as possible | Do as little as possible |
318 | ======================== | ||
309 | ------------------------ | ||
319 | 310 | ||
320 | 311 | Don't over-engineer anything. Write as simply as you can, to perform a single | Don't over-engineer anything. Write as simply as you can, to perform a single |
321 | 312 | task. This is basically the same as what has been written elsewhere, but it's | task. This is basically the same as what has been written elsewhere, but it's |
File site/docs/maintain/testing.md changed (mode: 100644) (index 6d3d749..aaa680a) | |||
... | ... | provide testing for the same mainboard if that's what you have. The more the | |
40 | 40 | merrier! | merrier! |
41 | 41 | ||
42 | 42 | Be Contactable | Be Contactable |
43 | ============== | ||
43 | -------------- | ||
44 | 44 | ||
45 | 45 | You should monitor whatever email you provide in your application. | You should monitor whatever email you provide in your application. |
46 | 46 | There is no specific time-frame for how long it should take after | There is no specific time-frame for how long it should take after |
... | ... | If you are the *only* maintainer for your board then please take | |
50 | 50 | into consideration that your input is especially vital. | into consideration that your input is especially vital. |
51 | 51 | ||
52 | 52 | Have External Flashing Equipment | Have External Flashing Equipment |
53 | ================================ | ||
53 | -------------------------------- | ||
54 | 54 | ||
55 | 55 | The roms you test will of course be untested. | The roms you test will of course be untested. |
56 | 56 | To avoid having a bricked machine, you need to have external flashing | To avoid having a bricked machine, you need to have external flashing |
... | ... | Refer to [Coreboot's documentation](https://doc.coreboot.org/) | |
62 | 62 | or ask on IRC if you are unsure. | or ask on IRC if you are unsure. |
63 | 63 | ||
64 | 64 | Testing Procedure | Testing Procedure |
65 | ================= | ||
65 | ----------------- | ||
66 | 66 | ||
67 | 67 | You will receive an email when roms are ready for testing. | You will receive an email when roms are ready for testing. |
68 | 68 | The email will link to an open issue on our [current git hosting platform.](/git.html#lbmk-libreboot-make) | The email will link to an open issue on our [current git hosting platform.](/git.html#lbmk-libreboot-make) |
... | ... | note: [insert any notes if relevant] | |
83 | 83 | ||
84 | 84 | For example, a board status comment might look like this: | For example, a board status comment might look like this: |
85 | 85 | ||
86 | board: t440p_12mb | ||
87 | status: fail | ||
88 | note: GRUB throws error 'something_is_b0rked' | ||
86 | board: t440p_12mb | ||
87 | status: fail | ||
88 | note: GRUB throws error 'something_is_b0rked' |
File site/docs/maintain/testing.uk.md changed (mode: 100644) (index 369c4c8..be3f733) | |||
... | ... | Libreboot намагається зробити Coreboot доступним дл | |
37 | 37 | краще! | краще! |
38 | 38 | ||
39 | 39 | Будьте доступними для зв'язку | Будьте доступними для зв'язку |
40 | ============== | ||
40 | -------------------------- | ||
41 | 41 | ||
42 | 42 | Вам варто відслідковувати будь-яку електронну пошту, що ви вкажете в вашому поданні. | Вам варто відслідковувати будь-яку електронну пошту, що ви вкажете в вашому поданні. |
43 | 43 | Немає конкретного часового проміжку для того, скільки має пройти часу після того, як | Немає конкретного часового проміжку для того, скільки має пройти часу після того, як |
... | ... | Libreboot намагається зробити Coreboot доступним дл | |
47 | 47 | врахуйте, що ваш внесок є особливо значущим. | врахуйте, що ваш внесок є особливо значущим. |
48 | 48 | ||
49 | 49 | Майте обладнання для зовнішньої прошивки | Майте обладнання для зовнішньої прошивки |
50 | ================================ | ||
50 | ------------------------------------- | ||
51 | 51 | ||
52 | 52 | Образи rom, які ви випробуєте, будуть звісно невипробуваними. | Образи rom, які ви випробуєте, будуть звісно невипробуваними. |
53 | 53 | Задля уникнення отримання непрацездатної машини, вам потрібно мати обладнання для зовнішньої | Задля уникнення отримання непрацездатної машини, вам потрібно мати обладнання для зовнішньої |
54 | 54 | прошивки в наявності для відновлення вашої плати з поламаного rom. | прошивки в наявності для відновлення вашої плати з поламаного rom. |
55 | 55 | ||
56 | В більшості випадків ви можете посилатися на [керівництво SPI.](../install/spi.html) | ||
56 | В більшості випадків ви можете посилатися на [керівництво SPI](../install/spi.md). | ||
57 | 57 | В менш частих випадках -таких як, деякі ARM chromebook- ваша плата може бути прошита іншим чином. | В менш частих випадках -таких як, деякі ARM chromebook- ваша плата може бути прошита іншим чином. |
58 | 58 | Посилайтесь на [документацію Coreboot](https://doc.coreboot.org/) | Посилайтесь на [документацію Coreboot](https://doc.coreboot.org/) |
59 | 59 | або спитайте в IRC, якщо не впевнені. | або спитайте в IRC, якщо не впевнені. |
60 | 60 | ||
61 | 61 | Процедура випробування | Процедура випробування |
62 | ================= | ||
62 | --------------------- | ||
63 | 63 | ||
64 | 64 | Ви отримаєте лист електронною поштою, коли образи rom будуть готовими для випробування. | Ви отримаєте лист електронною поштою, коли образи rom будуть готовими для випробування. |
65 | Лист електронною поштою буде посилатися на відкритий issue на нашій [поточній платформі розміщення git.](/git.html#lbmk-libreboot-make) | ||
65 | Лист електронною поштою буде посилатися на відкритий issue на нашій [поточній платформі розміщення git.](../../git.md#lbmk-libreboot-make) | ||
66 | 66 | ||
67 | 67 | Чи ви отримаєте лист електронною поштою через поштовий домен libreboot.org, | Чи ви отримаєте лист електронною поштою через поштовий домен libreboot.org, |
68 | 68 | або один з email розробників, вам варто перевірити (для | або один з email розробників, вам варто перевірити (для |
69 | 69 | вашої власної безпеки), | вашої власної безпеки), |
70 | що завантажені rom підписано з [офіційним ключем.](/download.html#gpg-signing-key) | ||
70 | що завантажені rom підписано з [офіційним ключем.](../../download.md#gpg-signing-key) | ||
71 | 71 | ||
72 | 72 | Коли ваше випробування закінчено, прокоментуйте в issue, на яке наведено посилання | Коли ваше випробування закінчено, прокоментуйте в issue, на яке наведено посилання |
73 | 73 | в вашому відправленому листі електронною поштою, таким чином: | в вашому відправленому листі електронною поштою, таким чином: |
... | ... | note: [вставьте будь-які приміткі, якщо релева | |
80 | 80 | ||
81 | 81 | Наприклад, відгук про статус плати міг би виглядати подібним чином: | Наприклад, відгук про статус плати міг би виглядати подібним чином: |
82 | 82 | ||
83 | board: t440p_12mb | ||
84 | status: fail | ||
85 | note: GRUB throws error 'something_is_b0rked' | ||
83 | board: t440p_12mb | ||
84 | status: fail | ||
85 | note: GRUB throws error 'something_is_b0rked' |
File site/docs/misc/codenames.md changed (mode: 100644) (index c56a431..33740b5) | |||
... | ... | x-toc-enable: true | |
6 | 6 | TODO: this page could do with an update. More info, about more boards | TODO: this page could do with an update. More info, about more boards |
7 | 7 | ||
8 | 8 | Introduction | Introduction |
9 | ============ | ||
9 | ------------ | ||
10 | 10 | ||
11 | 11 | This document lists product codenames for some hardware. | This document lists product codenames for some hardware. |
12 | 12 | Please note that just because a certain device is listed here does NOT mean | Please note that just because a certain device is listed here does NOT mean |
... | ... | of reliability): | |
28 | 28 | they will appear silver. | they will appear silver. |
29 | 29 | ||
30 | 30 | List of models and codenames | List of models and codenames |
31 | ============================ | ||
31 | ---------------------------- | ||
32 | 32 | ||
33 | 33 | ### Codenames | ### Codenames |
34 | 34 | ||
... | ... | under RAM sticks. | |
101 | 101 | - Port Replicator II - Seville-lite | - Port Replicator II - Seville-lite |
102 | 102 | ||
103 | 103 | ### Miscellaneous | ### Miscellaneous |
104 | |||
104 | 105 | - [Calistoga](https://ark.intel.com/products/codename/5950/Calistoga): | - [Calistoga](https://ark.intel.com/products/codename/5950/Calistoga): |
105 | 106 | 945GM/945PM chipset family name | 945GM/945PM chipset family name |
106 | 107 | - Napa: calistoga based platform | - Napa: calistoga based platform |
... | ... | GM45/GS45/PM45 chipset family name. | |
118 | 119 | of it fully describes its operation. | of it fully describes its operation. |
119 | 120 | ||
120 | 121 | See also | See also |
121 | ======== | ||
122 | -------- | ||
123 | |||
122 | 124 | - Many more Intel codenames can be found at | - Many more Intel codenames can be found at |
123 | 125 | [Wikipedia](https://en.wikipedia.org/wiki/List_of_Intel_codenames). | [Wikipedia](https://en.wikipedia.org/wiki/List_of_Intel_codenames). |
124 | 126 | - For ThinkPads see [Documentation/thinkpad/codenames.csv @ Coreboot] | - For ThinkPads see [Documentation/thinkpad/codenames.csv @ Coreboot] |
File site/docs/misc/emulation.md changed (mode: 100644) (index 2fd4433..375eecf) | |||
... | ... | title: Building Libreboot for Emulation | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Introduction | ||
7 | ============ | ||
6 | Libreboot on QEMU | ||
7 | ----------------- | ||
8 | 8 | ||
9 | 9 | Libreboot supports building for qemu as a target board. | Libreboot supports building for qemu as a target board. |
10 | 10 | The resulting rom can then be tested using qemu. | The resulting rom can then be tested using qemu. |
... | ... | The qemu board is mostly intended to speed up development by removing the need t | |
13 | 13 | Qemu may also be useful for end users who intend to make changes to their libreboot rom without having to flash and reboot their machine. | Qemu may also be useful for end users who intend to make changes to their libreboot rom without having to flash and reboot their machine. |
14 | 14 | ||
15 | 15 | Building and Testing | Building and Testing |
16 | ==================== | ||
16 | -------------------- | ||
17 | 17 | ||
18 | 18 | Libreboot can be built for qemu just like any other board. | Libreboot can be built for qemu just like any other board. |
19 | 19 | ||
... | ... | qemu-system-aarch64 \ | |
60 | 60 | U-Boot is also available on the x86 QEMU images. | U-Boot is also available on the x86 QEMU images. |
61 | 61 | ||
62 | 62 | Use Cases | Use Cases |
63 | ========= | ||
63 | --------- | ||
64 | 64 | ||
65 | 65 | While development is the primary motivation for qemu support, the board makes it easy to test minor changes to release roms. | While development is the primary motivation for qemu support, the board makes it easy to test minor changes to release roms. |
66 | 66 | For example one can use *cbfstool* from coreboot to edit the background image in a libreboot rom as follows: | For example one can use *cbfstool* from coreboot to edit the background image in a libreboot rom as follows: |
File site/docs/misc/index.md changed (mode: 100644) (index 4d54293..39adf9e) | |||
... | ... | x-toc-enable: true | |
6 | 6 | TODO: this page is very old, and could do with an update. | TODO: this page is very old, and could do with an update. |
7 | 7 | ||
8 | 8 | High Pitched Whining Noise on Idle in Arch-based distros | High Pitched Whining Noise on Idle in Arch-based distros |
9 | ============================================================== | ||
9 | -------------------------------------------------------- | ||
10 | 10 | ||
11 | 11 | The following removes most of the noise. It reduces what is a high | The following removes most of the noise. It reduces what is a high |
12 | 12 | frequency whine (that not everyone can hear) to a slight buzz (which | frequency whine (that not everyone can hear) to a slight buzz (which |
... | ... | using [this guide](../linux/grub_cbfs.md). | |
62 | 62 | X60/T60: Serial port - how to use (for dock owners) | X60/T60: Serial port - how to use (for dock owners) |
63 | 63 | ||
64 | 64 | [Note: using a grsec enabled kernel will disable the powertop function. ](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options) | [Note: using a grsec enabled kernel will disable the powertop function. ](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options) |
65 | =================================================== | ||
66 | 65 | ||
67 | 66 | For the Thinkpad X60 you can use the "UltraBase X6" dock (for the | For the Thinkpad X60 you can use the "UltraBase X6" dock (for the |
68 | 67 | X60 Tablet it is called X6 Tablet UltraBase). For the ThinkPad T60, you | X60 Tablet it is called X6 Tablet UltraBase). For the ThinkPad T60, you |
... | ... | Note: part of the tutorial above requires changing your grub.cfg. Just | |
97 | 96 | change the `linux` line to add instructions for enabling getty. See | change the `linux` line to add instructions for enabling getty. See |
98 | 97 | [../linux/grub\_cbfs.md](../linux/grub_cbfs.md). | [../linux/grub\_cbfs.md](../linux/grub_cbfs.md). |
99 | 98 | ||
100 | Finetune backlight control on intel gpu's | ||
101 | ========================================= | ||
99 | Finetune backlight control on intel GPUs | ||
100 | ---------------------------------------- | ||
102 | 101 | ||
103 | 102 | Sometimes the backlight control value (BLC\_PWM\_CTL) set by libreboot | Sometimes the backlight control value (BLC\_PWM\_CTL) set by libreboot |
104 | 103 | is not ideal. The result is either flicker, which could cause nausea or | is not ideal. The result is either flicker, which could cause nausea or |
... | ... | on page 94. More research needs to be done on this target so proceed | |
190 | 189 | with care. | with care. |
191 | 190 | ||
192 | 191 | Power Management Beeps on Thinkpads | Power Management Beeps on Thinkpads |
193 | =================================== | ||
192 | ----------------------------------- | ||
194 | 193 | ||
195 | 194 | When disconnecting or connecting the charger, a beep occurs. When the | When disconnecting or connecting the charger, a beep occurs. When the |
196 | 195 | battery goes to a critically low charge level, a beep occurs. Nvramtool | battery goes to a critically low charge level, a beep occurs. Nvramtool |
... | ... | Finally, you need to flash the rom with this new image. See here | |
225 | 224 | for a detailed explanation. | for a detailed explanation. |
226 | 225 | ||
227 | 226 | Get EDID: Find out the name (model) of your LCD panel | Get EDID: Find out the name (model) of your LCD panel |
228 | ===================================================== | ||
227 | ----------------------------------------------------- | ||
229 | 228 | ||
230 | 229 | Get the panel name: | Get the panel name: |
231 | 230 | ||
... | ... | removing the LCD panel is an option. Usually, there will be information | |
248 | 247 | printed on the back. | printed on the back. |
249 | 248 | ||
250 | 249 | e1000e driver trouble shooting (Intel NICs) | e1000e driver trouble shooting (Intel NICs) |
251 | =========================================== | ||
250 | ------------------------------------------- | ||
252 | 251 | ||
253 | 252 | Example error, ¿may happen on weird and complex routing schemes(citation | Example error, ¿may happen on weird and complex routing schemes(citation |
254 | 253 | needed for cause): | needed for cause): |
File site/docs/uboot/index.md changed (mode: 100644) (index f5ac9a8..3dc04a4) | |||
... | ... | x-toc-enable: true | |
6 | 6 | **NOTE: This documentation refers only to ARM64. For AMD64/i386 (Intel/AMD) | **NOTE: This documentation refers only to ARM64. For AMD64/i386 (Intel/AMD) |
7 | 7 | U-Boot setups, please read [uboot-x86.md](uboot-x86.md).** | U-Boot setups, please read [uboot-x86.md](uboot-x86.md).** |
8 | 8 | ||
9 | Libreboot has experimental support for using U-Boot as a coreboot | ||
10 | payload since the [20221214](../../news/libreboot20221214.md) release, on ARM64 | ||
11 | systems, and on x86 since late 2024. | ||
12 | |||
13 | U-Boot integration in Libreboot is currently at a proof-of-concept | ||
14 | stage, with most boards completely untested and most likely not working. | ||
15 | 9 | ROM images for them are mostly intended for further testing and | ROM images for them are mostly intended for further testing and |
16 | 10 | development. If you have one of these machines and want to help fix | development. If you have one of these machines and want to help fix |
17 | 11 | things, you can ping `alpernebbi` on Libera IRC, who ported these boards | things, you can ping `alpernebbi` on Libera IRC, who ported these boards |
18 | 12 | to Libreboot. | to Libreboot. |
19 | 13 | ||
20 | As of 14 December 2022, building of U-Boot images has been tested on | ||
21 | Debian. Make sure you have the latest `lbmk` from the Git repository, | ||
22 | and the build dependencies are installed like so, from `lbmk/` as root: | ||
23 | |||
24 | ./mk dependencies debian | ||
25 | |||
26 | This installs everything needed for `./mk -b coreboot`, and part of the | ||
27 | build process makes use of coreboot's own cross-compile toolchain. | ||
14 | Emulation | ||
15 | --------- | ||
28 | 16 | ||
29 | 17 | [QEMU x86/ARM64 virtual machines](../misc/emulation.md) are also | [QEMU x86/ARM64 virtual machines](../misc/emulation.md) are also |
30 | 18 | supported, which should be easy targets to start tinkering on if you | supported, which should be easy targets to start tinkering on if you |
31 | 19 | want to contribute. | want to contribute. |
32 | 20 | ||
33 | 21 | Usage | Usage |
34 | ===== | ||
22 | ----- | ||
35 | 23 | ||
36 | 24 | When your board is powered on, U-Boot will ideally turn on the display | When your board is powered on, U-Boot will ideally turn on the display |
37 | 25 | and start printing console messages there. After a countdown of a few | and start printing console messages there. After a countdown of a few |
... | ... | table, unexpected parts of the SPI ROM image, or do something else | |
65 | 53 | entirely. | entirely. |
66 | 54 | ||
67 | 55 | Known issues | Known issues |
68 | ============ | ||
56 | ------------ | ||
69 | 57 | ||
70 | 58 | U-Boot integration in Libreboot is incomplete. Here is a list of known | U-Boot integration in Libreboot is incomplete. Here is a list of known |
71 | 59 | issues that affect all boards: | issues that affect all boards: |
... | ... | issues that affect all boards: | |
83 | 71 | - UEFI support is incomplete | - UEFI support is incomplete |
84 | 72 | ||
85 | 73 | See also | See also |
86 | ======== | ||
74 | -------- | ||
75 | |||
87 | 76 | - [U-Boot documentation](https://u-boot.readthedocs.io/en/latest/) | - [U-Boot documentation](https://u-boot.readthedocs.io/en/latest/) |
88 | 77 | - [U-Boot documentation (unmigrated files)](https://source.denx.de/u-boot/u-boot/-/tree/master/doc) | - [U-Boot documentation (unmigrated files)](https://source.denx.de/u-boot/u-boot/-/tree/master/doc) |
89 | 78 | - [U-Boot and generic distro boot](https://marcin.juszkiewicz.com.pl/2021/03/14/u-boot-and-generic-distro-boot/) | - [U-Boot and generic distro boot](https://marcin.juszkiewicz.com.pl/2021/03/14/u-boot-and-generic-distro-boot/) |
File site/docs/uboot/uboot-archlinux.md changed (mode: 100644) (index 45b8d94..13cce6f) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Background | Background |
7 | ========== | ||
7 | ---------- | ||
8 | 8 | ||
9 | ArchLinuxARM Latest (as of May 1st 2023) boots and can be installed successfully using libreboot 20230319 on a gru_bob chromebook. | ||
9 | ArchLinuxARM Latest (as of May 1st 2023) boots and can be installed successfully using libreboot 20230319 on a gru\_bob chromebook. | ||
10 | 10 | ||
11 | 11 | The following process should theoretically be applicable to other U-Boot devices and Linux distributions, but the focus here is specifically on ArchLinuxARM. | The following process should theoretically be applicable to other U-Boot devices and Linux distributions, but the focus here is specifically on ArchLinuxARM. |
12 | 12 | ||
... | ... | And the the instructions from the ArchLinuxARM wiki [here](https://archlinuxarm. | |
18 | 18 | The purpose of this guide is to instruct users on how to install an ArchLinuxARM on an external disk that will boot on a gru_bob chromebook, and optionally on the internal eMMC. Many concepts covered in this guide may be familiar to prospective and veteran Libreboot users, with the scope being comprehensive. | The purpose of this guide is to instruct users on how to install an ArchLinuxARM on an external disk that will boot on a gru_bob chromebook, and optionally on the internal eMMC. Many concepts covered in this guide may be familiar to prospective and veteran Libreboot users, with the scope being comprehensive. |
19 | 19 | ||
20 | 20 | Boot Method | Boot Method |
21 | =========== | ||
21 | ----------- | ||
22 | 22 | ||
23 | 23 | There are (at least) three methods that can be used to boot into a Linux distribution from u-boot: | There are (at least) three methods that can be used to boot into a Linux distribution from u-boot: |
24 | 24 | 1) EFI - common, modern boot method for amd64 architecture machines. This is not distribution-specific, so if you intend to make a portable drive that is compatible across multiple systems, you may have a use case. | 1) EFI - common, modern boot method for amd64 architecture machines. This is not distribution-specific, so if you intend to make a portable drive that is compatible across multiple systems, you may have a use case. |
... | ... | For more information about what actually goes into a boot.scr script, check [thi | |
36 | 36 | Since extlinux.conf is supported by multiple bootloaders, making your system more portable, is natively supported by u-boot, it seems to be the best choice for a chromebook. | Since extlinux.conf is supported by multiple bootloaders, making your system more portable, is natively supported by u-boot, it seems to be the best choice for a chromebook. |
37 | 37 | ||
38 | 38 | Creating extlinux.conf | Creating extlinux.conf |
39 | ====================== | ||
39 | ---------------------- | ||
40 | 40 | ||
41 | 41 | Here is an example template of extlinux.conf, [similar examples are found in the u-boot docs](https://u-boot.readthedocs.io/en/latest/develop/distro.html): | Here is an example template of extlinux.conf, [similar examples are found in the u-boot docs](https://u-boot.readthedocs.io/en/latest/develop/distro.html): |
42 | 42 | ||
... | ... | menu title Libre-U-Boot menu | |
46 | 46 | prompt 0 | prompt 0 |
47 | 47 | timeout 50 | timeout 50 |
48 | 48 | ||
49 | |||
50 | 49 | label arch | label arch |
51 | 50 | menu label Arch Linux ARM | menu label Arch Linux ARM |
52 | 51 | linux /Image | linux /Image |
... | ... | label archfallback | |
63 | 62 | ``` | ``` |
64 | 63 | ||
65 | 64 | Formatting and Partitioning Your External Media | Formatting and Partitioning Your External Media |
66 | =============================================== | ||
65 | ----------------------------------------------- | ||
67 | 66 | ||
68 | 67 | Now it's time partition the boot disk. During testing, a microSD card was used in the microSD card slot of the gru-bob chromebook. | Now it's time partition the boot disk. During testing, a microSD card was used in the microSD card slot of the gru-bob chromebook. |
69 | 68 | The libreboot configuration (in the 20230319 release) will boot the microSD card above the onboard eMMC if both are present and bootable. This is useful because it means no knowledge or use of the u-boot console is required. | The libreboot configuration (in the 20230319 release) will boot the microSD card above the onboard eMMC if both are present and bootable. This is useful because it means no knowledge or use of the u-boot console is required. |
... | ... | Find your device with my favourite command, `lsblk` and open it with `fdisk` | |
75 | 74 | ``` | ``` |
76 | 75 | fdisk /dev/sdX | fdisk /dev/sdX |
77 | 76 | ``` | ``` |
77 | |||
78 | 78 | For users creating a bootable SD card, your device may show up as `/dev/mmcblkX` - if this is the case, make sure to change the commands in this guide to | For users creating a bootable SD card, your device may show up as `/dev/mmcblkX` - if this is the case, make sure to change the commands in this guide to |
79 | 79 | contain that path instead of `/dev/sdX`. | contain that path instead of `/dev/sdX`. |
80 | 80 | ||
81 | 81 | In the fdisk tui, create two partitions on a Master Boot Record: | In the fdisk tui, create two partitions on a Master Boot Record: |
82 | |||
82 | 83 | - create a new MBR label | - create a new MBR label |
83 | 84 | - create boot partition of approx. 200MB or greater | - create boot partition of approx. 200MB or greater |
84 | 85 | - set bootable flag on this partition | - set bootable flag on this partition |
... | ... | In the fdisk tui, create two partitions on a Master Boot Record: | |
88 | 89 | You will find the appropriate options by typing `m` when using the fdisk tui on Linux distros. | You will find the appropriate options by typing `m` when using the fdisk tui on Linux distros. |
89 | 90 | ||
90 | 91 | Now make the filesystems: | Now make the filesystems: |
92 | |||
91 | 93 | ``` | ``` |
92 | 94 | mkfs.vfat /dev/sdX1 | mkfs.vfat /dev/sdX1 |
93 | 95 | mkfs.ext4 /dev/sdX2 | mkfs.ext4 /dev/sdX2 |
94 | |||
95 | 96 | ``` | ``` |
96 | 97 | ||
97 | 98 | It's now time to get the PARTUUID of `/dev/sdX2`: | It's now time to get the PARTUUID of `/dev/sdX2`: |
99 | |||
98 | 100 | ``` | ``` |
99 | 101 | sudo blkid | grep "/dev/sdX2" | sudo blkid | grep "/dev/sdX2" |
100 | 102 | ``` | ``` |
103 | |||
101 | 104 | make sure to note down the PARTUUID of your second partition; not your boot partition. | make sure to note down the PARTUUID of your second partition; not your boot partition. |
102 | 105 | paste this into your extlinux.conf file in the `append` section, e.g.: | paste this into your extlinux.conf file in the `append` section, e.g.: |
106 | |||
103 | 107 | ``` | ``` |
104 | 108 | append console=ttyS0,115200 console=tty1 rw root=PARTUUID=fc0d0284-ca84-4194-bf8a-4b9da8d66908 | append console=ttyS0,115200 console=tty1 rw root=PARTUUID=fc0d0284-ca84-4194-bf8a-4b9da8d66908 |
105 | 109 | ``` | ``` |
110 | |||
106 | 111 | in the template provided above, replace `$PARTUUID` with your own. It's possible to specify root in other ways - check the u-boot docs for more examples. | in the template provided above, replace `$PARTUUID` with your own. It's possible to specify root in other ways - check the u-boot docs for more examples. |
107 | 112 | ||
108 | 113 | Boot-Disk Creation | Boot-Disk Creation |
109 | ================== | ||
114 | ------------------ | ||
110 | 115 | ||
111 | 116 | Now that we've got an extlinux.conf file, copy it to your /tmp directory, and we'll begin. | Now that we've got an extlinux.conf file, copy it to your /tmp directory, and we'll begin. |
117 | |||
112 | 118 | ``` | ``` |
113 | 119 | cd /tmp | cd /tmp |
114 | 120 | curl -LO http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz | curl -LO http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz |
... | ... | sync | |
125 | 131 | umount boot | umount boot |
126 | 132 | umount root | umount root |
127 | 133 | ``` | ``` |
134 | |||
128 | 135 | Note the use of ArchLinuxARM-aarch64-latest.tar.gz and not ArchLinuxARM-gru-latest.tar.gz | Note the use of ArchLinuxARM-aarch64-latest.tar.gz and not ArchLinuxARM-gru-latest.tar.gz |
129 | 136 | ||
130 | 137 | The current gru build only supports a depthcharge payload and, of course, we're not using depthcharge are we? | The current gru build only supports a depthcharge payload and, of course, we're not using depthcharge are we? |
... | ... | Extensive testing with ArchLinuxARM-latest release, showed that booting the fall | |
135 | 142 | If you create an extlinux.conf file with paths to both images - like in the template above - you can select either by number at boot. | If you create an extlinux.conf file with paths to both images - like in the template above - you can select either by number at boot. |
136 | 143 | ||
137 | 144 | Going Live - Necessary Tweaks | Going Live - Necessary Tweaks |
138 | ============================= | ||
145 | ----------------------------- | ||
139 | 146 | ||
140 | 147 | Once you're at the login prompt, the fun isn't over! Login & password for root are both `root` by default. | Once you're at the login prompt, the fun isn't over! Login & password for root are both `root` by default. |
141 | 148 | Most Arch users will likely try to update their system now - don't update just yet. | Most Arch users will likely try to update their system now - don't update just yet. |
... | ... | Run `lsblk` and you'll see that the boot partition is not mounted by default. | |
144 | 151 | Updating with `pacman -Syu` at this stage will cause driver problems if you update without your boot partition mounted, likely meaning you cannot connect to the internet with a USB peripheral. | Updating with `pacman -Syu` at this stage will cause driver problems if you update without your boot partition mounted, likely meaning you cannot connect to the internet with a USB peripheral. |
145 | 152 | ||
146 | 153 | To prevent this becoming a problem: | To prevent this becoming a problem: |
154 | |||
147 | 155 | ``` | ``` |
148 | 156 | mkdir /boot | mkdir /boot |
149 | 157 | mount /dev/sdX1 /boot | mount /dev/sdX1 /boot |
150 | 158 | ``` | ``` |
159 | |||
151 | 160 | With that out of the way, yes, you may now update. | With that out of the way, yes, you may now update. |
152 | 161 | It's worth creating a basic filesystem table to automate mounting at boot - it's blank by default so here's another template: | It's worth creating a basic filesystem table to automate mounting at boot - it's blank by default so here's another template: |
153 | 162 | ||
... | ... | UUID=$UUID1 / ext4 rw,relatime 0 1 | |
162 | 171 | # /dev/mmcblk1p1 boot | # /dev/mmcblk1p1 boot |
163 | 172 | UUID=$UUID0 /boot vfat rw,relatime 0 2 | UUID=$UUID0 /boot vfat rw,relatime 0 2 |
164 | 173 | ``` | ``` |
174 | |||
165 | 175 | It should go without saying that you'll replace `$UUID0` and `UUID1` with your boot and root filesystem UUID. | It should go without saying that you'll replace `$UUID0` and `UUID1` with your boot and root filesystem UUID. |
166 | 176 | To get the right information in there: | To get the right information in there: |
177 | |||
167 | 178 | ``` | ``` |
168 | 179 | lsblk -o NAME,UUID,FSTYPE,SIZE | lsblk -o NAME,UUID,FSTYPE,SIZE |
169 | 180 | ``` | ``` |
181 | |||
170 | 182 | `NAME` and `SIZE` are not necessary, but they will help you tell which partition is which. | `NAME` and `SIZE` are not necessary, but they will help you tell which partition is which. |
171 | 183 | ||
172 | 184 | Final Steps | Final Steps |
173 | =========== | ||
185 | ----------- | ||
174 | 186 | ||
175 | 187 | At this stage, you now have a fully functional ArchLinuxARM system on an external disk, and are ready to configure your system. | At this stage, you now have a fully functional ArchLinuxARM system on an external disk, and are ready to configure your system. |
176 | 188 | If you intend to install onto the eMMC module, you can make your changes permanent with: | If you intend to install onto the eMMC module, you can make your changes permanent with: |
189 | |||
177 | 190 | ``` | ``` |
178 | 191 | dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress | dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress |
179 | 192 | ``` | ``` |
File site/docs/uboot/uboot-debian-bookworm.md changed (mode: 100644) (index 77738c3..1e4eef5) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | System Configuration | System Configuration |
7 | ==================== | ||
7 | -------------------- | ||
8 | 8 | ||
9 | Hardware: Samsung Chromebook Plus XE513C24 (gru_kevin) | ||
9 | Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin) | ||
10 | 10 | ||
11 | 11 | Libreboot: 2023-04-23 | Libreboot: 2023-04-23 |
12 | 12 | ||
... | ... | Operating System: Debian Bookworm RC2 | |
15 | 15 | [https://wiki.debian.org/Firmware](https://wiki.debian.org/Firmware) | [https://wiki.debian.org/Firmware](https://wiki.debian.org/Firmware) |
16 | 16 | ||
17 | 17 | Install Media Preparation | Install Media Preparation |
18 | ========================= | ||
18 | ------------------------- | ||
19 | 19 | ||
20 | 20 | Follow the Debian installation instructions in the link below: | Follow the Debian installation instructions in the link below: |
21 | 21 | ||
... | ... | page and I selected the DVD image to have all the packages available when | |
26 | 26 | offline (3.7 gigabyte iso). See the notes below about alternately using the | offline (3.7 gigabyte iso). See the notes below about alternately using the |
27 | 27 | netinst version. | netinst version. |
28 | 28 | ||
29 | [https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/](https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/) | ||
29 | [https://cdimage.debian.org/cdimage/bookworm\_di\_rc2/arm64/iso-dvd/](https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/) | ||
30 | 30 | ||
31 | Write the iso file to a micro sdcard. Replace "sdcard_device" below | ||
31 | Write the iso file to a micro sdcard. Replace `sdcard_device` below | ||
32 | 32 | with the appropriate device path on your system. | with the appropriate device path on your system. |
33 | |||
33 | 34 | ``` | ``` |
34 | 35 | # dd if=debian-bookworm-DI-rc2-arm64-DVD-1.img of=/dev/sdcard_device bs=1M status=progress; sync | # dd if=debian-bookworm-DI-rc2-arm64-DVD-1.img of=/dev/sdcard_device bs=1M status=progress; sync |
35 | 36 | ``` | ``` |
36 | 37 | ||
37 | 38 | Installation | Installation |
38 | ============ | ||
39 | ------------ | ||
39 | 40 | ||
40 | 41 | 1. Insert the micro sdcard into the slot on the Chromebook. | 1. Insert the micro sdcard into the slot on the Chromebook. |
41 | 42 | 2. Power on the Chromebook. | 2. Power on the Chromebook. |
... | ... | internal emmc. | |
149 | 150 |  |  |
150 | 151 | ||
151 | 152 | System Functionality | System Functionality |
152 | ==================== | ||
153 | -------------------- | ||
153 | 154 | ||
154 | 155 | Things that work: | Things that work: |
155 | 156 |
File site/docs/uboot/uboot-openbsd.md changed (mode: 100644) (index 75388b4..6b23caf) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | System Configuration | System Configuration |
7 | ==================== | ||
7 | -------------------- | ||
8 | 8 | ||
9 | Hardware: Samsung Chromebook Plus XE513C24 (gru_kevin) | ||
9 | Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin) | ||
10 | 10 | ||
11 | 11 | Libreboot: 2023-04-23 | Libreboot: 2023-04-23 |
12 | 12 | ||
13 | 13 | Operating System: OpenBSD 7.3 | Operating System: OpenBSD 7.3 |
14 | 14 | ||
15 | 15 | Install Media Preparation | Install Media Preparation |
16 | ========================= | ||
16 | ------------------------- | ||
17 | 17 | ||
18 | 18 | Follow the OpenBSD arm64 installation instructions in the link below: | Follow the OpenBSD arm64 installation instructions in the link below: |
19 | 19 | ||
... | ... | with the appropriate device path on your system. | |
26 | 26 | ``` | ``` |
27 | 27 | ||
28 | 28 | Installation Attempt | Installation Attempt |
29 | ==================== | ||
29 | -------------------- | ||
30 | 30 | ||
31 | 31 | 1. Insert the micro sdcard into the slot on the Chromebook. | 1. Insert the micro sdcard into the slot on the Chromebook. |
32 | 32 | 2. Power on the Chromebook. | 2. Power on the Chromebook. |
File site/docs/uboot/uboot-x86.md changed (mode: 100644) (index bb0f637..b3fd090) | |||
... | ... | title: U-Boot payload (x86 specific) | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Introduction | ||
7 | ============ | ||
6 | U-Boot UEFI on x86 | ||
7 | ------------------ | ||
8 | 8 | ||
9 | 9 | <img tabindex=1 class="r" src="https://av.vimuser.org/uboot.png" /><span class="f"><img src="https://av.vimuser.org/uboot.png" /></span> | <img tabindex=1 class="r" src="https://av.vimuser.org/uboot.png" /><span class="f"><img src="https://av.vimuser.org/uboot.png" /></span> |
10 | 10 | ||
... | ... | payload. It has several boot methods but the most interesting (in an x86 | |
25 | 25 | context) is UEFI. U-Boot provides a very sensible UEFI implementation that can | context) is UEFI. U-Boot provides a very sensible UEFI implementation that can |
26 | 26 | reliably boot many Linux and BSD systems. | reliably boot many Linux and BSD systems. |
27 | 27 | ||
28 | Availability | ||
29 | ------------ | ||
28 | ### Availability | ||
30 | 29 | ||
31 | 30 | Do this in lbmk.git (Libreboot's build system) to check whether your board has | Do this in lbmk.git (Libreboot's build system) to check whether your board has |
32 | 31 | U-Boot enabled: | U-Boot enabled: |
... | ... | Here is an example of what it looks like on the boot menu: | |
50 | 49 | ||
51 | 50 | <https://mas.to/@libreleah/113596262378713418> | <https://mas.to/@libreleah/113596262378713418> |
52 | 51 | ||
53 | Errors | ||
54 | ------ | ||
52 | ### Errors | ||
55 | 53 | ||
56 | 54 | If you see error `-25` in the bootflow menu, it's because there's nothing | If you see error `-25` in the bootflow menu, it's because there's nothing |
57 | 55 | installed that i t can use e.g. EFI bootloader such as GRUB. | installed that i t can use e.g. EFI bootloader such as GRUB. |
... | ... | If you see error `-2` it's likely that you have tried to boot a USB drive | |
60 | 58 | automatically; sometimes you have to do it manually (see the section below | automatically; sometimes you have to do it manually (see the section below |
61 | 59 | about using the bootflow command manually, via `bootflow select`). | about using the bootflow command manually, via `bootflow select`). |
62 | 60 | ||
63 | Boot Linux/BSD installer (USB) | ||
64 | --------------------------- | ||
61 | ### Boot Linux/BSD installer (USB) | ||
65 | 62 | ||
66 | 63 | Just stick your formatted USB stick in. U-Boot should detect it. Sometimes some | Just stick your formatted USB stick in. U-Boot should detect it. Sometimes some |
67 | 64 | USB flash drives are broken, because many of them violate specifications and | USB flash drives are broken, because many of them violate specifications and |
... | ... | After selecting the device, you can do: | |
82 | 79 | ||
83 | 80 | bootflow boot | bootflow boot |
84 | 81 | ||
85 | Booting installed system | ||
86 | ------------------------ | ||
82 | ### Booting installed system | ||
87 | 83 | ||
88 | 84 | It should just work. If all is well, it'll show the bootflow menu. Simply | It should just work. If all is well, it'll show the bootflow menu. Simply |
89 | 85 | select your device. If you see error, perhaps try: | select your device. If you see error, perhaps try: |
... | ... | select your device. If you see error, perhaps try: | |
91 | 87 | bootefi bootmgr | bootefi bootmgr |
92 | 88 | ||
93 | 89 | Tested operating systems | Tested operating systems |
94 | ======================== | ||
90 | ------------------------ | ||
95 | 91 | ||
96 | Linux/BSD | ||
97 | --------- | ||
92 | ### Linux/BSD | ||
98 | 93 | ||
99 | 94 | Arch Linux, Debian Linux and OpenBSD have been tested. | Arch Linux, Debian Linux and OpenBSD have been tested. |
100 | 95 | ||
... | ... | bootloader in the installed system). | |
108 | 103 | EFI-based GRUB menus like in the Debian installer seemed to work just fine, | EFI-based GRUB menus like in the Debian installer seemed to work just fine, |
109 | 104 | that is: setups that use the EFI framebuffer instead of a text console. | that is: setups that use the EFI framebuffer instead of a text console. |
110 | 105 | ||
111 | Windows | ||
112 | ------- | ||
106 | ### Windows | ||
113 | 107 | ||
114 | 108 | Windows was tested, and doesn't work yet. Simon Glass maintains the x86 | Windows was tested, and doesn't work yet. Simon Glass maintains the x86 |
115 | 109 | coreboot payload, and has informed me that he still has some work to do | coreboot payload, and has informed me that he still has some work to do |
116 | 110 | there. | there. |
117 | 111 | ||
118 | 112 | SecureBoot | SecureBoot |
119 | ========== | ||
113 | ---------- | ||
120 | 114 | ||
121 | 115 | Supported by U-Boot, though U-Boot does not currently have a robust way of | Supported by U-Boot, though U-Boot does not currently have a robust way of |
122 | 116 | storing EFI variables, and Libreboot disables SecureBoot by default. However, | storing EFI variables, and Libreboot disables SecureBoot by default. However, |
... | ... | sense to Libreboot's GRUB hardening setup, though the latter is more flexible, | |
131 | 125 | albeit not widely used by the mainstream, but it does work (I use it myself!). | albeit not widely used by the mainstream, but it does work (I use it myself!). |
132 | 126 | ||
133 | 127 | ThinkPad X60/T60 | ThinkPad X60/T60 |
134 | ================ | ||
128 | ---------------- | ||
135 | 129 | ||
136 | 130 | The 32-bit U-Boot payload is only useful for 32-bit setups, and 32-bit UEFI | The 32-bit U-Boot payload is only useful for 32-bit setups, and 32-bit UEFI |
137 | 131 | isn't really that common on x86; the 64-bit U-Boot payload is much more useful, | isn't really that common on x86; the 64-bit U-Boot payload is much more useful, |
... | ... | interesting in the future, as more distros stop supporting BIOS-based methods, | |
168 | 162 | or where the latter may become untested in the future. | or where the latter may become untested in the future. |
169 | 163 | ||
170 | 164 | Bugs | Bugs |
171 | ==== | ||
165 | ---- | ||
172 | 166 | ||
173 | 167 | Limited testing, at least as of 6 December 2024, but some issues that appeared | Limited testing, at least as of 6 December 2024, but some issues that appeared |
174 | 168 | included: | included: |
... | ... | but some don't very well; the GM45 machines work well, e.g. a ThinkPad X200 was | |
188 | 182 | tested. | tested. |
189 | 183 | ||
190 | 184 | Mitigating instability | Mitigating instability |
191 | ======================= | ||
185 | ---------------------- | ||
192 | 186 | ||
193 | 187 | U-Boot is not a primary payload on any board where it's enabled. It's instead | U-Boot is not a primary payload on any board where it's enabled. It's instead |
194 | 188 | chainloaded from SeaBIOS on 64-bit x86, and from GRUB on 32-bit x86. You select | chainloaded from SeaBIOS on 64-bit x86, and from GRUB on 32-bit x86. You select |
File site/download.md changed (mode: 100644) (index 5c6ba07..4be0c58) | |||
1 | 1 | --- | --- |
2 | title: Downloads | ||
2 | title: Download Libreboot | ||
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 |
File site/faq.md changed (mode: 100644) (index 8a0e0db..f1e7d13) | |||
... | ... | the [Libreboot 20240225 release](news/libreboot20240225.md#flashprog-now-used-in | |
11 | 11 | AKA Frequently Questioned Answers | AKA Frequently Questioned Answers |
12 | 12 | ||
13 | 13 | Disable security before flashing | Disable security before flashing |
14 | ================================ | ||
14 | -------------------------------- | ||
15 | 15 | ||
16 | 16 | Before internal flashing, you must first disable `/dev/mem` protections. Make | Before internal flashing, you must first disable `/dev/mem` protections. Make |
17 | 17 | sure to re-enable them after you're finished. | sure to re-enable them after you're finished. |
... | ... | sure to re-enable them after you're finished. | |
19 | 19 | See: [Disabling /dev/mem protection](docs/install/devmem.md) | See: [Disabling /dev/mem protection](docs/install/devmem.md) |
20 | 20 | ||
21 | 21 | Buy Libreboot pre-installed | Buy Libreboot pre-installed |
22 | ============================= | ||
22 | --------------------------- | ||
23 | 23 | ||
24 | 24 | If you want professional installation, Minifree Ltd sells [Libreboot | If you want professional installation, Minifree Ltd sells [Libreboot |
25 | 25 | pre-installed](https://minifree.org/) on select hardware, and it also provides | pre-installed](https://minifree.org/) on select hardware, and it also provides |
... | ... | Leah Rowe, the founder and lead developer of Libreboot, also owns and | |
30 | 30 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
31 | 31 | ||
32 | 32 | Important issues | Important issues |
33 | ================ | ||
33 | ---------------- | ||
34 | 34 | ||
35 | How to compile libreboot from source | ||
36 | ------------------------------------ | ||
35 | ### How to compile libreboot from source | ||
37 | 36 | ||
38 | 37 | Refer to the [lbmk build instructions](docs/build/). | Refer to the [lbmk build instructions](docs/build/). |
39 | 38 | ||
40 | How does the build system work? | ||
41 | ------------------------------- | ||
39 | ### How does the build system work? | ||
42 | 40 | ||
43 | 41 | Refer to the [lbmk maintenance manual](docs/maintain/). | Refer to the [lbmk maintenance manual](docs/maintain/). |
44 | 42 | ||
45 | Do not use CH341A! | ||
46 | ------------------ | ||
43 | ### Do not use CH341A! | ||
47 | 44 | ||
48 | 45 | This SPI flasher will damage your chip, and the mainboard that it is connected | This SPI flasher will damage your chip, and the mainboard that it is connected |
49 | 46 | to. | to. |
... | ... | to. | |
51 | 48 | Read the notes about CH341A on [docs/install/spi.md](docs/install/spi.md) to | Read the notes about CH341A on [docs/install/spi.md](docs/install/spi.md) to |
52 | 49 | learn more. | learn more. |
53 | 50 | ||
54 | How Can I Help | ||
55 | -------------- | ||
51 | ### How Can I Help | ||
56 | 52 | ||
57 | 53 | You do not need to be a skilled developer in order to help the project | You do not need to be a skilled developer in order to help the project |
58 | 54 | substantially. | substantially. |
... | ... | Testing involves minimal effort and really helps out the project. | |
65 | 61 | See the [board maintainers documentation](/docs/maintain/testing.md) | See the [board maintainers documentation](/docs/maintain/testing.md) |
66 | 62 | if you are interested in testing roms before they are released. | if you are interested in testing roms before they are released. |
67 | 63 | ||
68 | Uneven backlight on GM45 ThinkPads | ||
69 | ---------------------------------- | ||
64 | ### Uneven backlight on GM45 ThinkPads | ||
70 | 65 | ||
71 | 66 | We don't know how to detect the correct PWM value to use in | We don't know how to detect the correct PWM value to use in |
72 | 67 | coreboot, so we just use the default one in coreboot which has | coreboot, so we just use the default one in coreboot which has |
... | ... | this issue on some CCFL panels, but not LED panels. | |
75 | 70 | You can work around this in your distribution, by following the notes at | You can work around this in your distribution, by following the notes at |
76 | 71 | [docs: backlight control](../docs/misc/#finetune-backlight-control-on-intel-gpus). | [docs: backlight control](../docs/misc/#finetune-backlight-control-on-intel-gpus). |
77 | 72 | ||
78 | GM45 thinkpad ethernet port doesn't autoconnect | ||
79 | ----------------------------------------------- | ||
73 | ### GM45 thinkpad ethernet port doesn't autoconnect | ||
80 | 74 | ||
81 | 75 | This was observed on some systems using network-manager. This happens | This was observed on some systems using network-manager. This happens |
82 | 76 | both on the original BIOS and in libreboot. It's a quirk in the | both on the original BIOS and in libreboot. It's a quirk in the |
... | ... | On systemd-based distros, you might try: | |
92 | 86 | (the service name might be different for you, depending on your | (the service name might be different for you, depending on your |
93 | 87 | configuration) | configuration) |
94 | 88 | ||
95 | PIKE2008 module hangs KGPE-D16 / KCMA-D8 | ||
96 | ----------------------------------------- | ||
89 | ### PIKE2008 module hangs KGPE-D16 / KCMA-D8 | ||
97 | 90 | ||
98 | 91 | Loading the option ROM from the PIKE2008 module on either ASUS KCMA-D8 | Loading the option ROM from the PIKE2008 module on either ASUS KCMA-D8 |
99 | 92 | or KGPE-D16 causes the system to hang at boot. It's possible to use | or KGPE-D16 causes the system to hang at boot. It's possible to use |
... | ... | or to boot (with SeaGRUB and/or SeaBIOS) from regular SATA and then use | |
102 | 95 | it in Linux. The Linux kernel is capable of using the PIKE2008 | it in Linux. The Linux kernel is capable of using the PIKE2008 |
103 | 96 | module without loading the option ROM. | module without loading the option ROM. |
104 | 97 | ||
105 | How to save kernel panic logs on thinkpad laptops? | ||
106 | -------------------------------------------------- | ||
98 | ### How to save kernel panic logs on thinkpad laptops? | ||
107 | 99 | ||
108 | 100 | The easiest method of doing so is by using the kernel's netconsole | The easiest method of doing so is by using the kernel's netconsole |
109 | 101 | and reproducing the panic. Netconsole requires two machines, the one that is | and reproducing the panic. Netconsole requires two machines, the one that is |
... | ... | the target (`target$`): | |
168 | 160 | 7. Try to reproduce the kernel panic. | 7. Try to reproduce the kernel panic. |
169 | 161 | ||
170 | 162 | Hardware compatibility | Hardware compatibility |
171 | ====================== | ||
163 | ---------------------- | ||
172 | 164 | ||
173 | What systems are compatible with libreboot? | ||
174 | -------------------------------------------- | ||
165 | ### What systems are compatible with libreboot? | ||
175 | 166 | ||
176 | 167 | Any system can easily be added, so *compatibility* merely refers to whatever | Any system can easily be added, so *compatibility* merely refers to whatever |
177 | 168 | boards are integrated in the `lbmk` build system, which libreboot uses. | boards are integrated in the `lbmk` build system, which libreboot uses. |
178 | 169 | ||
179 | 170 | The [installation page](docs/install/) lists compatible machines. | The [installation page](docs/install/) lists compatible machines. |
180 | 171 | ||
181 | Freedom pitfalls with modern Intel hardware {#intel} | ||
182 | ---------------------------------------------------- | ||
172 | ### Freedom pitfalls with modern Intel hardware {#intel} | ||
183 | 173 | ||
184 | 174 | Coreboot is nominally Free Software, but requires certain vendor code on some x86 | Coreboot is nominally Free Software, but requires certain vendor code on some x86 |
185 | 175 | targets that it supports, on both Intel and AMD. | targets that it supports, on both Intel and AMD. |
186 | 176 | ||
187 | ### Intel Management Engine (ME) {#intelme} | ||
177 | #### Intel Management Engine (ME) {#intelme} | ||
188 | 178 | ||
189 | 179 | NOTE: The information below is slightly out of date. Nowadays, Intel ME does | NOTE: The information below is slightly out of date. Nowadays, Intel ME does |
190 | 180 | not run on an ARC coprocessor, but instead runs on a modified Intel 486 based | not run on an ARC coprocessor, but instead runs on a modified Intel 486 based |
... | ... | If you're stuck with the ME (non-libreboot system), you might find this | |
353 | 343 | interesting: | interesting: |
354 | 344 | <https://hardenedlinux.github.io/firmware/2016/11/17/neutralize_ME_firmware_on_sandybridge_and_ivybridge.html> | <https://hardenedlinux.github.io/firmware/2016/11/17/neutralize_ME_firmware_on_sandybridge_and_ivybridge.html> |
355 | 345 | ||
356 | ### Firmware Support Package (FSP) {#fsp} | ||
346 | #### Firmware Support Package (FSP) {#fsp} | ||
357 | 347 | ||
358 | 348 | On all recent Intel systems, coreboot support has revolved around | On all recent Intel systems, coreboot support has revolved around |
359 | 349 | integrating a vendor file (for each system) called the *FSP* (firmware support | integrating a vendor file (for each system) called the *FSP* (firmware support |
... | ... | Since the FSP is responsible for the early hardware initialization, that | |
367 | 357 | means it also handles SMM (System Management Mode). This is a special | means it also handles SMM (System Management Mode). This is a special |
368 | 358 | mode that operates below the operating system level. | mode that operates below the operating system level. |
369 | 359 | ||
370 | ### CPU microcode updates {#microcode} | ||
360 | #### CPU microcode updates {#microcode} | ||
371 | 361 | ||
372 | 362 | The microcode configures logic gates in your CPU, to implement an instruction | The microcode configures logic gates in your CPU, to implement an instruction |
373 | 363 | set architecture. Your CPU will already contain them, but it also supplies a | set architecture. Your CPU will already contain them, but it also supplies a |
... | ... | The git repository for that project is here: | |
393 | 383 | Both the video and the repository give some further insight about CPU | Both the video and the repository give some further insight about CPU |
394 | 384 | microcode. The way it works on AMD will be very similar to Intel. | microcode. The way it works on AMD will be very similar to Intel. |
395 | 385 | ||
396 | Freedom pitfalls to consider on AMD hardware {#amd} | ||
397 | ---------------------------------------------------------------------------- | ||
386 | ### Freedom pitfalls to consider on AMD hardware {#amd} | ||
398 | 387 | ||
399 | 388 | NOTE: Nowadays there's openSIL <https://github.com/openSIL/openSIL> - it's | NOTE: Nowadays there's openSIL <https://github.com/openSIL/openSIL> - it's |
400 | 389 | AMD's attempt to provide some source code again, that projects like coreboot | AMD's attempt to provide some source code again, that projects like coreboot |
... | ... | be "neutered" (nothing like `me_cleaner`, or *psp\_cleaner*) exists yet. | |
404 | 393 | AMD has more or less the same problem as Intel, when it comes to software | AMD has more or less the same problem as Intel, when it comes to software |
405 | 394 | freedom. | freedom. |
406 | 395 | ||
407 | ### AMD Platform Security Processor (PSP) | ||
396 | #### AMD Platform Security Processor (PSP) | ||
408 | 397 | ||
409 | 398 | This is basically AMD's own version of the [Intel Management | This is basically AMD's own version of the [Intel Management |
410 | 399 | Engine](#intelme). It has all of the same basic security and freedom | Engine](#intelme). It has all of the same basic security and freedom |
... | ... | anecdotal reports indicate that AMD's boot guard counterpart will be | |
447 | 436 | used on most OEM hardware, disabled only on so-called "enthusiast" | used on most OEM hardware, disabled only on so-called "enthusiast" |
448 | 437 | CPUs. | CPUs. |
449 | 438 | ||
450 | ### AMD IMC firmware | ||
439 | #### AMD IMC firmware | ||
451 | 440 | ||
452 | 441 | Read <https://www.coreboot.org/AMD_IMC>. | Read <https://www.coreboot.org/AMD_IMC>. |
453 | 442 | ||
454 | 443 | NOTE: This section is oudated, and it is in need of cleanup. | NOTE: This section is oudated, and it is in need of cleanup. |
455 | 444 | ||
456 | ### AMD SMU firmware | ||
445 | #### AMD SMU firmware | ||
457 | 446 | ||
458 | 447 | NOTE: This section may be outdated, and it is in need of cleanup. | NOTE: This section may be outdated, and it is in need of cleanup. |
459 | 448 | ||
... | ... | and based on this work, Damien Zammit (another coreboot hacker) | |
471 | 460 | firmware, but on the relevant system (ASUS F2A85-M) there were still | firmware, but on the relevant system (ASUS F2A85-M) there were still |
472 | 461 | other such files present (Video BIOS, and others). | other such files present (Video BIOS, and others). |
473 | 462 | ||
474 | ### AMD AGESA firmware | ||
463 | #### AMD AGESA firmware | ||
475 | 464 | ||
476 | 465 | NOTE: More needs to be written about this, to reflect the current reality. | NOTE: More needs to be written about this, to reflect the current reality. |
477 | 466 | The situation with AMD has evolved in recent years. The information on this FAQ | The situation with AMD has evolved in recent years. The information on this FAQ |
... | ... | project, releasing this as source code under a free license. In 2014, | |
483 | 472 | they stopped releasing source code and started releasing AGESA as vendor | they stopped releasing source code and started releasing AGESA as vendor |
484 | 473 | blobs instead. This makes AGESA now equivalent to [Intel FSP](#fsp). | blobs instead. This makes AGESA now equivalent to [Intel FSP](#fsp). |
485 | 474 | ||
486 | ### AMD CPU microcode updates | ||
475 | #### AMD CPU microcode updates | ||
487 | 476 | ||
488 | 477 | Read the Intel section | Read the Intel section |
489 | 478 | practically the same, though it was found with much later hardware in | practically the same, though it was found with much later hardware in |
... | ... | the updates are needed on all AMD boards (depends on CPU). | |
493 | 482 | The libreboot project does not consider microcode updates a problem, and it | The libreboot project does not consider microcode updates a problem, and it |
494 | 483 | enables them by default on all supported hardware. | enables them by default on all supported hardware. |
495 | 484 | ||
496 | Hi, I have <insert random system here>, is it supported? | ||
497 | -------------------------------------------------------------------------------------------------------- | ||
485 | ### Hi, I have <insert random system here>, is it supported? | ||
498 | 486 | ||
499 | 487 | If it's supported by coreboot, you can add it immediately. | If it's supported by coreboot, you can add it immediately. |
500 | 488 | Read the [porting guide](/docs/maintain/porting.html) for how to port for a new board. | Read the [porting guide](/docs/maintain/porting.html) for how to port for a new board. |
... | ... | If coreboot lacks support for your hardware, you must add support for it. | |
505 | 493 | Please consult the coreboot project for guidance. | Please consult the coreboot project for guidance. |
506 | 494 | ||
507 | 495 | General questions | General questions |
508 | ================= | ||
496 | ----------------- | ||
509 | 497 | ||
510 | How do I install libreboot? | ||
511 | ------------------------------------------------------- | ||
498 | ### How do I install libreboot? | ||
512 | 499 | ||
513 | 500 | See [installation guide](docs/install/) | See [installation guide](docs/install/) |
514 | 501 | ||
515 | How do I program an SPI flash chip? | ||
516 | --------------------------------------------------------------------------------- | ||
502 | ### How do I program an SPI flash chip? | ||
517 | 503 | ||
518 | 504 | Refer to:\ | Refer to:\ |
519 | 505 | [Externally rewrite 25xx NOR flash via SPI protocol](docs/install/spi.md) | [Externally rewrite 25xx NOR flash via SPI protocol](docs/install/spi.md) |
... | ... | Refer to:\ | |
521 | 507 | It's possible to use a 16-pin SOIC test clip on an 8-pin SOIC chip, if you | It's possible to use a 16-pin SOIC test clip on an 8-pin SOIC chip, if you |
522 | 508 | align the pins properly. The connection is generally more sturdy. | align the pins properly. The connection is generally more sturdy. |
523 | 509 | ||
524 | How do I write-protect the flash chip? | ||
525 | ---------------------------------------------------------------------------- | ||
510 | ### How do I write-protect the flash chip? | ||
526 | 511 | ||
527 | 512 | By default, there is no write-protection on a libreboot system. This is | By default, there is no write-protection on a libreboot system. This is |
528 | 513 | for usability reasons, because most people do not have easy access to an | for usability reasons, because most people do not have easy access to an |
... | ... | welcome to submit patches adding these instructions. | |
542 | 527 | TODO: Document PRx based flash protection on Intel platforms, and investigate | TODO: Document PRx based flash protection on Intel platforms, and investigate |
543 | 528 | other methods on AMD systems. | other methods on AMD systems. |
544 | 529 | ||
545 | How do I change the BIOS settings? | ||
546 | ------------------------------------------------------------------------ | ||
530 | ### How do I change the BIOS settings? | ||
547 | 531 | ||
548 | 532 | Most libreboot setups actually use the [GRUB | Most libreboot setups actually use the [GRUB |
549 | 533 | payload](http://www.coreboot.org/GRUB2). More information about payloads | payload](http://www.coreboot.org/GRUB2). More information about payloads |
... | ... | To get a full list of available options, do this: | |
577 | 561 | This will change the default inside that ROM image, and then you can | This will change the default inside that ROM image, and then you can |
578 | 562 | re-flash it. | re-flash it. |
579 | 563 | ||
580 | How do I pad a ROM before flashing? | ||
581 | ------------------------------------- | ||
564 | ### How do I pad a ROM before flashing? | ||
582 | 565 | ||
583 | 566 | It is advisable to simply use a larger ROM image. This section was written | It is advisable to simply use a larger ROM image. This section was written |
584 | 567 | mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only | mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only |
... | ... | padded 16MiB image do the following: | |
617 | 600 | ||
618 | 601 | With padding removed cbfstool will be able to operate on the image as usual. | With padding removed cbfstool will be able to operate on the image as usual. |
619 | 602 | ||
620 | Do I need to install a bootloader when installing a distribution? | ||
621 | ----------------------------------------------------------------- | ||
603 | ### Do I need to install a bootloader when installing a distribution? | ||
622 | 604 | ||
623 | 605 | Most libreboot setups integrate the GRUB bootloader already, as a | Most libreboot setups integrate the GRUB bootloader already, as a |
624 | 606 | *[payload](http://www.coreboot.org/Payloads)*. This means that the GRUB | *[payload](http://www.coreboot.org/Payloads)*. This means that the GRUB |
... | ... | Nowadays, other payloads are also provided. If you're using the SeaBIOS payload, | |
636 | 618 | then the normal MBR bootsector is used on your HDD or SSD, like you would | then the normal MBR bootsector is used on your HDD or SSD, like you would |
637 | 619 | expect. So the above paragraphs only apply to the GRUB payload. | expect. So the above paragraphs only apply to the GRUB payload. |
638 | 620 | ||
639 | Do I need to re-flash when I re-install a distribution? | ||
640 | ------------------------------------------------------- | ||
621 | ### Do I need to re-flash when I re-install a distribution? | ||
641 | 622 | ||
642 | 623 | Not anymore. Recent versions of libreboot (using the GRUB payload) will | Not anymore. Recent versions of libreboot (using the GRUB payload) will |
643 | 624 | automatically switch to a GRUB configuration on the HDD or SSD, if it | automatically switch to a GRUB configuration on the HDD or SSD, if it |
... | ... | more information, see | |
649 | 630 | If you're using the SeaBIOS payload, it's even easier. It works just like you | If you're using the SeaBIOS payload, it's even easier. It works just like you |
650 | 631 | would expect. SeaBIOS implements a normal x86 BIOS interface. | would expect. SeaBIOS implements a normal x86 BIOS interface. |
651 | 632 | ||
652 | What does a flash chip look like? | ||
653 | ----------------------------------------------------------------- | ||
633 | ### What does a flash chip look like? | ||
654 | 634 | ||
655 | 635 | You can find photos of various chip types on the following page:\ | You can find photos of various chip types on the following page:\ |
656 | 636 | [External 25xx NOR flashing guide](docs/install/spi.md) | [External 25xx NOR flashing guide](docs/install/spi.md) |
657 | 637 | ||
658 | 638 | Inability to load `thinkpad_acpi` on post-haswell systems {#thinkpad-acpi} | Inability to load `thinkpad_acpi` on post-haswell systems {#thinkpad-acpi} |
659 | ========================================================================== | ||
639 | -------------------------------------------------------------------------- | ||
660 | 640 | ||
661 | 641 | Reported by a user on Debian 11 (on a ThinkPad T440p) and a user | Reported by a user on Debian 11 (on a ThinkPad T440p) and a user |
662 | 642 | on Void Linux (ThinkPad T480), Linux (or modprobe) may fail to load | on Void Linux (ThinkPad T480), Linux (or modprobe) may fail to load |
... | ... | thinkpad_acpi.force_load=1 | |
697 | 677 | ||
698 | 678 | to your kernel parameters (in GRUB, or your preferred linux-capable bootloader). | to your kernel parameters (in GRUB, or your preferred linux-capable bootloader). |
699 | 679 | ||
700 | tlp | ||
701 | --- | ||
680 | ### tlp | ||
702 | 681 | ||
703 | 682 | You can install the `tlp` package and start that service. For example, on | You can install the `tlp` package and start that service. For example, on |
704 | 683 | Debian: | Debian: |
... | ... | tlp-stat -b | |
724 | 703 | This will provide information about the battery. | This will provide information about the battery. |
725 | 704 | ||
726 | 705 | What other firmware exists outside of libreboot? | What other firmware exists outside of libreboot? |
727 | ================================================== | ||
706 | ------------------------------------------------ | ||
728 | 707 | ||
729 | 708 | You can also read information about these in the [libreboot binary blob | You can also read information about these in the [libreboot binary blob |
730 | 709 | reduction policy](news/policy.md), where it goes into more detail about some | reduction policy](news/policy.md), where it goes into more detail about some |
... | ... | Use of ethernet or wifi is recommended, as opposed to mobile networks, | |
940 | 919 | as these are generally much safer. | as these are generally much safer. |
941 | 920 | ||
942 | 921 | Operating Systems | Operating Systems |
943 | ================= | ||
922 | ----------------- | ||
944 | 923 | ||
945 | Can I use Linux? | ||
946 | -------------------------------------------------- | ||
924 | ### Can I use Linux? | ||
947 | 925 | ||
948 | 926 | Absolutely! It is well-tested in libreboot, and highly recommended. See | Absolutely! It is well-tested in libreboot, and highly recommended. See |
949 | 927 | [installing Linux](../docs/linux/grub_boot_installer.md) and | [installing Linux](../docs/linux/grub_boot_installer.md) and |
... | ... | Absolutely! It is well-tested in libreboot, and highly recommended. See | |
952 | 930 | Any recent distribution should work, as long as it uses KMS (kernel mode | Any recent distribution should work, as long as it uses KMS (kernel mode |
953 | 931 | setting) for the graphics. | setting) for the graphics. |
954 | 932 | ||
955 | Fedora won't boot? (may also be applicable to Redhat/CentOS) | ||
956 | ----------------------------------------------------------- | ||
933 | ### Fedora won't boot? (may also be applicable to Redhat/CentOS) | ||
957 | 934 | ||
958 | 935 | On Fedora, by default the grub.cfg tries to boot linux in 16-bit mode. You | On Fedora, by default the grub.cfg tries to boot linux in 16-bit mode. You |
959 | 936 | just have to modify Fedora's GRUB configuration. | just have to modify Fedora's GRUB configuration. |
960 | 937 | Refer to [the Linux page](docs/linux/). | Refer to [the Linux page](docs/linux/). |
961 | 938 | ||
962 | Can I use BSD? | ||
963 | ---------------------------------- | ||
939 | ### Can I use BSD? | ||
964 | 940 | ||
965 | 941 | Absolutely! The libreboot firmware has good support for FreeBSD, NetBSD and | Absolutely! The libreboot firmware has good support for FreeBSD, NetBSD and |
966 | 942 | OpenBSD. Other systems are untested, but should work just fine. | OpenBSD. Other systems are untested, but should work just fine. |
... | ... | OpenBSD. Other systems are untested, but should work just fine. | |
968 | 944 | See: | See: |
969 | 945 | [docs/bsd/](docs/bsd/) | [docs/bsd/](docs/bsd/) |
970 | 946 | ||
971 | Windows?? | ||
972 | --------- | ||
947 | ### Windows?? | ||
973 | 948 | ||
974 | 949 | Yes, you can use Windows 10 and 11. They are not officially supported and the | Yes, you can use Windows 10 and 11. They are not officially supported and the |
975 | 950 | Libreboot project recommends that you *avoid* this choice, because Windows is | Libreboot project recommends that you *avoid* this choice, because Windows is |
... | ... | SeaBIOS, with the coreboot framebuffer initialised at startup, on an Intel GPU | |
1006 | 981 | initialised via coreboot's *libgfxinit*, on November 2023 versions of Libreboot. | initialised via coreboot's *libgfxinit*, on November 2023 versions of Libreboot. |
1007 | 982 | We do not yet support booting with UEFI on x86 machines. | We do not yet support booting with UEFI on x86 machines. |
1008 | 983 | ||
1009 | Are other operating systems compatible? | ||
1010 | ------------------------------------------------------------------- | ||
984 | ### Are other operating systems compatible? | ||
1011 | 985 | ||
1012 | 986 | Unknown. Perhaps so, but it's impossible to say without further testing. | Unknown. Perhaps so, but it's impossible to say without further testing. |
1013 | 987 | ||
1014 | 988 | What level of software freedom does libreboot give me? | What level of software freedom does libreboot give me? |
1015 | =================================================== | ||
989 | -------------------------------------------------- | ||
1016 | 990 | ||
1017 | 991 | Please read the [libreboot binary blob minimalisation policy](news/policy.md). | Please read the [libreboot binary blob minimalisation policy](news/policy.md). |
1018 | 992 | ||
... | ... | exist, for example, the work done by Sam Zeloof and the Libre Silicon project: | |
1062 | 1036 | (Sam literally makes CPUs in his garage) | (Sam literally makes CPUs in his garage) |
1063 | 1037 | ||
1064 | 1038 | Where can I learn more about electronics | Where can I learn more about electronics |
1065 | ========================================== | ||
1039 | ---------------------------------------- | ||
1066 | 1040 | ||
1067 | 1041 | * Basics of soldering and rework by PACE | * Basics of soldering and rework by PACE |
1068 | 1042 | Both series of videos are mandatory regardless of your soldering skill. | Both series of videos are mandatory regardless of your soldering skill. |
File site/faq.uk.md changed (mode: 100644) (index dc3d784..5974ae3) | |||
... | ... | the [Libreboot 20240225 release](news/libreboot20240225.md#flashprog-now-used-in | |
11 | 11 | Також відомо як Відповіді на часті питання | Також відомо як Відповіді на часті питання |
12 | 12 | ||
13 | 13 | Buy Libreboot pre-installed | Buy Libreboot pre-installed |
14 | ========== | ||
14 | ------------------------- | ||
15 | 15 | ||
16 | 16 | If you want professional installation, Minifree Ltd sells [Libreboot | If you want professional installation, Minifree Ltd sells [Libreboot |
17 | 17 | pre-installed](https://minifree.org/) on select hardware, and it also provides | pre-installed](https://minifree.org/) on select hardware, and it also provides |
... | ... | Leah Rowe, the founder and lead developer of Libreboot, also owns and | |
22 | 22 | operates Minifree Ltd; sales provide funding for the Libreboot project. | operates Minifree Ltd; sales provide funding for the Libreboot project. |
23 | 23 | ||
24 | 24 | Важливі питання | Важливі питання |
25 | ================ | ||
25 | --------------- | ||
26 | 26 | ||
27 | Як скомпілювати libreboot з джерельного коду | ||
28 | ------------------------------------ | ||
27 | ### Як скомпілювати libreboot з джерельного коду | ||
29 | 28 | ||
30 | 29 | Зверніться до [інструкцій зі збірки lbmk](docs/build/index.uk.md). | Зверніться до [інструкцій зі збірки lbmk](docs/build/index.uk.md). |
31 | 30 | ||
32 | Як працює система збірки? | ||
33 | ------------------------------- | ||
31 | ### Як працює система збірки? | ||
34 | 32 | ||
35 | 33 | Зверніться до [посібника з обслуговування lbmk](docs/maintain/). | Зверніться до [посібника з обслуговування lbmk](docs/maintain/). |
36 | 34 | ||
37 | Не використовуйте CH341A! | ||
38 | ------------------ | ||
35 | ### Не використовуйте CH341A! | ||
39 | 36 | ||
40 | 37 | Цей програматор SPI пошкодить ваш чіп і материнську плату, до якої він | Цей програматор SPI пошкодить ваш чіп і материнську плату, до якої він |
41 | 38 | підключений. | підключений. |
... | ... | operates Minifree Ltd; sales provide funding for the Libreboot project. | |
43 | 40 | Прочитайте примітки щодо CH341A на [docs/install/spi.md](docs/install/spi.md), щоб | Прочитайте примітки щодо CH341A на [docs/install/spi.md](docs/install/spi.md), щоб |
44 | 41 | вивчити більше. | вивчити більше. |
45 | 42 | ||
46 | Flashrom скаржиться на доступ DEVMEM | ||
47 | -------------------------------------- | ||
43 | ### Flashprog скаржиться на доступ DEVMEM | ||
48 | 44 | ||
49 | 45 | Якщо запущено `flashprog -p internal` для програмної перепрошивки та | Якщо запущено `flashprog -p internal` для програмної перепрошивки та |
50 | 46 | ви отримуєте помилку, пов'язану з доступом до /dev/mem, вам слід перезавантажити систему з | ви отримуєте помилку, пов'язану з доступом до /dev/mem, вам слід перезавантажити систему з |
... | ... | Error accessing DMI Table, 0x1000 bytes at 0x000000007fb27000 | |
64 | 60 | /dev/mem mmap failed: Operation not permitted | /dev/mem mmap failed: Operation not permitted |
65 | 61 | ``` | ``` |
66 | 62 | ||
67 | Підсвічування в лівій частині екрана стає темнішим | ||
68 | --------------------------------------------------------------------------------------------------------------- | ||
63 | ### Підсвічування в лівій частині екрана стає темнішим | ||
69 | 64 | ||
70 | 65 | Ми не знаємо, як визначити правильне значення ШІМ для використання в | Ми не знаємо, як визначити правильне значення ШІМ для використання в |
71 | 66 | coreboot, тому ми просто використовуємо стандартне в coreboot, який має | coreboot, тому ми просто використовуємо стандартне в coreboot, який має |
... | ... | coreboot, тому ми просто використовуємо стандар | |
74 | 69 | Ви можете вирішити цю проблему у своєму дистрибутиві, дотримуючись приміток на | Ви можете вирішити цю проблему у своєму дистрибутиві, дотримуючись приміток на |
75 | 70 | [документація: контроль підсвічуванням](../docs/misc/#finetune-backlight-control-on-intel-gpus). | [документація: контроль підсвічуванням](../docs/misc/#finetune-backlight-control-on-intel-gpus). |
76 | 71 | ||
77 | Ethernet не працює на моєму X200/T400/X60/T60, коли я його підключаю | ||
78 | ------------------------------------------------------------------- | ||
72 | ### Ethernet не працює на моєму X200/T400/X60/T60, коли я його підключаю | ||
79 | 73 | ||
80 | 74 | Це спостерігалося в деяких системах, які використовують network-manager. Таке буває | Це спостерігалося в деяких системах, які використовують network-manager. Таке буває |
81 | 75 | як в оригінальному BIOS, так і в libreboot. Це примха в | як в оригінальному BIOS, так і в libreboot. Це примха в |
... | ... | Ethernet не працює на моєму X200/T400/X60/T60, коли я йог | |
91 | 85 | (назва служби може відрізнятися для вас, залежно від вашої | (назва служби може відрізнятися для вас, залежно від вашої |
92 | 86 | конфігурації) | конфігурації) |
93 | 87 | ||
94 | Мій KCMA-D8 або KGPE-D16 не завантажується з встановленим модулем PIKE2008 | ||
95 | ----------------------------------------------------------------------- | ||
88 | ### Мій KCMA-D8 або KGPE-D16 не завантажується з встановленим модулем PIKE2008 | ||
96 | 89 | ||
97 | 90 | **Материнські плати KGPE-D16, KCMA-D8 та KFSN4-DRE ASUS було видалено 19 | **Материнські плати KGPE-D16, KCMA-D8 та KFSN4-DRE ASUS було видалено 19 |
98 | 91 | листопада 2022. Ви все ще можете використовувати старіші версії Libreboot, і випуски | листопада 2022. Ви все ще можете використовувати старіші версії Libreboot, і випуски |
... | ... | Ethernet не працює на моєму X200/T400/X60/T60, коли я йог | |
105 | 98 | це в Linux. Ядро Linux здатне використовувати PIKE2008 | це в Linux. Ядро Linux здатне використовувати PIKE2008 |
106 | 99 | модуль без завантаження Option ROM. | модуль без завантаження Option ROM. |
107 | 100 | ||
108 | Як зберегти журнали паніки ядра на ноутбуках Thinkpad? | ||
109 | -------------------------------------------------- | ||
101 | ### Як зберегти журнали паніки ядра на ноутбуках Thinkpad? | ||
110 | 102 | ||
111 | 103 | Найпростіший спосіб зробити це за допомогою netconsole ядра | Найпростіший спосіб зробити це за допомогою netconsole ядра |
112 | 104 | і відтворення паніки. Netconsole вимагає двох машин, тієї, що є | і відтворення паніки. Netconsole вимагає двох машин, тієї, що є |
... | ... | Ethernet не працює на моєму X200/T400/X60/T60, коли я йог | |
171 | 163 | 7. Спробуйте відтворити паніку ядра. | 7. Спробуйте відтворити паніку ядра. |
172 | 164 | ||
173 | 165 | Апаратна сумісність | Апаратна сумісність |
174 | ====================== | ||
166 | ------------------- | ||
175 | 167 | ||
176 | Які системи сумісні з libreboot? | ||
177 | ----------------------------------------------------------------------------------- | ||
168 | ### Які системи сумісні з libreboot? | ||
178 | 169 | ||
179 | 170 | Будь-яку систему можна легко додати, тому *сумісність* посилається до будь-якої | Будь-яку систему можна легко додати, тому *сумісність* посилається до будь-якої |
180 | 171 | інтегрованої до системи побудови `lbmk` плати, яку libreboot використовує. | інтегрованої до системи побудови `lbmk` плати, яку libreboot використовує. |
181 | 172 | ||
182 | 173 | The [installation page](docs/install/) lists compatible machines. | The [installation page](docs/install/) lists compatible machines. |
183 | 174 | ||
184 | Пастки свободи з сучасним обладнанням Intel {#intel} | ||
185 | ---------------------------------------------------- | ||
175 | ### Пастки свободи з сучасним обладнанням Intel {#intel} | ||
186 | 176 | ||
187 | 177 | Coreboot номінально є вільним програмним забезпеченням, але для більшості x86 | Coreboot номінально є вільним програмним забезпеченням, але для більшості x86 |
188 | 178 | цілей, які він підтримує, потрібні двійкові блоби, як на Intel, так і на AMD. | цілей, які він підтримує, потрібні двійкові блоби, як на Intel, так і на AMD. |
189 | 179 | ||
190 | ### Intel Management Engine (ME) {#intelme} | ||
180 | #### Intel Management Engine (ME) {#intelme} | ||
191 | 181 | ||
192 | 182 | ПРИМІТКА: Інформація нижче трохи застаріла. Зараз Intel ME не | ПРИМІТКА: Інформація нижче трохи застаріла. Зараз Intel ME не |
193 | 183 | працює на співпроцесорі ARC, а працює на архітектурі модифікованого процесора Intel 486, | працює на співпроцесорі ARC, а працює на архітектурі модифікованого процесора Intel 486, |
... | ... | Revealed (Розкрито вбудовану технологію безпек | |
357 | 347 | цікавим: | цікавим: |
358 | 348 | <http://hardenedlinux.org/firmware/2016/11/17/neutralize_ME_firmware_on_sandybridge_and_ivybridge.html> | <http://hardenedlinux.org/firmware/2016/11/17/neutralize_ME_firmware_on_sandybridge_and_ivybridge.html> |
359 | 349 | ||
360 | ### Firmware Support Package (FSP) {#fsp} | ||
350 | #### Firmware Support Package (FSP) {#fsp} | ||
361 | 351 | ||
362 | 352 | У всіх останніх системах Intel, підтримка coreboot обертається навколо | У всіх останніх системах Intel, підтримка coreboot обертається навколо |
363 | 353 | інтеграції блоба (для кожної системи) під назвою *FSP* (Firmware Support Package, пакет підтримки | інтеграції блоба (для кожної системи) під назвою *FSP* (Firmware Support Package, пакет підтримки |
... | ... | Revealed (Розкрито вбудовану технологію безпек | |
376 | 366 | руткітів SMM було продемонстровано в природі (використайте пошукову систему, | руткітів SMM було продемонстровано в природі (використайте пошукову систему, |
377 | 367 | щоб знайти їх). | щоб знайти їх). |
378 | 368 | ||
379 | ### Оновлення мікрокода ЦП {#microcode} | ||
369 | #### Оновлення мікрокода ЦП {#microcode} | ||
380 | 370 | ||
381 | 371 | Мікрокод налаштовує логічні вентилі у вашому ЦП, щоб реалізувати архітектуру | Мікрокод налаштовує логічні вентилі у вашому ЦП, щоб реалізувати архітектуру |
382 | 372 | набору інструкцій. Ваш ЦП уже містить їх, але він також надає спосіб оновлення | набору інструкцій. Ваш ЦП уже містить їх, але він також надає спосіб оновлення |
... | ... | Revealed (Розкрито вбудовану технологію безпек | |
400 | 390 | І відео, і репозиторій дають деяку додаткову інформацію про мікрокод | І відео, і репозиторій дають деяку додаткову інформацію про мікрокод |
401 | 391 | ЦП. Те, як це працює на AMD, буде дуже схожим на Intel. | ЦП. Те, як це працює на AMD, буде дуже схожим на Intel. |
402 | 392 | ||
403 | Підводні камені свободи, які слід враховувати на апаратному забезпеченні AMD {#amd} | ||
404 | ---------------------------------------------------------------------------- | ||
393 | ### Підводні камені свободи, які слід враховувати на апаратному забезпеченні AMD {#amd} | ||
405 | 394 | ||
406 | 395 | ПРИМІТКА: В ці дні є openSIL <https://github.com/openSIL/openSIL> - це | ПРИМІТКА: В ці дні є openSIL <https://github.com/openSIL/openSIL> - це |
407 | 396 | спроба AMD надати деякий джерельний код знову, який проекти, подібні coreboot | спроба AMD надати деякий джерельний код знову, який проекти, подібні coreboot |
... | ... | Revealed (Розкрито вбудовану технологію безпек | |
411 | 400 | AMD має більш-менш ту саму проблему, що й Intel, коли справа | AMD має більш-менш ту саму проблему, що й Intel, коли справа |
412 | 401 | стосується свободи програмного забезпечення. | стосується свободи програмного забезпечення. |
413 | 402 | ||
414 | ### AMD Platform Security Processor (PSP) | ||
403 | #### AMD Platform Security Processor (PSP) | ||
415 | 404 | ||
416 | 405 | По суті, це власна версія [Intel Management | По суті, це власна версія [Intel Management |
417 | 406 | Engine](#intelme) від AMD. Він має ті самі базові проблеми безпеки та свободи, | Engine](#intelme) від AMD. Він має ті самі базові проблеми безпеки та свободи, |
... | ... | Management Engine), PSP від AMD також може діяти як тира | |
454 | 443 | на більшості апаратного забезпечення OEM, відключений лише на так званих процесорах | на більшості апаратного забезпечення OEM, відключений лише на так званих процесорах |
455 | 444 | "ентузіастів". | "ентузіастів". |
456 | 445 | ||
457 | ### Прошивка AMD IMC | ||
446 | #### Прошивка AMD IMC | ||
458 | 447 | ||
459 | 448 | Прочитайте <https://www.coreboot.org/AMD_IMC>. | Прочитайте <https://www.coreboot.org/AMD_IMC>. |
460 | 449 | ||
461 | 450 | ПРИМІТКА: Ця секція є застарілою, та потребує очищення. | ПРИМІТКА: Ця секція є застарілою, та потребує очищення. |
462 | 451 | ||
463 | ### Прошивка AMD SMU | ||
452 | #### Прошивка AMD SMU | ||
464 | 453 | ||
465 | 454 | ПРИМІТКА: Ця секція є застарілою, та потребує очищення. | ПРИМІТКА: Ця секція є застарілою, та потребує очищення. |
466 | 455 | ||
... | ... | Management Engine), PSP від AMD також може діяти як тира | |
478 | 467 | прошивкою, але у відповідній системі (ASUS F2A85-M) все ще були присутні | прошивкою, але у відповідній системі (ASUS F2A85-M) все ще були присутні |
479 | 468 | інші блоби (Відео BIOS та інші). | інші блоби (Відео BIOS та інші). |
480 | 469 | ||
481 | ### Прошивка AMD AGESA | ||
470 | #### Прошивка AMD AGESA | ||
482 | 471 | ||
483 | 472 | ПРИМІТКА: Більше має бути написано про це, щоб відобразити сучасну реальність. | ПРИМІТКА: Більше має бути написано про це, щоб відобразити сучасну реальність. |
484 | 473 | Ситуація з AMD в останні роки змінилась. Інформація на цій сторінці поширених | Ситуація з AMD в останні роки змінилась. Інформація на цій сторінці поширених |
... | ... | Management Engine), PSP від AMD також може діяти як тира | |
490 | 479 | вони припинили випускати джерельний код і замість цього почали випускати AGESA у вигляді | вони припинили випускати джерельний код і замість цього почали випускати AGESA у вигляді |
491 | 480 | бінарних блобів. Це робить AGESA еквівалентом [Intel FSP](#fsp). | бінарних блобів. Це робить AGESA еквівалентом [Intel FSP](#fsp). |
492 | 481 | ||
493 | ### Оновлення мікрокоду ЦП AMD | ||
482 | #### Оновлення мікрокоду ЦП AMD | ||
494 | 483 | ||
495 | 484 | Прочитайте розділ Intel | Прочитайте розділ Intel |
496 | 485 | практично так само, хоча було виявлено, що з набагато пізнішим апаратним забезпеченням | практично так само, хоча було виявлено, що з набагато пізнішим апаратним забезпеченням |
... | ... | AMD можна працювати без оновлень мікрокоду. Н | |
501 | 490 | вмикає їх за замовчуванням на всьому апаратному забезпеченні, | вмикає їх за замовчуванням на всьому апаратному забезпеченні, |
502 | 491 | яке підтримується. | яке підтримується. |
503 | 492 | ||
504 | ### AMD не співпрацює | ||
493 | #### AMD не співпрацює | ||
505 | 494 | ||
506 | 495 | Здавалося, що AMD була на правильному шляху в 2011 році, коли вони почала | Здавалося, що AMD була на правильному шляху в 2011 році, коли вони почала |
507 | 496 | співпрацювати та випускати джерельний код для кількох критичних | співпрацювати та випускати джерельний код для кількох критичних |
... | ... | Family 15h (на стороні AMD) або будь-яке інше, випущ | |
528 | 517 | Це також стосується викривачів або будь-кого, кому потрібна справжня конфіденційність та | Це також стосується викривачів або будь-кого, кому потрібна справжня конфіденційність та |
529 | 518 | безпека. | безпека. |
530 | 519 | ||
531 | Привіт, у мене <вставте сюди випадкову систему>, чи підтримується вона? | ||
532 | -------------------------------------------------------------------------------------------------------- | ||
520 | ### Привіт, у мене <вставте сюди випадкову систему>, чи підтримується вона? | ||
533 | 521 | ||
534 | 522 | Якщо вона підтримується coreboot, ви можете додати її негайно. | Якщо вона підтримується coreboot, ви можете додати її негайно. |
535 | 523 | Прочитайте [посібник з перенесення](/docs/maintain/porting.html) про перенесення нової плати. | Прочитайте [посібник з перенесення](/docs/maintain/porting.html) про перенесення нової плати. |
... | ... | Family 15h (на стороні AMD) або будь-яке інше, випущ | |
540 | 528 | Будь ласка, проконсультуйтесь з проектом coreboot для наставництва. | Будь ласка, проконсультуйтесь з проектом coreboot для наставництва. |
541 | 529 | ||
542 | 530 | Загальні питання | Загальні питання |
543 | ================= | ||
531 | ---------------- | ||
544 | 532 | ||
545 | Як встановити libreboot? | ||
546 | ------------------------------------------------------- | ||
533 | ### Як встановити libreboot? | ||
547 | 534 | ||
548 | 535 | Подивіться [посібник з встановлення](docs/install/) | Подивіться [посібник з встановлення](docs/install/) |
549 | 536 | ||
550 | Як запрограмувати флеш-чіп SPI? | ||
551 | --------------------------------------------------------------------------------- | ||
537 | ### Як запрограмувати флеш-чіп SPI? | ||
552 | 538 | ||
553 | 539 | Зверніться до:\ | Зверніться до:\ |
554 | 540 | [Зовнішній перезапис 25xx NOR flash через протокол SPI](docs/install/spi.md) | [Зовнішній перезапис 25xx NOR flash через протокол SPI](docs/install/spi.md) |
... | ... | Family 15h (на стороні AMD) або будь-яке інше, випущ | |
556 | 542 | Можна використовувати 16-контактний затискач SOIC на 8-контактній мікросхемі SOIC, якщо | Можна використовувати 16-контактний затискач SOIC на 8-контактній мікросхемі SOIC, якщо |
557 | 543 | правильно впорядкувати контакти. Як правило, з'єднання більш міцне. | правильно впорядкувати контакти. Як правило, з'єднання більш міцне. |
558 | 544 | ||
559 | Як захистити флеш-чіп від запису? | ||
560 | ---------------------------------------------------------------------------- | ||
545 | ### Як захистити флеш-чіп від запису? | ||
561 | 546 | ||
562 | 547 | За замовчуванням немає захисту від запису на системі libreboot. Це | За замовчуванням немає захисту від запису на системі libreboot. Це |
563 | 548 | з міркувань зручності використання, оскільки більшість людей не мають легкого доступу до зовнішнього | з міркувань зручності використання, оскільки більшість людей не мають легкого доступу до зовнішнього |
... | ... | Family 15h (на стороні AMD) або будь-яке інше, випущ | |
577 | 562 | ЗРОБИТИ: Задокументувати захист флеш-пам'яті на основі PRx на платформах Intel і дослідити інші | ЗРОБИТИ: Задокументувати захист флеш-пам'яті на основі PRx на платформах Intel і дослідити інші |
578 | 563 | методи на системах AMD. | методи на системах AMD. |
579 | 564 | ||
580 | Як змінити налаштування BIOS? | ||
581 | ------------------------------------------------------------------------ | ||
565 | ### Як змінити налаштування BIOS? | ||
582 | 566 | ||
583 | 567 | Більшість налаштувань libreboot насправді використовує [корисне навантаження | Більшість налаштувань libreboot насправді використовує [корисне навантаження |
584 | 568 | GRUB](http://www.coreboot.org/GRUB2). Більше інформації про корисні навантаження | GRUB](http://www.coreboot.org/GRUB2). Більше інформації про корисні навантаження |
... | ... | coreboot вікі для більшої інформації. | |
612 | 596 | Це змінить за замовчуванням всередині образа ROM, і потім ви можете | Це змінить за замовчуванням всередині образа ROM, і потім ви можете |
613 | 597 | перепрошити його. | перепрошити його. |
614 | 598 | ||
615 | Як заповнити ROM перед перепрошивкою? | ||
616 | -------------------------------------- | ||
599 | ### Як заповнити ROM перед перепрошивкою? | ||
617 | 600 | ||
618 | 601 | Бажано просто використовувати більший образ ROM. Цей розділ був написаний здебільшого для | Бажано просто використовувати більший образ ROM. Цей розділ був написаний здебільшого для |
619 | 602 | материнських плат ASUS KCMA-D8 та KGPE-D16, де раніше ми надавали | материнських плат ASUS KCMA-D8 та KGPE-D16, де раніше ми надавали |
... | ... | ROM та флеш-чіпом. Випадок вище, наприклад: | |
652 | 635 | ||
653 | 636 | Після видалення заповнення cbfstool зможе працювати із образом як зазвичай. | Після видалення заповнення cbfstool зможе працювати із образом як зазвичай. |
654 | 637 | ||
655 | Чи потрібно встановлювати завантажувач під час встановлення дистрибутива? | ||
656 | --------------------------------------------------------------------------------------------------- | ||
638 | ### Чи потрібно встановлювати завантажувач під час встановлення дистрибутива? | ||
657 | 639 | ||
658 | 640 | Більшість налаштувань libreboot уже інтегрують завантажувач GRUB як | Більшість налаштувань libreboot уже інтегрують завантажувач GRUB як |
659 | 641 | *[корисне навантаження](http://www.coreboot.org/Payloads)*. Це означає, що завантажувач GRUB | *[корисне навантаження](http://www.coreboot.org/Payloads)*. Це означає, що завантажувач GRUB |
... | ... | HDD або SSD під час встановлення нового дистри | |
671 | 653 | тоді на вашому HDD або SSD використовується звичайний завантажувальний сектор MBR, як і слід було | тоді на вашому HDD або SSD використовується звичайний завантажувальний сектор MBR, як і слід було |
672 | 654 | очікувати. Отже, наведені вище параграфи стосуються лише корисного навантаження GRUB. | очікувати. Отже, наведені вище параграфи стосуються лише корисного навантаження GRUB. |
673 | 655 | ||
674 | Чи потрібно мені перепрошивати, коли я перевстановлю дистрибутив? | ||
675 | ------------------------------------------------------------------------------------------- | ||
656 | ### Чи потрібно мені перепрошивати, коли я перевстановлю дистрибутив? | ||
676 | 657 | ||
677 | 658 | Більше ні. Останні версії libreboot (з використанням корисного навантаження GRUB) | Більше ні. Останні версії libreboot (з використанням корисного навантаження GRUB) |
678 | 659 | автоматично переключатимуться на конфігурацію GRUB на HDD або SSD, якщо | автоматично переключатимуться на конфігурацію GRUB на HDD або SSD, якщо |
... | ... | GRUB (наприклад, флеш-накопичувач USB). Для | |
684 | 665 | Якщо ви використовуєте корисне навантаження SeaBIOS, це ще простіше. Це працює так, як ви | Якщо ви використовуєте корисне навантаження SeaBIOS, це ще простіше. Це працює так, як ви |
685 | 666 | очікували. SeaBIOS реалізує звичайний інтерфейс x86 BIOS. | очікували. SeaBIOS реалізує звичайний інтерфейс x86 BIOS. |
686 | 667 | ||
687 | Як виглядає флеш-чіп? | ||
688 | ----------------------------------------------------------------- | ||
668 | ### Як виглядає флеш-чіп? | ||
689 | 669 | ||
690 | 670 | Ви можете знайти фотографії різних видів чипів на наступній сторінці:\ | Ви можете знайти фотографії різних видів чипів на наступній сторінці:\ |
691 | 671 | [Керівництво зовнішньої прошивки 25xx NOR](docs/install/spi.md) | [Керівництво зовнішньої прошивки 25xx NOR](docs/install/spi.md) |
692 | 672 | ||
693 | 673 | Неможливість виконати modprobe thinkpad\_acpi на Haswell | Неможливість виконати modprobe thinkpad\_acpi на Haswell |
694 | =============================================== | ||
674 | -------------------------------------------------------- | ||
695 | 675 | ||
696 | 676 | This pertains to ThinkPad T480, T440p and W541. | This pertains to ThinkPad T480, T440p and W541. |
697 | 677 | ||
... | ... | modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device" | |
716 | 696 | options thinkpad_acpi force_load=1 | options thinkpad_acpi force_load=1 |
717 | 697 | ``` | ``` |
718 | 698 | ||
719 | tlp | ||
720 | --- | ||
699 | ### tlp | ||
721 | 700 | ||
722 | 701 | Ви можете встановити пакет `tlp` та розпочати той сервіс. Наприклад, на | Ви можете встановити пакет `tlp` та розпочати той сервіс. Наприклад, на |
723 | 702 | Debian: | Debian: |
... | ... | tlp-stat -b | |
743 | 722 | Це надасть інформацію про батарею. | Це надасть інформацію про батарею. |
744 | 723 | ||
745 | 724 | Яке ще мікропрограмне забезпечення існує за межами libreboot? | Яке ще мікропрограмне забезпечення існує за межами libreboot? |
746 | ================================================== | ||
725 | ------------------------------------------------------ | ||
747 | 726 | ||
748 | 727 | Ви можете також прочитати інформацію про цих в [політиці мінімізації бінарних блобів | Ви можете також прочитати інформацію про цих в [політиці мінімізації бінарних блобів |
749 | 728 | libreboot](news/policy.uk.md), де вона розповідає в більших подробицях про деяких із | libreboot](news/policy.uk.md), де вона розповідає в більших подробицях про деяких із |
750 | 729 | них. | них. |
751 | 730 | ||
752 | ### Зовнішні графічні карти | ||
731 | #### Зовнішні графічні карти | ||
753 | 732 | ||
754 | 733 | Відео BIOS наявний на більшості графічних карт. Для інтегрованої графіки | Відео BIOS наявний на більшості графічних карт. Для інтегрованої графіки |
755 | 734 | VBIOS (спеціальний вид OptionROM) зазвичай вбудовано | VBIOS (спеціальний вид OptionROM) зазвичай вбудовано |
... | ... | libreboot буде використовувати цей код, коли він | |
765 | 744 | В конфігураціях, де SeaBIOS і власна ініціалізація GPU використовуються разом, | В конфігураціях, де SeaBIOS і власна ініціалізація GPU використовуються разом, |
766 | 745 | додається спеціальна прокладка VBIOS, яка використовує лінійний кадровий буфер coreboot. | додається спеціальна прокладка VBIOS, яка використовує лінійний кадровий буфер coreboot. |
767 | 746 | ||
768 | ### Прошивка EC (вбудований контролер) | ||
747 | #### Прошивка EC (вбудований контролер) | ||
769 | 748 | ||
770 | 749 | Це є у більшості (всіх?) ноутбуків. EC (вбудований контролер) - це невеликий, | Це є у більшості (всіх?) ноутбуків. EC (вбудований контролер) - це невеликий, |
771 | 750 | окремий процесор, який в основному обробляє вхідні/вихідні дані, характерні | окремий процесор, який в основному обробляє вхідні/вихідні дані, характерні |
... | ... | libreboot буде використовувати цей код, коли він | |
785 | 764 | EC присутній ледь не на всіх ноутбуках. Інші пристрої використовують, залежно від складності, | EC присутній ледь не на всіх ноутбуках. Інші пристрої використовують, залежно від складності, |
786 | 765 | або EC, або варіант із прошивкою в Mask ROM - SuperIO. | або EC, або варіант із прошивкою в Mask ROM - SuperIO. |
787 | 766 | ||
788 | ### Прошивка HDD/SSD | ||
767 | #### Прошивка HDD/SSD | ||
789 | 768 | ||
790 | 769 | Жорсткі диски та твердотільні накопичувачі містять вбудоване програмне забезпечення, | Жорсткі диски та твердотільні накопичувачі містять вбудоване програмне забезпечення, |
791 | 770 | призначене для обробки внутрішньої роботи пристрою, водночас відкриваючи простий, стандартний інтерфейс (наприклад, | призначене для обробки внутрішньої роботи пристрою, водночас відкриваючи простий, стандартний інтерфейс (наприклад, |
... | ... | SATA через USB, і проект Libreboot здатний завантажу | |
885 | 864 | звичайним чином. Проконсультуйтесь з документацією для вашої операційної системи Linux/BSD, | звичайним чином. Проконсультуйтесь з документацією для вашої операційної системи Linux/BSD, |
886 | 865 | щоб знати те, як встановити їх з *повнодисковим шифруванням*: | щоб знати те, як встановити їх з *повнодисковим шифруванням*: |
887 | 866 | ||
888 | |||
889 | 867 | Поточна теорія (недоведена) полягає в тому, що це принаймні запобіжить | Поточна теорія (недоведена) полягає в тому, що це принаймні запобіжить |
890 | 868 | зловмисним дискам неправильно маніпулювати даними, які зчитуються з диска | зловмисним дискам неправильно маніпулювати даними, які зчитуються з диска |
891 | 869 | або записуються на диск, оскільки він не може отримати доступ до вашого ключа LUKS, | або записуються на диск, оскільки він не може отримати доступ до вашого ключа LUKS, |
... | ... | SATA через USB, і проект Libreboot здатний завантажу | |
895 | 873 | **Сприймайте сказане в цьому абзаці з дрібкою солі. Це все ще обговорюється | **Сприймайте сказане в цьому абзаці з дрібкою солі. Це все ще обговорюється |
896 | 874 | і нічого з цього не доведено.** | і нічого з цього не доведено.** |
897 | 875 | ||
898 | ### NIC (контролер ethernet) | ||
876 | #### NIC (контролер ethernet) | ||
899 | 877 | ||
900 | 878 | Мережеві карти Ethernet зазвичай запускають вбудоване програмне забезпечення, яке відповідає | Мережеві карти Ethernet зазвичай запускають вбудоване програмне забезпечення, яке відповідає |
901 | 879 | за внутрішню ініціалізацію пристрою. Теоретично його можна налаштувати | за внутрішню ініціалізацію пристрою. Теоретично його можна налаштувати |
... | ... | SATA через USB, і проект Libreboot здатний завантажу | |
904 | 882 | З належним IOMMU можна було би пом'якшити проблеми, пов'язані з DMA. | З належним IOMMU можна було би пом'якшити проблеми, пов'язані з DMA. |
905 | 883 | Також можна використовувати мережевий адаптер USB, який не має DMA. | Також можна використовувати мережевий адаптер USB, який не має DMA. |
906 | 884 | ||
907 | ### Мікрокод процесора | ||
885 | #### Мікрокод процесора | ||
908 | 886 | ||
909 | 887 | Мікрокод налаштовує масиви логічних вентилів у мікропроцесорі для реалізації | Мікрокод налаштовує масиви логічних вентилів у мікропроцесорі для реалізації |
910 | 888 | архітектури набору інструкцій. Спеціальні *декодери* в мікропроцесорі налаштують | архітектури набору інструкцій. Спеціальні *декодери* в мікропроцесорі налаштують |
... | ... | SATA через USB, і проект Libreboot здатний завантажу | |
913 | 891 | [Політика зменшення блобів libreboot](news/policy.uk.md) докладно описує | [Політика зменшення блобів libreboot](news/policy.uk.md) докладно описує |
914 | 892 | мікрокод. | мікрокод. |
915 | 893 | ||
916 | ### Звукова карта | ||
894 | #### Звукова карта | ||
917 | 895 | ||
918 | 896 | Звукове обладнання (інтегроване чи дискретне) зазвичай має вбудоване програмне забезпечення | Звукове обладнання (інтегроване чи дискретне) зазвичай має вбудоване програмне забезпечення |
919 | 897 | (DSP) для обробки введення/виведення. Знову ж таки, USB DAC є хорошим | (DSP) для обробки введення/виведення. Знову ж таки, USB DAC є хорошим |
920 | 898 | обхідним шляхом. | обхідним шляхом. |
921 | 899 | ||
922 | ### Веб-камера | ||
900 | #### Веб-камера | ||
923 | 901 | ||
924 | 902 | Веб-камери мають вбудоване програмне забезпечення, яке обробляє зображення, що вводиться | Веб-камери мають вбудоване програмне забезпечення, яке обробляє зображення, що вводиться |
925 | 903 | в камеру; налаштування фокуса, балансу білого тощо. Можна використовувати апаратне забезпечення | в камеру; налаштування фокуса, балансу білого тощо. Можна використовувати апаратне забезпечення |
... | ... | SATA через USB, і проект Libreboot здатний завантажу | |
927 | 905 | (наприклад, на ноутбуках) не рекомендовані проектом libreboot з | (наприклад, на ноутбуках) не рекомендовані проектом libreboot з |
928 | 906 | міркувань безпеки. | міркувань безпеки. |
929 | 907 | ||
930 | ### Хост-контролер USB | ||
908 | #### Хост-контролер USB | ||
931 | 909 | ||
932 | 910 | Хост-контролери USB потребують мікропрограми. Іноді це потрібно надати | Хост-контролери USB потребують мікропрограми. Іноді це потрібно надати |
933 | 911 | самому coreboot. | самому coreboot. |
934 | 912 | ||
935 | ### Прошивка WWAN | ||
913 | #### Прошивка WWAN | ||
936 | 914 | ||
937 | 915 | Деякі ноутбуки можуть мати пристрій для зчитування SIM-карт із карткою для роботи з | Деякі ноутбуки можуть мати пристрій для зчитування SIM-карт із карткою для роботи з |
938 | 916 | WWAN, підключення до мережі 3g/4g (наприклад, GSM). Це та | WWAN, підключення до мережі 3g/4g (наприклад, GSM). Це та |
... | ... | WWAN, підключення до мережі 3g/4g (наприклад, GSM). | |
959 | 937 | оскільки вони, як правило, набагато безпечніші. | оскільки вони, як правило, набагато безпечніші. |
960 | 938 | ||
961 | 939 | Операційні системи | Операційні системи |
962 | ================= | ||
940 | ------------------ | ||
963 | 941 | ||
964 | Чи я можу використовувати Linux? | ||
965 | -------------------------------------------------- | ||
942 | ### Чи я можу використовувати Linux? | ||
966 | 943 | ||
967 | 944 | Абсолютно! Він добре перевірений в libreboot, та дуже рекомендований. Подивіться | Абсолютно! Він добре перевірений в libreboot, та дуже рекомендований. Подивіться |
968 | 945 | [встановлення Linux](../docs/linux/grub_boot_installer.md) та | [встановлення Linux](../docs/linux/grub_boot_installer.md) та |
... | ... | WWAN, підключення до мережі 3g/4g (наприклад, GSM). | |
971 | 948 | Будь-який сучасний дистрибутив має працювати, допоки він використовує KMS (kernel mode | Будь-який сучасний дистрибутив має працювати, допоки він використовує KMS (kernel mode |
972 | 949 | setting) для графіки. | setting) для графіки. |
973 | 950 | ||
974 | Fedora не завантажується? (також може бути застосовано до Redhat/CentOS) | ||
975 | ----------------------------------------------------------- | ||
951 | ### Fedora не завантажується? (також може бути застосовано до Redhat/CentOS) | ||
976 | 952 | ||
977 | 953 | У Fedora типово grub.cfg намагається завантажити linux в 16-розрядному режимі. | У Fedora типово grub.cfg намагається завантажити linux в 16-розрядному режимі. |
978 | 954 | Вам просто потрібно змінити конфігурацію GRUB Fedora. | Вам просто потрібно змінити конфігурацію GRUB Fedora. |
979 | 955 | Зверніться до [сторінки Linux](docs/linux/). | Зверніться до [сторінки Linux](docs/linux/). |
980 | 956 | ||
981 | Чи я можу використовувати BSD? | ||
982 | ---------------------------------- | ||
957 | ### Чи я можу використовувати BSD? | ||
983 | 958 | ||
984 | 959 | Абсолютно! Прошивка libreboot має добру підтримку для FreeBSD, NetBSD та | Абсолютно! Прошивка libreboot має добру підтримку для FreeBSD, NetBSD та |
985 | 960 | OpenBSD. Інші системи не перевірені, але мають працювати нормально. | OpenBSD. Інші системи не перевірені, але мають працювати нормально. |
... | ... | OpenBSD. Інші системи не перевірені, але мають п | |
987 | 962 | Дивіться: | Дивіться: |
988 | 963 | [docs/bsd/](docs/bsd/index.uk.md) | [docs/bsd/](docs/bsd/index.uk.md) |
989 | 964 | ||
990 | Windows?? | ||
991 | --------- | ||
965 | ### Windows?? | ||
992 | 966 | ||
993 | 967 | Yes, you can use Windows 10 and 11. They are not officially supported and the | Yes, you can use Windows 10 and 11. They are not officially supported and the |
994 | 968 | Libreboot project recommends that you *avoid* this choice, because Windows is | Libreboot project recommends that you *avoid* this choice, because Windows is |
... | ... | SeaBIOS, with the coreboot framebuffer initialised at startup, on an Intel GPU | |
1025 | 999 | initialised via coreboot's *libgfxinit*, on November 2023 versions of Libreboot. | initialised via coreboot's *libgfxinit*, on November 2023 versions of Libreboot. |
1026 | 1000 | We do not yet support booting with UEFI on x86 machines. | We do not yet support booting with UEFI on x86 machines. |
1027 | 1001 | ||
1028 | Чи підтримуються інші операційні системи? | ||
1029 | ------------------------------------------------------------------- | ||
1002 | ### Чи підтримуються інші операційні системи? | ||
1030 | 1003 | ||
1031 | 1004 | Невідомо. Можливо, але неможливо сказати без подальшого випробовування. | Невідомо. Можливо, але неможливо сказати без подальшого випробовування. |
1032 | 1005 | ||
1033 | 1006 | Який рівень програмної свободи дає мені libreboot? | Який рівень програмної свободи дає мені libreboot? |
1034 | =================================================== | ||
1007 | -------------------------------------------------- | ||
1035 | 1008 | ||
1036 | 1009 | Будь ласка, прочитайте [політику мінімізації бінарних блобів libreboot](news/policy.uk.md). | Будь ласка, прочитайте [політику мінімізації бінарних блобів libreboot](news/policy.uk.md). |
1037 | 1010 | ||
... | ... | We do not yet support booting with UEFI on x86 machines. | |
1077 | 1050 | (Сем буквально робить процесори в своєму гаражі) | (Сем буквально робить процесори в своєму гаражі) |
1078 | 1051 | ||
1079 | 1052 | Де я можу вивчати більше про електроніку | Де я можу вивчати більше про електроніку |
1080 | ========================================== | ||
1053 | ---------------------------------------- | ||
1081 | 1054 | ||
1082 | 1055 | * Основи пайки та переробки від PACE | * Основи пайки та переробки від PACE |
1083 | 1056 | Обидві серії відео є обов'язковими незалежно від ваших навичок паяння. | Обидві серії відео є обов'язковими незалежно від ваших навичок паяння. |
File site/freedom-status.md changed (mode: 100644) (index 738785c..2568f92) | |||
... | ... | title: Software and hardware freedom status for each mainboard supported by Libr | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Introduction | ||
7 | ============ | ||
6 | Free as in freedom | ||
7 | ------------------ | ||
8 | 8 | ||
9 | This page documents how Libreboot's [binary blob reduction | ||
10 | policy](news/policy.md), adopted in November 2022, is implemented in practise, | ||
9 | This page documents how Libreboot's [Binary Blob Reduction | ||
10 | Policy](news/policy.md), adopted in November 2022, is implemented in practise, | ||
11 | 11 | especially that line which says: *"if free software can be used, it must be | especially that line which says: *"if free software can be used, it must be |
12 | 12 | used."* | used."* |
13 | 13 | ||
... | ... | possible* for normal, non-technical users who like the idea of coreboot but | |
38 | 38 | who are otherwise not competent to configure it from scratch. Such harm | who are otherwise not competent to configure it from scratch. Such harm |
39 | 39 | was *corrected*, in November 2022. | was *corrected*, in November 2022. |
40 | 40 | ||
41 | Coreboot architecture | ||
42 | --------------------- | ||
41 | ### Coreboot architecture | ||
43 | 42 | ||
44 | 43 | For context about certain topics, please read: | For context about certain topics, please read: |
45 | 44 | ||
46 | 45 | <https://doc.coreboot.org/getting_started/architecture.html> | <https://doc.coreboot.org/getting_started/architecture.html> |
47 | 46 | ||
48 | 47 | 100% libre init in coreboot | 100% libre init in coreboot |
49 | =========================== | ||
48 | --------------------------- | ||
50 | 49 | ||
51 | 50 | The reason this distinction matters (referring specifically to coreboot's side | The reason this distinction matters (referring specifically to coreboot's side |
52 | 51 | of the initialisation) will become clearer, in the following sections: | of the initialisation) will become clearer, in the following sections: |
... | ... | are **OK**](news/policy.md#more-detailed-insight-about-microcode) | |
62 | 61 | excluded, alongside default ones with microcode included.](news/microcode.md) | excluded, alongside default ones with microcode included.](news/microcode.md) |
63 | 62 | ||
64 | 63 | Intel platforms | Intel platforms |
65 | =============== | ||
64 | --------------- | ||
66 | 65 | ||
67 | Descriptor vs descriptorless setup | ||
68 | ---------------------------------- | ||
66 | ### Descriptor vs descriptorless setup | ||
69 | 67 | ||
70 | 68 | Libreboot supports several mainboards using Intel platforms. Of these, there | Libreboot supports several mainboards using Intel platforms. Of these, there |
71 | 69 | are essentially two class of machine (for the purposes of this article): | are essentially two class of machine (for the purposes of this article): |
... | ... | datasheets, but those datasheets often contain *reserved* sections where | |
116 | 114 | parts are left undocumented. Reverse engineering efforts over the years have | parts are left undocumented. Reverse engineering efforts over the years have |
117 | 115 | documented some of these blank spots. | documented some of these blank spots. |
118 | 116 | ||
119 | Libreboot does *not* distribute Intel ME images | ||
120 | ----------------------------------------------- | ||
117 | ### Libreboot does *not* distribute Intel ME images | ||
121 | 118 | ||
122 | 119 | Libreboot does *not* distribute the Intel ME firmware in any way, whether in | Libreboot does *not* distribute the Intel ME firmware in any way, whether in |
123 | 120 | the Git repository or in releases. Where it is needed, Libreboot provides | the Git repository or in releases. Where it is needed, Libreboot provides |
... | ... | The ME firmware is *required* on almost all Intel platforms, or the machine | |
151 | 148 | will turn *off* after 30 minutes (or it will not boot, if the ME also controls | will turn *off* after 30 minutes (or it will not boot, if the ME also controls |
152 | 149 | whether the CPU comes out of reset). | whether the CPU comes out of reset). |
153 | 150 | ||
154 | More about Intel ME removal/disabling | ||
155 | ---------------------------------- | ||
151 | ### More about Intel ME removal/disabling | ||
156 | 152 | ||
157 | 153 | *Libreboot* provides a way to fully remove the ME firmware, while retaining | *Libreboot* provides a way to fully remove the ME firmware, while retaining |
158 | 154 | full use of the machine, on GM45 platforms with ICH9M southbridge. These are | full use of the machine, on GM45 platforms with ICH9M southbridge. These are |
... | ... | specifically written by Leah Rowe, in 2014 and improved incrementally since. | |
165 | 161 | On newer platforms as alluded to above, `me_cleaner` is used instead. | On newer platforms as alluded to above, `me_cleaner` is used instead. |
166 | 162 | ||
167 | 163 | Notes about specific types of vendor file | Notes about specific types of vendor file |
168 | =================================== | ||
164 | ----------------------------------------- | ||
169 | 165 | ||
170 | VGA option ROMs | ||
171 | --------------- | ||
166 | ### VGA option ROMs | ||
172 | 167 | ||
173 | 168 | *Native* video initialisation is supported and *enabled*, for all supported | *Native* video initialisation is supported and *enabled*, for all supported |
174 | 169 | Intel platforms that have it. The source code is provided by coreboot, under | Intel platforms that have it. The source code is provided by coreboot, under |
... | ... | of the following paragraph in Libreboot policy: | |
200 | 195 | libreboot is to be configurable, allowing the user to do whatever they like."* - | libreboot is to be configurable, allowing the user to do whatever they like."* - |
201 | 196 | configurable, it most certainly is! See: [docs/maintain/](docs/maintain/) | configurable, it most certainly is! See: [docs/maintain/](docs/maintain/) |
202 | 197 | ||
203 | Memory controller initialisation | ||
204 | -------------------------------- | ||
198 | ### Memory controller initialisation | ||
205 | 199 | ||
206 | 200 | Libreboot has *fully libre* initialisation available for all Intel memory | Libreboot has *fully libre* initialisation available for all Intel memory |
207 | 201 | controllers up to and including Haswell (ThinkPad T440p | controllers up to and including Haswell (ThinkPad T440p |
... | ... | and W541) as of Libreboot 20230319 or higher; on Broadwell, Intel MRC is used | |
209 | 203 | and on Skylake/newer, FSP-M is used. | and on Skylake/newer, FSP-M is used. |
210 | 204 | ||
211 | 205 | ARM platforms (chromebooks) | ARM platforms (chromebooks) |
212 | ============= | ||
206 | --------------------------- | ||
213 | 207 | ||
214 | 208 | Mostly free software, except for the requirement on `daisy` and `peach` mainboards | Mostly free software, except for the requirement on `daisy` and `peach` mainboards |
215 | 209 | to include BL1 bootloader files from the vendor. These are: | to include BL1 bootloader files from the vendor. These are: |
... | ... | to include BL1 bootloader files from the vendor. These are: | |
223 | 217 | Libreboot | Libreboot |
224 | 218 | ||
225 | 219 | List of vendor files, specifically for each board | List of vendor files, specifically for each board |
226 | ================================================= | ||
220 | ------------------------------------------------- | ||
227 | 221 | ||
228 | 222 | This article has thoroughly explained, in a detailed overview, the precise | This article has thoroughly explained, in a detailed overview, the precise |
229 | 223 | nature as to *what* vendor files are accomodated for in Libreboot. Again, | nature as to *what* vendor files are accomodated for in Libreboot. Again, |
... | ... | the main flash IC which (in some cases) contains software outside of coreboot. | |
234 | 228 | ||
235 | 229 | Here is a list, *for each* board, of those files: | Here is a list, *for each* board, of those files: |
236 | 230 | ||
237 | Intel/x86 | ||
238 | --------- | ||
231 | ### Intel/x86 | ||
239 | 232 | ||
240 | ### Intel ME: | ||
233 | #### Intel ME: | ||
241 | 234 | ||
242 | 235 | Neutered ME required on these targets: | Neutered ME required on these targets: |
243 | 236 | ||
... | ... | disabled. This is done using `me_cleaner`. See: | |
251 | 244 | On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, | On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, |
252 | 245 | we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. | we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. |
253 | 246 | ||
254 | ### KBC1126 EC firmware (HP laptops): | ||
247 | #### KBC1126 EC firmware (HP laptops): | ||
255 | 248 | ||
256 | 249 | This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, | This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, |
257 | 250 | `hp2570p_16mb`, `hp8470pintel_16mb`, `hp9470m_16mb`. | `hp2570p_16mb`, `hp8470pintel_16mb`, `hp9470m_16mb`. |
... | ... | it during the build process. Libreboot 20230423 onwards does scrub EC firmware | |
265 | 258 | and provide functionality in a special script, to insert them with `cbfstool` | and provide functionality in a special script, to insert them with `cbfstool` |
266 | 259 | at the correct offset as defined by coreboot config for each board. | at the correct offset as defined by coreboot config for each board. |
267 | 260 | ||
268 | ### Intel FSP | ||
261 | #### Intel FSP | ||
269 | 262 | ||
270 | 263 | Provides romstage and raminit, used by coreboot on some boards. In Libreboot, | Provides romstage and raminit, used by coreboot on some boards. In Libreboot, |
271 | 264 | we use it for the following build targets: | we use it for the following build targets: |
... | ... | we use it for the following build targets: | |
273 | 266 | `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, | `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, |
274 | 267 | `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` | `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` |
275 | 268 | ||
276 | ### SMSC SCH5545 Environmental Control | ||
269 | #### SMSC SCH5545 Environmental Control | ||
277 | 270 | ||
278 | 271 | This is a tiny firmware required for fan control, on Dell Precision T1650. | This is a tiny firmware required for fan control, on Dell Precision T1650. |
279 | 272 | ||
280 | ### CPU microcode: | ||
273 | #### CPU microcode: | ||
281 | 274 | ||
282 | 275 | [*Microcode* updates](faq.md#microcode) | [*Microcode* updates](faq.md#microcode) |
283 | 276 | for CPU provided on *all* x86 platforms, by default. Not | for CPU provided on *all* x86 platforms, by default. Not |
... | ... | CPU microcode files included by default, on all x86 boards. While not needed | |
302 | 295 | in most cases, their use is highly recommended. For reasons why, see: | in most cases, their use is highly recommended. For reasons why, see: |
303 | 296 | [news/policy.md#more-detailed-insight-about-microcode](news/policy.md#more-detailed-insight-about-microcode) | [news/policy.md#more-detailed-insight-about-microcode](news/policy.md#more-detailed-insight-about-microcode) |
304 | 297 | ||
305 | ### Intel Flash Descriptor (IFD): | ||
298 | #### Intel Flash Descriptor (IFD): | ||
306 | 299 | ||
307 | 300 | Intel Flash Descriptors are provided as blobs on some boards, but these are | Intel Flash Descriptors are provided as blobs on some boards, but these are |
308 | 301 | not *software* blobs. They are configurations provided in a binary format, | not *software* blobs. They are configurations provided in a binary format, |
... | ... | Intel GbE NVM config (configuration data, binary-encoded, for gigabit NIC): | |
322 | 315 | for Intel NICs used in GM45 thinkpads. | for Intel NICs used in GM45 thinkpads. |
323 | 316 | * Libreboot's `nvmutil` program can manipulate GbE NVM images | * Libreboot's `nvmutil` program can manipulate GbE NVM images |
324 | 317 | ||
325 | ARM/chromebooks | ||
326 | --------------- | ||
318 | ### ARM/chromebooks | ||
327 | 319 | ||
328 | ### BL1 bootloader (peach/daisy): | ||
320 | #### BL1 bootloader (peach/daisy): | ||
329 | 321 | ||
330 | 322 | BL1 bootloader needed on: `daisy_snow`, `daisy_spring` and `peach_pit`. | BL1 bootloader needed on: `daisy_snow`, `daisy_spring` and `peach_pit`. |
331 | 323 | ||
... | ... | because the build system does not yet auto-insert the BL1 files. The boards | |
334 | 326 | are otherwise believed to work, using Alper's port of U-Boot in Libreboot. | are otherwise believed to work, using Alper's port of U-Boot in Libreboot. |
335 | 327 | ||
336 | 328 | Conclusion | Conclusion |
337 | ========== | ||
329 | ---------- | ||
338 | 330 | ||
339 | 331 | From the above, you can see that Libreboot really *does* implement a *binary | From the above, you can see that Libreboot really *does* implement a *binary |
340 | 332 | blobs reduction policy*, with the emphasis on *reduction* being most critical. | blobs reduction policy*, with the emphasis on *reduction* being most critical. |
... | ... | power that proprietary software developers have over users. | |
348 | 340 | ||
349 | 341 | I hope this article provided food for thought. | I hope this article provided food for thought. |
350 | 342 | ||
351 | An aside: hardware freedom | ||
352 | -------------------------- | ||
343 | ### An aside: hardware freedom | ||
353 | 344 | ||
354 | 345 | None of the currently supported Libreboot machines have libre *hardware*, in | None of the currently supported Libreboot machines have libre *hardware*, in |
355 | 346 | the sense that ICs do not come with publicly available *verilog* files and the | the sense that ICs do not come with publicly available *verilog* files and the |
... | ... | them yourself; one day, the Right To Repair movement will hopefully bring | |
361 | 352 | about universal access to such documents by the public. | about universal access to such documents by the public. |
362 | 353 | ||
363 | 354 | Further reading | Further reading |
364 | =============== | ||
355 | --------------- | ||
365 | 356 | ||
366 | 357 | This article has described code what goes in the *main boot flash*, but any | This article has described code what goes in the *main boot flash*, but any |
367 | 358 | computer you buy will have *tons* of firmware elsewhere in the system. Some | computer you buy will have *tons* of firmware elsewhere in the system. Some |
File site/freedom-status.uk.md changed (mode: 100644) (index 92df089..7081ac7) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Вступ | Вступ |
7 | ============ | ||
7 | ---------- | ||
8 | 8 | ||
9 | 9 | Коротка версія історії: *всі* плати, які наразі підтримуються Libreboot | Коротка версія історії: *всі* плати, які наразі підтримуються Libreboot |
10 | 10 | можна ініціалізувати в coreboot з *вільним*, *поважаючим свободу* або *з відкритим джерелом* кодом, який | можна ініціалізувати в coreboot з *вільним*, *поважаючим свободу* або *з відкритим джерелом* кодом, який |
... | ... | Libreboot досі має суворі стандарти про те, *які* | |
46 | 46 | реалізовує цю *політику зменшення блобів*, особливо в тому рядку в ній, який каже, | реалізовує цю *політику зменшення блобів*, особливо в тому рядку в ній, який каже, |
47 | 47 | цитата, "якщо блоб можна уникнути, його необхідно уникнути". | цитата, "якщо блоб можна уникнути, його необхідно уникнути". |
48 | 48 | ||
49 | Чому це має значення? | ||
50 | --------------------- | ||
49 | ### Чому це має значення? | ||
51 | 50 | ||
52 | 51 | *Практичною метою* проекта Libreboot є підтримка якомога більшої кількості апаратного забезпечення | *Практичною метою* проекта Libreboot є підтримка якомога більшої кількості апаратного забезпечення |
53 | 52 | підтримки coreboot, повністю протестованого з попередньо зібраними образами ROM | підтримки coreboot, повністю протестованого з попередньо зібраними образами ROM |
... | ... | raminit на даній платі, блоб було би надано Libreboo | |
78 | 77 | Будь ласка, прочитайте документ, названий: [Політика зменшення бінарних | Будь ласка, прочитайте документ, названий: [Політика зменшення бінарних |
79 | 78 | блобів](news/policy.uk.md).* | блобів](news/policy.uk.md).* |
80 | 79 | ||
81 | Архітектура Coreboot | ||
82 | --------------------- | ||
80 | ### Архітектура Coreboot | ||
83 | 81 | ||
84 | 82 | Хоча не *суворо* необхідно для не-розробників, Ви можете знайти корисним | Хоча не *суворо* необхідно для не-розробників, Ви можете знайти корисним |
85 | 83 | набуття розуміння на високому рівні того, *як* працює coreboot, для набуття | набуття розуміння на високому рівні того, *як* працює coreboot, для набуття |
... | ... | raminit на даній платі, блоб було би надано Libreboo | |
88 | 86 | <https://doc.coreboot.org/getting_started/architecture.html> | <https://doc.coreboot.org/getting_started/architecture.html> |
89 | 87 | ||
90 | 88 | 100% вільна ініціалізація coreboot | 100% вільна ініціалізація coreboot |
91 | =========================== | ||
89 | ---------------------------- | ||
92 | 90 | ||
93 | 91 | *Всі* плати, які наразі підтримуються Libreboot можуть мати 100% | *Всі* плати, які наразі підтримуються Libreboot можуть мати 100% |
94 | 92 | вільну ініціалізацію *зі сторони coreboot*. В цьому контексті, це має на увазі | вільну ініціалізацію *зі сторони coreboot*. В цьому контексті, це має на увазі |
... | ... | raminit на даній платі, блоб було би надано Libreboo | |
112 | 110 | excluded, alongside default ones with microcode included.](news/microcode.md) | excluded, alongside default ones with microcode included.](news/microcode.md) |
113 | 111 | ||
114 | 112 | Платформи Intel | Платформи Intel |
115 | =============== | ||
113 | -------------- | ||
116 | 114 | ||
117 | Дескрипторне проти бездескрипторного налаштування | ||
118 | ---------------------------------- | ||
115 | ### Дескрипторне проти бездескрипторного налаштування | ||
119 | 116 | ||
120 | 117 | Libreboot підтримує декілька материнських плат, які використовують платформи Intel. Серед них існує | Libreboot підтримує декілька материнських плат, які використовують платформи Intel. Серед них існує |
121 | 118 | суттєво два класи машин (для цілей цієї статті): | суттєво два класи машин (для цілей цієї статті): |
... | ... | Libreboot підтримує декілька материнських плат, | |
173 | 170 | частини залишені незадокументованими. Зусилля зворотної розробки протягом років | частини залишені незадокументованими. Зусилля зворотної розробки протягом років |
174 | 171 | задокументували деякі з цих прогалин. | задокументували деякі з цих прогалин. |
175 | 172 | ||
176 | Libreboot *не* розповсюджує образи Intel ME | ||
177 | ----------------------------------------------- | ||
173 | ### Libreboot *не* розповсюджує образи Intel ME | ||
178 | 174 | ||
179 | 175 | ME містить багато модулів в собі, і один з цих модулів це | ME містить багато модулів в собі, і один з цих модулів це |
180 | 176 | код BringUp. Цей код BringUp є *власною* прошивкою ініціалізації ME, | код BringUp. Цей код BringUp є *власною* прошивкою ініціалізації ME, |
... | ... | Git, ні в випусках. Де необхідно, Libreboot надає | |
218 | 214 | Intel ME вимкне той час скидання в 30 хвилин, дозволяючи вам використовувати ваш | Intel ME вимкне той час скидання в 30 хвилин, дозволяючи вам використовувати ваш |
219 | 215 | комп'ютер нормально, навіть незважаючи на те, що ME *не* виконує нічого після цього. | комп'ютер нормально, навіть незважаючи на те, що ME *не* виконує нічого після цього. |
220 | 216 | ||
221 | Нейтралізований ME дійсно є вимкненим | ||
222 | ------------------------------ | ||
217 | ### Нейтралізований ME дійсно є вимкненим | ||
223 | 218 | ||
224 | 219 | Зважайте на це: якщо ME тільки робить свій власний BringUp, але потім не | Зважайте на це: якщо ME тільки робить свій власний BringUp, але потім не |
225 | 220 | виконує нічого, чи це дійсно щось більше ніж незначний відтік часу життя вашої | виконує нічого, чи це дійсно щось більше ніж незначний відтік часу життя вашої |
... | ... | Intel ME вимкне той час скидання в 30 хвилин, доз | |
245 | 240 | зважає нейтралізовані налаштування ME прийнятними, обидва з перспективи безпеки | зважає нейтралізовані налаштування ME прийнятними, обидва з перспективи безпеки |
246 | 241 | та перспективи свободи програмного забезпечення. | та перспективи свободи програмного забезпечення. |
247 | 242 | ||
248 | Більше про видалення/вимкнення Intel ME | ||
249 | ---------------------------------- | ||
243 | ### Більше про видалення/вимкнення Intel ME | ||
250 | 244 | ||
251 | 245 | *Libreboot* надає шлях повністю видалити прошивку ME, зберігаючи | *Libreboot* надає шлях повністю видалити прошивку ME, зберігаючи |
252 | 246 | повне використання машини, на платформах GM45 з південним мостом ICH9M. Це | повне використання машини, на платформах GM45 з південним мостом ICH9M. Це |
... | ... | Intel ME вимкне той час скидання в 30 хвилин, доз | |
258 | 252 | <https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F> | <https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F> |
259 | 253 | ||
260 | 254 | Option ROM VGA | Option ROM VGA |
261 | ============ | ||
255 | ------------- | ||
262 | 256 | ||
263 | 257 | *Нативна* ініціалізація відео підтримується та *увімкнена*, для всіх платформ | *Нативна* ініціалізація відео підтримується та *увімкнена*, для всіх платформ |
264 | 258 | Intel, які підтримуються, що мають її. Джерельний код надано coreboot, під | Intel, які підтримуються, що мають її. Джерельний код надано coreboot, під |
... | ... | T440p ідуть з обома графічними картками Intel та | |
289 | 283 | libreboot є налаштовуваним, дозволяючи користувачу робити все, що заманеться."* - | libreboot є налаштовуваним, дозволяючи користувачу робити все, що заманеться."* - |
290 | 284 | налаштовуваний, напевно! Дивіться: [docs/maintain/](docs/maintain/) | налаштовуваний, напевно! Дивіться: [docs/maintain/](docs/maintain/) |
291 | 285 | ||
292 | Memory controller initialisation | ||
293 | -------------------------------- | ||
286 | ### Memory controller initialisation | ||
294 | 287 | ||
295 | 288 | Libreboot has *fully libre* initialisation available for all Intel memory | Libreboot has *fully libre* initialisation available for all Intel memory |
296 | 289 | controllers up to and including Haswell (ThinkPad T440p | controllers up to and including Haswell (ThinkPad T440p |
... | ... | and W541) as of Libreboot 20230319 or higher; on Broadwell, Intel MRC is used | |
298 | 291 | and on Skylake/newer, FSP-M is used. | and on Skylake/newer, FSP-M is used. |
299 | 292 | ||
300 | 293 | Платформи ARM (chromebook) | Платформи ARM (chromebook) |
301 | ============= | ||
294 | ----------------------- | ||
302 | 295 | ||
303 | 296 | В більшості без блобів, за вийнятком вимоги на материнських платах `daisy` та `peach` | В більшості без блобів, за вийнятком вимоги на материнських платах `daisy` та `peach` |
304 | 297 | включати блоби завантажувача BL1. Це: | включати блоби завантажувача BL1. Це: |
... | ... | Libreboot *наразі* не розміщує ці блоби взагалі, | |
314 | 307 | наразі бракує на веб-сайті Libreboot. | наразі бракує на веб-сайті Libreboot. |
315 | 308 | ||
316 | 309 | Список необхідних блобів, конкретно для кожної плати | Список необхідних блобів, конкретно для кожної плати |
317 | ================================================= | ||
310 | -------------------------------------------------- | ||
318 | 311 | ||
319 | 312 | Ця стаття ретельно пояснила, в деталізованому огляді, точний | Ця стаття ретельно пояснила, в деталізованому огляді, точний |
320 | 313 | характер того, *які* бінарні блоби розміщуються в Libreboot. Знову, | характер того, *які* бінарні блоби розміщуються в Libreboot. Знову, |
... | ... | Libreboot *наразі* не розміщує ці блоби взагалі, | |
325 | 318 | ||
326 | 319 | Ось список, *для кожної* плати, цих блобів: | Ось список, *для кожної* плати, цих блобів: |
327 | 320 | ||
328 | Intel/x86 | ||
329 | --------- | ||
321 | ### Intel/x86 | ||
330 | 322 | ||
331 | ### Intel ME: | ||
323 | #### Intel ME: | ||
332 | 324 | ||
333 | 325 | Нейтралізований ME потрібен на цих цілях: | Нейтралізований ME потрібен на цих цілях: |
334 | 326 | ||
... | ... | Intel/x86 | |
342 | 334 | On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, | On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, |
343 | 335 | we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. | we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. |
344 | 336 | ||
345 | ### KBC1126 EC firmware (HP laptops): | ||
337 | #### KBC1126 EC firmware (HP laptops): | ||
346 | 338 | ||
347 | 339 | This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, | This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, |
348 | 340 | `hp2570p_16mb`, `hp8470pintel_16mb`, `hp9470m_16mb`. | `hp2570p_16mb`, `hp8470pintel_16mb`, `hp9470m_16mb`. |
... | ... | it during the build process. Libreboot 20230423 onwards does scrub EC firmware | |
356 | 348 | and provide functionality in a special script, to insert them with `cbfstool` | and provide functionality in a special script, to insert them with `cbfstool` |
357 | 349 | at the correct offset as defined by coreboot config for each board. | at the correct offset as defined by coreboot config for each board. |
358 | 350 | ||
359 | ### Intel FSP | ||
351 | #### Intel FSP | ||
360 | 352 | ||
361 | 353 | Provides romstage and raminit, used by coreboot on some boards. In Libreboot, | Provides romstage and raminit, used by coreboot on some boards. In Libreboot, |
362 | 354 | we use it for the following build targets: | we use it for the following build targets: |
... | ... | we use it for the following build targets: | |
364 | 356 | `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, | `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, |
365 | 357 | `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` | `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` |
366 | 358 | ||
367 | ### SMSC SCH5545 Environmental Control | ||
359 | #### SMSC SCH5545 Environmental Control | ||
368 | 360 | ||
369 | 361 | This is a tiny firmware required for fan control, on Dell Precision T1650. | This is a tiny firmware required for fan control, on Dell Precision T1650. |
370 | 362 | ||
371 | ### CPU microcode: | ||
363 | #### CPU microcode: | ||
372 | 364 | ||
373 | 365 | Оновлення [*мікрокоду*](faq.uk.md#microcode) | Оновлення [*мікрокоду*](faq.uk.md#microcode) |
374 | 366 | для ЦП надано на *всіх* платформах x86, за замовчуванням. Не | для ЦП надано на *всіх* платформах x86, за замовчуванням. Не |
... | ... | excluded, alongside default ones with microcode included.](news/microcode.md) | |
388 | 380 | в більшості випадків, їх використання надзвичайно рекомендовано. Дивіться для причин чому: | в більшості випадків, їх використання надзвичайно рекомендовано. Дивіться для причин чому: |
389 | 381 | [news/policy.uk.md#більш-детальна-інформація-про-мікрокод](news/policy.uk.md#більш-детальна-інформація-про-мікрокод) | [news/policy.uk.md#більш-детальна-інформація-про-мікрокод](news/policy.uk.md#більш-детальна-інформація-про-мікрокод) |
390 | 382 | ||
391 | ### Intel Flash Descriptor (IFD): | ||
383 | #### Intel Flash Descriptor (IFD): | ||
392 | 384 | ||
393 | 385 | Intel Flash Descriptor надано в якості блобів на деяких платах, але це не є | Intel Flash Descriptor надано в якості блобів на деяких платах, але це не є |
394 | 386 | блобами *програмного забезпечення*. Це конфігурації, які надано в двійковому форматі, | блобами *програмного забезпечення*. Це конфігурації, які надано в двійковому форматі, |
... | ... | Intel Flash Descriptor надано в якості блобів на деяки | |
408 | 400 | для мережевих карток Intel, які використані в Thinkpad GM45. | для мережевих карток Intel, які використані в Thinkpad GM45. |
409 | 401 | * Програма Libreboot `nvmutil` може маніпулювати образами GbE NVM | * Програма Libreboot `nvmutil` може маніпулювати образами GbE NVM |
410 | 402 | ||
411 | ARM/chromebook | ||
412 | --------------- | ||
403 | ### ARM/chromebook | ||
413 | 404 | ||
414 | ### BL1 bootloader (peach/daisy): | ||
405 | #### BL1 bootloader (peach/daisy): | ||
415 | 406 | ||
416 | 407 | BL1 завантажувач потрібен на: `daisy_snow`, `daisy_spring` та `peach_pit`. | BL1 завантажувач потрібен на: `daisy_snow`, `daisy_spring` та `peach_pit`. |
417 | 408 | ||
418 | 409 | Висновки | Висновки |
419 | ========== | ||
410 | --------- | ||
420 | 411 | ||
421 | 412 | З вищезазначеного, ви можете бачити, що Libreboot в дійсності *надає* *політику зменшення | З вищезазначеного, ви можете бачити, що Libreboot в дійсності *надає* *політику зменшення |
422 | 413 | бінарних блобів*, з наголошенням на *зменшенні*, що є найбільш критичним. | бінарних блобів*, з наголошенням на *зменшенні*, що є найбільш критичним. |
... | ... | Libreboot *міг би* додати багато блобів для різни | |
428 | 419 | ||
429 | 420 | Я сподіваюсь, що ця стаття надала їжу для роздумів. | Я сподіваюсь, що ця стаття надала їжу для роздумів. |
430 | 421 | ||
431 | Відступ: свобода обладнання | ||
432 | -------------------------- | ||
422 | ### Відступ: свобода обладнання | ||
433 | 423 | ||
434 | 424 | Жодна з машин, які наразі підтримуються Libreboot не має вільного *апаратного забезпечення*, в тому | Жодна з машин, які наразі підтримуються Libreboot не має вільного *апаратного забезпечення*, в тому |
435 | 425 | сенсі, що інтегральні схеми не ідуть з публічно доступними файлами *verilog* та | сенсі, що інтегральні схеми не ідуть з публічно доступними файлами *verilog* та |
... | ... | Libreboot *міг би* додати багато блобів для різни | |
441 | 431 | універсальний доступ до таких документів спільноті. | універсальний доступ до таких документів спільноті. |
442 | 432 | ||
443 | 433 | Для подальшого читання | Для подальшого читання |
444 | =============== | ||
434 | ------------------- | ||
445 | 435 | ||
446 | 436 | В цій статті описано код, який міститься в *основній завантажувальній флеш-пам'яті*, але | В цій статті описано код, який міститься в *основній завантажувальній флеш-пам'яті*, але |
447 | 437 | будь-який комп'ютер, який ви придбаєте, матиме *тони* мікропрограм в інших частинах системи. Деякі | будь-який комп'ютер, який ви придбаєте, матиме *тони* мікропрограм в інших частинах системи. Деякі |
File site/git.de.md changed (mode: 100644) (index fd72cfd..03b72a8) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | Libreboot Repositories | Libreboot Repositories |
7 | =================== | ||
7 | --------------------- | ||
8 | 8 | ||
9 | 9 | Das `libreboot` Projekt hat hauptsächlich 3 Git Repositories: | Das `libreboot` Projekt hat hauptsächlich 3 Git Repositories: |
10 | 10 | ||
... | ... | welche dieselbe Platform bzw. denselben Chipsatz verwenden. | |
70 | 70 | Dokumentation für `ich9utils` ist hier verfügbar:\ | Dokumentation für `ich9utils` ist hier verfügbar:\ |
71 | 71 | [ich9utils Dokumentation](docs/install/ich9utils.md) | [ich9utils Dokumentation](docs/install/ich9utils.md) |
72 | 72 | ||
73 | lbmk (libreboot-make) | ||
74 | --------------------- | ||
73 | ### lbmk (libreboot-make) | ||
75 | 74 | ||
76 | 75 | Dies ist das zentrale build system in Libreboot. Man könnte auch sagen `lbmk` *ist* | Dies ist das zentrale build system in Libreboot. Man könnte auch sagen `lbmk` *ist* |
77 | 76 | Libreboot! Das Git repository herunterladen: | Libreboot! Das Git repository herunterladen: |
... | ... | Für Anleitungen bzgl. `lbmk` build, siehe [build Anleitungen](docs/build/). | |
90 | 89 | Informationen über das build system selbst und wie es funktioniert, sind | Informationen über das build system selbst und wie es funktioniert, sind |
91 | 90 | verfügbar unter dem [lbmk maintenance guide](docs/maintain/). | verfügbar unter dem [lbmk maintenance guide](docs/maintain/). |
92 | 91 | ||
93 | lbwww and lbwww-img | ||
94 | ------------------- | ||
92 | ### lbwww and lbwww-img | ||
95 | 93 | ||
96 | 94 | Die *gesamte* Libreboot Website sowie Dokumentation befindet sich in einem | Die *gesamte* Libreboot Website sowie Dokumentation befindet sich in einem |
97 | 95 | Git Repository. | Git Repository. |
... | ... | Repository dorthin. Konfiguriere deinen lokalen HTTP Server entsprechend. | |
160 | 158 | ||
161 | 159 | Nochmal, Anleitungen hierfür findest Du auf der Untitled Webseite. | Nochmal, Anleitungen hierfür findest Du auf der Untitled Webseite. |
162 | 160 | ||
163 | Name nicht erforderlich | ||
164 | ----------------- | ||
161 | ### Name nicht erforderlich | ||
165 | 162 | ||
166 | 163 | Beiträge die Du hinzufügst, werden in einem für jeden zugänglichen Git | Beiträge die Du hinzufügst, werden in einem für jeden zugänglichen Git |
167 | 164 | Repository öffentlich aufgezeichnet. Dies betrifft ebenso den Namen sowie | Repository öffentlich aufgezeichnet. Dies betrifft ebenso den Namen sowie |
... | ... | Commits/Patches verwendest dann solltest Du anonym sein. Verwende | |
189 | 186 | und [git show](https://git-scm.com/docs/git-show) um dies zu überprüfen | und [git show](https://git-scm.com/docs/git-show) um dies zu überprüfen |
190 | 187 | bevor Du einem öffentlichen Git Repository Änderungen hinzufügst. | bevor Du einem öffentlichen Git Repository Änderungen hinzufügst. |
191 | 188 | ||
192 | Lizenzen (für Mitwirkende) | ||
193 | -------- | ||
189 | ### Lizenzen (für Mitwirkende) | ||
194 | 190 | ||
195 | 191 | Stelle sicher, dass deine Beiträge mit einer libre Lizenz frei lizensiert | Stelle sicher, dass deine Beiträge mit einer libre Lizenz frei lizensiert |
196 | 192 | sind. Libreboot schreibt nicht mehr vor, welche Lizenzen akzeptiert werden, | sind. Libreboot schreibt nicht mehr vor, welche Lizenzen akzeptiert werden, |
... | ... | Lizenzen nicht der Fall ist: | |
220 | 216 | ||
221 | 217 | <https://opensource.org/licenses/MIT> | <https://opensource.org/licenses/MIT> |
222 | 218 | ||
223 | Patches senden | ||
224 | ------------ | ||
219 | ### Patches senden | ||
225 | 220 | ||
226 | 221 | Erstelle einen Account unter <https://codeberg.org/> und navigiere (während | Erstelle einen Account unter <https://codeberg.org/> und navigiere (während |
227 | 222 | Du eingeloggt bist) zu dem Repository das Du bearbeiten möchtest. Klicke | Du eingeloggt bist) zu dem Repository das Du bearbeiten möchtest. Klicke |
... | ... | Ein weiterer Weg Patches zu senden ist Leah Rowe direkt eine email zu senden: | |
252 | 247 | Um den Prozess der Quelltext Überprüfung transparent zu gestalten, | Um den Prozess der Quelltext Überprüfung transparent zu gestalten, |
253 | 248 | wird jedoch empfohlen künftig Codeberg zu verwenden. | wird jedoch empfohlen künftig Codeberg zu verwenden. |
254 | 249 | ||
255 | Mailing list | ||
256 | ------------ | ||
250 | ### Mailing list | ||
257 | 251 | ||
258 | 252 | Libreboot has this mailing list: | Libreboot has this mailing list: |
259 | 253 | <https://lists.sr.ht/~libreboot/libreboot> | <https://lists.sr.ht/~libreboot/libreboot> |
... | ... | Libreboot has this mailing list: | |
261 | 255 | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
262 | 256 | ||
263 | 257 | Mirrors für lbmk.git | Mirrors für lbmk.git |
264 | =================== | ||
258 | -------------------- | ||
265 | 259 | ||
266 | 260 | Das `lbmk` Repository enthält Libreboot's automatischess build system, welches | Das `lbmk` Repository enthält Libreboot's automatischess build system, welches |
267 | 261 | Libreboot Veröffentlichungen herstellt (inklusive kompilierter ROM Images). | Libreboot Veröffentlichungen herstellt (inklusive kompilierter ROM Images). |
... | ... | angeklickt werden, um Änderungen in deinem Web Browser anzusehen): | |
280 | 274 | * <https://rocketgit.com/libreboot/libreboot> | * <https://rocketgit.com/libreboot/libreboot> |
281 | 275 | ||
282 | 276 | Mirrors fur pico-serprog.git | Mirrors fur pico-serprog.git |
283 | ========================= | ||
277 | ---------------------------- | ||
284 | 278 | ||
285 | 279 | * <https://notabug.org/libreboot/pico-serprog> | * <https://notabug.org/libreboot/pico-serprog> |
286 | 280 | ||
287 | lbwww.git Mirror | ||
288 | ---------------- | ||
281 | ### lbwww.git Mirror | ||
289 | 282 | ||
290 | 283 | Das `lbwww` Repository enthält Markdown Dateien (Pandoc Variant), für die | Das `lbwww` Repository enthält Markdown Dateien (Pandoc Variant), für die |
291 | 284 | Verwendung mit dem [Untitled Static Site Generator](https://untitled.vimuser.org/); | Verwendung mit dem [Untitled Static Site Generator](https://untitled.vimuser.org/); |
... | ... | des Libreboot Projektes *Mirror* mit zusätzlichen Datenverkehr durch | |
311 | 304 | Bilder zu belasten. | Bilder zu belasten. |
312 | 305 | ||
313 | 306 | Notabug Repositories | Notabug Repositories |
314 | ==================== | ||
307 | -------------------- | ||
315 | 308 | ||
316 | 309 | Commits die zu codeberg gepusht werden, werden ebenso zu notabug gepusht, | Commits die zu codeberg gepusht werden, werden ebenso zu notabug gepusht, |
317 | 310 | zusätzlich zu den anderen Mirrors. | zusätzlich zu den anderen Mirrors. |
File site/git.md changed (mode: 100644) (index a2c3667..228655d) | |||
... | ... | title: Code review | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | libreboot repositories | ||
7 | =================== | ||
6 | Libreboot repositories | ||
7 | ---------------------- | ||
8 | 8 | ||
9 | 9 | The `libreboot` project has 3 main Git repositories: | The `libreboot` project has 3 main Git repositories: |
10 | 10 | ||
... | ... | also work for other systems using the same platform/chipset. | |
64 | 64 | Documentation for `ich9utils` is available here:\ | Documentation for `ich9utils` is available here:\ |
65 | 65 | [ich9utils documentation](docs/install/ich9utils.md) | [ich9utils documentation](docs/install/ich9utils.md) |
66 | 66 | ||
67 | lbmk (libreboot-make) | ||
68 | --------------------- | ||
67 | ### lbmk (libreboot-make) | ||
69 | 68 | ||
70 | 69 | This is the core build system in libreboot. You could say that `lbmk` *is* | This is the core build system in libreboot. You could say that `lbmk` *is* |
71 | 70 | libreboot! Download the Git repository: | libreboot! Download the Git repository: |
... | ... | build `lbmk`, refer to the [build instructions](docs/build/). | |
83 | 82 | Information about the build system itself, and how it works, is available in | Information about the build system itself, and how it works, is available in |
84 | 83 | the [lbmk maintenance guide](docs/maintain/). | the [lbmk maintenance guide](docs/maintain/). |
85 | 84 | ||
86 | lbwww and lbwww-img | ||
87 | ------------------- | ||
85 | ### lbwww and lbwww-img | ||
88 | 86 | ||
89 | 87 | The *entire* libreboot website and documentation is hosted in a Git repository. | The *entire* libreboot website and documentation is hosted in a Git repository. |
90 | 88 | Download it like so: | Download it like so: |
... | ... | repository there. Configure your local HTTP server accordingly. | |
149 | 147 | ||
150 | 148 | Again, instructions are available on the Untitled website for this purpose. | Again, instructions are available on the Untitled website for this purpose. |
151 | 149 | ||
152 | Name not required | ||
153 | ----------------- | ||
150 | ### Name not required | ||
154 | 151 | ||
155 | 152 | Contributions that you make are publicly recorded, in a Git repository which | Contributions that you make are publicly recorded, in a Git repository which |
156 | 153 | everyone can access. This includes the name and email address of the | everyone can access. This includes the name and email address of the |
... | ... | should be fairly anonymous. Use | |
175 | 172 | and [git show](https://git-scm.com/docs/git-show) to confirm that before you | and [git show](https://git-scm.com/docs/git-show) to confirm that before you |
176 | 173 | push changes to a public Git repository. | push changes to a public Git repository. |
177 | 174 | ||
178 | Licenses (for contributors) | ||
179 | -------- | ||
175 | ### Licenses (for contributors) | ||
180 | 176 | ||
181 | 177 | Make sure to freely license your work, under a libre license. Libreboot no | Make sure to freely license your work, under a libre license. Libreboot no |
182 | 178 | longer sets arbitrary restrictions on what licenses are accepted, and many | longer sets arbitrary restrictions on what licenses are accepted, and many |
... | ... | sublicense) that other licenses do not: | |
205 | 201 | ||
206 | 202 | <https://opensource.org/licenses/MIT> | <https://opensource.org/licenses/MIT> |
207 | 203 | ||
208 | Send patches | ||
209 | ------------ | ||
204 | ### Send patches | ||
210 | 205 | ||
211 | 206 | Make an account on <https://codeberg.org/> and navigate (while logged in) to the | Make an account on <https://codeberg.org/> and navigate (while logged in) to the |
212 | 207 | repository that you wish to work on. Click *Fork* and in your account, | repository that you wish to work on. Click *Fork* and in your account, |
... | ... | Another way to submit patches is to email Leah Rowe directly: | |
232 | 227 | However, for transparency of the code review process, it's recommended that you | However, for transparency of the code review process, it's recommended that you |
233 | 228 | use Codeberg, for the time being. | use Codeberg, for the time being. |
234 | 229 | ||
235 | Mailing list | ||
236 | ------------ | ||
230 | ### Mailing list | ||
237 | 231 | ||
238 | 232 | Libreboot has this mailing list: | Libreboot has this mailing list: |
239 | 233 | <https://lists.sr.ht/~libreboot/libreboot> | <https://lists.sr.ht/~libreboot/libreboot> |
... | ... | Libreboot has this mailing list: | |
241 | 235 | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
242 | 236 | ||
243 | 237 | Mirrors of lbmk.git | Mirrors of lbmk.git |
244 | =================== | ||
238 | ------------------- | ||
245 | 239 | ||
246 | 240 | The `lbmk` repository contains Libreboot's automated build system, which | The `lbmk` repository contains Libreboot's automated build system, which |
247 | 241 | produces Libreboot releases (including compiled ROM images). | produces Libreboot releases (including compiled ROM images). |
... | ... | to view changes in your Web browser): | |
260 | 254 | * <https://rocketgit.com/libreboot/libreboot> | * <https://rocketgit.com/libreboot/libreboot> |
261 | 255 | ||
262 | 256 | Mirrors of pico-serprog.git | Mirrors of pico-serprog.git |
263 | ========================= | ||
257 | -------------------------- | ||
264 | 258 | ||
265 | 259 | * <https://notabug.org/libreboot/pico-serprog> | * <https://notabug.org/libreboot/pico-serprog> |
266 | 260 | ||
267 | lbwww.git mirror | ||
268 | ---------------- | ||
261 | ### lbwww.git mirror | ||
269 | 262 | ||
270 | 263 | The `lbwww` repository contains Markdown files (pandoc variant), for use | The `lbwww` repository contains Markdown files (pandoc variant), for use |
271 | 264 | with the [Untitled Static Site Generator](https://untitled.vimuser.org/); this | with the [Untitled Static Site Generator](https://untitled.vimuser.org/); this |
... | ... | and it is not the intention of the Libreboot project to bog down *mirrors* | |
290 | 283 | with additional traffic by hosting images. | with additional traffic by hosting images. |
291 | 284 | ||
292 | 285 | Notabug repositories | Notabug repositories |
293 | ==================== | ||
286 | -------------------- | ||
294 | 287 | ||
295 | 288 | Commits that go to codeberg are also still pushed to notabug, in addition to | Commits that go to codeberg are also still pushed to notabug, in addition to |
296 | 289 | the other mirrors. Notabug is considered a *mirror* since 8 April 2023, when | the other mirrors. Notabug is considered a *mirror* since 8 April 2023, when |
File site/git.uk.md changed (mode: 100644) (index d8168a6..8bf7d53) | |||
... | ... | x-toc-enable: true | |
4 | 4 | ... | ... |
5 | 5 | ||
6 | 6 | репозиторії libreboot | репозиторії libreboot |
7 | =================== | ||
7 | --------------------- | ||
8 | 8 | ||
9 | 9 | Проект `libreboot` має 3 основні сховища Git: | Проект `libreboot` має 3 основні сховища Git: |
10 | 10 | ||
... | ... | Linux. Наприклад, система збірки (lbmk) не переві | |
64 | 64 | Документація для `ich9utils` доступна тут:\ | Документація для `ich9utils` доступна тут:\ |
65 | 65 | [документація ich9utils](docs/install/ich9utils.md) | [документація ich9utils](docs/install/ich9utils.md) |
66 | 66 | ||
67 | lbmk (libreboot-make) | ||
68 | --------------------- | ||
67 | ### lbmk (libreboot-make) | ||
69 | 68 | ||
70 | 69 | Це основна система збирання в libreboot. Можна сказати, що `lbmk` *це* | Це основна система збирання в libreboot. Можна сказати, що `lbmk` *це* |
71 | 70 | libreboot! Завантажте репозиторій Git: | libreboot! Завантажте репозиторій Git: |
... | ... | libreboot! Завантажте репозиторій Git: | |
83 | 82 | Інформація про саму систему збірки та про те, як вона працює, доступна в | Інформація про саму систему збірки та про те, як вона працює, доступна в |
84 | 83 | [посібнику обслуговування lbmk](docs/maintain/). | [посібнику обслуговування lbmk](docs/maintain/). |
85 | 84 | ||
86 | lbwww та lbwww-img | ||
87 | ------------------- | ||
85 | ### lbwww та lbwww-img | ||
88 | 86 | ||
89 | 87 | *Весь* веб-сайт і документація libreboot розміщені в репозиторії Git. | *Весь* веб-сайт і документація libreboot розміщені в репозиторії Git. |
90 | 88 | Завантажте так: | Завантажте так: |
... | ... | Untitled. | |
149 | 147 | ||
150 | 148 | Знову ж таки, інструкції для цього доступні на веб-сайті Untitled. | Знову ж таки, інструкції для цього доступні на веб-сайті Untitled. |
151 | 149 | ||
152 | Ім'я не вимагається | ||
153 | ----------------- | ||
150 | ### Ім'я не вимагається | ||
154 | 151 | ||
155 | 152 | Внески, які ви робите, реєструються публічно в репозиторії Git, доступ | Внески, які ви робите, реєструються публічно в репозиторії Git, доступ |
156 | 153 | до якого мають всі. Це включає ім'я та електронну адресу | до якого мають всі. Це включає ім'я та електронну адресу |
... | ... | Untitled. | |
175 | 172 | та [git show](https://git-scm.com/docs/git-show), щоб підтвердити це перед тим, як ви | та [git show](https://git-scm.com/docs/git-show), щоб підтвердити це перед тим, як ви |
176 | 173 | надсилаєте зміни до загальнодоступного сховища Git. | надсилаєте зміни до загальнодоступного сховища Git. |
177 | 174 | ||
178 | Ліцензії (для учасників) | ||
179 | -------- | ||
175 | ### Ліцензії (для учасників) | ||
180 | 176 | ||
181 | 177 | Обов'язково вільно ліцензуйте свою роботу, за вільною ліцензією. Libreboot більше не | Обов'язково вільно ліцензуйте свою роботу, за вільною ліцензією. Libreboot більше не |
182 | 178 | встановлює довільні обмеження на те, які ліцензії приймаються, і багато | встановлює довільні обмеження на те, які ліцензії приймаються, і багато |
... | ... | Untitled. | |
205 | 201 | ||
206 | 202 | <https://opensource.org/licenses/MIT> | <https://opensource.org/licenses/MIT> |
207 | 203 | ||
208 | Надсилайте виправлення | ||
209 | ------------ | ||
204 | ### Надсилайте виправлення | ||
210 | 205 | ||
211 | 206 | Створіть обліковий запис на <https://codeberg.org/> і перейдіть (увійшовши в систему) до | Створіть обліковий запис на <https://codeberg.org/> і перейдіть (увійшовши в систему) до |
212 | 207 | репозиторію, над яким ви хочете працювати. Натисніть *Fork*, і у вашому обліковому записі, | репозиторію, над яким ви хочете працювати. Натисніть *Fork*, і у вашому обліковому записі, |
... | ... | IRC-канал libreboot і повідомити канал, які виправ | |
232 | 227 | Однак, для прозорості процесу перевірки коду, ми рекомендуємо на даний момент | Однак, для прозорості процесу перевірки коду, ми рекомендуємо на даний момент |
233 | 228 | використовувати Codeberg. | використовувати Codeberg. |
234 | 229 | ||
235 | Mailing list | ||
236 | ------------ | ||
230 | ### Mailing list | ||
237 | 231 | ||
238 | 232 | Libreboot has this mailing list: | Libreboot has this mailing list: |
239 | 233 | <https://lists.sr.ht/~libreboot/libreboot> | <https://lists.sr.ht/~libreboot/libreboot> |
... | ... | Libreboot has this mailing list: | |
241 | 235 | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) |
242 | 236 | ||
243 | 237 | Дзеркала lbmk.git | Дзеркала lbmk.git |
244 | =================== | ||
238 | ----------------- | ||
245 | 239 | ||
246 | 240 | Репозиторій `lbmk` містить автоматизовану систему побудови Libreboot, що | Репозиторій `lbmk` містить автоматизовану систему побудови Libreboot, що |
247 | 241 | створює випуски Libreboot (включаючи зібрані образи ROM). | створює випуски Libreboot (включаючи зібрані образи ROM). |
... | ... | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb | |
260 | 254 | * <https://rocketgit.com/libreboot/libreboot> | * <https://rocketgit.com/libreboot/libreboot> |
261 | 255 | ||
262 | 256 | Дзеркала pico-serprog.git | Дзеркала pico-serprog.git |
263 | ========================= | ||
257 | ------------------------- | ||
264 | 258 | ||
265 | 259 | * <https://notabug.org/libreboot/pico-serprog> | * <https://notabug.org/libreboot/pico-serprog> |
266 | 260 | ||
267 | дзеркало lbwww.git | ||
268 | ---------------- | ||
261 | ### дзеркало lbwww.git | ||
269 | 262 | ||
270 | 263 | Репозиторій `lbwww` містить файли Markdown (варіант pandoc), для використання | Репозиторій `lbwww` містить файли Markdown (варіант pandoc), для використання |
271 | 264 | з [генератором статичних сайтів Untitled](https://untitled.vimuser.org/); це те, | з [генератором статичних сайтів Untitled](https://untitled.vimuser.org/); це те, |
... | ... | The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb | |
290 | 283 | в додатковий трафік шляхом розміщення зображень. | в додатковий трафік шляхом розміщення зображень. |
291 | 284 | ||
292 | 285 | Репозиторії Notabug | Репозиторії Notabug |
293 | ==================== | ||
286 | ------------------- | ||
294 | 287 | ||
295 | 288 | Коміти, які ідуть до codeberg досі push'аться до notabug, в додаток до | Коміти, які ідуть до codeberg досі push'аться до notabug, в додаток до |
296 | 289 | інших дзеркал. Notabug розцінюється *дзеркалом* з 8 квітня 2023 року, коли | інших дзеркал. Notabug розцінюється *дзеркалом* з 8 квітня 2023 року, коли |
File site/index.md changed (mode: 100644) (index d723f7a..4640701) | |||
... | ... | you continue to use your hardware, with continued firmware updates. All of this | |
38 | 38 | is *why* Libreboot exists. | is *why* Libreboot exists. |
39 | 39 | ||
40 | 40 | Overview of Libreboot design | Overview of Libreboot design |
41 | ============================ | ||
41 | ---------------------------- | ||
42 | 42 | ||
43 | 43 | <img tabindex=1 class="l" src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /></span> | <img tabindex=1 class="l" src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /></span> |
44 | 44 | ||
... | ... | Libreboot, coreboot would be inaccessible for most users; you can also | |
66 | 66 | still [reconfigure](docs/maintain/) Libreboot however you wish. | still [reconfigure](docs/maintain/) Libreboot however you wish. |
67 | 67 | ||
68 | 68 | Why use Libreboot? | Why use Libreboot? |
69 | ================== | ||
69 | ------------------ | ||
70 | 70 | ||
71 | 71 | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /><span class="f"><img src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /></span> | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /><span class="f"><img src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /></span> |
72 | 72 | ||
... | ... | whereas Libreboot is specifically crafted for end users. In other words, the | |
80 | 80 | purpose of Libreboot is to *Just Work*. Direct configuration and installation | purpose of Libreboot is to *Just Work*. Direct configuration and installation |
81 | 81 | of coreboot is also possible, but Libreboot makes it *much* easier. | of coreboot is also possible, but Libreboot makes it *much* easier. |
82 | 82 | ||
83 | Libreboot gives you [freedoms](https://writefreesoftware.org/) that | ||
83 | Libreboot gives you [Free Software](https://writefreesoftware.org/) that | ||
84 | 84 | you otherwise can't get with most other boot firmware, plus faster boot speeds | you otherwise can't get with most other boot firmware, plus faster boot speeds |
85 | 85 | and [better security](docs/linux/grub_hardening.md). It's extremely powerful | and [better security](docs/linux/grub_hardening.md). It's extremely powerful |
86 | 86 | and [configurable](docs/maintain/) for many use cases. If you're unhappy with | and [configurable](docs/maintain/) for many use cases. If you're unhappy with |
... | ... | over your own property (your computer), and so, we make it our mission to help | |
113 | 113 | you [wrest](https://trmm.net/TOCTOU/) back such control. | you [wrest](https://trmm.net/TOCTOU/) back such control. |
114 | 114 | ||
115 | 115 | Libreboot is not a fork of coreboot | Libreboot is not a fork of coreboot |
116 | =================================== | ||
116 | ----------------------------------- | ||
117 | 117 | ||
118 | 118 | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/t1650/t1650_grub.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_grub.jpg" /></span> | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/t1650/t1650_grub.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_grub.jpg" /></span> |
119 | 119 | ||
... | ... | knowledge or skill except the ability to | |
140 | 140 | follow [simplified instructions, written for non-technical | follow [simplified instructions, written for non-technical |
141 | 141 | users](docs/install/). | users](docs/install/). |
142 | 142 | ||
143 | How to help | ||
144 | ----------- | ||
143 | ### How to help | ||
145 | 144 | ||
146 | 145 | The [tasks page](tasks/) lists tasks that could (will) be worked on. It will | The [tasks page](tasks/) lists tasks that could (will) be worked on. It will |
147 | 146 | be updated over time as more tasks are added/completede. If you want to help, | be updated over time as more tasks are added/completede. If you want to help, |
... | ... | repository](https://codeberg.org/libreboot/lbwww) where you can send patches. | |
176 | 175 | Any and all development discussion and user support are all done on the IRC | Any and all development discussion and user support are all done on the IRC |
177 | 176 | channel. More information is on the [contact page](contact.md). | channel. More information is on the [contact page](contact.md). |
178 | 177 | ||
179 | Translations needed, for libreboot.org | ||
180 | -------------------------------------- | ||
178 | ### Translations needed, for libreboot.org | ||
181 | 179 | ||
182 | 180 | Libreboot currently has translated Web pages in Ukrainian and French (but not | Libreboot currently has translated Web pages in Ukrainian and French (but not |
183 | 181 | for all pages, yet, on either language). | for all pages, yet, on either language). |
File site/index.ru.md changed (mode: 100644) (index 9dd8ed6..567c9ac) | |||
... | ... | methods in a single image, so you can choose which one you use at boot time, | |
25 | 25 | and more payloads (e.g. Linux kexec payload) are planned for future releases. | and more payloads (e.g. Linux kexec payload) are planned for future releases. |
26 | 26 | ||
27 | 27 | Обзор устройства Libreboot | Обзор устройства Libreboot |
28 | ============================ | ||
28 | -------------------------- | ||
29 | 29 | ||
30 | 30 | <img tabindex=1 class="l" src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /></span> | <img tabindex=1 class="l" src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp9470m/9470m+2560p.jpg" /></span> |
31 | 31 | ||
... | ... | Libreboot предоставляет [coreboot](https://coreboot.org/) для [ | |
34 | 34 | Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете. | Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете. |
35 | 35 | ||
36 | 36 | Почему стоит использовать Libreboot? | Почему стоит использовать Libreboot? |
37 | ================== | ||
37 | ------------------------------------ | ||
38 | 38 | ||
39 | 39 | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /><span class="f"><img src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /></span> | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /><span class="f"><img src="https://av.libreboot.org/thinkpadcollection/thinkpadcollection1-min.jpg" /></span> |
40 | 40 | ||
... | ... | Libreboot надежнее многих проприетарных прошив | |
47 | 47 | Libreboot ориентирован на сообщество, с фокусом на помощь людям перестать пользоваться проприетарными загрузочными прошивками; мы сами хотим жить в таком мире, где все программное обеспечение [свободное](https://writefreesoftware.org/), и поэтому, Libreboot - это попытка приблизиться к этому миру. В отличие от больших поставщиков, мы не пытаемся задушить вас любыми способами, мы тажке не видим в вас никакой угрозы; мы уважаем возможность использовать, изучать, модифицировать и распространять программное обеспечение без ограничения и считаем, что все должны иметь это право. Что касается компьютеров, это вещи, которые вы купили, и у вас есть право изменять их как вам угодно. Когда вы слышите, что Intel разговаривает о *Boot Guard* (который мешает coreboot, разрешая запускать только прошивку, имеющую их подпись) или других крупных производителей, налагающих похожие ограничения, и вы слышите о "безопасности", они только говорят о *своей* безопасности, но не вашей. В Libreboot все наоборот: мы видим Intel Boot Guard и похожие технологии как покушение на ваши свободы и собственность (ваш компьютер), и поэтому наша миссия - помочь вам [вырвать](https://trmm.net/TOCTOU/) контроль обратно. | Libreboot ориентирован на сообщество, с фокусом на помощь людям перестать пользоваться проприетарными загрузочными прошивками; мы сами хотим жить в таком мире, где все программное обеспечение [свободное](https://writefreesoftware.org/), и поэтому, Libreboot - это попытка приблизиться к этому миру. В отличие от больших поставщиков, мы не пытаемся задушить вас любыми способами, мы тажке не видим в вас никакой угрозы; мы уважаем возможность использовать, изучать, модифицировать и распространять программное обеспечение без ограничения и считаем, что все должны иметь это право. Что касается компьютеров, это вещи, которые вы купили, и у вас есть право изменять их как вам угодно. Когда вы слышите, что Intel разговаривает о *Boot Guard* (который мешает coreboot, разрешая запускать только прошивку, имеющую их подпись) или других крупных производителей, налагающих похожие ограничения, и вы слышите о "безопасности", они только говорят о *своей* безопасности, но не вашей. В Libreboot все наоборот: мы видим Intel Boot Guard и похожие технологии как покушение на ваши свободы и собственность (ваш компьютер), и поэтому наша миссия - помочь вам [вырвать](https://trmm.net/TOCTOU/) контроль обратно. |
48 | 48 | ||
49 | 49 | Libreboot это не форк coreboot | Libreboot это не форк coreboot |
50 | =================================== | ||
50 | ------------------------------ | ||
51 | 51 | ||
52 | 52 | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/t1650/t1650_grub.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_grub.jpg" /></span> | <img tabindex=1 class="r" style="max-width:25%;" src="https://av.libreboot.org/t1650/t1650_grub.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_grub.jpg" /></span> |
53 | 53 | ||
... | ... | Libreboot это не форк coreboot | |
59 | 59 | ||
60 | 60 | Регулярные бинарные релизы Libreboot предоставляет эти ROM образы уже собранными, и вы просто можете их установить, без каких-либо дополнительных знаний или навыков, исключая способность следовать [упрощенной инструкции, написанной для пользователей, не обладающими техническими знаниями](docs/install/). | Регулярные бинарные релизы Libreboot предоставляет эти ROM образы уже собранными, и вы просто можете их установить, без каких-либо дополнительных знаний или навыков, исключая способность следовать [упрощенной инструкции, написанной для пользователей, не обладающими техническими знаниями](docs/install/). |
61 | 61 | ||
62 | Как помочь? | ||
63 | ----------- | ||
62 | ### Как помочь? | ||
64 | 63 | ||
65 | 64 | [Страница задач](tasks/) показывает задачи, над которыми нужно работать. Она будет обновляться по мере того, как задания будут выполнены/добавлены. Если вы хотите помочь, выбирайте одно из заданий и работайте над ним. | [Страница задач](tasks/) показывает задачи, над которыми нужно работать. Она будет обновляться по мере того, как задания будут выполнены/добавлены. Если вы хотите помочь, выбирайте одно из заданий и работайте над ним. |
66 | 65 | ||
... | ... | Libreboot это не форк coreboot | |
78 | 77 | ||
79 | 78 | Вся дискуссии насчет разработки и поддержка пользователей осуществляется через IRC. Больше информации можно найти на [странице контактов](contact.ru.md) | Вся дискуссии насчет разработки и поддержка пользователей осуществляется через IRC. Больше информации можно найти на [странице контактов](contact.ru.md) |
80 | 79 | ||
81 | Требуется помощь с переводом libreboot.org | ||
82 | -------------------------------------- | ||
80 | ### Требуется помощь с переводом libreboot.org | ||
83 | 81 | ||
84 | 82 | Сейчас Libreboot перевел веб страницы на украинский и французский (но не все страницы). | Сейчас Libreboot перевел веб страницы на украинский и французский (но не все страницы). |
85 | 83 |
File site/news/10.md changed (mode: 100644) (index 70bc7c9..b60b371) | |||
... | ... | history. This article complements the pre-existing [contrib](../contrib.md) | |
14 | 14 | page, which attempts to list the numerous contributions made by people to | page, which attempts to list the numerous contributions made by people to |
15 | 15 | Libreboot, over the years. | Libreboot, over the years. |
16 | 16 | ||
17 | Introduction | ||
18 | ============ | ||
17 | Ten years of Free Software | ||
18 | ----------------------- | ||
19 | 19 | ||
20 | 20 | The *Libreboot* project provides | The *Libreboot* project provides |
21 | 21 | [free, open source](https://writefreesoftware.org/) (*libre*) boot | [free, open source](https://writefreesoftware.org/) (*libre*) boot |
... | ... | since I've been here all this time. | |
49 | 49 | Let's get started! | Let's get started! |
50 | 50 | ||
51 | 51 | How did Libreboot start? | How did Libreboot start? |
52 | ======================== | ||
52 | ------------------ | ||
53 | 53 | ||
54 | *Why* did it start? | ||
55 | ------------------- | ||
54 | ### *Why* did it start? | ||
56 | 55 | ||
57 | 56 | I'm a free software activist. First and foremost, my focus is on using as much | I'm a free software activist. First and foremost, my focus is on using as much |
58 | 57 | Free Software *myself*, and I want to help other people achieve a level of | Free Software *myself*, and I want to help other people achieve a level of |
... | ... | believe in the ideology behind it. I merely apply it in different, more | |
63 | 62 | so I have to put myself in the headspace I was in, during each development year | so I have to put myself in the headspace I was in, during each development year |
64 | 63 | relative to when Libreboot started. | relative to when Libreboot started. |
65 | 64 | ||
66 | Early history | ||
67 | ------------- | ||
65 | ### Early history | ||
68 | 66 | ||
69 | 67 | The name *Libreboot* actually existed from about February 2014 onward. | The name *Libreboot* actually existed from about February 2014 onward. |
70 | 68 | The *libreboot.org* domain name was registered on 26 January 2014. I initially | The *libreboot.org* domain name was registered on 26 January 2014. I initially |
... | ... | talking about my company, which is where you could download my source tarballs | |
126 | 124 | at the time. | at the time. |
127 | 125 | ||
128 | 126 | 2013-2014: early days | 2013-2014: early days |
129 | ===================== | ||
127 | -------------------- | ||
130 | 128 | ||
131 | 129 | When Libreboot first started, it *only* provided very basic releases: pre | When Libreboot first started, it *only* provided very basic releases: pre |
132 | 130 | compiled ROM images, with source code, but there was no automated build system. | compiled ROM images, with source code, but there was no automated build system. |
... | ... | directly boot Linux kernels. GRUB has many advanced features, such as GPG and | |
159 | 157 | LUKS support, and it has support for virtually all of the major file systems in | LUKS support, and it has support for virtually all of the major file systems in |
160 | 158 | use today. | use today. |
161 | 159 | ||
162 | Libreboot logo | ||
163 | -------------- | ||
160 | ### Libreboot logo | ||
164 | 161 | ||
165 | 162 | Marcus Moeller designed the Libreboot logo in 2014, after I publicly requested | Marcus Moeller designed the Libreboot logo in 2014, after I publicly requested |
166 | 163 | that samples be prepared for my review. Marcus's logo was the one I chose. | that samples be prepared for my review. Marcus's logo was the one I chose. |
167 | 164 | ||
168 | Why GRUB? | ||
169 | --------- | ||
165 | ### Why GRUB? | ||
170 | 166 | ||
171 | 167 | Libreboot has always, at least on x86, preferred *GRUB* as a coreboot payload. | Libreboot has always, at least on x86, preferred *GRUB* as a coreboot payload. |
172 | 168 | ||
... | ... | you no longer need to install anything bootloader-related on your HDD/SSD. | |
261 | 257 | Although excluding this usually requires re-configuring `grub.cfg` in flash, | Although excluding this usually requires re-configuring `grub.cfg` in flash, |
262 | 258 | Libreboot does provide this capability. | Libreboot does provide this capability. |
263 | 259 | ||
264 | Automatic build system | ||
265 | ---------------------- | ||
260 | ### Automatic build system | ||
266 | 261 | ||
267 | 262 | One of Libreboot's other main innovations, in addition to providing binary | One of Libreboot's other main innovations, in addition to providing binary |
268 | 263 | releases, was to provide an automated *build system* interface. With it, the | releases, was to provide an automated *build system* interface. With it, the |
... | ... | You can learn more about the build system by reading [lbmk | |
319 | 314 | documentation](../docs/maintain/). | documentation](../docs/maintain/). |
320 | 315 | ||
321 | 316 | late 2014-2016: expansion | late 2014-2016: expansion |
322 | ======================== | ||
317 | ------------------------- | ||
323 | 318 | ||
324 | 319 | Libreboot up until late 2014 was mainly a proof of concept. It *worked*, but | Libreboot up until late 2014 was mainly a proof of concept. It *worked*, but |
325 | 320 | not well. The precursor of what became Libreboot's automated build system, | not well. The precursor of what became Libreboot's automated build system, |
... | ... | Almost all of 2014 was spent entirely on the build system, and on documentation, | |
329 | 324 | without much additional focus on hardware support; I always knew then that it | without much additional focus on hardware support; I always knew then that it |
330 | 325 | would later expand, so I focused solely on the infrastructure. | would later expand, so I focused solely on the infrastructure. |
331 | 326 | ||
332 | GM45 hardware (e.g. ThinkPad X200) | ||
333 | --------------------------------- | ||
327 | ### GM45 hardware (e.g. ThinkPad X200) | ||
334 | 328 | ||
335 | 329 | I was approached by another developer, named Steve Shenton, around October | I was approached by another developer, named Steve Shenton, around October |
336 | 330 | of 2014. I'd expressed interest in the ThinkPad X200, as an upgrade to the X60 | of 2014. I'd expressed interest in the ThinkPad X200, as an upgrade to the X60 |
... | ... | Based on this, and extensive amounts of documentation was written during the | |
381 | 375 | same period, I then provided the Libreboot 20150124 release on 24 January 2015. | same period, I then provided the Libreboot 20150124 release on 24 January 2015. |
382 | 376 | It added ThinkPad X200, X200S and X200 Tablet support. | It added ThinkPad X200, X200S and X200 Tablet support. |
383 | 377 | ||
384 | 2015: T400, T500, W500... R400 | ||
385 | ------------------------ | ||
378 | ### 2015: T400, T500, W500... R400 | ||
386 | 379 | ||
387 | 380 | Coreboot lacked supported for other GM45 thinkpads at this time, when X200 | Coreboot lacked supported for other GM45 thinkpads at this time, when X200 |
388 | 381 | support was first added to Libreboot. Testing was later done on these other | support was first added to Libreboot. Testing was later done on these other |
... | ... | So, during 2015, Libreboot added support for many newer laptops. ASUS KCMA-D8 | |
397 | 390 | and KGPE-D16 support was also first added to Libreboot during this year, | and KGPE-D16 support was also first added to Libreboot during this year, |
398 | 391 | worked on by Timothy Pearson and integrated into Libreboot. | worked on by Timothy Pearson and integrated into Libreboot. |
399 | 392 | ||
400 | 2015-2016: Major build system improvements | ||
401 | ------------------------------------------ | ||
393 | ### 2015-2016: Major build system improvements | ||
402 | 394 | ||
403 | 395 | The build system was heavily improved during this period, improving the | The build system was heavily improved during this period, improving the |
404 | 396 | automation and greatly expanding the supported features. | automation and greatly expanding the supported features. |
... | ... | people contributed to the project, during this period. You can check | |
432 | 424 | the [contrib](../contrib.md) page for a list of people, and check git logs. | the [contrib](../contrib.md) page for a list of people, and check git logs. |
433 | 425 | ||
434 | 426 | 2016: GNU Libreboot | 2016: GNU Libreboot |
435 | =================== | ||
427 | -------------------- | ||
436 | 428 | ||
437 | 429 | Yes. *That* is also covered here. Naturally, Libreboot was becoming very | Yes. *That* is also covered here. Naturally, Libreboot was becoming very |
438 | 430 | popular and I looked for ways to extend that. Back in 2015 and most of 2016, | popular and I looked for ways to extend that. Back in 2015 and most of 2016, |
... | ... | I saw GNU membership as a natural step for the project to take. Libreboot had | |
440 | 432 | a mailing list at that time, hosted on the GNU Savannah infrastructure, so it | a mailing list at that time, hosted on the GNU Savannah infrastructure, so it |
441 | 433 | seemed only logical to give it a go. | seemed only logical to give it a go. |
442 | 434 | ||
443 | Evaluation and accession | ||
444 | --------------------------- | ||
435 | ### Evaluation and accession | ||
445 | 436 | ||
446 | 437 | Libreboot was briefly a GNU project, between 14 April 2016 to 15 September 2016. | Libreboot was briefly a GNU project, between 14 April 2016 to 15 September 2016. |
447 | 438 | I had proposed this during the summer of 2015, and worked with the GNU Eval | I had proposed this during the summer of 2015, and worked with the GNU Eval |
... | ... | start integrating with the GNU infrastructure. | |
464 | 455 | *Three* Libreboot releases were released, during its GNU membership, namely: | *Three* Libreboot releases were released, during its GNU membership, namely: |
465 | 456 | Libreboot 20160818, 20160902 and 20160907. | Libreboot 20160818, 20160902 and 20160907. |
466 | 457 | ||
467 | Initial outcomes | ||
468 | ------------- | ||
458 | ### Initial outcomes | ||
469 | 459 | ||
470 | 460 | Libreboot's popularity reached great heights during this time, greatly expanding | Libreboot's popularity reached great heights during this time, greatly expanding |
471 | 461 | and attracting many new developers. Joining GNU accelerated this further, | and attracting many new developers. Joining GNU accelerated this further, |
... | ... | I later realised otherwise, regarding the ideology; more on this later, in | |
475 | 465 | the sections about osboot, and the osboot/libreboot merge, and events after | the sections about osboot, and the osboot/libreboot merge, and events after |
476 | 466 | that. | that. |
477 | 467 | ||
478 | Regret | ||
479 | ------ | ||
468 | ### Regret | ||
480 | 469 | ||
481 | 470 | Anyway: during Libreboot's membership, I started to realise that many of the | Anyway: during Libreboot's membership, I started to realise that many of the |
482 | 471 | technical requirements imposed on Libreboot were unworkable, especially the | technical requirements imposed on Libreboot were unworkable, especially the |
... | ... | accept Libreboot early; yet another example of the power that he held. | |
574 | 563 | Needless to say, I was stunned. And now, I will write about Libreboot's | Needless to say, I was stunned. And now, I will write about Libreboot's |
575 | 564 | subsequent exit from the GNU project: | subsequent exit from the GNU project: |
576 | 565 | ||
577 | Exit | ||
578 | ---- | ||
566 | ### Exit | ||
579 | 567 | ||
580 | 568 | Later, a member of the FSF staff got fired, who happened to be transgender, and | Later, a member of the FSF staff got fired, who happened to be transgender, and |
581 | 569 | I had been friends with that person. I myself had only recently come out | I had been friends with that person. I myself had only recently come out |
... | ... | have a tendency to list projects as *unmaintained* or *decommissioned* if no | |
605 | 593 | longer developed within GNU, but they do not have language pertaining | longer developed within GNU, but they do not have language pertaining |
606 | 594 | to *active* projects that leave, that stay active. | to *active* projects that leave, that stay active. |
607 | 595 | ||
608 | GNU's response | ||
609 | -------------- | ||
596 | ### GNU's response | ||
610 | 597 | ||
611 | 598 | Libreboot's decision to leave was not without precedent. GnuTLS also left, as | Libreboot's decision to leave was not without precedent. GnuTLS also left, as |
612 | 599 | did Nano (Nano later re-joined), though GnuTLS's departure was never officially | did Nano (Nano later re-joined), though GnuTLS's departure was never officially |
... | ... | and Libreboot's newer [Binary Blob Reduction Policy](policy.md), later in the | |
654 | 641 | article. | article. |
655 | 642 | ||
656 | 643 | 2017-2021: Post-GNU years | 2017-2021: Post-GNU years |
657 | ========================= | ||
644 | --------------------- | ||
658 | 645 | ||
659 | GNU cuts Libreboot loose | ||
660 | -------------------------- | ||
646 | ### GNU cuts Libreboot loose | ||
661 | 647 | ||
662 | 648 | Libreboot's departure from GNU came about 1 week after a big stable release, | Libreboot's departure from GNU came about 1 week after a big stable release, |
663 | 649 | the Libreboot 20160907 release. I pretty much burned out after that release, | the Libreboot 20160907 release. I pretty much burned out after that release, |
... | ... | back at these years now with pride; I did the right thing, even if I caused a | |
677 | 663 | lot of trouble while doing it, trouble that I had to later correct, and atone | lot of trouble while doing it, trouble that I had to later correct, and atone |
678 | 664 | for. It's a bittersweet realisation, but it is what it is. | for. It's a bittersweet realisation, but it is what it is. |
679 | 665 | ||
680 | Apology to GNU | ||
681 | -------------- | ||
666 | ### Apology to GNU | ||
682 | 667 | ||
683 | 668 | Alyssa Rosenzweig, who later founded the Panfrost project and nowadays works | Alyssa Rosenzweig, who later founded the Panfrost project and nowadays works |
684 | 669 | on free graphics drivers for Asahi Linux, briefly joined the Libreboot project | on free graphics drivers for Asahi Linux, briefly joined the Libreboot project |
... | ... | and user support to other people - I later took over the project again in 2021, | |
722 | 707 | a topic which I will also cover, later in this article. | a topic which I will also cover, later in this article. |
723 | 708 | ||
724 | 709 | 2017-2021: the great rewrite | 2017-2021: the great rewrite |
725 | ============================ | ||
710 | ----------------------- | ||
726 | 711 | ||
727 | Initial work, and why | ||
728 | --------------------- | ||
712 | ### Initial work, and why | ||
729 | 713 | ||
730 | 714 | While Libreboot was a member of the GNU project, I did a thought experiment: | While Libreboot was a member of the GNU project, I did a thought experiment: |
731 | 715 | what if Libreboot's build system and general infrastructure *did* adhere to | what if Libreboot's build system and general infrastructure *did* adhere to |
... | ... | This was later scrapped, when I decided to accept Alyssa's work instead; she | |
739 | 723 | converted the website to use Markdown instead, with a custom static site | converted the website to use Markdown instead, with a custom static site |
740 | 724 | generator. | generator. |
741 | 725 | ||
742 | Paper build system | ||
743 | ------------------ | ||
726 | ### Paper build system | ||
744 | 727 | ||
745 | 728 | I simultaneously commissioned a re-write of the build system. There wasn't | I simultaneously commissioned a re-write of the build system. There wasn't |
746 | 729 | anything seriously wrong with the one I wrote, but I wanted to see if it could | anything seriously wrong with the one I wrote, but I wanted to see if it could |
... | ... | I keep that repository there for archival, but it is no longer developed. I | |
776 | 759 | took over the project again in 2021, and scrapped the rewrite. More on this | took over the project again in 2021, and scrapped the rewrite. More on this |
777 | 760 | later in the article! | later in the article! |
778 | 761 | ||
779 | Andrew Robbins and Sebastian Grzywna | ||
780 | ------------------------------------ | ||
762 | ### Andrew Robbins and Sebastian Grzywna | ||
781 | 763 | ||
782 | 764 | Sebastian had joined the project during early 2016, advising about hardware | Sebastian had joined the project during early 2016, advising about hardware |
783 | 765 | and he made quite a few useful code contributions at first. For example, he | and he made quite a few useful code contributions at first. For example, he |
... | ... | component could work independently of the other. If I had to make an analogy, | |
800 | 782 | it was sort of like the monolith vs microkernel argument, paper being the | it was sort of like the monolith vs microkernel argument, paper being the |
801 | 783 | same sort of mentality for the latter. | same sort of mentality for the latter. |
802 | 784 | ||
803 | I was AWOL for years | ||
804 | -------------------- | ||
785 | ### I was AWOL for years | ||
805 | 786 | ||
806 | 787 | I wasn't active in the project during these years, at all. I first was prepping | I wasn't active in the project during these years, at all. I first was prepping |
807 | 788 | mentally and financially for gender reassignment surgery scheduled for late | mentally and financially for gender reassignment surgery scheduled for late |
... | ... | But that's how it all was, for many years. I regard Libreboot as having been | |
852 | 833 | a *dead project*, during this period. All (*all*) of the work put into it at | a *dead project*, during this period. All (*all*) of the work put into it at |
853 | 834 | that time, was a complete waste of energy and effort. | that time, was a complete waste of energy and effort. |
854 | 835 | ||
855 | Paper never worked | ||
856 | ------------------ | ||
836 | ### Paper never worked | ||
857 | 837 | ||
858 | 838 | The rewrite largely failed. During 2017-2021, Libreboot no longer had any | The rewrite largely failed. During 2017-2021, Libreboot no longer had any |
859 | 839 | releases. The Paper build system *never* reliably built any ROM images, due | releases. The Paper build system *never* reliably built any ROM images, due |
... | ... | in the next sections. Paul stopped working on Libreboot after around | |
946 | 926 | late 2017, leaving the work solely in the hands of Andrew and Sebastian. | late 2017, leaving the work solely in the hands of Andrew and Sebastian. |
947 | 927 | ||
948 | 928 | late 2020: osboot | late 2020: osboot |
949 | ================ | ||
929 | ---------------- | ||
950 | 930 | ||
951 | 931 | I started the [osboot project](https://notabug.org/osboot) in December 2020. | I started the [osboot project](https://notabug.org/osboot) in December 2020. |
952 | 932 | Check *osboot.org* on the Wayback Machine. Osboot was initially called | Check *osboot.org* on the Wayback Machine. Osboot was initially called |
... | ... | fun again, and I found that I once again had the energy. | |
1024 | 1004 | ||
1025 | 1005 | In short, I had my mojo back. My then 4-year hiatus was over. | In short, I had my mojo back. My then 4-year hiatus was over. |
1026 | 1006 | ||
1027 | December 2020 Libreboot takeover | ||
1028 | -------------------------------- | ||
1007 | ### December 2020 Libreboot takeover | ||
1029 | 1008 | ||
1030 | 1009 | Perhaps getting too carried away too soon, I actually took over the Libreboot | Perhaps getting too carried away too soon, I actually took over the Libreboot |
1031 | 1010 | project again in late December 2020. I was rapidly working on adding all the | project again in late December 2020. I was rapidly working on adding all the |
... | ... | a Libreboot takeover yet. I needed more time to polish everything. Doing a | |
1038 | 1017 | tiny release for 1 customer, on 1 machine (the X230) was all well and good, but | tiny release for 1 customer, on 1 machine (the X230) was all well and good, but |
1039 | 1018 | I decided that I had time to polish it more. | I decided that I had time to polish it more. |
1040 | 1019 | ||
1041 | March 2021 Libreboot takeover | ||
1042 | ----------------------------- | ||
1020 | ### March 2021 Libreboot takeover | ||
1043 | 1021 | ||
1044 | 1022 | I wanted to get rid of Sebastian and Andrew for some time, at that point. Too | I wanted to get rid of Sebastian and Andrew for some time, at that point. Too |
1045 | 1023 | many years had gone by, without any releases in Libreboot, and the Paper build | many years had gone by, without any releases in Libreboot, and the Paper build |
... | ... | However, I only had osboot then. I started actually working on a new Libreboot | |
1084 | 1062 | release *after* I took over. | release *after* I took over. |
1085 | 1063 | ||
1086 | 1064 | 2021 (lib)reboot | 2021 (lib)reboot |
1087 | =============== | ||
1065 | --------------- | ||
1088 | 1066 | ||
1089 | New Libreboot repositories | ||
1090 | -------------------------- | ||
1067 | ### New Libreboot repositories | ||
1091 | 1068 | ||
1092 | 1069 | The original Libreboot git repository can be found here: | The original Libreboot git repository can be found here: |
1093 | 1070 | <https://notabug.org/libreboot/obsolete-repository-preserved-for-historical-purposes> | <https://notabug.org/libreboot/obsolete-repository-preserved-for-historical-purposes> |
... | ... | In mid-2021, Libreboot was split into smaller repositories: | |
1108 | 1085 | * `untitled`: the static site generator, which creates the website, by creating | * `untitled`: the static site generator, which creates the website, by creating |
1109 | 1086 | HTML files from the Markdown files in `lbwww` | HTML files from the Markdown files in `lbwww` |
1110 | 1087 | ||
1111 | Untitled Static Site Generator | ||
1112 | ------------------------------ | ||
1088 | ### Untitled Static Site Generator | ||
1113 | 1089 | ||
1114 | 1090 | Untitled Static Site Generator was going to be part of Libreboot officially, but | Untitled Static Site Generator was going to be part of Libreboot officially, but |
1115 | 1091 | by that time, I had forked the Libreboot static site generator many times, for | by that time, I had forked the Libreboot static site generator many times, for |
... | ... | The osboot project greatly expanded, during this time. It never made any | |
1126 | 1102 | releases officially, but it provided an excellent proof of concept, and it | releases officially, but it provided an excellent proof of concept, and it |
1127 | 1103 | became the basis for modern day Libreboot. | became the basis for modern day Libreboot. |
1128 | 1104 | ||
1129 | May 2021 Libreboot release | ||
1130 | -------------------------- | ||
1105 | ### May 2021 Libreboot release | ||
1131 | 1106 | ||
1132 | 1107 | Somewhat annoyingly, it coincided with the Freenode/Libera drama at that time, | Somewhat annoyingly, it coincided with the Freenode/Libera drama at that time, |
1133 | 1108 | when the latter forked from Freenode after a hostile takeover. Thankfully, that | when the latter forked from Freenode after a hostile takeover. Thankfully, that |
... | ... | in about 5 years, at that point, and it added many new boards. It inherited all | |
1154 | 1129 | of the massive build system design improvements from osboot. | of the massive build system design improvements from osboot. |
1155 | 1130 | ||
1156 | 1131 | Osboot from 2021-2022 | Osboot from 2021-2022 |
1157 | ==================== | ||
1132 | ---------------------- | ||
1158 | 1133 | ||
1159 | 1134 | The *osboot* project continued, since December 2020 when it started. I started | The *osboot* project continued, since December 2020 when it started. I started |
1160 | 1135 | adding many new boards to it. The purpose of Osboot was the same as Libreboot, | adding many new boards to it. The purpose of Osboot was the same as Libreboot, |
1161 | 1136 | except that it had the [Binary Blob Reduction Policy](policy.md) instead. | except that it had the [Binary Blob Reduction Policy](policy.md) instead. |
1162 | 1137 | This is the policy that *modern* Libreboot uses, since merging with osboot. | This is the policy that *modern* Libreboot uses, since merging with osboot. |
1163 | 1138 | ||
1164 | Goals of osboot | ||
1165 | --------------- | ||
1139 | ### Goals of osboot | ||
1166 | 1140 | ||
1167 | 1141 | I *wanted* to start a project like osboot much earlier, in 2017. In fact, I was | I *wanted* to start a project like osboot much earlier, in 2017. In fact, I was |
1168 | 1142 | going to, but real life got in the way and I went on hiatus for a few years. | going to, but real life got in the way and I went on hiatus for a few years. |
... | ... | other files such as Intel MRC firmware and SMSC KBC1126 EC firmware (KBC1126 EC | |
1221 | 1195 | firmware extraction was only done in Libreboot, after it merged with osboot - | firmware extraction was only done in Libreboot, after it merged with osboot - |
1222 | 1196 | ||
1223 | 1197 | ||
1224 | November 2022: osboot/libreboot merger | ||
1225 | ------------- | ||
1198 | ### November 2022: osboot/libreboot merger | ||
1226 | 1199 | ||
1227 | 1200 | I *shut* down the osboot project, formerly hosted on *osboot.org*, during | I *shut* down the osboot project, formerly hosted on *osboot.org*, during |
1228 | 1201 | November 2022. The website was redirected to Libreboot. I then added all | November 2022. The website was redirected to Libreboot. I then added all |
... | ... | everyone supported this move. Sure enough, I saw a relative lack of opposition | |
1241 | 1214 | to it; though, some of the more dogmatic members of the FSF were quite upset. | to it; though, some of the more dogmatic members of the FSF were quite upset. |
1242 | 1215 | This level of upset later caused.... well, that's what I'm going to cover next. | This level of upset later caused.... well, that's what I'm going to cover next. |
1243 | 1216 | ||
1244 | FSF fork | ||
1245 | ======== | ||
1217 | Cold Boot War | ||
1218 | ------- | ||
1219 | |||
1220 | This period of Libreboot's history involved a massive amount of extreme and | ||
1221 | hostile competition between the Libreboot project and a *hostile fork* of | ||
1222 | Libreboot started by the FSF (now a GNU project). Libreboot fought hard to ensure | ||
1223 | that it, the *real* Libreboot project, the one on libreboot.org, survived, | ||
1224 | becauseu the FSF literally tried to destroy it. They made no secret of it, and | ||
1225 | even publicly announced such intentions at their LibrePlanet 2023 conference. | ||
1226 | |||
1227 | Much of the remainder of this article will cover this period, and its aftermath. | ||
1228 | This period of Libreboot's history is called the *Cold Boot War*. SPOILER ALERT: | ||
1229 | Libreboot won. | ||
1246 | 1230 | ||
1247 | 1231 | The purpose of today's article has been to write a rigorous history section for | The purpose of today's article has been to write a rigorous history section for |
1248 | 1232 | the Libreboot project, because a lot of earlier history for the project wasn't | the Libreboot project, because a lot of earlier history for the project wasn't |
1249 | 1233 | available. Many of Libreboot's early years were turbulent, and I never expected | available. Many of Libreboot's early years were turbulent, and I never expected |
1250 | 1234 | then that the project would last 5 years, let alone 10. | then that the project would last 5 years, let alone 10. |
1251 | 1235 | ||
1252 | Initial hostile fork | ||
1253 | -------------------- | ||
1236 | ### FSF's hostile fork | ||
1254 | 1237 | ||
1255 | 1238 | During Libreplanet 2023, which is the FSF's annual conference, the FSF, through | During Libreplanet 2023, which is the FSF's annual conference, the FSF, through |
1256 | 1239 | Denis Carikli who is part of their inner circle, announced a *hostile fork* of | Denis Carikli who is part of their inner circle, announced a *hostile fork* of |
... | ... | product. No. They put a paragraph in their documentation, | |
1301 | 1284 | urging people to *delete* links to libreboot.org, and link to them. *They were | urging people to *delete* links to libreboot.org, and link to them. *They were |
1302 | 1285 | out for blood*. | out for blood*. |
1303 | 1286 | ||
1304 | FSF's 2nd fork attempt | ||
1305 | --------------------- | ||
1287 | ### FSF's 2nd fork attempt | ||
1306 | 1288 | ||
1307 | 1289 | So I've responded in kind, ever since. Regardless of whether they succeed or | So I've responded in kind, ever since. Regardless of whether they succeed or |
1308 | 1290 | whether they are competent, a thought exists in their head. A dream, you could | whether they are competent, a thought exists in their head. A dream, you could |
... | ... | So, my strategy has been to constantly develop Libreboot from now on, much | |
1343 | 1325 | more aggressively, and generally stay on top of my game. And I made no secret | more aggressively, and generally stay on top of my game. And I made no secret |
1344 | 1326 | of this strategy; I've been pretty open about everything, throughout 2023. | of this strategy; I've been pretty open about everything, throughout 2023. |
1345 | 1327 | ||
1346 | Countercoup | ||
1347 | ----------- | ||
1328 | ### Countercoup | ||
1348 | 1329 | ||
1349 | 1330 | My countercoup has essentially consisted of a single strategy: be the best, on | My countercoup has essentially consisted of a single strategy: be the best, on |
1350 | 1331 | a technical level. During all of 2023, roughly 5x as much work has gone into | a technical level. During all of 2023, roughly 5x as much work has gone into |
... | ... | I also previously wrote about each of the three audits during 2023: | |
1399 | 1380 | ||
1400 | 1381 | and now: | and now: |
1401 | 1382 | ||
1402 | Canoeboot | ||
1403 | --------- | ||
1383 | ### Canoeboot | ||
1404 | 1384 | ||
1405 | 1385 | Purely for my own entertainment, I decided to re-create blob-free | Purely for my own entertainment, I decided to re-create blob-free |
1406 | 1386 | Libreboot *myself*, exactly the same one that Libreboot used in the past, before | Libreboot *myself*, exactly the same one that Libreboot used in the past, before |
... | ... | the writing of documentation. Conversely, GNU is *1 year* and *2 years* out of | |
1451 | 1431 | date, in terms of code and documentation respectively. | date, in terms of code and documentation respectively. |
1452 | 1432 | ||
1453 | 1433 | 2024 reconciliation intentions | 2024 reconciliation intentions |
1454 | ============================== | ||
1434 | ------------------------------ | ||
1435 | |||
1436 | ### End of the Cold Boot War | ||
1455 | 1437 | ||
1456 | 1438 | **This reconciliation was cancelled. Please see the [update from January 2025](#january-1st-2025-update).** | **This reconciliation was cancelled. Please see the [update from January 2025](#january-1st-2025-update).** |
1457 | 1439 | ||
... | ... | to manually upload HTML files to, generated by Untitled, which they | |
1506 | 1488 | wrapped around directly, within their fork of the Libreboot build system). | wrapped around directly, within their fork of the Libreboot build system). |
1507 | 1489 | ||
1508 | 1490 | Last remarks | Last remarks |
1509 | ============ | ||
1491 | ----------- | ||
1510 | 1492 | ||
1511 | 1493 | I've pretty much gone through the entire history, to the best of my ability. | I've pretty much gone through the entire history, to the best of my ability. |
1512 | 1494 | I probably did forget a few things, but these are the broad strokes. If you | I probably did forget a few things, but these are the broad strokes. If you |
... | ... | with Libreboot pre-installed. You can find it | |
1535 | 1517 | on [minifree.org](https://minifree.org/). | on [minifree.org](https://minifree.org/). |
1536 | 1518 | ||
1537 | 1519 | January 1st, 2025, UPDATE! | January 1st, 2025, UPDATE! |
1538 | ======================== | ||
1520 | ------------------------ | ||
1521 | |||
1522 | ### Cold Boot War II | ||
1539 | 1523 | ||
1540 | 1524 | The truce of 2024 has ended. GNU did a talk during 38C3 conference, where | The truce of 2024 has ended. GNU did a talk during 38C3 conference, where |
1541 | 1525 | they spent at least *one third* of the talk, telling people to stop using | they spent at least *one third* of the talk, telling people to stop using |
1542 | 1526 | Libreboot, to stop promoting Libreboot, stop contributing to it. This is an | Libreboot, to stop promoting Libreboot, stop contributing to it. This is an |
1543 | act of war against the Libreboot project. | ||
1527 | act of war against the Libreboot project. Their decision, in the talk, | ||
1528 | demonstrated that they have all the same intentions that they originally had | ||
1529 | in their LibrePlanet 2023 talk, that lead to the *first* Cold Boot War. | ||
1530 | |||
1531 | Intent matters. A lot of people might disagree, but the world runs on dreams. | ||
1532 | What we do in the moment is just an implementation dreams. Their dream is | ||
1533 | to *destroy the Libreboot project*. | ||
1544 | 1534 | ||
1545 | 1535 | Therefore, Cold Boot War II was declared, in the early hours of January 1st, 2025. | Therefore, Cold Boot War II was declared, in the early hours of January 1st, 2025. |
1546 | There won't be much material difference sa a result of this, but the consequence | ||
1536 | There won't be much material difference as a result of this, but the consequence | ||
1547 | 1537 | is that there is no longer good will from Libreboot towards the GNU project. | is that there is no longer good will from Libreboot towards the GNU project. |
1548 | 1538 | ||
1549 | 1539 | Canoeboot will be developed as aggressively as before, if not more so. It will | Canoeboot will be developed as aggressively as before, if not more so. It will |
File site/news/argon2.md changed (mode: 100644) (index 0d752ec..0ad2d60) | |||
4 | 4 | ||
5 | 5 | <img tabindex=1 class="r" src="https://av.libreboot.org/grub/argon2.jpg" /><span class="f"><img src="https://av.libreboot.org/grub/argon2.jpg" /></span> | <img tabindex=1 class="r" src="https://av.libreboot.org/grub/argon2.jpg" /><span class="f"><img src="https://av.libreboot.org/grub/argon2.jpg" /></span> |
6 | 6 | ||
7 | Introduction | ||
8 | ============ | ||
7 | Free as in... PHC | ||
8 | ------------------------ | ||
9 | 9 | ||
10 | 10 | The GRUB payload has supported LUKSv2 for a long time, but only with the | The GRUB payload has supported LUKSv2 for a long time, but only with the |
11 | 11 | old-school PBKDF2 key derivation method; most Linux dm-crypt setups on LUKSv2 | old-school PBKDF2 key derivation method; most Linux dm-crypt setups on LUKSv2 |
... | ... | the original work that Nicholas imported from Archlinux AUR. | |
28 | 28 | The work on AUR, and Nicholas's update based on it, was ultimately based on | The work on AUR, and Nicholas's update based on it, was ultimately based on |
29 | 29 | the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. | the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. |
30 | 30 | ||
31 | Why does this matter? | ||
32 | --------------------- | ||
31 | ### Why does this matter? | ||
33 | 32 | ||
34 | 33 | Libreboot previously documented how to boot distros from encrypted `/boot`, | Libreboot previously documented how to boot distros from encrypted `/boot`, |
35 | 34 | which is a boon for security because it's harder to compromise a machine that | which is a boon for security because it's harder to compromise a machine that |
... | ... | Argon2 is the newer key derivation preferred on modern LUKSv2 setups. It is | |
49 | 48 | strongly recommended that you *upgrade* to argon2id, specifically, for your | strongly recommended that you *upgrade* to argon2id, specifically, for your |
50 | 49 | setup. | setup. |
51 | 50 | ||
52 | How to get it | ||
53 | ------------- | ||
51 | ### How to get it | ||
54 | 52 | ||
55 | 53 | This is unavailable in the Libreboot 20230625 release, but will be | This is unavailable in the Libreboot 20230625 release, but will be |
56 | 54 | available in the next Libreboot release. | available in the next Libreboot release. |
... | ... | you may still compile a ROM image yourself from the Libreboot build system. See: | |
62 | 60 | **[How to build Libreboot ROM images from source](../docs/build/)** | **[How to build Libreboot ROM images from source](../docs/build/)** |
63 | 61 | ||
64 | 62 | Further reading | Further reading |
65 | =============== | ||
63 | ---------------- | ||
66 | 64 | ||
67 | PHC argon2 implementation | ||
68 | ------------------------- | ||
65 | ### PHC argon2 implementation | ||
69 | 66 | ||
70 | 67 | This is the reference argon2 implementation, now used by Libreboot, | This is the reference argon2 implementation, now used by Libreboot, |
71 | 68 | and the upstream project for that is hosted here: | and the upstream project for that is hosted here: |
72 | 69 | ||
73 | 70 | <https://github.com/P-H-C/phc-winner-argon2> | <https://github.com/P-H-C/phc-winner-argon2> |
74 | 71 | ||
75 | Article by Matthew Garrett | ||
76 | -------------------------- | ||
72 | ### Article by Matthew Garrett | ||
77 | 73 | ||
78 | 74 | [PSA: upgrade your LUKS key derivation | [PSA: upgrade your LUKS key derivation |
79 | 75 | function](https://mjg59.dreamwidth.org/66429.html) by Matthew Garrett, talks | function](https://mjg59.dreamwidth.org/66429.html) by Matthew Garrett, talks |
File site/news/argon2.uk.md changed (mode: 100644) (index 1671f93..a931992) | |||
5 | 5 | <img tabindex=1 class="r" src="https://av.libreboot.org/grub/argon2.jpg" /><span class="f"><img src="https://av.libreboot.org/grub/argon2.jpg" /></span> | <img tabindex=1 class="r" src="https://av.libreboot.org/grub/argon2.jpg" /><span class="f"><img src="https://av.libreboot.org/grub/argon2.jpg" /></span> |
6 | 6 | ||
7 | 7 | Вступ | Вступ |
8 | ============ | ||
8 | ------ | ||
9 | 9 | ||
10 | 10 | Корисне навантаження GRUB підтримувало LUKSv2 протягом довгого часу, але тільки з | Корисне навантаження GRUB підтримувало LUKSv2 протягом довгого часу, але тільки з |
11 | 11 | старосвітовським методом формування ключа PBKDF2; більшість Linux dm-crypt встановлень на LUKSv2 | старосвітовським методом формування ключа PBKDF2; більшість Linux dm-crypt встановлень на LUKSv2 |
... | ... | AUR](https://aur.archlinux.org/cgit/aur.git/tree/?h=grub-improved-luks2-git&id=1 | |
28 | 28 | The work on AUR, and Nicholas's update based on it, was ultimately based on | The work on AUR, and Nicholas's update based on it, was ultimately based on |
29 | 29 | the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. | the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. |
30 | 30 | ||
31 | Чому це має значення? | ||
32 | --------------------- | ||
31 | ### Чому це має значення? | ||
33 | 32 | ||
34 | 33 | Libreboot раніше документував, як завантажувати дистрибутиви з зашифрованого `/boot`, | Libreboot раніше документував, як завантажувати дистрибутиви з зашифрованого `/boot`, |
35 | 34 | що є добрим для безпеки, тому що складніше скомпрометувати машину, яка має | що є добрим для безпеки, тому що складніше скомпрометувати машину, яка має |
... | ... | Argon2 є новішим формуванням ключа, якому нада | |
49 | 48 | ви *оновились* на argon2id, в точності, для вашого | ви *оновились* на argon2id, в точності, для вашого |
50 | 49 | встановлення. | встановлення. |
51 | 50 | ||
52 | Як отримати це | ||
53 | ------------- | ||
51 | ### Як отримати це | ||
54 | 52 | ||
55 | 53 | Це є недоступним для поточного випуску Libreboot 20230625, але буде | Це є недоступним для поточного випуску Libreboot 20230625, але буде |
56 | 54 | доступним в наступному випуску Libreboot. Наразі, ви можете зібрати образ ROM | доступним в наступному випуску Libreboot. Наразі, ви можете зібрати образ ROM |
... | ... | Argon2 є новішим формуванням ключа, якому нада | |
59 | 57 | [Як побудувати образи ROM Libreboot з джерела](../docs/build/index.uk.md) | [Як побудувати образи ROM Libreboot з джерела](../docs/build/index.uk.md) |
60 | 58 | ||
61 | 59 | Наступне читання | Наступне читання |
62 | =============== | ||
60 | ---------------- | ||
63 | 61 | ||
64 | Реалізація PHC argon2 | ||
65 | ------------------------- | ||
62 | ### Реалізація PHC argon2 | ||
66 | 63 | ||
67 | 64 | Це реалізація argon2 для посилання, що тепер використовується Libreboot, | Це реалізація argon2 для посилання, що тепер використовується Libreboot, |
68 | 65 | і апстрім проект для цього розміщено тут: | і апстрім проект для цього розміщено тут: |
69 | 66 | ||
70 | 67 | <https://github.com/P-H-C/phc-winner-argon2> | <https://github.com/P-H-C/phc-winner-argon2> |
71 | 68 | ||
72 | Стаття Метью Гарретт | ||
73 | -------------------------- | ||
69 | ### Стаття Метью Гарретт | ||
74 | 70 | ||
75 | 71 | [PSA: оновіть ваш LUKS метод формування | [PSA: оновіть ваш LUKS метод формування |
76 | 72 | ключа](https://mjg59.dreamwidth.org/66429.html) від Метью Гарретт, розповідає | ключа](https://mjg59.dreamwidth.org/66429.html) від Метью Гарретт, розповідає |
File site/news/audit.md changed (mode: 100644) (index 05fc1e4..68629f4) | |||
3 | 3 | % 13 June 2023 | % 13 June 2023 |
4 | 4 | ||
5 | 5 | Introduction | Introduction |
6 | ============ | ||
6 | ------------ | ||
7 | 7 | ||
8 | 8 | Literally about 200+ changes have been made to the Libreboot build system, | Literally about 200+ changes have been made to the Libreboot build system, |
9 | 9 | since the last release of Libreboot. This has been the primary focus, thus far. | since the last release of Libreboot. This has been the primary focus, thus far. |
... | ... | and compiles everything from scratch, but in a way that is simplified from the | |
24 | 24 | perspective of the end user (almost everything is just a single command, where | perspective of the end user (almost everything is just a single command, where |
25 | 25 | users are typically not required to edit any files unless they want to). | users are typically not required to edit any files unless they want to). |
26 | 26 | ||
27 | Brief summary of changes | ||
28 | ------------------------ | ||
27 | ### Brief summary of changes | ||
29 | 28 | ||
30 | 29 | In short, the following work has been performed: | In short, the following work has been performed: |
31 | 30 | ||
... | ... | is usually *why* (or *when*). Libreboot's build system tries to avoid bloat | |
50 | 49 | and *feature creep* when possible, intentionally refusing to implement certain | and *feature creep* when possible, intentionally refusing to implement certain |
51 | 50 | features that are considered superfluous. | features that are considered superfluous. |
52 | 51 | ||
53 | Example of BSD coding style on shell scripts | ||
54 | -------------------------------------------- | ||
52 | ### Example of BSD coding style on shell scripts | ||
55 | 53 | ||
56 | 54 | One of the most common practises in BSD style in *top-down* logic, which | One of the most common practises in BSD style in *top-down* logic, which |
57 | 55 | makes programs much easier to read (in my opinion). Here is an example | makes programs much easier to read (in my opinion). Here is an example |
... | ... | in the Libreboot build system, with existing scripts modified accordingly. This | |
79 | 77 | and other work is ongoing. | and other work is ongoing. |
80 | 78 | ||
81 | 79 | Auditing of utilities | Auditing of utilities |
82 | ===================== | ||
80 | --------------------- | ||
83 | 81 | ||
84 | 82 | This process has *also* been applied to some of the utilities (written in C) | This process has *also* been applied to some of the utilities (written in C) |
85 | 83 | that Libreboot includes as part of lbmk. The following utilities have been | that Libreboot includes as part of lbmk. The following utilities have been |
... | ... | audited: | |
89 | 87 | * `e6400-flash-unlock` (minor cleanup, basically removing one unused function) | * `e6400-flash-unlock` (minor cleanup, basically removing one unused function) |
90 | 88 | * `nvmutil` (massive code size reduction, minor fixes here and there) | * `nvmutil` (massive code size reduction, minor fixes here and there) |
91 | 89 | ||
92 | Pledge | ||
93 | ------ | ||
90 | ### Pledge | ||
94 | 91 | ||
95 | 92 | The `nvmutil` program was already pledged, when compiled on OpenBSD, but it was | The `nvmutil` program was already pledged, when compiled on OpenBSD, but it was |
96 | 93 | not handled well. It is now handled correctly (correct ifdef rule), and it | not handled well. It is now handled correctly (correct ifdef rule), and it |
... | ... | The code has also been unveiled. See manpages: | |
102 | 99 | ||
103 | 100 | <https://man.openbsd.org/unveil.2> | <https://man.openbsd.org/unveil.2> |
104 | 101 | ||
105 | spkmodem-recv | ||
106 | ------------- | ||
102 | ### spkmodem-recv | ||
107 | 103 | ||
108 | 104 | This utility was *added* after the last release. It was imported from coreboot, | This utility was *added* after the last release. It was imported from coreboot, |
109 | 105 | which in turn previously forked it from GRUB. It is a receiving client for | which in turn previously forked it from GRUB. It is a receiving client for |
... | ... | code is conditionally *pledged* if you compile it on OpenBSD (for OpenBSD), | |
130 | 126 | see: <https://man.openbsd.org/pledge.2> | see: <https://man.openbsd.org/pledge.2> |
131 | 127 | ||
132 | 128 | Other plans for next release | Other plans for next release |
133 | ============================ | ||
129 | ---------------------------- | ||
134 | 130 | ||
135 | 131 | I have a bunch of Dell/HP boards that I plan to add, which I would have added | I have a bunch of Dell/HP boards that I plan to add, which I would have added |
136 | 132 | already but I've focused on the audit (which is more or less complete, now). | already but I've focused on the audit (which is more or less complete, now). |
... | ... | Besides this, I also wish to: | |
153 | 149 | with Libreboots u-boot payload, at present). | with Libreboots u-boot payload, at present). |
154 | 150 | ||
155 | 151 | FULL list of changes so far since last release | FULL list of changes so far since last release |
156 | ============================================== | ||
152 | ---------------------------------------------- | ||
157 | 153 | ||
158 | 154 | Not all patches are listed below, if they are patches not relevant, or patches | Not all patches are listed below, if they are patches not relevant, or patches |
159 | 155 | not currently pushed to upstream Libreboot git mirrors. The following patches | not currently pushed to upstream Libreboot git mirrors. The following patches |
File site/news/audit2.md changed (mode: 100644) (index 7768d23..e0c8b31) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 11 September 2023 | % 11 September 2023 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Free as in freedom! | ||
6 | -------------------- | ||
7 | 7 | ||
8 | 8 | This article pertains to the current Libreboot (lbmk) revision at this time | This article pertains to the current Libreboot (lbmk) revision at this time |
9 | 9 | of writing, which is `c400916e33b8870384c30b83a9ecb9cdf7121917` from 11 | of writing, which is `c400916e33b8870384c30b83a9ecb9cdf7121917` from 11 |
File site/news/audit3.md changed (mode: 100644) (index 12b57c9..45ae5b1) | |||
... | ... | now, as of 27 January 2024, which is a fork of flashrom. | |
7 | 7 | The reason why was explained, in | The reason why was explained, in |
8 | 8 | the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free software BIOS/UEFI | ||
11 | ------------------------ | ||
12 | 12 | ||
13 | 13 | This article pertains to the current Libreboot (lbmk) revision at this time | This article pertains to the current Libreboot (lbmk) revision at this time |
14 | 14 | of writing, which is `c7e764a3f088e2dbcacb507995476ce3082451ef` from 20 | of writing, which is `c7e764a3f088e2dbcacb507995476ce3082451ef` from 20 |
... | ... | decided that I would perform *another* audit immediately, so there have been | |
24 | 24 | two audits (this audit, dubbed audit 3, and the previous audit 2) between now | two audits (this audit, dubbed audit 3, and the previous audit 2) between now |
25 | 25 | and the Libreboot 20230625 release. | and the Libreboot 20230625 release. |
26 | 26 | ||
27 | Massive code size reduction | ||
28 | --------------------------- | ||
27 | ### Massive code size reduction | ||
29 | 28 | ||
30 | 29 | The focus has been improved error handling, general bug fixing and improving | The focus has been improved error handling, general bug fixing and improving |
31 | 30 | the efficiency of lbmk (in terms of speed). Reduced complexity. The focus has | the efficiency of lbmk (in terms of speed). Reduced complexity. The focus has |
File site/news/audit4.md changed (mode: 100644) (index 7ab72d6..128f20d) | |||
... | ... | now, as of 27 January 2024, which is a fork of flashrom. | |
7 | 7 | The reason why was explained, in | The reason why was explained, in |
8 | 8 | the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free/open source BIOS | ||
11 | -------------------- | ||
12 | 12 | ||
13 | 13 | This article pertains to the current Libreboot (lbmk) revision at this time | This article pertains to the current Libreboot (lbmk) revision at this time |
14 | 14 | of writing, which is `11a821637d8a36f4a72001ef8d8c41952f066cc3` from 31 | of writing, which is `11a821637d8a36f4a72001ef8d8c41952f066cc3` from 31 |
... | ... | Audit 3](audit3.md), which coincided with | |
22 | 22 | the [Libreboot 20231021](libreboot20231021.md) release, right up | the [Libreboot 20231021](libreboot20231021.md) release, right up |
23 | 23 | to [Libreboot 20231106](libreboot20231106). | to [Libreboot 20231106](libreboot20231106). |
24 | 24 | ||
25 | Modest code size reduction | ||
26 | -------------------------- | ||
25 | ### Modest code size reduction | ||
27 | 26 | ||
28 | 27 | The main purpose of audit 4 has been to *finish* audit 3. More logic has been | The main purpose of audit 4 has been to *finish* audit 3. More logic has been |
29 | 28 | generalised, and *another* sloccount reduction has been observed: 1618 SLOC in | generalised, and *another* sloccount reduction has been observed: 1618 SLOC in |
... | ... | And now, specific changes: | |
286 | 285 | re-used by other planned ports for Dell latitudes in lbmk. Patch courtesy of | re-used by other planned ports for Dell latitudes in lbmk. Patch courtesy of |
287 | 286 | Nicholas Chin. | Nicholas Chin. |
288 | 287 | ||
289 | Exact git log, relative to 20231106: | ||
288 | ### Exact git log, relative to 20231106: | ||
290 | 289 | ||
291 | 290 | ``` | ``` |
292 | 291 | * 11a82163 Bump GRUB to 2.12 release | * 11a82163 Bump GRUB to 2.12 release |
File site/news/audit5.md changed (mode: 100644) (index ceda45c..126cb98) | |||
6 | 6 | about the [Libreboot 20240612 release](libreboot20240612.md).** | about the [Libreboot 20240612 release](libreboot20240612.md).** |
7 | 7 | ||
8 | 8 | Introduction | Introduction |
9 | ============ | ||
9 | ------------ | ||
10 | 10 | ||
11 | 11 | Libreboot is a free/opensource boot firmware project. It replaces your | Libreboot is a free/opensource boot firmware project. It replaces your |
12 | 12 | proprietary BIOS/UEFI firmware, on supported x86 and ARM computers. It does | proprietary BIOS/UEFI firmware, on supported x86 and ARM computers. It does |
... | ... | revision `2ee186aee3aa3ab9619ed9549bd3b82909dcfbd0` from 9 June 2024. | |
32 | 32 | You can read about the *previous* audit in the article | You can read about the *previous* audit in the article |
33 | 33 | for [Libreboot Build System Audit 4](audit4.md). | for [Libreboot Build System Audit 4](audit4.md). |
34 | 34 | ||
35 | Modest code size reduction | ||
36 | -------------------------- | ||
35 | ### Modest code size reduction | ||
37 | 36 | ||
38 | 37 | There are 1482 lines of shell script in the build system, versus 1680 in the | There are 1482 lines of shell script in the build system, versus 1680 in the |
39 | 38 | Libreboot 20240504 release. Libreboot's build system is written purely in | Libreboot 20240504 release. Libreboot's build system is written purely in |
... | ... | This is a difference of 198 lines, or a 12% reduction. Despite the reduction, | |
43 | 42 | numerous features have been added and a large number of bugs were fixed. | numerous features have been added and a large number of bugs were fixed. |
44 | 43 | ||
45 | 44 | Summarised list of changes | Summarised list of changes |
46 | ========================== | ||
45 | -------------------------- | ||
47 | 46 | ||
48 | 47 | Changes are in order per category, from newest to oldest: | Changes are in order per category, from newest to oldest: |
49 | 48 | ||
50 | Feature changes | ||
51 | --------------- | ||
49 | ### Feature changes | ||
52 | 50 | ||
53 | 51 | * **Download crossgcc tarballs as dependencies, when cloning coreboot.** We | * **Download crossgcc tarballs as dependencies, when cloning coreboot.** We |
54 | 52 | previously relied on the coreboot build system, which automatically fetches | previously relied on the coreboot build system, which automatically fetches |
... | ... | Feature changes | |
183 | 181 | * Removed all status checks from script/roms (formerly script/build/roms), | * Removed all status checks from script/roms (formerly script/build/roms), |
184 | 182 | because it's better to document this instead, and rely on testing regardless. | because it's better to document this instead, and rely on testing regardless. |
185 | 183 | ||
186 | Bug fixes | ||
187 | --------- | ||
184 | ### Bug fixes | ||
188 | 185 | ||
189 | 186 | Some of these changes fix actual issues that were found in testing, while | Some of these changes fix actual issues that were found in testing, while |
190 | 187 | others were fixed *before* being triggered/reported and are thus *preventative | others were fixed *before* being triggered/reported and are thus *preventative |
... | ... | The changes are, from newest to earliest: | |
418 | 415 | * Main build script: exit (with error status) if not running directly from | * Main build script: exit (with error status) if not running directly from |
419 | 416 | the root of the lbmk work directory. | the root of the lbmk work directory. |
420 | 417 | ||
421 | General code cleanup | ||
422 | -------------------- | ||
418 | ### General code cleanup | ||
423 | 419 | ||
424 | 420 | In addition to *general* very sweeping code cleanup, condensing code lines | In addition to *general* very sweeping code cleanup, condensing code lines |
425 | 421 | where possible and so on: | where possible and so on: |
... | ... | where possible and so on: | |
545 | 541 | * script/build/roms: split up `main()` into multiple smaller functions | * script/build/roms: split up `main()` into multiple smaller functions |
546 | 542 | ||
547 | 543 | Revision updates | Revision updates |
548 | ================ | ||
544 | ---------------- | ||
549 | 545 | ||
550 | 546 | Some revisions were updated as part of standard routine, but happened to be | Some revisions were updated as part of standard routine, but happened to be |
551 | 547 | done during this audit. Those updates are as follows: | done during this audit. Those updates are as follows: |
552 | 548 | ||
553 | SeaBIOS | ||
554 | ------- | ||
549 | ### SeaBIOS | ||
555 | 550 | ||
556 | 551 | Bump SeaBIOS to revision `e5f2e4c69643bc3cd385306a9e5d29e11578148c`, which has | Bump SeaBIOS to revision `e5f2e4c69643bc3cd385306a9e5d29e11578148c`, which has |
557 | 552 | these changes relative to the old one: | these changes relative to the old one: |
... | ... | these changes relative to the old one: | |
581 | 576 | * a6ed6b70 limit address space used for pci devices. | * a6ed6b70 limit address space used for pci devices. |
582 | 577 | ``` | ``` |
583 | 578 | ||
584 | Flashprog | ||
585 | --------- | ||
579 | ### Flashprog | ||
586 | 580 | ||
587 | 581 | Updated to revision 5b4fdd1 from 2 May 2024, rebasing the MX workaround patch. | Updated to revision 5b4fdd1 from 2 May 2024, rebasing the MX workaround patch. |
588 | 582 | ||
... | ... | Flashrom, lead by Nico Huber after a dispute with the new leadership of | |
653 | 647 | Flashrom, and it was felt that Flashprog is a better choice for Libreboot. | Flashrom, and it was felt that Flashprog is a better choice for Libreboot. |
654 | 648 | ||
655 | 649 | Git log | Git log |
656 | ======= | ||
650 | ------- | ||
657 | 651 | ||
658 | 652 | This entire set of changelogs is based on the precise Git history in lbmk, | This entire set of changelogs is based on the precise Git history in lbmk, |
659 | 653 | relative to Libreboot 20240504 which is from where the audit began. | relative to Libreboot 20240504 which is from where the audit began. |
File site/news/audit6.md changed (mode: 100644) (index a86f045..9bb3d93) | |||
5 | 5 | Heavy amount of code reduction in this audit, and general cleanup. A new | Heavy amount of code reduction in this audit, and general cleanup. A new |
6 | 6 | Libreboot release is planned, for the early days of August 2024. | Libreboot release is planned, for the early days of August 2024. |
7 | 7 | ||
8 | Introduction | ||
9 | ============ | ||
8 | Efficient software freedom | ||
9 | -------------------------- | ||
10 | 10 | ||
11 | 11 | Libreboot is a free/opensource boot firmware project. It replaces your | Libreboot is a free/opensource boot firmware project. It replaces your |
12 | 12 | proprietary BIOS/UEFI firmware, on supported x86 and ARM computers. It does | proprietary BIOS/UEFI firmware, on supported x86 and ARM computers. It does |
... | ... | revision `31f1e4dadfcc1ceecacec50dd2a14e63a44364bd` from 19 July 2024. | |
38 | 38 | You can read about the *previous* audit in the article | You can read about the *previous* audit in the article |
39 | 39 | for [Libreboot Build System Audit 5](audit5.md). | for [Libreboot Build System Audit 5](audit5.md). |
40 | 40 | ||
41 | Notable code size reduction | ||
42 | -------------------------- | ||
41 | ### Notable code size reduction | ||
43 | 42 | ||
44 | 43 | There are 1109 lines of shell script in the build system, versus 1482 in the | There are 1109 lines of shell script in the build system, versus 1482 in the |
45 | 44 | Libreboot 20240612 release. Libreboot's build system is written *entirely* in | Libreboot 20240612 release. Libreboot's build system is written *entirely* in |
... | ... | A *lot* of work on new ports is planned. There are a number of new mainboards | |
67 | 66 | that will be available, in the next Libreboot release. | that will be available, in the next Libreboot release. |
68 | 67 | ||
69 | 68 | Summarised list of changes | Summarised list of changes |
70 | ========================== | ||
69 | -------------------------- | ||
71 | 70 | ||
72 | 71 | The most interesting changes are marked in **bold**. "Interesting" means that | The most interesting changes are marked in **bold**. "Interesting" means that |
73 | 72 | the change greatly improves the usefulness/reliability of Libreboot, or that it | the change greatly improves the usefulness/reliability of Libreboot, or that it |
... | ... | affects the user in a profound and noticeable way. | |
75 | 74 | ||
76 | 75 | Changes are in order per category, from newest to oldest: | Changes are in order per category, from newest to oldest: |
77 | 76 | ||
78 | Feature changes | ||
79 | --------------- | ||
77 | ### Feature changes | ||
80 | 78 | ||
81 | 79 | Some unused features have been removed, and yet more added. The overall focus of | Some unused features have been removed, and yet more added. The overall focus of |
82 | 80 | Audit 6 has been to remove legacy cruft from lbmk, and in general to simplify | Audit 6 has been to remove legacy cruft from lbmk, and in general to simplify |
... | ... | The changes are as follows: | |
257 | 255 | possible to create such a broken setup. Libreboot mitigates this fact, by | possible to create such a broken setup. Libreboot mitigates this fact, by |
258 | 256 | avoiding such configurations. | avoiding such configurations. |
259 | 257 | ||
260 | Configuration changes | ||
261 | --------------------- | ||
258 | ### Configuration changes | ||
262 | 259 | ||
263 | 260 | This pertains to anything under `config/`, for any changes that are of note, | This pertains to anything under `config/`, for any changes that are of note, |
264 | 261 | but it does not pertain to *revisions* for specific projects, nor does it | but it does not pertain to *revisions* for specific projects, nor does it |
... | ... | The changes are as follows: | |
301 | 298 | which is loaded per-project on multi-tree projects, before each target | which is loaded per-project on multi-tree projects, before each target |
302 | 299 | file. It allows easier configuration tree-wide on multi-tree projects. | file. It allows easier configuration tree-wide on multi-tree projects. |
303 | 300 | ||
304 | Bug fixes | ||
305 | --------- | ||
301 | ### Bug fixes | ||
306 | 302 | ||
307 | 303 | There are fewer *acute* bug fixes in Audit 6, because bugfixes was the primary | There are fewer *acute* bug fixes in Audit 6, because bugfixes was the primary |
308 | 304 | focus of *Audit 5*. The word *acute* is used, referring to triggered bugs, because | focus of *Audit 5*. The word *acute* is used, referring to triggered bugs, because |
... | ... | The changes are as follows: | |
464 | 460 | could create situations where the user can longer run lbmk without intervention | could create situations where the user can longer run lbmk without intervention |
465 | 461 | such as changing permission on certain files. Avoid the issue entirely. | such as changing permission on certain files. Avoid the issue entirely. |
466 | 462 | ||
467 | General code cleanup | ||
468 | -------------------- | ||
463 | ### General code cleanup | ||
469 | 464 | ||
470 | 465 | Extensive code cleanup has been performed, as was the main purpose of Audit 6. | Extensive code cleanup has been performed, as was the main purpose of Audit 6. |
471 | 466 | ||
... | ... | The changes are as follows: | |
820 | 815 | * `script/roms`: shorter variable names, condensed several functions. | * `script/roms`: shorter variable names, condensed several functions. |
821 | 816 | ||
822 | 817 | Revision updates | Revision updates |
823 | ================ | ||
818 | ---------------- | ||
824 | 819 | ||
825 | U-Boot | ||
826 | ------ | ||
820 | ### U-Boot | ||
827 | 821 | ||
828 | 822 | Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted | Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted |
829 | 823 | a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` | a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` |
... | ... | is announced, as a priority for further work that is to be completed for | |
837 | 831 | the next Libreboot release, ETA August 2024. | the next Libreboot release, ETA August 2024. |
838 | 832 | ||
839 | 833 | Git log | Git log |
840 | ======= | ||
834 | -------- | ||
841 | 835 | ||
842 | 836 | This git log covers all changes in this audit, relative to Libreboot 20240612. | This git log covers all changes in this audit, relative to Libreboot 20240612. |
843 | 837 |
File site/news/codeberg.md changed (mode: 100644) (index 9eb08e1..4e12b7e) | |||
3 | 3 | % 8 April 2023 | % 8 April 2023 |
4 | 4 | ||
5 | 5 | RIP Notabug | RIP Notabug |
6 | =========== | ||
6 | ------------- | ||
7 | 7 | ||
8 | 8 | Git repositories provided by Libreboot are still available via Notabug, but | Git repositories provided by Libreboot are still available via Notabug, but |
9 | 9 | the Notabug site has been quite unreliable for some time now. I notice it | the Notabug site has been quite unreliable for some time now. I notice it |
... | ... | admin (single) would fix issues, but I can't keep waiting. | |
18 | 18 | Libreboot was originally a member of the Peers Community, which hosts Notabug. | Libreboot was originally a member of the Peers Community, which hosts Notabug. |
19 | 19 | So I had an affinity for Notabug. | So I had an affinity for Notabug. |
20 | 20 | ||
21 | Libreboot repos now hosted by Codeberg | ||
22 | -------------------------------------- | ||
21 | ### Libreboot repos now hosted by Codeberg | ||
23 | 22 | ||
24 | 23 | I've decided to set up an account on Codeberg. You can find it here: | I've decided to set up an account on Codeberg. You can find it here: |
25 | 24 | ||
... | ... | under `util/ich9utils`, so the ich9utils repository was not | |
37 | 36 | needed on Codeberg (it still exists on Notabug). I'll add bucts | needed on Codeberg (it still exists on Notabug). I'll add bucts |
38 | 37 | to Libreboot's lbmk repo too (under `util/bucts/`). | to Libreboot's lbmk repo too (under `util/bucts/`). |
39 | 38 | ||
40 | Codeberg has nicer features | ||
41 | --------------------------- | ||
39 | ### Codeberg has nicer features | ||
42 | 40 | ||
43 | 41 | Codeberg runs on forgejo, itself a fork of Gitea, which *itself* is a fork | Codeberg runs on forgejo, itself a fork of Gitea, which *itself* is a fork |
44 | 42 | of Gogs. *Notabug* runs on an older, modified version of Gogs, which lacks a | of Gogs. *Notabug* runs on an older, modified version of Gogs, which lacks a |
... | ... | You can send issue reports and pull requests in much the same way as before, | |
54 | 52 | but you will need to make a new account on codeberg.org if you don't already | but you will need to make a new account on codeberg.org if you don't already |
55 | 53 | have one. | have one. |
56 | 54 | ||
57 | Notabug still available | ||
58 | ----------------------- | ||
55 | ### Notabug still available | ||
59 | 56 | ||
60 | 57 | The notabug repositories are *still* available, and I'll still push new code | The notabug repositories are *still* available, and I'll still push new code |
61 | 58 | to them. I push to several repositories, not just codeberg/notabug, but those | to them. I push to several repositories, not just codeberg/notabug, but those |
... | ... | so it's no longer viable for production use, but it's still viable as a backup. | |
66 | 63 | If codeberg is ever down, at least you'd be able to download from Notabug. | If codeberg is ever down, at least you'd be able to download from Notabug. |
67 | 64 | ||
68 | 65 | Why not self-host? | Why not self-host? |
69 | ================== | ||
66 | ------------------ | ||
70 | 67 | ||
71 | 68 | Forgejo, based on Gitea, is what runs on Codeberg. They host the project, on | Forgejo, based on Gitea, is what runs on Codeberg. They host the project, on |
72 | 69 | behalf of the developers. Forgejo is working on federating the git forge, so | behalf of the developers. Forgejo is working on federating the git forge, so |
... | ... | When federation becomes available, I assume Codeberg's forgejo instance will | |
86 | 83 | become part of that, so it just makes practical sense for Libreboot to | become part of that, so it just makes practical sense for Libreboot to |
87 | 84 | use Codeberg. | use Codeberg. |
88 | 85 | ||
89 | Why not sourcehut? | ||
90 | ------------------ | ||
86 | ### Why not sourcehut? | ||
91 | 87 | ||
92 | 88 | I considered sourcehut. I like the concept of it (mailing lists made easier, | I considered sourcehut. I like the concept of it (mailing lists made easier, |
93 | 89 | email-based collaboration) but I don't think most people will want to use that. | email-based collaboration) but I don't think most people will want to use that. |
File site/news/e6400.md changed (mode: 100644) (index b53dd6c..ac36d2e) | |||
5 | 5 | **UPDATE (9 May 2023): Libreboot confirmed working on variants such as | **UPDATE (9 May 2023): Libreboot confirmed working on variants such as |
6 | 6 | [E6400 XFR, and the Nvidia GPU variant is now supported](e6400nvidia.md).** | [E6400 XFR, and the Nvidia GPU variant is now supported](e6400nvidia.md).** |
7 | 7 | ||
8 | Introduction | ||
9 | ============ | ||
8 | Free as in freedom! | ||
9 | ------------------ | ||
10 | 10 | ||
11 | 11 | Today, Libreboot gained the Dell Latitude E6400 laptop port. This is a | Today, Libreboot gained the Dell Latitude E6400 laptop port. This is a |
12 | 12 | blob-less port, courtesy of Nicholas Chin (`nic3-14159` on Libreboot IRC). | blob-less port, courtesy of Nicholas Chin (`nic3-14159` on Libreboot IRC). |
... | ... | Libreboot already supports. | |
18 | 18 | ||
19 | 19 | You can learn more on the [Latitude flashing guide](../docs/install/latitude.md) | You can learn more on the [Latitude flashing guide](../docs/install/latitude.md) |
20 | 20 | ||
21 | 100% libre, blob-free | ||
22 | --------------------- | ||
21 | ### 100% libre, blob-free | ||
23 | 22 | ||
24 | 23 | This is a *blob-free* board in the boot flash. No Intel ME firmware needed, | This is a *blob-free* board in the boot flash. No Intel ME firmware needed, |
25 | 24 | and [microcode can be removed if you wish](gm45microcode.md) (you should still | and [microcode can be removed if you wish](gm45microcode.md) (you should still |
... | ... | we give them - see: [Binary Blobs Reduction Policy](policy.md)). | |
28 | 27 | ||
29 | 28 | *But wait.* There's more. A lot more of *them*, that is. | *But wait.* There's more. A lot more of *them*, that is. |
30 | 29 | ||
31 | Readily available on eBay etc, and cheap | ||
32 | ----------------------------- | ||
30 | ### Readily available on eBay etc, and cheap | ||
33 | 31 | ||
34 | 32 | Dells were much more popular than those ThinkPads, and more commonly used, | Dells were much more popular than those ThinkPads, and more commonly used, |
35 | 33 | so there are still *several* of these available on sites like eBay. Enough to | so there are still *several* of these available on sites like eBay. Enough to |
... | ... | this a very nice machine indeed. | |
42 | 40 | ||
43 | 41 | But wait.... It gets better: | But wait.... It gets better: |
44 | 42 | ||
45 | Software flashing possible! (no disassembly) | ||
46 | --------------------------- | ||
43 | ### Software flashing possible! (no disassembly) | ||
47 | 44 | ||
48 | 45 | **NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it | **NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it |
49 | 46 | was previously called `e6400-flash-unlock`. Links have been updated. And | was previously called `e6400-flash-unlock`. Links have been updated. And |
File site/news/e6400.uk.md changed (mode: 100644) (index d1fec10..64cc732) | |||
... | ... | there, before flashing. For posterity, | |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | 10 | Вступ | Вступ |
11 | ============ | ||
11 | ------ | ||
12 | 12 | ||
13 | 13 | Сьогодні, Libreboot отримав порт ноутбука Dell Latitude E6400. Цей порт | Сьогодні, Libreboot отримав порт ноутбука Dell Latitude E6400. Цей порт |
14 | 14 | є вільним від блобів, увічливість Ніколаса Чін (`nic3-14159` на Libreboot IRC). | є вільним від блобів, увічливість Ніколаса Чін (`nic3-14159` на Libreboot IRC). |
... | ... | there, before flashing. For posterity, | |
20 | 20 | ||
21 | 21 | Ви можете вивчити більше на [сторінці встановлення](../docs/install/latitude.md) | Ви можете вивчити більше на [сторінці встановлення](../docs/install/latitude.md) |
22 | 22 | ||
23 | вільна від блобів конфігурація | ||
24 | ------------------------------ | ||
23 | ### вільна від блобів конфігурація | ||
25 | 24 | ||
26 | 25 | Це є *вільною від блобів* платою в завантажувальній флеш-пам'яті. Прошивка Intel ME | Це є *вільною від блобів* платою в завантажувальній флеш-пам'яті. Прошивка Intel ME |
27 | 26 | не потрібна, та [мікрокод може бути видалено, якщо ви бажаєте](gm45microcode.md) | не потрібна, та [мікрокод може бути видалено, якщо ви бажаєте](gm45microcode.md) |
... | ... | there, before flashing. For posterity, | |
31 | 30 | ||
32 | 31 | *Але почекайте.* Є більше. Набагато більше *цього*, так ось. | *Але почекайте.* Є більше. Набагато більше *цього*, так ось. |
33 | 32 | ||
34 | Доступно на eBay і так далі, а також дешево | ||
35 | ----------------------------- | ||
33 | ### Доступно на eBay і так далі, а також дешево | ||
36 | 34 | ||
37 | 35 | Dell були набагато більш популярні, ніж ті ThinkPad, та більш звичайно | Dell були набагато більш популярні, ніж ті ThinkPad, та більш звичайно |
38 | 36 | використовувались, тому існує досі *багато* цих в доступності на сайтах, подібних | використовувались, тому існує досі *багато* цих в доступності на сайтах, подібних |
... | ... | eBay. Достатньо, щоб тримати людей з симпатією | |
45 | 43 | ||
46 | 44 | Але почекайте.... Стає ще краще: | Але почекайте.... Стає ще краще: |
47 | 45 | ||
48 | Прошивка програмним забезпеченням можлива! (без розбору) | ||
49 | --------------------------- | ||
46 | ### Прошивка програмним забезпеченням можлива! (без розбору) | ||
50 | 47 | ||
51 | 48 | **NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it | **NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it |
52 | 49 | was previously called `e6400-flash-unlock`. Links have been updated.** | was previously called `e6400-flash-unlock`. Links have been updated.** |
File site/news/e6400nvidia.md changed (mode: 100644) (index d65b4a3..c5d5107) | |||
... | ... | in coreboot, on this mainboard.** | |
16 | 16 | <img tabindex=1 class="r" style="max-width:35%" src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /></span> | <img tabindex=1 class="r" style="max-width:35%" src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /></span> |
17 | 17 | ||
18 | 18 | Introduction | Introduction |
19 | ============ | ||
19 | ------------ | ||
20 | 20 | ||
21 | 21 | [Dell Latitude E6400 *with Intel GMA 4500MHD* graphics](e6400.md) was added, and | [Dell Latitude E6400 *with Intel GMA 4500MHD* graphics](e6400.md) was added, and |
22 | 22 | included in Libreboot release 20230423 or newer. *Today*, support is now | included in Libreboot release 20230423 or newer. *Today*, support is now |
... | ... | than Libreboot 20231021 only support the Intel GPU variant.** | |
31 | 31 | The 6400 XFR testing+photo was provided, courtesy Mark Cornick (`mcornick` on | The 6400 XFR testing+photo was provided, courtesy Mark Cornick (`mcornick` on |
32 | 32 | Libreboot IRC). | Libreboot IRC). |
33 | 33 | ||
34 | Preparing a release Rom | ||
35 | ----------------------- | ||
34 | ### Preparing a release Rom | ||
36 | 35 | ||
37 | 36 | NOTE: Not strictly required on Intel graphics models, but still useful for | NOTE: Not strictly required on Intel graphics models, but still useful for |
38 | 37 | changing the MAC address. | changing the MAC address. |
... | ... | Ethernet device; doing so is advisable, because otherwise you will have a | |
45 | 44 | default, generic MAC address. | default, generic MAC address. |
46 | 45 | ||
47 | 46 | Dell Latitude E6400 with Nvidia GPU | Dell Latitude E6400 with Nvidia GPU |
48 | =================================== | ||
47 | ----------------------------------- | ||
49 | 48 | ||
50 | 49 | This section *also* applies to E6400 XFS and ATG models. [Testers are | This section *also* applies to E6400 XFS and ATG models. [Testers are |
51 | 50 | needed!](../docs/maintain/testing.md). | needed!](../docs/maintain/testing.md). |
... | ... | following pages (which have been updated, while publishing this news article): | |
70 | 69 | ||
71 | 70 | * [Dell Latitude E6400 information](../docs/install/latitude.md) | * [Dell Latitude E6400 information](../docs/install/latitude.md) |
72 | 71 | ||
73 | Nouveau(in Linux) currently broken | ||
74 | ---------------------------------- | ||
72 | ### Nouveau(in Linux) currently broken | ||
75 | 73 | ||
76 | 74 | Nouveau is the libre driver in Linux, for Nvidia graphics. Nvidia themselves | Nouveau is the libre driver in Linux, for Nvidia graphics. Nvidia themselves |
77 | 75 | do not provide binary drivers anymore, for these GPUs. It crashes in Linux, | do not provide binary drivers anymore, for these GPUs. It crashes in Linux, |
... | ... | Development discussion, for Nvidia variants of E6400, is available here: | |
85 | 83 | ||
86 | 84 | <https://codeberg.org/libreboot/lbmk/issues/14> | <https://codeberg.org/libreboot/lbmk/issues/14> |
87 | 85 | ||
88 | OpenBSD's Nvidia driver works perfectly | ||
89 | --------------------------------------- | ||
86 | ### OpenBSD's Nvidia driver works perfectly | ||
90 | 87 | ||
91 | 88 | OpenBSD 7.3 was tested, on my Nvidia-model E6400, and Xorg works OK with | OpenBSD 7.3 was tested, on my Nvidia-model E6400, and Xorg works OK with |
92 | 89 | the `nv` driver. | the `nv` driver. |
... | ... | main guide: | |
103 | 100 | ||
104 | 101 | * [BSD Operating Systems](../docs/bsd/) | * [BSD Operating Systems](../docs/bsd/) |
105 | 102 | ||
106 | FreeBSD and newer Linux (e.g. Archlinux) untested! | ||
107 | -------------------------------------------------- | ||
103 | ### FreeBSD and newer Linux (e.g. Archlinux) untested! | ||
108 | 104 | ||
109 | 105 | [Testers needed! Please get in touch!](../docs/maintain/testing.html) | [Testers needed! Please get in touch!](../docs/maintain/testing.html) |
110 | 106 | ||
... | ... | and newer Linux have not yet been tested** (I plan to test *Arch Linux*), but | |
113 | 109 | the older Linux/Mesa version in Debian 11.6 works just fine in the Dell BIOS, | the older Linux/Mesa version in Debian 11.6 works just fine in the Dell BIOS, |
114 | 110 | and I've confirmed that it uses the exact same Video BIOS Option ROM. | and I've confirmed that it uses the exact same Video BIOS Option ROM. |
115 | 111 | ||
116 | Dell Latitude E6400 ATG model | ||
117 | ----------------------------- | ||
112 | ### Dell Latitude E6400 ATG model | ||
118 | 113 | ||
119 | 114 | [Testers needed! Please get in touch!](../docs/maintain/testing.html) | [Testers needed! Please get in touch!](../docs/maintain/testing.html) |
120 | 115 |
File site/news/fam15h.md changed (mode: 100644) (index 6705cc5..3be961e) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 16 July 2023 | % 16 July 2023 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Freedom as in... again | ||
6 | ------------------------- | ||
7 | 7 | ||
8 | 8 | [Libreboot 20211122](libreboot20211122.md) was the last release to officially | [Libreboot 20211122](libreboot20211122.md) was the last release to officially |
9 | 9 | support these boards: ASUS KFSN4-DRE, KCMA-D8 and KGPE-D16; they were removed | support these boards: ASUS KFSN4-DRE, KCMA-D8 and KGPE-D16; they were removed |
... | ... | release of Libreboot. | |
20 | 20 | It was implemented with this patch: | It was implemented with this patch: |
21 | 21 | <https://browse.libreboot.org/lbmk.git/commit/?id=af084014f04602f570a23b0cc23a112401348faf> | <https://browse.libreboot.org/lbmk.git/commit/?id=af084014f04602f570a23b0cc23a112401348faf> |
22 | 22 | ||
23 | Differences now, versus Libreboot 20211122 | ||
24 | ------------------------------------------ | ||
23 | ### Differences now, versus Libreboot 20211122 | ||
25 | 24 | ||
26 | 25 | The following changes have been made, relative to Libreboot 20211122: | The following changes have been made, relative to Libreboot 20211122: |
27 | 26 | ||
... | ... | The PIKE2008 fix from Libreboot 20211122 was retained, and it is included in | |
50 | 49 | today's change. This inserts an empty option ROM in CBFS, without which SeaBIOS | today's change. This inserts an empty option ROM in CBFS, without which SeaBIOS |
51 | 50 | would hang; the empty option ROM prevents SeaBIOS from loading the real one. | would hang; the empty option ROM prevents SeaBIOS from loading the real one. |
52 | 51 | ||
53 | Dasharo firmware | ||
54 | ---------------- | ||
52 | ### Dasharo firmware | ||
55 | 53 | ||
56 | 54 | **Libreboot does not yet integrate Dasharo.** | **Libreboot does not yet integrate Dasharo.** |
57 | 55 |
File site/news/gm45microcode.md changed (mode: 100644) (index 1c6d587..a9dd1dd) | |||
... | ... | updates using the instructions on this page, *or* if you need pre-built ROM | |
18 | 18 | images, Libreboot 20220710 had no-microcode ROMs by default and it has the | images, Libreboot 20220710 had no-microcode ROMs by default and it has the |
19 | 19 | mitigation patches described by this article. | mitigation patches described by this article. |
20 | 20 | ||
21 | Introduction | ||
22 | ============ | ||
21 | Free as in freedom | ||
22 | ------------ | ||
23 | 23 | ||
24 | 24 | Microcode updates provide stability and security fixes, using the files | Microcode updates provide stability and security fixes, using the files |
25 | 25 | provided by coreboot, which are assembled at boot time. CPUs have microcode | provided by coreboot, which are assembled at boot time. CPUs have microcode |
... | ... | The patch re-adding these mitigations can be seen here: | |
70 | 70 | ||
71 | 71 | <https://browse.libreboot.org/lbmk.git/commit/?id=bd4ea9a02845b22a09b73ebb015ce134234d100b> | <https://browse.libreboot.org/lbmk.git/commit/?id=bd4ea9a02845b22a09b73ebb015ce134234d100b> |
72 | 72 | ||
73 | Why? | ||
74 | ---- | ||
73 | ### Why? | ||
75 | 74 | ||
76 | 75 | Free choice, that's why. We don't lecture anyone. We just help people. | Free choice, that's why. We don't lecture anyone. We just help people. |
77 | 76 | ||
... | ... | This change, today, fixes a practical violation of Libreboot policy by once | |
94 | 93 | again restoring such practical choice to the user. It is already said how to | again restoring such practical choice to the user. It is already said how to |
95 | 94 | do so elsewhere, but I'll repeat it here in this news article for posterity: | do so elsewhere, but I'll repeat it here in this news article for posterity: |
96 | 95 | ||
97 | How to add/remove microcode updates from ROM | ||
98 | -------------------------------------------- | ||
96 | ### How to add/remove microcode updates from ROM | ||
99 | 97 | ||
100 | 98 | Extract to file on disk: | Extract to file on disk: |
101 | 99 |
File site/news/hp2170p.md changed (mode: 100644) (index f8f5656..101d7d5) | |||
7 | 7 | ||
8 | 8 | <img tabindex=1 class="r" style="max-width:35%" src="https://av.libreboot.org/hp2170p/hp2170p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp2170p/hp2170p.jpg" /></span> | <img tabindex=1 class="r" style="max-width:35%" src="https://av.libreboot.org/hp2170p/hp2170p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp2170p/hp2170p.jpg" /></span> |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free software BIOS/UEFI | ||
11 | ----------------------- | ||
12 | 12 | ||
13 | 13 | HP EliteBook 2170p support was added to coreboot, in | HP EliteBook 2170p support was added to coreboot, in |
14 | 14 | the [coreboot 4.20.1 release](https://doc.coreboot.org/releases/coreboot-4.20.1-relnotes.html) | the [coreboot 4.20.1 release](https://doc.coreboot.org/releases/coreboot-4.20.1-relnotes.html) |
... | ... | Information about the board can be found on the coreboot documentation: | |
25 | 25 | Installation instructions are being written for Libreboot, but you can refer | Installation instructions are being written for Libreboot, but you can refer |
26 | 26 | to the coreboot instructions for now. | to the coreboot instructions for now. |
27 | 27 | ||
28 | Socketed flash IC! | ||
29 | ------------------ | ||
28 | ### Socketed flash IC! | ||
30 | 29 | ||
31 | 30 | I love HP EliteBooks. Truly. This is the only 11 inch laptop I've ever seen | I love HP EliteBooks. Truly. This is the only 11 inch laptop I've ever seen |
32 | 31 | that has socketed SOIC8 flash: | that has socketed SOIC8 flash: |
... | ... | this is no longer true. GRUB has fixed this, courtesy of a patch that Riku | |
53 | 52 | Viitanen sent them. | Viitanen sent them. |
54 | 53 | ||
55 | 54 | Other works currently in progress | Other works currently in progress |
56 | ================================= | ||
55 | --------------------------- | ||
57 | 56 | ||
58 | More boards coming soon | ||
59 | ----------------------- | ||
57 | ### More boards coming soon | ||
60 | 58 | ||
61 | 59 | I'm on a spree, adding more boards to Libreboot, especially HP EliteBooks. | I'm on a spree, adding more boards to Libreboot, especially HP EliteBooks. |
62 | 60 | ||
... | ... | in future revisions of Libreboot: | |
74 | 72 | * Dell OptiPlex 9010 | * Dell OptiPlex 9010 |
75 | 73 | * Dell Precision T1650 | * Dell Precision T1650 |
76 | 74 | ||
77 | Another build system audit | ||
78 | -------------------------- | ||
75 | ### Another build system audit | ||
79 | 76 | ||
80 | 77 | I've also started another audit of the Libreboot build system; the [last | I've also started another audit of the Libreboot build system; the [last |
81 | 78 | one](audit.md) was quite intense and a lot more work is going in for the | one](audit.md) was quite intense and a lot more work is going in for the |
File site/news/hp8200sff.md changed (mode: 100644) (index b7fe26e..e566d0e) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 15 April 2023 | % 15 April 2023 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Free software BIOS/UEFI | ||
6 | ---------------------------- | ||
7 | 7 | ||
8 | 8 | Today, Libreboot gains its *first* desktop machine for nearly 2 years. The | Today, Libreboot gains its *first* desktop machine for nearly 2 years. The |
9 | 9 | last one added was Acer G43T-AM3. | last one added was Acer G43T-AM3. |
... | ... | readily available on merchant sites such as eBay. Desktop support has | |
21 | 21 | traditionally been much weaker in Libreboot, and this is something that | traditionally been much weaker in Libreboot, and this is something that |
22 | 22 | should (can, and will) change. | should (can, and will) change. |
23 | 23 | ||
24 | HP EliteBook 2560p (laptop) | ||
25 | ------------------ | ||
24 | ### HP EliteBook 2560p (laptop) | ||
26 | 25 | ||
27 | 26 | Riku is also interested in adding HP EliteBook 2560p support in Libreboot. | Riku is also interested in adding HP EliteBook 2560p support in Libreboot. |
28 | 27 | Coreboot has support for that board. For *that* board, I committed this | Coreboot has support for that board. For *that* board, I committed this |
... | ... | in the Libreboot [blobs reduction policy](policy.md), because it makes the EC | |
42 | 41 | firmware easier to replace with libre code (based on reverse engineering, | firmware easier to replace with libre code (based on reverse engineering, |
43 | 42 | perhaps). | perhaps). |
44 | 43 | ||
45 | Dell Optiplex 7020/9020 probably soon (testing needed) | ||
46 | ------------------------------------- | ||
44 | ### Dell Optiplex 7020/9020 probably soon (testing needed) | ||
47 | 45 | ||
48 | 46 | I've purchased Dell Optiplex 7020 and 9020 workstations (Haswell gen), which is | I've purchased Dell Optiplex 7020 and 9020 workstations (Haswell gen), which is |
49 | 47 | available for coreboot with this gerrit patch: | available for coreboot with this gerrit patch: |
... | ... | available for coreboot with this gerrit patch: | |
52 | 50 | ||
53 | 51 | Libreboot will eventually support *all* coreboot targets. | Libreboot will eventually support *all* coreboot targets. |
54 | 52 | ||
55 | Want to help add boards yourself? | ||
56 | --------------------------------- | ||
53 | ### Want to help add boards yourself? | ||
57 | 54 | ||
58 | 55 | Libreboot has the following documentation available: | Libreboot has the following documentation available: |
59 | 56 |
File site/news/hp8200sff.uk.md changed (mode: 100644) (index f9e2521..1dcf1e7) | |||
3 | 3 | % 15 квітня 2023 року | % 15 квітня 2023 року |
4 | 4 | ||
5 | 5 | Вступ | Вступ |
6 | ============ | ||
6 | ------ | ||
7 | 7 | ||
8 | 8 | Сьогодні, Libreboot отримує його *першу* настільну машину за майже 2 роки. | Сьогодні, Libreboot отримує його *першу* настільну машину за майже 2 роки. |
9 | 9 | Останнім доданим був Acer G43T-AM3. | Останнім доданим був Acer G43T-AM3. |
21 | 21 | традиційно набагато слабішою в Libreboot, і це щось, що має | традиційно набагато слабішою в Libreboot, і це щось, що має |
22 | 22 | (може, і буде) змінюватися. | (може, і буде) змінюватися. |
23 | 23 | ||
24 | HP EliteBook 2560p (ноутбук) | ||
25 | ------------------ | ||
24 | ### HP EliteBook 2560p (ноутбук) | ||
26 | 25 | ||
27 | 26 | Ріку також зацікавлений в додаванні підтримки HP EliteBook 2560p в Libreboot. | Ріку також зацікавлений в додаванні підтримки HP EliteBook 2560p в Libreboot. |
28 | 27 | Coreboot має підтримку для тієї плати. Для *тієї* плати, я зробила commit цього | Coreboot має підтримку для тієї плати. Для *тієї* плати, я зробила commit цього |
... | ... | Coreboot має підтримку для тієї плати. Для *тієї* | |
42 | 41 | це робить прошивку EC легшою для заміни на вільний код (заснований на зворотній | це робить прошивку EC легшою для заміни на вільний код (заснований на зворотній |
43 | 42 | розробці, мабуть). | розробці, мабуть). |
44 | 43 | ||
45 | Dell Optiplex 7020/9020 можливо скоро (потребує випробування) | ||
46 | ------------------------------------- | ||
44 | ### Dell Optiplex 7020/9020 можливо скоро (потребує випробування) | ||
47 | 45 | ||
48 | 46 | Я купила робочі станції Dell Optiplex 7020 та 9020 (покоління Haswell), що | Я купила робочі станції Dell Optiplex 7020 та 9020 (покоління Haswell), що |
49 | 47 | доступно для coreboot з цим виправленням gerrit: | доступно для coreboot з цим виправленням gerrit: |
... | ... | Dell Optiplex 7020/9020 можливо скоро (потребує випроб | |
52 | 50 | ||
53 | 51 | Libreboot в певний момент буде підтримувати *всі* цілі coreboot. | Libreboot в певний момент буде підтримувати *всі* цілі coreboot. |
54 | 52 | ||
55 | Хочете допомогти додати плати самостійно? | ||
56 | --------------------------------- | ||
53 | ### Хочете допомогти додати плати самостійно? | ||
57 | 54 | ||
58 | 55 | Libreboot має наступну документацію в наявності: | Libreboot має наступну документацію в наявності: |
59 | 56 |
File site/news/hp820g2.md changed (mode: 100644) (index 7115f42..33a60a5) | |||
... | ... | Full hardware specifications can be found on HP's own website: | |
23 | 23 | ||
24 | 24 | <https://support.hp.com/gb-en/document/c04543492> | <https://support.hp.com/gb-en/document/c04543492> |
25 | 25 | ||
26 | Introduction | ||
27 | ============ | ||
26 | Free software BIOS | ||
27 | ------------------ | ||
28 | 28 | ||
29 | 29 | This is a beastly 12.5" Broadwell machine from HP, the main benefit of which is | This is a beastly 12.5" Broadwell machine from HP, the main benefit of which is |
30 | 30 | greater power efficiency (compared to Ivybridge and Haswell platforms), while | greater power efficiency (compared to Ivybridge and Haswell platforms), while |
... | ... | All variants of this mainboard will come with Intel HD 5500 graphics, which has | |
47 | 47 | completely free software initialisation in coreboot, provided by *libgfxinit*. | completely free software initialisation in coreboot, provided by *libgfxinit*. |
48 | 48 | ||
49 | 49 | How to install Libreboot | How to install Libreboot |
50 | ======================== | ||
50 | -------------------- | ||
51 | 51 | ||
52 | 52 | Refer to the [HP 820 G2 install guide](../docs/install/hp820g2.md) | Refer to the [HP 820 G2 install guide](../docs/install/hp820g2.md) |
53 | 53 | for more information about how to flash this board. This machine is widely | for more information about how to flash this board. This machine is widely |
File site/news/hp8470p_and_dell_t1650.md changed (mode: 100644) (index b59e2d2..a871743) | |||
7 | 7 | HP EliteBook 8470p](../docs/install/hp8470p.md) and also | HP EliteBook 8470p](../docs/install/hp8470p.md) and also |
8 | 8 | [Dell Precision T1650](../docs/install/t1650.md).** | [Dell Precision T1650](../docs/install/t1650.md).** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free your BIOS today! | ||
11 | ------------------- | ||
12 | 12 | ||
13 | 13 | I've ported and tested two new boards, and merged them into the `lbmk` master | I've ported and tested two new boards, and merged them into the `lbmk` master |
14 | 14 | branch. They will be available in the next regular release: | branch. They will be available in the next regular release: |
15 | 15 | ||
16 | 16 | <img tabindex=1 class="r" style="max-width:25%" src="https://av.libreboot.org/hp8470p/hp8470p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp8470p/hp8470p.jpg" /></span> | <img tabindex=1 class="r" style="max-width:25%" src="https://av.libreboot.org/hp8470p/hp8470p.jpg" /><span class="f"><img src="https://av.libreboot.org/hp8470p/hp8470p.jpg" /></span> |
17 | 17 | ||
18 | HP EliteBook 8470p | ||
19 | ------------------ | ||
18 | ### HP EliteBook 8470p | ||
20 | 19 | ||
21 | 20 | HP EliteBook 8470p is another IvyBridge platform, similar to other EliteBooks | HP EliteBook 8470p is another IvyBridge platform, similar to other EliteBooks |
22 | 21 | that Libreboot already supports, such as the HP EliteBook 9470m that Riku | that Libreboot already supports, such as the HP EliteBook 9470m that Riku |
... | ... | Another quirk: SOIC16 flash IC, but it's 16MB in size (Winbond W25Q128). | |
35 | 34 | There is currently no documentation on the coreboot website, but installation | There is currently no documentation on the coreboot website, but installation |
36 | 35 | instructions will be written for the Libreboot website. | instructions will be written for the Libreboot website. |
37 | 36 | ||
38 | Dell Precision T1650 | ||
39 | -------------------- | ||
37 | ### Dell Precision T1650 | ||
40 | 38 | ||
41 | 39 | This machine is truly unique, among most desktop boards in coreboot. It's yet | This machine is truly unique, among most desktop boards in coreboot. It's yet |
42 | 40 | another IvyBridge desktop, same platform as [HP 8300 | another IvyBridge desktop, same platform as [HP 8300 |
... | ... | would be a boon. Stick 32GB of ECC RAM with RAID10 HDDs on FreeBSD and run | |
83 | 81 | OpenBSD virtual servers in bhyve! | OpenBSD virtual servers in bhyve! |
84 | 82 | ||
85 | 83 | Other works currently in progress | Other works currently in progress |
86 | ================================= | ||
84 | ------------------------------- | ||
87 | 85 | ||
88 | 86 | A similar report was made in the [HP EliteBook 2170p news | A similar report was made in the [HP EliteBook 2170p news |
89 | 87 | page](hp2170p.md). Some of that is now done, so the list is updated (and more | page](hp2170p.md). Some of that is now done, so the list is updated (and more |
90 | 88 | work is also being done): | work is also being done): |
91 | 89 | ||
92 | More boards coming soon | ||
93 | ----------------------- | ||
90 | ### More boards coming soon | ||
94 | 91 | ||
95 | 92 | I'm *still* on a spree, adding more boards to Libreboot, especially HP | I'm *still* on a spree, adding more boards to Libreboot, especially HP |
96 | 93 | EliteBooks. These boards are of interest, to the Libreboot project, at this | EliteBooks. These boards are of interest, to the Libreboot project, at this |
File site/news/hp_elitebooks.md changed (mode: 100644) (index ff401c5..5807e8a) | |||
2 | 2 | % Riku Viitanen | % Riku Viitanen |
3 | 3 | % 23 April 2023 | % 23 April 2023 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Free software BIOS | ||
6 | ------------------ | ||
7 | 7 | ||
8 | 8 |  |  |
9 | 9 | ||
... | ... | Additionally, a [long-standing bug](https://browse.libreboot.org/lbmk.git/plain/ | |
19 | 19 | with GRUB on coreboot now has a functional workaround | with GRUB on coreboot now has a functional workaround |
20 | 20 | which is applied automatically by Libreboot. | which is applied automatically by Libreboot. |
21 | 21 | ||
22 | More to come | ||
23 | ------------ | ||
22 | ### More to come! | ||
24 | 23 | ||
25 | 24 | Leah Rowe has recently been on a buying spree, so more Sandy/Ivy Bridge and | Leah Rowe has recently been on a buying spree, so more Sandy/Ivy Bridge and |
26 | 25 | Haswell EliteBooks are making their way to Libreboot soon. Libreboot's goal | Haswell EliteBooks are making their way to Libreboot soon. Libreboot's goal |
File site/news/kgpe-d16.md changed (mode: 100644) (index ee82e1d..315ccc9) | |||
5 | 5 | **UPDATE: I have this board now. I do not require donation anymore.** | **UPDATE: I have this board now. I do not require donation anymore.** |
6 | 6 | ||
7 | 7 | Please donate a D16 machine if you can | Please donate a D16 machine if you can |
8 | ====================================== | ||
8 | ----------------------------------- | ||
9 | 9 | ||
10 | 10 | If someone can donate one to me, that would be a great service to the Libreboot | If someone can donate one to me, that would be a great service to the Libreboot |
11 | 11 | project. Preferably assembled, with CPU, cooler, working RAM (in coreboot), in | project. Preferably assembled, with CPU, cooler, working RAM (in coreboot), in |
... | ... | and (especially) the coolers is a challenge, to say the least. | |
23 | 23 | If you would like to help, and have a machine to spare, please can you contact | If you would like to help, and have a machine to spare, please can you contact |
24 | 24 | me at my email address: [info@minifree.org](mailto:info@minifree.org) | me at my email address: [info@minifree.org](mailto:info@minifree.org) |
25 | 25 | ||
26 | KCMA-D8 also needed | ||
27 | ------------------- | ||
26 | ### KCMA-D8 also needed | ||
28 | 27 | ||
29 | 28 | I'm also arranging for an assembled machine with KCMA-D8 in it to be sent to | I'm also arranging for an assembled machine with KCMA-D8 in it to be sent to |
30 | 29 | me - though I'm not yet sure if that will go through, so if you have one of | me - though I'm not yet sure if that will go through, so if you have one of |
31 | 30 | those aswell, I'd be interested too. | those aswell, I'd be interested too. |
32 | 31 | ||
33 | 32 | How I plan to re-add | How I plan to re-add |
34 | ==================== | ||
33 | -------------------- | ||
35 | 34 | ||
36 | 35 | Dasharo produces updated coreboot images for KGPE-D16, with source code. They | Dasharo produces updated coreboot images for KGPE-D16, with source code. They |
37 | 36 | took coreboot from release 4.11 and updated the code. I plan to add support in | took coreboot from release 4.11 and updated the code. I plan to add support in |
File site/news/libreboot20131212.md changed (mode: 100644) (index e27ac54..e469d72) | |||
3 | 3 | % 12 December 2013 | % 12 December 2013 |
4 | 4 | ||
5 | 5 | r20131212 (1st release) {#release20131212} | r20131212 (1st release) {#release20131212} |
6 | ======================= | ||
6 | ---------------------------- | ||
7 | 7 | ||
8 | 8 | - 12th December 2013 | - 12th December 2013 |
9 | 9 | ||
10 | Supported: | ||
11 | ---------- | ||
10 | ### Supported: | ||
12 | 11 | ||
13 | 12 | - ThinkPad X60 | - ThinkPad X60 |
14 | 13 | - ThinkPad X60s | - ThinkPad X60s |
15 | 14 | ||
16 | Development notes | ||
17 | ----------------- | ||
15 | ### Development notes | ||
18 | 16 | ||
19 | 17 | - initial release | - initial release |
20 | 18 | - source code deblobbed | - source code deblobbed |
File site/news/libreboot20131213.md changed (mode: 100644) (index 6cfa6d3..436ce69) | |||
3 | 3 | % 13 December 2013 | % 13 December 2013 |
4 | 4 | ||
5 | 5 | r20131213 (2nd release) {#release20131213} | r20131213 (2nd release) {#release20131213} |
6 | ======================= | ||
6 | ----------------------------------------- | ||
7 | 7 | ||
8 | 8 | - 13th December 2013 | - 13th December 2013 |
9 | 9 | ||
10 | Supported: | ||
11 | ---------- | ||
10 | ### Supported: | ||
12 | 11 | ||
13 | 12 | - ThinkPad X60 | - ThinkPad X60 |
14 | 13 | - ThinkPad X60s | - ThinkPad X60s |
15 | 14 | ||
16 | Development notes | ||
17 | ----------------- | ||
15 | ### Development notes | ||
18 | 16 | ||
19 | 17 | - added background image to GRUB2 | - added background image to GRUB2 |
20 | 18 | - added memtest86+ payload to grub2 | - added memtest86+ payload to grub2 |
File site/news/libreboot20131214.md changed (mode: 100644) (index 826ff4e..9b8395f) | |||
3 | 3 | % 14 December 2013 | % 14 December 2013 |
4 | 4 | ||
5 | 5 | r20131214 (3rd release) {#release20131214} | r20131214 (3rd release) {#release20131214} |
6 | ======================= | ||
6 | ----------------------------- | ||
7 | 7 | ||
8 | 8 | - 14th December 2013 | - 14th December 2013 |
9 | 9 | ||
10 | Supported: | ||
11 | ---------- | ||
10 | ### Supported: | ||
12 | 11 | ||
13 | 12 | - ThinkPad X60 | - ThinkPad X60 |
14 | 13 | - ThinkPad X60s | - ThinkPad X60s |
15 | 14 | ||
16 | Development notes | ||
17 | ----------------- | ||
15 | ### Development notes | ||
18 | 16 | ||
19 | 17 | - Added SeaBIOS payload to GRUB2 (for booting USB drives) | - Added SeaBIOS payload to GRUB2 (for booting USB drives) |
20 | 18 | - new grub.cfg | - new grub.cfg |
File site/news/libreboot20140622.md changed (mode: 100644) (index daa41f6..0a0bab7) | |||
3 | 3 | % 22 June 2014 | % 22 June 2014 |
4 | 4 | ||
5 | 5 | Release 20140622 (5th release) | Release 20140622 (5th release) |
6 | ============================== | ||
6 | -------------------------- | ||
7 | 7 | ||
8 | 8 | - 7th March 2014 | - 7th March 2014 |
9 | 9 | - revised 22nd June 2014 | - revised 22nd June 2014 |
10 | 10 | ||
11 | Officially supported | ||
12 | -------------------- | ||
11 | ### Officially supported | ||
13 | 12 | ||
14 | 13 | - ThinkPad X60 | - ThinkPad X60 |
15 | 14 | - ThinkPad X60s | - ThinkPad X60s |
16 | 15 | ||
17 | Revision (22nd June 2014 - extra) | ||
18 | --------------------------------- | ||
16 | ### Revision (22nd June 2014 - extra) | ||
19 | 17 | ||
20 | 18 | - Documentation: added X60 Unbricking tutorial | - Documentation: added X60 Unbricking tutorial |
21 | 19 | - Documentation: added info about enabling or disabling wifi | - Documentation: added info about enabling or disabling wifi |
22 | 20 | - Documentation: added info about enabling or disabling trackpoint | - Documentation: added info about enabling or disabling trackpoint |
23 | 21 | ||
24 | Revision (22nd June 2014 - extra) | ||
25 | --------------------------------- | ||
22 | ### Revision (22nd June 2014 - extra) | ||
26 | 23 | ||
27 | 24 | - Documentation: Improved the instructions for using flashprog | - Documentation: Improved the instructions for using flashprog |
28 | 25 | - Documentation: Improved the instructions for using cbfstool (to | - Documentation: Improved the instructions for using cbfstool (to |
29 | 26 | change the default GRUB menu) | change the default GRUB menu) |
30 | 27 | - Documentation: Numerous small fixes. | - Documentation: Numerous small fixes. |
31 | 28 | ||
32 | Revision notes (22nd June 2014) | ||
33 | ------------------------------- | ||
29 | ### Revision notes (22nd June 2014) | ||
34 | 30 | ||
35 | 31 | - updated GRUB (git 4b8b9135f1676924a8458da528d264bbc7bbb301, 20th | - updated GRUB (git 4b8b9135f1676924a8458da528d264bbc7bbb301, 20th |
36 | 32 | April 2014) | April 2014) |
File site/news/libreboot20140911.md changed (mode: 100644) (index e8be283..408c7ad) | |||
3 | 3 | % 11 September 2014 | % 11 September 2014 |
4 | 4 | ||
5 | 5 | 6th release (pre-release, 7th beta) | 6th release (pre-release, 7th beta) |
6 | =================================== | ||
6 | ---------------------------- | ||
7 | 7 | ||
8 | 8 | - Released 11th July 2014 (pre-release) 1st beta | - Released 11th July 2014 (pre-release) 1st beta |
9 | 9 | - Revised (pre-release, 2nd beta) 16th July 2014 | - Revised (pre-release, 2nd beta) 16th July 2014 |
14 | 14 | - Revised (pre-release, 6th beta) 3rd September 2014 | - Revised (pre-release, 6th beta) 3rd September 2014 |
15 | 15 | - Revised (pre-release, 7th beta) 11th September 2014 | - Revised (pre-release, 7th beta) 11th September 2014 |
16 | 16 | ||
17 | Machines still supported (compared to previous release): | ||
18 | -------------------------------------------------------- | ||
17 | ### Machines still supported (compared to previous release): | ||
19 | 18 | ||
20 | 19 | - **Lenovo ThinkPad X60/X60s** | - **Lenovo ThinkPad X60/X60s** |
21 | 20 | - You can also remove the motherboard from an X61/X61s and replace | - You can also remove the motherboard from an X61/X61s and replace |
22 | 21 | it with an X60/X60s motherboard. | it with an X60/X60s motherboard. |
23 | 22 | ||
24 | New systems supported in this release: | ||
25 | -------------------------------------- | ||
23 | ### New systems supported in this release: | ||
26 | 24 | ||
27 | 25 | - **Lenovo ThinkPad X60 Tablet** (1024x768 and 1400x1050) with | - **Lenovo ThinkPad X60 Tablet** (1024x768 and 1400x1050) with |
28 | 26 | digitizer support | digitizer support |
... | ... | New systems supported in this release: | |
43 | 41 | MB063LL/A, MB062LL/A) | MB063LL/A, MB062LL/A) |
44 | 42 | - See **hardware/\#macbook21**. | - See **hardware/\#macbook21**. |
45 | 43 | ||
46 | Machines no longer supported (compared to previous release): | ||
47 | ------------------------------------------------------------ | ||
44 | ### Machines no longer supported (compared to previous release): | ||
48 | 45 | ||
49 | 46 | - **All previous systems still supported!** | - **All previous systems still supported!** |
50 | 47 | ||
51 | Revisions for r20140911 (7th beta) (11th September 2014) | ||
52 | -------------------------------------------------------- | ||
48 | ### Revisions for r20140911 (7th beta) (11th September 2014) | ||
53 | 49 | ||
54 | 50 | - The changes below were made in a git repository, unlike in previous | - The changes below were made in a git repository, unlike in previous |
55 | 51 | releases. Descriptions below are copied from 'git log'. | releases. Descriptions below are copied from 'git log'. |
File site/news/libreboot20141015.md changed (mode: 100644) (index 499081b..d7e9087) | |||
3 | 3 | % 15 October 2014 | % 15 October 2014 |
4 | 4 | ||
5 | 5 | Machines supported in this release: | Machines supported in this release: |
6 | =================================== | ||
6 | --------------------------------- | ||
7 | 7 | ||
8 | 8 | - **Lenovo ThinkPad X60/X60s** | - **Lenovo ThinkPad X60/X60s** |
9 | 9 | - You can also remove the motherboard from an X61/X61s and replace | - You can also remove the motherboard from an X61/X61s and replace |
... | ... | Machines supported in this release: | |
29 | 29 | MB063LL/A, MB062LL/A) | MB063LL/A, MB062LL/A) |
30 | 30 | - See **hardware/\#macbook21**. | - See **hardware/\#macbook21**. |
31 | 31 | ||
32 | Changes for this release (latest changes first, earliest changes last) | ||
33 | ---------------------------------------------------------------------- | ||
32 | ### Changes for this release (latest changes first, earliest changes last) | ||
34 | 33 | ||
35 | 34 | - Updated coreboot (git commit | - Updated coreboot (git commit |
36 | 35 | 8ffc085e1affaabbe3dca8ac6a89346b71dfc02e), the latest at the time of | 8ffc085e1affaabbe3dca8ac6a89346b71dfc02e), the latest at the time of |
File site/news/libreboot20150124.md changed (mode: 100644) (index 23f3cc4..b051942) | |||
3 | 3 | % 24 January 2015 | % 24 January 2015 |
4 | 4 | ||
5 | 5 | Machines supported in this release: | Machines supported in this release: |
6 | =================================== | ||
6 | --------------------------------- | ||
7 | 7 | ||
8 | 8 | - **Lenovo ThinkPad X60/X60s** | - **Lenovo ThinkPad X60/X60s** |
9 | 9 | - You can also remove the motherboard from an X61/X61s and replace | - You can also remove the motherboard from an X61/X61s and replace |
... | ... | Machines supported in this release: | |
38 | 38 | MB063LL/A, MB062LL/A) | MB063LL/A, MB062LL/A) |
39 | 39 | - See **hardware/\#macbook21**. | - See **hardware/\#macbook21**. |
40 | 40 | ||
41 | Changes for this release (latest changes first, earliest changes last) | ||
42 | ---------------------------------------------------------------------- | ||
41 | ### Changes for this release (latest changes first, earliest changes last) | ||
43 | 42 | ||
44 | 43 | - grub.cfg: Added (ahci1) to list of devices for ISOLINUX parser | - grub.cfg: Added (ahci1) to list of devices for ISOLINUX parser |
45 | 44 | (CD/DVD) (this is needed for the X200 docking station). | (CD/DVD) (this is needed for the X200 docking station). |
File site/news/libreboot20150126.md changed (mode: 100644) (index 3729125..f419ea1) | |||
3 | 3 | % 26 January 2015 | % 26 January 2015 |
4 | 4 | ||
5 | 5 | Machines supported in this release: | Machines supported in this release: |
6 | =================================== | ||
6 | ---------------------------------- | ||
7 | 7 | ||
8 | 8 | - **Lenovo ThinkPad X60/X60s** | - **Lenovo ThinkPad X60/X60s** |
9 | 9 | - You can also remove the motherboard from an X61/X61s and replace | - You can also remove the motherboard from an X61/X61s and replace |
... | ... | Machines supported in this release: | |
38 | 38 | MB063LL/A, MB062LL/A) | MB063LL/A, MB062LL/A) |
39 | 39 | - See **hardware/\#macbook21**. | - See **hardware/\#macbook21**. |
40 | 40 | ||
41 | Revisions for r20150126 (relative to r20150124) | ||
42 | ----------------------------------------------- | ||
41 | ### Revisions for r20150126 (relative to r20150124) | ||
43 | 42 | ||
44 | 43 | This is a bug fix release based on r20150124. It contains a few small | This is a bug fix release based on r20150124. It contains a few small |
45 | 44 | changes: | changes: |
File site/news/libreboot20150208.md changed (mode: 100644) (index a65fa37..44aa332) | |||
3 | 3 | % 8 February 2015 | % 8 February 2015 |
4 | 4 | ||
5 | 5 | Machines supported in this release: | Machines supported in this release: |
6 | =================================== | ||
6 | ------------------------------------- | ||
7 | 7 | ||
8 | 8 | - **Lenovo ThinkPad X60/X60s** | - **Lenovo ThinkPad X60/X60s** |
9 | 9 | - You can also remove the motherboard from an X61/X61s and replace | - You can also remove the motherboard from an X61/X61s and replace |
... | ... | Machines supported in this release: | |
38 | 38 | MB063LL/A, MB062LL/A) | MB063LL/A, MB062LL/A) |
39 | 39 | - See **hardware/\#macbook21**. | - See **hardware/\#macbook21**. |
40 | 40 | ||
41 | Revisions for r20150208 (relative to r20150126) | ||
42 | ----------------------------------------------- | ||
41 | ### Revisions for r20150208 (relative to r20150126) | ||
43 | 42 | ||
44 | 43 | This is a maintenance release (polishing) based on r20150126. Users who | This is a maintenance release (polishing) based on r20150126. Users who |
45 | 44 | installed r20150126 don't really need to update to this release. | installed r20150126 don't really need to update to this release. |
File site/news/libreboot20210522.md changed (mode: 100644) (index 6539cbe..6370871) | |||
3 | 3 | % 22 May 2021 | % 22 May 2021 |
4 | 4 | ||
5 | 5 | Join us now and flash the firmware! | Join us now and flash the firmware! |
6 | =================================== | ||
6 | ---------------------------------- | ||
7 | 7 | ||
8 | You'll be free! | ||
9 | --------------- | ||
8 | ### You'll be free! | ||
10 | 9 | ||
11 | 10 | Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot | Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot |
12 | 11 | firmware, which initializes the hardware | firmware, which initializes the hardware |
... | ... | mirrors. If you check in the `stable` directory, you'll still only find | |
26 | 25 | the 20160907 release in there, so please ensure that you check the `testing` | the 20160907 release in there, so please ensure that you check the `testing` |
27 | 26 | directory! | directory! |
28 | 27 | ||
29 | Tested boards | ||
30 | ------------- | ||
28 | ### Tested boards | ||
31 | 29 | ||
32 | 30 | More testing is needed, for this release. Frequent update releases are planned | More testing is needed, for this release. Frequent update releases are planned |
33 | 31 | after this release, fixing any issues that people may come across. | after this release, fixing any issues that people may come across. |
... | ... | as ThinkPad X60/T60 and Macbook2,1 have been tested, and should work fine. | |
40 | 38 | Intel D510MO and D945GCLF boards are untested! Acer G43T-AM3 is untested! | Intel D510MO and D945GCLF boards are untested! Acer G43T-AM3 is untested! |
41 | 39 | ||
42 | 40 | New boards | New boards |
43 | ========== | ||
41 | --------- | ||
44 | 42 | ||
45 | Desktops | ||
46 | -------- | ||
43 | ### Desktops | ||
47 | 44 | ||
48 | ### Acer G43T-AM3 | ||
45 | #### Acer G43T-AM3 | ||
49 | 46 | ||
50 | 47 | This is a desktop mainboard, with similar hardware to the already supported | This is a desktop mainboard, with similar hardware to the already supported |
51 | 48 | Gigabyte GA-G41M-ES2L | Gigabyte GA-G41M-ES2L |
52 | 49 | ||
53 | Laptops | ||
54 | ------- | ||
50 | ### Laptops | ||
55 | 51 | ||
56 | ### Lenovo ThinkPad R500 | ||
52 | #### Lenovo ThinkPad R500 | ||
57 | 53 | ||
58 | 54 | This is another Intel GM45 target, similar to the ThinkPad T500 that Libreboot | This is another Intel GM45 target, similar to the ThinkPad T500 that Libreboot |
59 | 55 | already supports. | already supports. |
60 | 56 | ||
61 | ### Lenovo ThinkPad X301 | ||
57 | #### Lenovo ThinkPad X301 | ||
62 | 58 | ||
63 | 59 | This is another Intel GM45 target, similar to the ThinkPad X200 that Libreboot | This is another Intel GM45 target, similar to the ThinkPad X200 that Libreboot |
64 | 60 | already supports. | already supports. |
65 | 61 | ||
66 | List of supported boards | ||
67 | ------------------------ | ||
62 | ### List of supported boards | ||
68 | 63 | ||
69 | 64 | This release has focused on the build system, and updating to the latest | This release has focused on the build system, and updating to the latest |
70 | 65 | coreboot release. This Libreboot release uses coreboot 4.14. Only a few boards | coreboot release. This Libreboot release uses coreboot 4.14. Only a few boards |
... | ... | release is planned soon, specifically an update release with ROM images in it | |
73 | 68 | for more boards, while being built from the Libreboot 20210522 source code. | for more boards, while being built from the Libreboot 20210522 source code. |
74 | 69 | Visit the [tasks page](/tasks/) to know which machines are on the TODO list. | Visit the [tasks page](/tasks/) to know which machines are on the TODO list. |
75 | 70 | ||
76 | ### Desktops (AMD, Intel, x86) | ||
71 | #### Desktops (AMD, Intel, x86) | ||
77 | 72 | ||
78 | 73 | - Gigabyte GA-G41M-ES2L motherboard | - Gigabyte GA-G41M-ES2L motherboard |
79 | 74 | - Intel D510MO and D410PT motherboards | - Intel D510MO and D410PT motherboards |
... | ... | Visit the [tasks page](/tasks/) to know which machines are on the TODO list. | |
81 | 76 | - Apple iMac 5,2 | - Apple iMac 5,2 |
82 | 77 | - Acer G43T-AM3 | - Acer G43T-AM3 |
83 | 78 | ||
84 | ### Servers/workstations (AMD, x86) | ||
79 | #### Servers/workstations (AMD, x86) | ||
85 | 80 | ||
86 | 81 | - ASUS KCMA-D8 motherboard | - ASUS KCMA-D8 motherboard |
87 | 82 | - ASUS KGPE-D16 motherboard | - ASUS KGPE-D16 motherboard |
88 | 83 | - ASUS KFSN4-DRE motherboard | - ASUS KFSN4-DRE motherboard |
89 | 84 | ||
90 | ### Laptops (Intel, x86) | ||
85 | #### Laptops (Intel, x86) | ||
91 | 86 | ||
92 | 87 | - ThinkPad X60 / X60S / X60 Tablet | - ThinkPad X60 / X60S / X60 Tablet |
93 | 88 | - ThinkPad T60 (with Intel GPU) | - ThinkPad T60 (with Intel GPU) |
... | ... | Visit the [tasks page](/tasks/) to know which machines are on the TODO list. | |
100 | 95 | - Lenovo ThinkPad X301 | - Lenovo ThinkPad X301 |
101 | 96 | - Apple MacBook1,1 and MacBook2,1 | - Apple MacBook1,1 and MacBook2,1 |
102 | 97 | ||
103 | Dropped boards | ||
104 | -------------- | ||
98 | ### Dropped boards | ||
105 | 99 | ||
106 | 100 | ASUS Chromebook C201 was dropped. It will be re-added at a later date, when | ASUS Chromebook C201 was dropped. It will be re-added at a later date, when |
107 | 101 | the build system in Libreboot has better integration for ARM hardware. | the build system in Libreboot has better integration for ARM hardware. |
108 | 102 | ||
109 | More boards coming soon! | ||
110 | ------------------------ | ||
103 | ### More boards coming soon! | ||
111 | 104 | ||
112 | 105 | I had planned to add a lot more boards before doing a new release, but the | I had planned to add a lot more boards before doing a new release, but the |
113 | 106 | existing boards are greatly improved already (lots of new fixes and features | existing boards are greatly improved already (lots of new fixes and features |
... | ... | referencing this release (Libreboot 20210522) for the source code. See the | |
118 | 111 | tasks page on libreboot.org for a list of the boards I plan to add. | tasks page on libreboot.org for a list of the boards I plan to add. |
119 | 112 | ||
120 | 113 | lbmk | lbmk |
121 | ==== | ||
114 | ---- | ||
122 | 115 | ||
123 | 116 | The build system in libreboot is called `lbmk`, short for Libreboot Make. In | The build system in libreboot is called `lbmk`, short for Libreboot Make. In |
124 | 117 | the previous Libreboot release, this build system had no name. It was simply | the previous Libreboot release, this build system had no name. It was simply |
... | ... | compared to the Libreboot 20160907 build system: | |
224 | 217 | It's better documented, and easier for the average person to maintain. | It's better documented, and easier for the average person to maintain. |
225 | 218 | ||
226 | 219 | Documentation | Documentation |
227 | ============= | ||
220 | ---------------- | ||
228 | 221 | ||
229 | 222 | Generally, the documentation is much improved. In particular, the "maintain" | Generally, the documentation is much improved. In particular, the "maintain" |
230 | 223 | page has been reintroduced, which describes every aspect of the build system | page has been reintroduced, which describes every aspect of the build system |
... | ... | support, rather than build system changes. As such, the installation guides | |
252 | 245 | are greatly improved and there are *more* systems documented now. | are greatly improved and there are *more* systems documented now. |
253 | 246 | ||
254 | 247 | GRUB | GRUB |
255 | ==== | ||
248 | ---- | ||
256 | 249 | ||
257 | 250 | In GRUB payloads, a much more recent version is used. The difference is | In GRUB payloads, a much more recent version is used. The difference is |
258 | 251 | literally: the GRUB version that Libreboot 20160907 uses was released 5 years | literally: the GRUB version that Libreboot 20160907 uses was released 5 years |
... | ... | Download GRUB from the upstream repository and check every commit | |
296 | 289 | since then. | since then. |
297 | 290 | ||
298 | 291 | GM45/X4X now set 352MiB VRAM by default | GM45/X4X now set 352MiB VRAM by default |
299 | ======================================= | ||
292 | -------------------------------------- | ||
300 | 293 | ||
301 | 294 | In the previous Libreboot release, PCI MMIO size was set to 1GiB. It is now | In the previous Libreboot release, PCI MMIO size was set to 1GiB. It is now |
302 | 295 | set to 2GiB, allowing for 352MiB VRAM to be allocated when using the onboard | set to 2GiB, allowing for 352MiB VRAM to be allocated when using the onboard |
... | ... | The following patch in coreboot allowed that (shortly after the Libreboot | |
309 | 302 | <https://review.coreboot.org/c/coreboot/+/16831> | <https://review.coreboot.org/c/coreboot/+/16831> |
310 | 303 | ||
311 | 304 | Quad-core CPU mod on ThinkPad T500 etc | Quad-core CPU mod on ThinkPad T500 etc |
312 | ======================================= | ||
305 | ----------------------------------- | ||
313 | 306 | ||
314 | 307 | NOTE: The actual modification (to the hardware) is only documented for T500, | NOTE: The actual modification (to the hardware) is only documented for T500, |
315 | 308 | but it should be possible to adapt those instructions for similar GM45 laptops | but it should be possible to adapt those instructions for similar GM45 laptops |
... | ... | This is necessary, for a special mod that is possible on these machines, to | |
334 | 327 | enable quad-core CPUs (core2quad). | enable quad-core CPUs (core2quad). |
335 | 328 | ||
336 | 329 | libgfxinit | libgfxinit |
337 | ========== | ||
330 | ---------- | ||
338 | 331 | ||
339 | 332 | In Libreboot 20160907, *native graphics initialization* was C code implemented | In Libreboot 20160907, *native graphics initialization* was C code implemented |
340 | 333 | on each platform, and it was very messy, but it *worked*. | on each platform, and it was very messy, but it *worked*. |
... | ... | running `git submodule update --init` in a coreboot git clone: | |
614 | 607 | ```` | ```` |
615 | 608 | ||
616 | 609 | coreboot release logs | coreboot release logs |
617 | ===================== | ||
610 | --------------------- | ||
618 | 611 | ||
619 | 612 | The following is a page linking to release logs for coreboot, upstream:\ | The following is a page linking to release logs for coreboot, upstream:\ |
620 | 613 | <https://doc.coreboot.org/releases/index.html> | <https://doc.coreboot.org/releases/index.html> |
... | ... | are most relevant to Libreboot. Roughly speaking, Libreboot 20160907 (the | |
624 | 617 | previous release, 4 years and 8 months ago) used revisions of coreboot near or | previous release, 4 years and 8 months ago) used revisions of coreboot near or |
625 | 618 | around coreboot version 4.4 and 4.5, depending on the board. | around coreboot version 4.4 and 4.5, depending on the board. |
626 | 619 | ||
627 | coreboot 4.14 | ||
628 | ------------- | ||
620 | ### coreboot 4.14 | ||
629 | 621 | ||
630 | 622 | Lots of random fixes, too many to list. Instead, see git logs on this page for | Lots of random fixes, too many to list. Instead, see git logs on this page for |
631 | 623 | specific boards/platforms. | specific boards/platforms. |
... | ... | However, the following fixes were made for Lenovo X200 recently: | |
639 | 631 | * <https://review.coreboot.org/c/coreboot/+/51118> | * <https://review.coreboot.org/c/coreboot/+/51118> |
640 | 632 | * <https://review.coreboot.org/c/coreboot/+/51123> | * <https://review.coreboot.org/c/coreboot/+/51123> |
641 | 633 | ||
642 | coreboot 4.13 | ||
643 | ------------- | ||
634 | ### coreboot 4.13 | ||
644 | 635 | ||
645 | 636 | * Mostly re-factoring and minor bug fixes, but it has some interesting fixes | * Mostly re-factoring and minor bug fixes, but it has some interesting fixes |
646 | 637 | that benefit libreboot | that benefit libreboot |
... | ... | coreboot 4.13 | |
651 | 642 | interesting in the future on x86 targets | interesting in the future on x86 targets |
652 | 643 | * New resource allocator: enables more efficient use of memory during bootup | * New resource allocator: enables more efficient use of memory during bootup |
653 | 644 | ||
654 | coreboot 4.12 | ||
655 | ------------- | ||
645 | ### coreboot 4.12 | ||
656 | 646 | ||
657 | 647 | * SMMSTORE is now a thing. See: <https://doc.coreboot.org/drivers/smmstore.html>. | * SMMSTORE is now a thing. See: <https://doc.coreboot.org/drivers/smmstore.html>. |
658 | 648 | This is relevant for Tianocore, a UEFI payload, which libreboot currently | This is relevant for Tianocore, a UEFI payload, which libreboot currently |
... | ... | coreboot 4.12 | |
663 | 653 | configurations, in SPI flash. it's handled via SMM interrupts (SMIs). NOTE: | configurations, in SPI flash. it's handled via SMM interrupts (SMIs). NOTE: |
664 | 654 | SMMSTOREv2 is also becoming a thing now | SMMSTOREv2 is also becoming a thing now |
665 | 655 | ||
666 | coreboot 4.11 | ||
667 | ------------- | ||
656 | ### coreboot 4.11 | ||
668 | 657 | ||
669 | 658 | * C\_ENVIRONMENTAL\_BOOTBLOCK is now preferred, instead of the old romcc | * C\_ENVIRONMENTAL\_BOOTBLOCK is now preferred, instead of the old romcc |
670 | 659 | bootblocks. i945, x4x and gm45 platforms have been adapted to use this (this | bootblocks. i945, x4x and gm45 platforms have been adapted to use this (this |
... | ... | coreboot 4.11 | |
673 | 662 | * Generally, this was another "code cleanup release" of coreboot. A lot of code | * Generally, this was another "code cleanup release" of coreboot. A lot of code |
674 | 663 | in coreboot was re-factored | in coreboot was re-factored |
675 | 664 | ||
676 | coreboot 4.10 | ||
677 | ------------- | ||
665 | ### coreboot 4.10 | ||
678 | 666 | ||
679 | 667 | * nothing noteworthy to libreboot, this was mainly a "code cleanup" release in | * nothing noteworthy to libreboot, this was mainly a "code cleanup" release in |
680 | 668 | coreboot | coreboot |
681 | 669 | ||
682 | coreboot 4.9 | ||
683 | ------------ | ||
670 | ### coreboot 4.9 | ||
684 | 671 | ||
685 | 672 | * Less repetition in the codebase, for similar boards. For example, X200 | * Less repetition in the codebase, for similar boards. For example, X200 |
686 | 673 | thinkpad is its own codebase, and similar boards are "variants" where only | thinkpad is its own codebase, and similar boards are "variants" where only |
... | ... | coreboot 4.9 | |
689 | 676 | * Intel X4X platform: Add DDR3 support (raminit) | * Intel X4X platform: Add DDR3 support (raminit) |
690 | 677 | * | * |
691 | 678 | ||
692 | coreboot 4.8 | ||
693 | ------------ | ||
679 | ### coreboot 4.8 | ||
694 | 680 | ||
695 | 681 | * Improved VBT implementations in libgfxinit | * Improved VBT implementations in libgfxinit |
696 | 682 | * i945 (X60/T60/macbook21 etc): native video initialization is now skipped | * i945 (X60/T60/macbook21 etc): native video initialization is now skipped |
... | ... | coreboot 4.8 | |
699 | 685 | of this coreboot release, the framebuffer driver couldn't. this will need to | of this coreboot release, the framebuffer driver couldn't. this will need to |
700 | 686 | be tested! | be tested! |
701 | 687 | ||
702 | coreboot 4.7 | ||
703 | ------------ | ||
688 | ### coreboot 4.7 | ||
704 | 689 | ||
705 | 690 | * GM45 laptops: set display backlight PWM correctly | * GM45 laptops: set display backlight PWM correctly |
706 | 691 | * Add romstage timings | * Add romstage timings |
... | ... | coreboot 4.7 | |
710 | 695 | * Intel X4X: Rework and fixSPD reading and decoding | * Intel X4X: Rework and fixSPD reading and decoding |
711 | 696 | * Intel X4X: Allow external GPU to take VGA cycles | * Intel X4X: Allow external GPU to take VGA cycles |
712 | 697 | ||
713 | coreboot 4.6 | ||
714 | ------------ | ||
698 | ### coreboot 4.6 | ||
715 | 699 | ||
716 | 700 | * fix buggy S3 suspend/resume on Gigabyte GA-G41M-ES2L mainboard, and fix bugs | * fix buggy S3 suspend/resume on Gigabyte GA-G41M-ES2L mainboard, and fix bugs |
717 | 701 | in raminit | in raminit |
... | ... | coreboot 4.6 | |
724 | 708 | ||
725 | 709 | ||
726 | 710 | Detailed coreboot git logs | Detailed coreboot git logs |
727 | ========================== | ||
711 | -------------------------- | ||
728 | 712 | ||
729 | 713 | The following are lists of changes in coreboot 4.14, versus coreboot revisions | The following are lists of changes in coreboot 4.14, versus coreboot revisions |
730 | 714 | used in various platforms/mainboards from Libreboot 20160907. These lists are | used in various platforms/mainboards from Libreboot 20160907. These lists are |
... | ... | There are many other aspects of coreboot that can be shown here, but it's not | |
744 | 728 | useful to list all of them. Listing just the platform/board changes gives an | useful to list all of them. Listing just the platform/board changes gives an |
745 | 729 | excellent picture overall. | excellent picture overall. |
746 | 730 | ||
747 | Northbridge changes | ||
748 | ------------------- | ||
731 | ### Northbridge changes | ||
749 | 732 | ||
750 | 733 | For all intents and purposes, the northbridge and southbridge code *is* the | For all intents and purposes, the northbridge and southbridge code *is* the |
751 | 734 | platform for a given board, and then you have board specific code. | platform for a given board, and then you have board specific code. |
File site/news/libreboot20211122.md changed (mode: 100644) (index a0d6c67..5cd0797) | |||
3 | 3 | % 22 November 2021 | % 22 November 2021 |
4 | 4 | ||
5 | 5 | Free your BIOS today! | Free your BIOS today! |
6 | ===================== | ||
6 | -------------------- | ||
7 | 7 | ||
8 | 8 | Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot | Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot |
9 | 9 | firmware, which initializes the hardware | firmware, which initializes the hardware |
... | ... | This is a *bug fix* release, relative to 20210522. No new boards or major | |
27 | 27 | features have been added, but several problems that existed in the previous | features have been added, but several problems that existed in the previous |
28 | 28 | release have now been fixed. | release have now been fixed. |
29 | 29 | ||
30 | Work done since the 20210522 release: | ||
31 | ------------------------------------- | ||
30 | ### Work done since the 20210522 release: | ||
32 | 31 | ||
33 | 32 | * Updated to newer coreboot, SeaBIOS and GRUB versions. The 20210522 | * Updated to newer coreboot, SeaBIOS and GRUB versions. The 20210522 |
34 | 33 | release was using coreboot 4.14, on most boards, from May 2021. This release | release was using coreboot 4.14, on most boards, from May 2021. This release |
... | ... | Work done since the 20210522 release: | |
75 | 74 | * Turkish keyboard layout added on GRUB payloads | * Turkish keyboard layout added on GRUB payloads |
76 | 75 | ||
77 | 76 | New release schedule under consideration | New release schedule under consideration |
78 | ======================================== | ||
77 | ------------------------------------- | ||
79 | 78 | ||
80 | 79 | The 20210522 release happened to coincide with coreboot 4.14's release, more | The 20210522 release happened to coincide with coreboot 4.14's release, more |
81 | 80 | or less. | or less. |
File site/news/libreboot20220710.md changed (mode: 100644) (index 75a290a..ea54c27) | |||
3 | 3 | % 10 July 2022 | % 10 July 2022 |
4 | 4 | ||
5 | 5 | Free your BIOS today! | Free your BIOS today! |
6 | ===================== | ||
6 | --------------------- | ||
7 | 7 | ||
8 | 8 | Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot | Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot |
9 | 9 | firmware, which initializes the hardware | firmware, which initializes the hardware |
... | ... | This is a *bug fix* release, relative to 20211122. No new boards or major | |
21 | 21 | features have been added, but several problems that existed in the previous | features have been added, but several problems that existed in the previous |
22 | 22 | release have now been fixed. | release have now been fixed. |
23 | 23 | ||
24 | Build from source | ||
25 | ----------------- | ||
24 | ### Build from source | ||
26 | 25 | ||
27 | 26 | *This* release was build-tested on Debian 11. Your mileage may vary, with | *This* release was build-tested on Debian 11. Your mileage may vary, with |
28 | 27 | other distros. | other distros. |
29 | 28 | ||
30 | Work done since the 20211122 release: | ||
31 | ------------------------------------- | ||
29 | ### Work done since the 20211122 release: | ||
32 | 30 | ||
33 | 31 | * Lots and lots of improvements to the documentation. Previous 2021 testing | * Lots and lots of improvements to the documentation. Previous 2021 testing |
34 | 32 | releases did not include snapshots of the documentation (which is actually | releases did not include snapshots of the documentation (which is actually |
... | ... | Work done since the 20211122 release: | |
68 | 66 | * lbmk: Preliminary fix for git credentials check. Set a placeholder name/email | * lbmk: Preliminary fix for git credentials check. Set a placeholder name/email |
69 | 67 | if one is not set. | if one is not set. |
70 | 68 | ||
71 | Caveats | ||
72 | ------- | ||
69 | ### Caveats | ||
73 | 70 | ||
74 | 71 | Due to reported issues by users, these boards do not have ROM images | Due to reported issues by users, these boards do not have ROM images |
75 | 72 | available in the Libreboot 20220710 release: | available in the Libreboot 20220710 release: |
... | ... | All other boards are reasonably stable, and shouldn't provide any issues (no | |
90 | 87 | major issues reported, and/or non-blocking issues only). | major issues reported, and/or non-blocking issues only). |
91 | 88 | ||
92 | 89 | Planned future work | Planned future work |
93 | =================== | ||
90 | ------------------- | ||
94 | 91 | ||
95 | 92 | In general, you should also check the issue tracker to find other notes. | In general, you should also check the issue tracker to find other notes. |
96 | 93 | There is always more work to do, to improve Libreboot. | There is always more work to do, to improve Libreboot. |
97 | 94 | ||
98 | Support for non-x86 platforms | ||
99 | ----------------------------- | ||
95 | ### Support for non-x86 platforms | ||
100 | 96 | ||
101 | 97 | This is still on hold, but will be done as part of a future release. | This is still on hold, but will be done as part of a future release. |
102 | 98 | The coreboot firmware does support other platforms. | The coreboot firmware does support other platforms. |
103 | 99 | ||
104 | Linux distro in flash | ||
105 | --------------------- | ||
100 | ### Linux distro in flash | ||
106 | 101 | ||
107 | 102 | This is another project that has been on hold for a while. The issue | This is another project that has been on hold for a while. The issue |
108 | 103 | has been that I need a decent userland project. I've looked at many | has been that I need a decent userland project. I've looked at many |
... | ... | so as to allow any number of packages to be downloaded. It could also provide | |
116 | 111 | lots of utils in general, to be a live *rescue system* of sorts. Linux system | lots of utils in general, to be a live *rescue system* of sorts. Linux system |
117 | 112 | in flash, that can bootstrap other systems. | in flash, that can bootstrap other systems. |
118 | 113 | ||
119 | Re-factor and optimize GRUB | ||
120 | --------------------------- | ||
114 | ### Re-factor and optimize GRUB | ||
121 | 115 | ||
122 | 116 | GRUB is full of unused bloat that almost nobody uses, yet is in the current | GRUB is full of unused bloat that almost nobody uses, yet is in the current |
123 | 117 | Libreboot builds. It's been on TODO for some time, but work has not yet | Libreboot builds. It's been on TODO for some time, but work has not yet |
File site/news/libreboot20221214.md changed (mode: 100644) (index 35a3039..0a45579) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 14 December 2022 | % 14 December 2022 |
4 | 4 | ||
5 | Free as in freedom! | ||
6 | -------------------- | ||
7 | |||
5 | 8 | The last Libreboot release, version 20220710, was released on 10 July | The last Libreboot release, version 20220710, was released on 10 July |
6 | 9 | in 2022. *This* new release, Libreboot 20221214, is released today on December | in 2022. *This* new release, Libreboot 20221214, is released today on December |
7 | 10 | 14th, 2022. This is intended to be a *testing* release. | 14th, 2022. This is intended to be a *testing* release. |
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
14 | 17 | there, before flashing. For posterity, | there, before flashing. For posterity, |
15 | 18 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
16 | 19 | ||
17 | Build from source | ||
18 | ----------------- | ||
20 | ### Build from source | ||
19 | 21 | ||
20 | 22 | *This* release was build-tested on Debian 11. Your mileage may vary, with | *This* release was build-tested on Debian 11. Your mileage may vary, with |
21 | 23 | other distros. | other distros. |
22 | 24 | ||
23 | 25 | Work done since last release | Work done since last release |
24 | ============================ | ||
26 | -------------------- | ||
25 | 27 | ||
26 | 28 | For more detailed change logs, look at the Git repository. This is | For more detailed change logs, look at the Git repository. This is |
27 | 29 | a summary of changes. | a summary of changes. |
28 | 30 | ||
29 | New boards, x86 | ||
30 | ---------- | ||
31 | ### New boards, x86 | ||
31 | 32 | ||
32 | 33 | This list *may not be complete*, but it is as follows: | This list *may not be complete*, but it is as follows: |
33 | 34 | ||
... | ... | This list *may not be complete*, but it is as follows: | |
44 | 45 | * lenovo/t420 (thinkpad) | * lenovo/t420 (thinkpad) |
45 | 46 | * lenovo/x230 tablet (thinkpad) | * lenovo/x230 tablet (thinkpad) |
46 | 47 | ||
47 | GA-G41M-ES2L ROMs | ||
48 | ------------ | ||
48 | ### GA-G41M-ES2L ROMs | ||
49 | 49 | ||
50 | 50 | GA-G41M-ES2L ROM images are back, but your mileage may vary. Only the | GA-G41M-ES2L ROM images are back, but your mileage may vary. Only the |
51 | 51 | SeaBIOS payload is enabled, on this board. | SeaBIOS payload is enabled, on this board. |
... | ... | well. GA-G41M-ES2L support is therefore stable, for all intents and purposes. | |
58 | 58 | This section of the release announcement previously alluding to issues, but | This section of the release announcement previously alluding to issues, but |
59 | 59 | those speculations were premature, based on limited prior testing.** | those speculations were premature, based on limited prior testing.** |
60 | 60 | ||
61 | New boards, ARM | ||
62 | ---------- | ||
61 | ### New boards, ARM | ||
63 | 62 | ||
64 | 63 | NOTE: These boards use u-boot payload, instead of depthcharge. | NOTE: These boards use u-boot payload, instead of depthcharge. |
65 | 64 | ||
... | ... | of Alper Nebi Yasak (`alpernebbi` on libreboot IRC). | |
83 | 82 | ||
84 | 83 | In these configurations, u-boot is a *payload of coreboot*. | In these configurations, u-boot is a *payload of coreboot*. |
85 | 84 | ||
86 | Removed boards | ||
87 | -------------- | ||
85 | ### Removed boards | ||
88 | 86 | ||
89 | 87 | ASUS KGPE-D16, KCMA-D8 and KFSN4-DRE are removed, because raminit | ASUS KGPE-D16, KCMA-D8 and KFSN4-DRE are removed, because raminit |
90 | 88 | never worked reliably on these boards to begin with and they were | never worked reliably on these boards to begin with and they were |
... | ... | would simply merge) | |
437 | 435 | ``` | ``` |
438 | 436 | ||
439 | 437 | Known issues | Known issues |
440 | ============ | ||
438 | ------------ | ||
441 | 439 | ||
442 | Intel ME firmware missing in ROMs that need it | ||
443 | ---------------------------------------------- | ||
440 | ### Intel ME firmware missing in ROMs that need it | ||
444 | 441 | ||
445 | 442 | If you compile ROM images with lbmk directly, the build system | If you compile ROM images with lbmk directly, the build system |
446 | 443 | automatically fetches ME images from the internet and neuters | automatically fetches ME images from the internet and neuters |
... | ... | e.g. X220, T420, X230, T430, T440p. On *older* Intel platforms such | |
456 | 453 | as GM45+ICH9M (X200, T400, etc) the Intel ME image isn't needed and | as GM45+ICH9M (X200, T400, etc) the Intel ME image isn't needed and |
457 | 454 | Libreboot ships with ME-disabled configuration. | Libreboot ships with ME-disabled configuration. |
458 | 455 | ||
459 | MRC image missing in Haswell ROMs | ||
460 | --------------------------------- | ||
456 | ### MRC image missing in Haswell ROMs | ||
461 | 457 | ||
462 | 458 | Ditto ME images. To re-insert, follow | Ditto ME images. To re-insert, follow |
463 | 459 | the [guide](../docs/install/ivy_has_common.md). | the [guide](../docs/install/ivy_has_common.md). |
464 | 460 | ||
465 | Internal flashing on 16MB X230 images | ||
466 | ------------------------------------- | ||
461 | ### Internal flashing on 16MB X230 images | ||
467 | 462 | ||
468 | 463 | The X230 has two ways of upgrading the default 12MB (8MB and 4MB chips) | The X230 has two ways of upgrading the default 12MB (8MB and 4MB chips) |
469 | 464 | flash to 16MB: remove a bunch of resistors and capacitors on the board | flash to 16MB: remove a bunch of resistors and capacitors on the board |
... | ... | So, 16MB images on X230 are experimental. When these ROM images are built, | |
483 | 478 | the required IFD modification is already done in Libreboot's IFD for this | the required IFD modification is already done in Libreboot's IFD for this |
484 | 479 | setup. | setup. |
485 | 480 | ||
486 | S3 suspend/resume on Haswell (T440p/W541) | ||
487 | ----------------------------------------- | ||
481 | ### S3 suspend/resume on Haswell (T440p/W541) | ||
488 | 482 | ||
489 | 483 | Totally broken. The suspected cause is component2density setting in IFD | Totally broken. The suspected cause is component2density setting in IFD |
490 | 484 | being wrong: ifdtool reports it as being too big for what's actually | being wrong: ifdtool reports it as being too big for what's actually |
... | ... | When X230 16MB was experimented with, Haswell was also looked at, and what | |
502 | 496 | seemed to be the same component density bits were set, also resulting in | seemed to be the same component density bits were set, also resulting in |
503 | 497 | a brick (it's why only 12MB images are available for haswell in libreboot). | a brick (it's why only 12MB images are available for haswell in libreboot). |
504 | 498 | ||
505 | Chromebook boards mostly untested | ||
506 | --------------------------------- | ||
499 | ### Chromebook boards mostly untested | ||
507 | 500 | ||
508 | 501 | Alper has tested the `gru_kevin` ROM images produced by lbmk, but | Alper has tested the `gru_kevin` ROM images produced by lbmk, but |
509 | 502 | the other images are untested as of this day. | the other images are untested as of this day. |
510 | |||
511 | Planned future work | ||
512 | =================== | ||
513 | |||
514 | In general, you should also check the issue tracker to find other notes. | ||
515 | There is always more work to do, to improve Libreboot. | ||
516 | |||
517 | Linux distro in flash | ||
518 | --------------------- | ||
519 | |||
520 | STILL ON TODO SINCE LAST RELEASE. | ||
521 | |||
522 | This is another project that has been on hold for a while. The issue | ||
523 | has been that I need a decent userland project. I've looked at many | ||
524 | different userlands and recently (as of late June) decided to make | ||
525 | my own. I want a BusyBox-like solution, but based on code from OpenBSD, | ||
526 | ported to run under Linux with musl libc. | ||
527 | |||
528 | I want this distro to provide a kexec bootloader in flash, similar to Heads, | ||
529 | and I also want it to use apk-tools, pointing at Alpine Linux repositories | ||
530 | so as to allow any number of packages to be downloaded. It could also provide | ||
531 | lots of utils in general, to be a live *rescue system* of sorts. Linux system | ||
532 | in flash, that can bootstrap other systems. | ||
533 | |||
534 | Re-factor and optimize GRUB | ||
535 | --------------------------- | ||
536 | |||
537 | STILL ON TODO SINCE LAST RELEASE. | ||
538 | |||
539 | GRUB is full of unused bloat that almost nobody uses, yet is in the current | ||
540 | Libreboot builds. It's been on TODO for some time, but work has not yet | ||
541 | begun on this project. My efforts are currently focused on the Linux distro. | ||
542 | |||
543 | What I want is a fork of GRUB, optimized to run on bare metal as a coreboot | ||
544 | payload, on x86 and ARM platforms. |
File site/news/libreboot20230319.md changed (mode: 100644) (index 70b5922..cbc737a) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
12 | 12 | there, before flashing. For posterity, | there, before flashing. For posterity, |
13 | 13 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
14 | 14 | ||
15 | Introduction | ||
16 | ============ | ||
15 | Free your BIOS today! | ||
16 | -------------------- | ||
17 | 17 | ||
18 | 18 | Libreboot provides boot firmware for supported x86/ARM machines, starting a | Libreboot provides boot firmware for supported x86/ARM machines, starting a |
19 | 19 | bootloader that then loads your operating system. It replaces proprietary | bootloader that then loads your operating system. It replaces proprietary |
... | ... | been provided pre-compiled; specifically, `daisy` and `veyron` chromebook | |
35 | 35 | boards are not available pre-compiled, but the other boards are. A few new | boards are not available pre-compiled, but the other boards are. A few new |
36 | 36 | boards have been added, in addition to several fixes and feature additions. | boards have been added, in addition to several fixes and feature additions. |
37 | 37 | ||
38 | Build from source | ||
39 | ----------------- | ||
38 | ### Build from source | ||
40 | 39 | ||
41 | 40 | *This* release was build-tested on Debian *Sid*, as of 18 March 2023. Your | *This* release was build-tested on Debian *Sid*, as of 18 March 2023. Your |
42 | 41 | mileage may vary, with other distros. Refer to Libreboot documentation. | mileage may vary, with other distros. Refer to Libreboot documentation. |
43 | 42 | ||
44 | 43 | Work done since last release | Work done since last release |
45 | ============================ | ||
44 | -------------------------- | ||
46 | 45 | ||
47 | 46 | For more detailed change logs, look at the Git repository. This is | For more detailed change logs, look at the Git repository. This is |
48 | 47 | a summary of changes. | a summary of changes. |
49 | 48 | ||
50 | Brief overview of changes | ||
51 | ----------------- | ||
49 | ### Brief overview of changes | ||
52 | 50 | ||
53 | 51 | I've been very busy these last couple months, so there have been less changes | I've been very busy these last couple months, so there have been less changes |
54 | 52 | in Libreboot lately. I'm expecting to have a lot more time throughout the | in Libreboot lately. I'm expecting to have a lot more time throughout the |
... | ... | Pre-compiled ROM images will for the `t440pmrc_12mb` and `w541mrc_12mb` targets | |
106 | 104 | will be available in the next release; the `t440p_12mb` and `w541_12mb` images | will be available in the next release; the `t440p_12mb` and `w541_12mb` images |
107 | 105 | are still available in this release, pre-compiled. | are still available in this release, pre-compiled. |
108 | 106 | ||
109 | REMARK: libre raminit on Haswell | ||
110 | -------------------------------- | ||
107 | ### REMARK: libre raminit on Haswell | ||
111 | 108 | ||
112 | 109 | Upon testing, I've discovered that the libre code has the following problems: | Upon testing, I've discovered that the libre code has the following problems: |
113 | 110 | ||
... | ... | The libre raminit comes from this patchset: | |
137 | 134 | The MRC vendor file (and Angel's replacement code) don't just do raminit, they | The MRC vendor file (and Angel's replacement code) don't just do raminit, they |
138 | 135 | handle a few other init tasks aswell, including USB host controller. | handle a few other init tasks aswell, including USB host controller. |
139 | 136 | ||
140 | New boards, x86 | ||
141 | ---------- | ||
137 | ### New boards, x86 | ||
142 | 138 | ||
143 | 139 | * Lenovo ThinkPad W530 | * Lenovo ThinkPad W530 |
144 | 140 | * Lenovo ThinkPad T530 | * Lenovo ThinkPad T530 |
... | ... | add for the next release: | |
154 | 150 | ^ I would have put these in today's release, but didn't have time, and wanted | ^ I would have put these in today's release, but didn't have time, and wanted |
155 | 151 | to get this release done today. | to get this release done today. |
156 | 152 | ||
157 | Removed boards | ||
158 | -------------- | ||
153 | ### Removed boards | ||
159 | 154 | ||
160 | 155 | * asus p2b\_ls/p3b\_f - they didn't boot properly in pcbox, and the real | * asus p2b\_ls/p3b\_f - they didn't boot properly in pcbox, and the real |
161 | 156 | hardware is basically useless / impossible to find | hardware is basically useless / impossible to find |
... | ... | follows: | |
244 | 239 | * 00187811 - util/nvmutil: exit non-zero if close() fails (3 months ago) <Leah Rowe> | * 00187811 - util/nvmutil: exit non-zero if close() fails (3 months ago) <Leah Rowe> |
245 | 240 | ``` | ``` |
246 | 241 | ||
247 | Major works planned | ||
248 | =================== | ||
249 | 242 | ||
250 | In general, you should also check the issue tracker to find other notes. | ||
251 | There is always more work to do, to improve Libreboot. | ||
252 | |||
253 | Linux distro in flash | ||
254 | --------------------- | ||
255 | |||
256 | STILL ON TODO SINCE LAST RELEASE. | ||
257 | |||
258 | This is another project that has been on hold for a while. The issue | ||
259 | has been that I need a decent userland project. I've looked at many | ||
260 | different userlands and since late June in 2022, decided to make | ||
261 | my own. I want a BusyBox-like solution, but based on code from OpenBSD, | ||
262 | ported to run under Linux with musl libc. | ||
263 | |||
264 | I want this distro to provide a kexec bootloader in flash, similar to Heads, | ||
265 | and I also want it to use apk-tools, pointing at Alpine Linux repositories | ||
266 | so as to allow any number of packages to be downloaded. It could also provide | ||
267 | lots of utils in general, to be a live *rescue system* of sorts. Linux system | ||
268 | in flash, that can bootstrap other systems. | ||
269 | |||
270 | About a week before this release, I actually started on the project for real, | ||
271 | after having many false starts. I've forked a project called `lobase` which | ||
272 | already ports OpenBSD's userland utilities *to glibc* under Linux, and it's | ||
273 | as of today about 5 years outdated based on OpenBSD 6.3. | ||
274 | |||
275 | I've ported these utilities directly from OpenBSD 7.2, in my local fork of | ||
276 | lobase, superimposing the new code on top of the old and adapting according | ||
277 | to musl libc (lobase is full of hacks for glibc that I don't need): | ||
278 | |||
279 | `mail`, `cat`, `ls`, `head`, `rcs`, `hexdump`, `whois` and `time` | ||
280 | |||
281 | I've been working on this in a dedicated Alpine Linux virtual machine, | ||
282 | currently on release 3.17 of Alpine Linux. Alpine is an ideal test distro for | ||
283 | such development, because it already uses musl libc and has *libressl* | ||
284 | available in aports. | ||
285 | |||
286 | I don't have enough to release yet, but when I have a release ready, I will | ||
287 | upload it to a Git repository. When the userland port is fully complete, | ||
288 | I shall then base off of Alpine Linux abuild+aports build system | ||
289 | infrastructure to provide small base images. It will be similar to the Heads | ||
290 | project, but built separately and not specifically targeted at Libreboot, | ||
291 | but in general to any coreboot setup, on supported hardware. It won't be a | ||
292 | general purpose distro, but I would at that point submit my userland port to | ||
293 | Alpine, proposing it as a replacement of their busybox package in base. | ||
294 | |||
295 | Unlike Heads, I don't plan yet to make this a direct coreboot payload. | ||
296 | Instead, it'll be a standalone image loaded into CBFS, and chainloaded via | ||
297 | the GRUB or SeaBIOS payloads, which are both capable of executing ELF binaries | ||
298 | from the flash. | ||
299 | |||
300 | Lobase, which my development is forked from, can be found here (archived): | ||
301 | <https://github.com/Duncaen/lobase> | ||
302 | |||
303 | I've been re-using lobase's build system, adapting newer code from OpenBSD. | ||
304 | It's a lot of work, but I'm hopeful I can have this ready before the next | ||
305 | Libreboot release. | ||
306 | |||
307 | Re-factor and optimize GRUB | ||
308 | --------------------------- | ||
309 | |||
310 | STILL ON TODO SINCE LAST RELEASE. | ||
311 | |||
312 | GRUB is full of unused bloat that almost nobody uses, yet is in the current | ||
313 | Libreboot builds. It's been on TODO for some time, but work has not yet | ||
314 | begun on this project. My efforts are currently focused on the Linux distro. | ||
315 | |||
316 | What I want is a fork of GRUB, optimized to run on bare metal as a coreboot | ||
317 | payload, on x86 and ARM platforms. | ||
318 | |||
319 | I have an update since the last release. Paul Menzel of coreboot *has* made | ||
320 | GRUB modules more configurable, making it possible to reduce the size of the | ||
321 | payload. His patch is not yet used in Libreboot (not in this release, anyway), | ||
322 | but the patch in GRUB is: | ||
323 | |||
324 | ``` | ||
325 | commit 6c5ee45548fcb65d7921c9fca5867b256f9a48ad | ||
326 | Author: Paul Menzel <pmenzel@molgen.mpg.de> | ||
327 | Date: Thu Mar 7 12:16:06 2019 +0100 | ||
328 | Makefile: Allow to set file systems modules for default_payload.elf | ||
329 | ``` | ||
330 | |||
331 | I'm going to play around with this when I get the time. Even with this | ||
332 | modification, GRUB is still full of code that Libreboot will never use. | ||
333 | A *GRUB Valhalla Rampage* is still in order! |
File site/news/libreboot20230413.md changed (mode: 100644) (index 9e3182b..629aaad) | |||
... | ... | there, before flashing. For posterity, | |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | 10 | Introduction | Introduction |
11 | ============ | ||
11 | ------------ | ||
12 | 12 | ||
13 | 13 | Libreboot provides boot firmware for supported x86/ARM machines, starting a | Libreboot provides boot firmware for supported x86/ARM machines, starting a |
14 | 14 | bootloader that then loads your operating system. It replaces proprietary | bootloader that then loads your operating system. It replaces proprietary |
... | ... | existing supported hardware; the focus is going to be on adding *more* boards | |
35 | 35 | to Libreboot, to support more hardware. I've been on a spree, buying lots of | to Libreboot, to support more hardware. I've been on a spree, buying lots of |
36 | 36 | mainboards that coreboot supports, that would be interesting in Libreboot. | mainboards that coreboot supports, that would be interesting in Libreboot. |
37 | 37 | ||
38 | Build from source | ||
39 | ----------------- | ||
38 | ### Build from source | ||
40 | 39 | ||
41 | 40 | *This* release was build-tested on Debian *Sid*, as of 13 April 2023. Your | *This* release was build-tested on Debian *Sid*, as of 13 April 2023. Your |
42 | 41 | mileage may vary, with other distros. Refer to Libreboot documentation. | mileage may vary, with other distros. Refer to Libreboot documentation. |
43 | 42 | ||
44 | KCMA-D8 and KGPE-D16 wanted! | ||
45 | ---------------------------- | ||
43 | ### KCMA-D8 and KGPE-D16 wanted! | ||
46 | 44 | ||
47 | 45 | [ASUS KGPE-D16 and KCMA-D8 needed for testing!](kgpe-d16.md) | [ASUS KGPE-D16 and KCMA-D8 needed for testing!](kgpe-d16.md) |
48 | 46 | ||
... | ... | with one (or both) of these, I would appreciate it. Please | |
52 | 50 | [get in touch](../contact.md)! | [get in touch](../contact.md)! |
53 | 51 | ||
54 | 52 | Work done since last release | Work done since last release |
55 | ============================ | ||
53 | ---------------------------- | ||
56 | 54 | ||
57 | 55 | For more detailed change logs, look at the Git repository. This is | For more detailed change logs, look at the Git repository. This is |
58 | 56 | a summary of changes. | a summary of changes. |
59 | 57 | ||
60 | Summary of changes: | ||
61 | ------------------- | ||
58 | ### Summary of changes: | ||
62 | 59 | ||
63 | 60 | Zero code changes within coreboot on any boards, but the build system went | Zero code changes within coreboot on any boards, but the build system went |
64 | 61 | through a mild overhaul: | through a mild overhaul: |
... | ... | through a mild overhaul: | |
80 | 77 | images need `mrc.bin` for raminit. More info about this is in the previous | images need `mrc.bin` for raminit. More info about this is in the previous |
81 | 78 | release. | release. |
82 | 79 | ||
83 | MRC W541/T440p ROM images re-added | ||
84 | ---------------------------------- | ||
80 | ### MRC W541/T440p ROM images re-added | ||
85 | 81 | ||
86 | 82 | As alluded to and applied by the above text, T440p/W541 thinkpad images that | As alluded to and applied by the above text, T440p/W541 thinkpad images that |
87 | 83 | use `mrc.bin` have been re-added. Libreboot supports experimental raminit on | use `mrc.bin` have been re-added. Libreboot supports experimental raminit on |
... | ... | that use it, so that users can choose which one they want. | |
91 | 87 | More information this is available, in the *previous* | More information this is available, in the *previous* |
92 | 88 | [Libreboot 20230319 release announcement](libreboot20230319.md). | [Libreboot 20230319 release announcement](libreboot20230319.md). |
93 | 89 | ||
94 | Detailed descriptions of changes | ||
95 | -------------------------------- | ||
90 | ### Detailed descriptions of changes | ||
96 | 91 | ||
97 | 92 | Changelog: | Changelog: |
98 | 93 | ||
... | ... | Changelog: | |
145 | 140 | patch courtesy of Andreas Hartmann. | patch courtesy of Andreas Hartmann. |
146 | 141 | ||
147 | 142 | Hardware supported in this release | Hardware supported in this release |
148 | ================================== | ||
143 | ---------------------------------- | ||
149 | 144 | ||
150 | 145 | All of the following are believed to *boot*, but if you have any issues, | All of the following are believed to *boot*, but if you have any issues, |
151 | 146 | please contact the Libreboot project. They are: | please contact the Libreboot project. They are: |
152 | 147 | ||
153 | Desktops (AMD, Intel, x86) | ||
154 | ----------------------- | ||
148 | ### Desktops (AMD, Intel, x86) | ||
155 | 149 | ||
156 | 150 | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) |
157 | 151 | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) |
... | ... | Desktops (AMD, Intel, x86) | |
190 | 184 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
191 | 185 | ||
192 | 186 | Downloads | Downloads |
193 | ========= | ||
187 | --------- | ||
194 | 188 | ||
195 | 189 | You can find this release on the downloads page. At the time of this | You can find this release on the downloads page. At the time of this |
196 | 190 | announcement, some of the rsync mirrors may not have it yet, so please check | announcement, some of the rsync mirrors may not have it yet, so please check |
File site/news/libreboot20230423.md changed (mode: 100644) (index a1491ea..1033a4d) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
7 | 7 | there, before flashing. For posterity, | there, before flashing. For posterity, |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free software BIOS/UEFI | ||
11 | --------------------- | ||
12 | 12 | ||
13 | 13 | Libreboot provides boot firmware for supported x86/ARM machines, starting a | Libreboot provides boot firmware for supported x86/ARM machines, starting a |
14 | 14 | bootloader that then loads your operating system. It replaces proprietary | bootloader that then loads your operating system. It replaces proprietary |
... | ... | The *priority* for Libreboot is to add as many new boards as possible, from now | |
34 | 34 | to the next stable release (ETA Q3 2023), with many testing releases in | to the next stable release (ETA Q3 2023), with many testing releases in |
35 | 35 | between. Release early, release often. Rigorious testing ensues. | between. Release early, release often. Rigorious testing ensues. |
36 | 36 | ||
37 | Build from source | ||
38 | ----------------- | ||
37 | ### Build from source | ||
39 | 38 | ||
40 | 39 | *This* release was build-tested on Debian *Sid*, as of 23 April 2023. Your | *This* release was build-tested on Debian *Sid*, as of 23 April 2023. Your |
41 | 40 | mileage may vary, with other distros. Refer to Libreboot documentation. | mileage may vary, with other distros. Refer to Libreboot documentation. |
42 | 41 | ||
43 | KCMA-D8 and KGPE-D16 wanted! | ||
44 | ---------------------------- | ||
42 | ### KCMA-D8 and KGPE-D16 wanted! | ||
45 | 43 | ||
46 | 44 | [ASUS KGPE-D16 and KCMA-D8 needed for testing!](kgpe-d16.md) | [ASUS KGPE-D16 and KCMA-D8 needed for testing!](kgpe-d16.md) |
47 | 45 | ||
... | ... | with one (or both) of these, I would appreciate it. Please | |
51 | 49 | [get in touch](../contact.md)! | [get in touch](../contact.md)! |
52 | 50 | ||
53 | 51 | Work done since last release | Work done since last release |
54 | ============================ | ||
52 | -------------------------- | ||
55 | 53 | ||
56 | 54 | This is in the last *10 days*, since the previous release was 10 days ago! | This is in the last *10 days*, since the previous release was 10 days ago! |
57 | 55 | Ergo, this is a very conservative changelog. It seems Libreboot has been | Ergo, this is a very conservative changelog. It seems Libreboot has been |
58 | 56 | releasing almost fortnightly, as of late; perhaps this could continue from | releasing almost fortnightly, as of late; perhaps this could continue from |
59 | 57 | now on. | now on. |
60 | 58 | ||
61 | New mainboards now supported: | ||
62 | ----------------------------- | ||
59 | ### New mainboards now supported: | ||
63 | 60 | ||
64 | 61 | * **Dell Latitude E6400 (laptop)** (GM45, blob-free, flashable entirely in | * **Dell Latitude E6400 (laptop)** (GM45, blob-free, flashable entirely in |
65 | 62 | software, no disassembly required!) - courtesy Nicholas Chin, `nic3-14159` on | software, no disassembly required!) - courtesy Nicholas Chin, `nic3-14159` on |
... | ... | New mainboards now supported: | |
71 | 68 | * HP EliteBook 2560p (laptop), courtesy Riku Viitanen (*seriously* cool guy) - | * HP EliteBook 2560p (laptop), courtesy Riku Viitanen (*seriously* cool guy) - |
72 | 69 | Sandybridge hardware gen | Sandybridge hardware gen |
73 | 70 | ||
74 | Build system changes: | ||
75 | --------------------- | ||
71 | ### Build system changes: | ||
76 | 72 | ||
77 | 73 | * **GM45 no-microcode bug mitigations re-added: revert to old SMRR handling | * **GM45 no-microcode bug mitigations re-added: revert to old SMRR handling |
78 | 74 | and disable PECI (for e.g. X200/T400 users who want to [remove microcode | and disable PECI (for e.g. X200/T400 users who want to [remove microcode |
... | ... | Build system changes: | |
115 | 111 | Leah Rowe. | Leah Rowe. |
116 | 112 | ||
117 | 113 | Hardware supported in this release | Hardware supported in this release |
118 | ================================== | ||
114 | --------------------------------- | ||
119 | 115 | ||
120 | 116 | All of the following are believed to *boot*, but if you have any issues, | All of the following are believed to *boot*, but if you have any issues, |
121 | 117 | please contact the Libreboot project. They are: | please contact the Libreboot project. They are: |
122 | 118 | ||
123 | Desktops (AMD, Intel, x86) | ||
124 | ----------------------- | ||
119 | ### Desktops (AMD, Intel, x86) | ||
125 | 120 | ||
126 | 121 | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) |
127 | 122 | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) |
... | ... | Desktops (AMD, Intel, x86) | |
165 | 160 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
166 | 161 | ||
167 | 162 | More boards soon! | More boards soon! |
168 | ================= | ||
163 | --------------- | ||
169 | 164 | ||
170 | 165 | I've purchased about ~10 HP mainboards, all of the viable sandybridge, | I've purchased about ~10 HP mainboards, all of the viable sandybridge, |
171 | 166 | ivybridge and haswell ones from coreboot. I'm going to add them all. | ivybridge and haswell ones from coreboot. I'm going to add them all. |
... | ... | available on ThinkPad T440p and W541 as an option in Libreboot (including in | |
179 | 174 | this release!) | this release!) |
180 | 175 | ||
181 | 176 | Downloads | Downloads |
182 | ========= | ||
177 | ------- | ||
183 | 178 | ||
184 | 179 | You can find this release on the downloads page. At the time of this | You can find this release on the downloads page. At the time of this |
185 | 180 | announcement, some of the rsync mirrors may not have it yet, so please check | announcement, some of the rsync mirrors may not have it yet, so please check |
File site/news/libreboot20230625.md changed (mode: 100644) (index 3a8f82d..368e406) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
7 | 7 | there, before flashing. For posterity, | there, before flashing. For posterity, |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free software BIOS/UEFI | ||
11 | ------------------------ | ||
12 | 12 | ||
13 | 13 | Libreboot provides boot firmware for supported x86/ARM machines, starting a | Libreboot provides boot firmware for supported x86/ARM machines, starting a |
14 | 14 | bootloader that then loads your operating system. It replaces proprietary | bootloader that then loads your operating system. It replaces proprietary |
... | ... | firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) | |
36 | 36 | a new *stable* release of Libreboot. The previous stable release was | a new *stable* release of Libreboot. The previous stable release was |
37 | 37 | Libreboot 20220710, released on 10 July 2022. | Libreboot 20220710, released on 10 July 2022. |
38 | 38 | ||
39 | A note about the changelog | ||
40 | -------------------------- | ||
39 | ### A note about the changelog | ||
41 | 40 | ||
42 | 41 | The changes listed here are relative to Libreboot *20230423*, *not* 20220710. | The changes listed here are relative to Libreboot *20230423*, *not* 20220710. |
43 | 42 | Therefore, to get a full list of changes since 20220710 (the previous stable | Therefore, to get a full list of changes since 20220710 (the previous stable |
... | ... | the [20221214](libreboot20221214.md), [20230319](libreboot20230319.md), | |
47 | 46 | announcements before reading the *20230625* change log, in order to get | announcements before reading the *20230625* change log, in order to get |
48 | 47 | a complete picture. | a complete picture. |
49 | 48 | ||
50 | Build from source | ||
51 | ----------------- | ||
49 | ### Build from source | ||
52 | 50 | ||
53 | 51 | *This* release was build-tested on Debian *Sid*, as of 25 June 2023. Your | *This* release was build-tested on Debian *Sid*, as of 25 June 2023. Your |
54 | 52 | mileage may vary, with other distros. Refer to Libreboot documentation. | mileage may vary, with other distros. Refer to Libreboot documentation. |
55 | 53 | ||
56 | 54 | Work done since last release | Work done since last release |
57 | ============================ | ||
55 | ---------------------------- | ||
58 | 56 | ||
59 | New mainboards now supported: | ||
60 | ----------------------------- | ||
57 | ### New mainboards now supported: | ||
61 | 58 | ||
62 | 59 | These boards were added to Libreboot: | These boards were added to Libreboot: |
63 | 60 | ||
... | ... | thus hardware support is not greatly improved since the last release. Moving | |
73 | 70 | forward, the next Libreboot release will be a *testing* release and *will* | forward, the next Libreboot release will be a *testing* release and *will* |
74 | 71 | focus on hardware support in addition to payloads (linux boot, UEFI etc). | focus on hardware support in addition to payloads (linux boot, UEFI etc). |
75 | 72 | ||
76 | No-microcode ROMs available | ||
77 | --------------------------- | ||
73 | ### No-microcode ROMs available | ||
78 | 74 | ||
79 | 75 | Since Libreboot 20221214 and up, CPU microcode is | Since Libreboot 20221214 and up, CPU microcode is |
80 | 76 | included by default on all applicable x86 mainboards. However, | included by default on all applicable x86 mainboards. However, |
... | ... | and [Freedom Status](../freedom-status.md). | |
89 | 85 | ||
90 | 86 | An earlier article was written about this, [here](microcode.md) | An earlier article was written about this, [here](microcode.md) |
91 | 87 | ||
92 | Massive build system audit | ||
93 | -------------------------- | ||
88 | ### Massive build system audit | ||
94 | 89 | ||
95 | 90 | The full change log below will list all build system changes, | The full change log below will list all build system changes, |
96 | 91 | but may not provide the overall picture, so to be clear: the | but may not provide the overall picture, so to be clear: the |
... | ... | based on the OpenBSD coding style) and many bugs are fixed. | |
101 | 96 | ||
102 | 97 | An earlier article was written about this, [here](audit.md) | An earlier article was written about this, [here](audit.md) |
103 | 98 | ||
104 | Full list of build system changes | ||
105 | -------------------- | ||
99 | ### Full list of build system changes | ||
106 | 100 | ||
107 | 101 | Certain build system changes will not be listed here in detail, if they | Certain build system changes will not be listed here in detail, if they |
108 | 102 | pertain to general code style cleanup/re-factoring, as already alluded to | pertain to general code style cleanup/re-factoring, as already alluded to |
... | ... | Newest changes first, oldest changes last: | |
264 | 258 | the 20230423 release) | the 20230423 release) |
265 | 259 | ||
266 | 260 | Hardware supported in this release | Hardware supported in this release |
267 | ================================== | ||
261 | ---------------------------------- | ||
268 | 262 | ||
269 | 263 | All of the following are believed to *boot*, but if you have any issues, | All of the following are believed to *boot*, but if you have any issues, |
270 | 264 | please contact the Libreboot project. They are: | please contact the Libreboot project. They are: |
271 | 265 | ||
272 | Desktops (AMD, Intel, x86) | ||
273 | ----------------------- | ||
266 | ### Desktops (AMD, Intel, x86) | ||
274 | 267 | ||
275 | 268 | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) |
276 | 269 | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) |
... | ... | Desktops (AMD, Intel, x86) | |
313 | 306 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
314 | 307 | ||
315 | 308 | Downloads | Downloads |
316 | ========= | ||
309 | --------- | ||
317 | 310 | ||
318 | 311 | You can find this release on the downloads page. At the time of this | You can find this release on the downloads page. At the time of this |
319 | 312 | announcement, some of the rsync mirrors may not have it yet, so please check | announcement, some of the rsync mirrors may not have it yet, so please check |
320 | 313 | another one if your favourite one doesn't have it. | another one if your favourite one doesn't have it. |
321 | 314 | ||
322 | 315 | Post-release errata | Post-release errata |
323 | =================== | ||
316 | ------------------- | ||
324 | 317 | ||
325 | 318 | When building ROM images from the release archives, the following error | When building ROM images from the release archives, the following error |
326 | 319 | is observed in some cases, depending on distro: | is observed in some cases, depending on distro: |
File site/news/libreboot20231021.md changed (mode: 100644) (index f37c461..8b73915) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
7 | 7 | there, before flashing. For posterity, | there, before flashing. For posterity, |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free software BIOS/UEFI | ||
11 | ------------------------ | ||
12 | 12 | ||
13 | 13 | *This* new release, Libreboot 20231021, released today 21 October 2023, is | *This* new release, Libreboot 20231021, released today 21 October 2023, is |
14 | 14 | a new *testing* release of Libreboot. The previous release was | a new *testing* release of Libreboot. The previous release was |
... | ... | firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) | |
37 | 37 | [supported](../docs/bsd/). | [supported](../docs/bsd/). |
38 | 38 | ||
39 | 39 | Work done since last release | Work done since last release |
40 | ============================ | ||
40 | -------------------------- | ||
41 | 41 | ||
42 | New mainboards now supported: | ||
43 | ----------------------------- | ||
42 | ### New mainboards now supported: | ||
44 | 43 | ||
45 | 44 | The *primary* focus of this release has been build system improvements, and new | The *primary* focus of this release has been build system improvements, and new |
46 | 45 | build system features. However, these boards were added to Libreboot: | build system features. However, these boards were added to Libreboot: |
... | ... | they compile properly on modern distros/toolchains. More info can be found in a | |
64 | 63 | previous news article: [ASUS KGPE-D16, KCMA-D8 and KFSN4-DRE re-added to | previous news article: [ASUS KGPE-D16, KCMA-D8 and KFSN4-DRE re-added to |
65 | 64 | Libreboot](fam15h.md) | Libreboot](fam15h.md) |
66 | 65 | ||
67 | GRUB LUKS2 now supported (with argon2 key derivation) | ||
68 | --------------------------------------------------- | ||
66 | ### GRUB LUKS2 now supported (with argon2 key derivation) | ||
69 | 67 | ||
70 | 68 | This was covered in a [previous article](argon2.md), which you should read. | This was covered in a [previous article](argon2.md), which you should read. |
71 | 69 | GRUB *2.12* is now the version that Librebooot uses, although it's currently in | GRUB *2.12* is now the version that Librebooot uses, although it's currently in |
... | ... | These libreboot patches added argon2 support: | |
95 | 93 | This means that you can now boot from encrypted `/boot` partitions. I'm very | This means that you can now boot from encrypted `/boot` partitions. I'm very |
96 | 94 | grateful to everyone who made this possible! | grateful to everyone who made this possible! |
97 | 95 | ||
98 | Simplified commands (build system) | ||
99 | ------------------------- | ||
96 | ### Simplified commands (build system) | ||
100 | 97 | ||
101 | 98 | Simply put, lbmk (the Libreboot build system) is now *easier to use*; there | Simply put, lbmk (the Libreboot build system) is now *easier to use*; there |
102 | 99 | are only *12* shell scripts in this release, versus 50 or so in the previous | are only *12* shell scripts in this release, versus 50 or so in the previous |
... | ... | As always, you can find information about *using* the build system in | |
109 | 106 | the [Libreboot build instructions](../docs/build/) and in the [lbmk | the [Libreboot build instructions](../docs/build/) and in the [lbmk |
110 | 107 | maintenance manual](../docs/maintain/). | maintenance manual](../docs/maintain/). |
111 | 108 | ||
112 | TWO massive audits. 50% code size reduction in lbmk. | ||
113 | -------------------------------------------- | ||
109 | ### TWO massive audits. 50% code size reduction in lbmk. | ||
114 | 110 | ||
115 | 111 | Libreboot's build system, lbmk, is written entirely in shell scripts. It is | Libreboot's build system, lbmk, is written entirely in shell scripts. It is |
116 | 112 | an automatic build system that downloads, patches, configures and compiles | an automatic build system that downloads, patches, configures and compiles |
... | ... | Their changes will also be listed here. The Libreboot build system (lbmk) has | |
132 | 128 | been completely re-designed, since the last release. It's the same fundamental | been completely re-designed, since the last release. It's the same fundamental |
133 | 129 | design, but all of the commands have changed, and everything is much simpler. | design, but all of the commands have changed, and everything is much simpler. |
134 | 130 | ||
135 | Serprog firmware building (RP2040 and STM32) | ||
136 | ----------------------------------- | ||
131 | ### Serprog firmware building (RP2040 and STM32) | ||
137 | 132 | ||
138 | 133 | In addition to coreboot firmware, the Libreboot build system (lbmk) can now | In addition to coreboot firmware, the Libreboot build system (lbmk) can now |
139 | 134 | build *serprog* firmware, specifically `pico-serprog` and `stm32-vserprog`, on | build *serprog* firmware, specifically `pico-serprog` and `stm32-vserprog`, on |
... | ... | Pre-compiled firmware images are available, for many of these devices, under | |
147 | 142 | the `roms/` directory in this Libreboot 20231021 release! Riku Viitanen is the | the `roms/` directory in this Libreboot 20231021 release! Riku Viitanen is the |
148 | 143 | one who added this capability to Libreboot. | one who added this capability to Libreboot. |
149 | 144 | ||
150 | Updated U-Boot revision (2023.10) | ||
151 | ---------------------------- | ||
145 | ### Updated U-Boot revision (2023.10) | ||
152 | 146 | ||
153 | 147 | Alper Nebi Yasak submitted patches that update the U-Boot revision in | Alper Nebi Yasak submitted patches that update the U-Boot revision in |
154 | 148 | Libreboot, on `gru_bob` and `gru_kevin` chromebooks. Additionally, the `cros` | Libreboot, on `gru_bob` and `gru_kevin` chromebooks. Additionally, the `cros` |
... | ... | reading these diffs: | |
175 | 169 | ||
176 | 170 | Thank you, Alper! | Thank you, Alper! |
177 | 171 | ||
178 | Coreboot, GRUB, U-Boot and SeaBIOS revisions | ||
179 | ------------------------------------ | ||
172 | ### Coreboot, GRUB, U-Boot and SeaBIOS revisions | ||
180 | 173 | ||
181 | 174 | In Libreboot 20231021 (*this release*): | In Libreboot 20231021 (*this release*): |
182 | 175 | ||
... | ... | In Libreboot 20230625 (*previous release*): | |
199 | 192 | As you can see, all revisions are quite new in this release. | As you can see, all revisions are quite new in this release. |
200 | 193 | ||
201 | 194 | Build system tweaks | Build system tweaks |
202 | =================== | ||
195 | ----------------- | ||
203 | 196 | ||
204 | resources/ now config/ | ||
205 | ---------------------- | ||
197 | ### resources/ now config/ | ||
206 | 198 | ||
207 | 199 | The `resources/scripts/` directory is now `script/`, and what was `resources/` | The `resources/scripts/` directory is now `script/`, and what was `resources/` |
208 | 200 | now only contains configuration data plus code patches for various projects, | now only contains configuration data plus code patches for various projects, |
... | ... | The log is as follows, relative to Libreboot 20230625: | |
1052 | 1044 | This is 445 changes in total, since Libreboot 20230625. | This is 445 changes in total, since Libreboot 20230625. |
1053 | 1045 | ||
1054 | 1046 | Hardware supported in this release | Hardware supported in this release |
1055 | ================================== | ||
1047 | -------------------------------------- | ||
1056 | 1048 | ||
1057 | 1049 | All of the following are believed to *boot*, but if you have any issues, | All of the following are believed to *boot*, but if you have any issues, |
1058 | 1050 | please contact the Libreboot project. They are: | please contact the Libreboot project. They are: |
... | ... | please contact the Libreboot project. They are: | |
1062 | 1054 | - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) | - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) |
1063 | 1055 | - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) | - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) |
1064 | 1056 | ||
1065 | Desktops (AMD, Intel, x86) | ||
1066 | ----------------------- | ||
1057 | ### Desktops (AMD, Intel, x86) | ||
1067 | 1058 | ||
1068 | 1059 | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) |
1069 | 1060 | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) |
... | ... | Desktops (AMD, Intel, x86) | |
1111 | 1102 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
1112 | 1103 | ||
1113 | 1104 | Downloads | Downloads |
1114 | ========= | ||
1105 | --------- | ||
1115 | 1106 | ||
1116 | 1107 | You can find this release on the downloads page. At the time of this | You can find this release on the downloads page. At the time of this |
1117 | 1108 | announcement, some of the rsync mirrors may not have it yet, so please check | announcement, some of the rsync mirrors may not have it yet, so please check |
1118 | 1109 | another one if your favourite one doesn't have it. | another one if your favourite one doesn't have it. |
1119 | 1110 | ||
1120 | Post-release fix | ||
1121 | ================ | ||
1111 | ### Post-release fix | ||
1122 | 1112 | ||
1123 | 1113 | There was a minor problem in the original Libreboot 20231021 release, namely: | There was a minor problem in the original Libreboot 20231021 release, namely: |
1124 | 1114 | keymap configurations were not properly generated inside the ROM images, so | keymap configurations were not properly generated inside the ROM images, so |
... | ... | because the main mirror that it downloads from was offline during the build, | |
1136 | 1126 | so the relevant acpica tarball was mirrored to Libreboot rsync at last minute. | so the relevant acpica tarball was mirrored to Libreboot rsync at last minute. |
1137 | 1127 | ||
1138 | 1128 | Post-release errata | Post-release errata |
1139 | =================== | ||
1140 | |||
1141 | S3 suspend/resume | ||
1142 | 1129 | ------------------ | ------------------ |
1143 | 1130 | ||
1131 | ### S3 suspend/resume | ||
1132 | |||
1144 | 1133 | Broken on tested boards: i945, gm45, sandybridge and ivybridge (probably | Broken on tested boards: i945, gm45, sandybridge and ivybridge (probably |
1145 | 1134 | haswell too, but untested as I write this). | haswell too, but untested as I write this). |
1146 | 1135 | ||
... | ... | be issued, along with several other fixes made in lbmk since this release. | |
1150 | 1139 | If you're using Libreboot 20231021, you should not try to put your machine | If you're using Libreboot 20231021, you should not try to put your machine |
1151 | 1140 | to sleep. You should only turn it on or power it off (power cycle / coldboot). | to sleep. You should only turn it on or power it off (power cycle / coldboot). |
1152 | 1141 | ||
1153 | Insertion of PIKE2008 ROMs, i945 bootblock copy | ||
1154 | ----------------------------------------------- | ||
1142 | ### Insertion of PIKE2008 ROMs, i945 bootblock copy | ||
1155 | 1143 | ||
1156 | 1144 | Empty PIKE2008 ROMs not inserted in KCMA-D8 and KGPE-D16 ROMs. | Empty PIKE2008 ROMs not inserted in KCMA-D8 and KGPE-D16 ROMs. |
1157 | 1145 | ||
... | ... | And without the bootblock copied on X60/T60 ROMs, flashing will result in a bric | |
1183 | 1171 | under these conditions: bucts not reset and ROM flashed successfully, and/or | under these conditions: bucts not reset and ROM flashed successfully, and/or |
1184 | 1172 | flashing the ROM from LenovoBIOS to Libreboot. | flashing the ROM from LenovoBIOS to Libreboot. |
1185 | 1173 | ||
1186 | Fam15h microcode wrongly not detected as inserted | ||
1187 | ------------------------------------------------- | ||
1174 | ### Fam15h microcode wrongly not detected as inserted | ||
1188 | 1175 | ||
1189 | 1176 | On those boards, `target.cfg` files specified `microcode_required="n"`, and | On those boards, `target.cfg` files specified `microcode_required="n"`, and |
1190 | 1177 | the logic in the release script renames ROM images according to this rule: | the logic in the release script renames ROM images according to this rule: |
File site/news/libreboot20231101.md changed (mode: 100644) (index 0d330be..a81cd24) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
7 | 7 | there, before flashing. For posterity, | there, before flashing. For posterity, |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free Software Boot | ||
11 | ------------------ | ||
12 | 12 | ||
13 | 13 | *This* new release, Libreboot 20231101, released today 1 November 2023, is | *This* new release, Libreboot 20231101, released today 1 November 2023, is |
14 | 14 | a new *testing* release of Libreboot. The previous release was | a new *testing* release of Libreboot. The previous release was |
... | ... | firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) | |
37 | 37 | [supported](../docs/bsd/). | [supported](../docs/bsd/). |
38 | 38 | ||
39 | 39 | Work done since last release | Work done since last release |
40 | ============================ | ||
40 | ---------------------------- | ||
41 | 41 | ||
42 | ThinkPad X201 support added | ||
43 | ----------------------------- | ||
42 | ### ThinkPad X201 support added | ||
44 | 43 | ||
45 | 44 | **UPDATE: SUPPORT WAS REMOVED on 12 January 2024, because it was found that fans | **UPDATE: SUPPORT WAS REMOVED on 12 January 2024, because it was found that fans |
46 | 45 | fail when using a neutered ME, on this platform - this bug only affects the | fail when using a neutered ME, on this platform - this bug only affects the |
... | ... | older arrandales like X201, but newer platforms are not affected.** | |
48 | 47 | ||
49 | 48 | Intel D945GCLF was also re-added, in this release. | Intel D945GCLF was also re-added, in this release. |
50 | 49 | ||
51 | Coreboot, GRUB, U-Boot and SeaBIOS revisions | ||
52 | ------------------------------------ | ||
50 | ### Coreboot, GRUB, U-Boot and SeaBIOS revisions | ||
53 | 51 | ||
54 | 52 | Libreboot 20231021 and 20231101 are both based on these revisions: | Libreboot 20231021 and 20231101 are both based on these revisions: |
55 | 53 | ||
... | ... | of these, that fix certain bugs or improve certain functionalities. More | |
65 | 63 | information is available elsewhere in this page. | information is available elsewhere in this page. |
66 | 64 | ||
67 | 65 | Build system tweaks | Build system tweaks |
68 | =================== | ||
66 | ------------------- | ||
69 | 67 | ||
70 | 68 | These changes were made: | These changes were made: |
71 | 69 | ||
... | ... | time has passed since then. The focus of this Libreboot 20231101 release has | |
162 | 160 | been to fix bugs. | been to fix bugs. |
163 | 161 | ||
164 | 162 | Hardware supported in this release | Hardware supported in this release |
165 | ================================== | ||
163 | ---------------------------------- | ||
166 | 164 | ||
167 | 165 | All of the following are believed to *boot*, but if you have any issues, | All of the following are believed to *boot*, but if you have any issues, |
168 | 166 | please contact the Libreboot project. They are: | please contact the Libreboot project. They are: |
... | ... | please contact the Libreboot project. They are: | |
172 | 170 | - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) | - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) |
173 | 171 | - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) | - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) |
174 | 172 | ||
175 | Desktops (AMD, Intel, x86) | ||
176 | ----------------------- | ||
173 | ### Desktops (AMD, Intel, x86) | ||
177 | 174 | ||
178 | 175 | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) |
179 | 176 | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) |
... | ... | Desktops (AMD, Intel, x86) | |
222 | 219 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
223 | 220 | ||
224 | 221 | Downloads | Downloads |
225 | ========= | ||
222 | --------- | ||
226 | 223 | ||
227 | 224 | You can find this release on the downloads page. At the time of this | You can find this release on the downloads page. At the time of this |
228 | 225 | announcement, some of the rsync mirrors may not have it yet, so please check | announcement, some of the rsync mirrors may not have it yet, so please check |
229 | 226 | another one if your favourite one doesn't have it. | another one if your favourite one doesn't have it. |
230 | 227 | ||
231 | 228 | Post-release errata | Post-release errata |
232 | =================== | ||
229 | ------------------- | ||
233 | 230 | ||
234 | S3 suspend/resume | ||
235 | ------------------ | ||
231 | ### S3 suspend/resume | ||
236 | 232 | ||
237 | 233 | The previous release broke suspend/resume on all Intel platforms, but it's | The previous release broke suspend/resume on all Intel platforms, but it's |
238 | 234 | fixed in this release on Sandybridge (e.g. ThinkPad X220), | fixed in this release on Sandybridge (e.g. ThinkPad X220), |
File site/news/libreboot20231106.md changed (mode: 100644) (index 3e7a238..f9e9095) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
7 | 7 | there, before flashing. For posterity, | there, before flashing. For posterity, |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Free your BIOS today! | ||
11 | ------------------- | ||
12 | 12 | ||
13 | 13 | *This* new release, Libreboot 20231106, released today 6 November 2023, is | *This* new release, Libreboot 20231106, released today 6 November 2023, is |
14 | 14 | a new *testing* release of Libreboot. The previous release was | a new *testing* release of Libreboot. The previous release was |
... | ... | firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) | |
38 | 38 | [supported](../docs/bsd/). | [supported](../docs/bsd/). |
39 | 39 | ||
40 | 40 | Work done since last release | Work done since last release |
41 | ============================ | ||
41 | -------------------- | ||
42 | 42 | ||
43 | 43 | This is largely a bugfix release. Most notably, boot issues on GM45 thinkpads | This is largely a bugfix release. Most notably, boot issues on GM45 thinkpads |
44 | 44 | present in the 20231101 release have been resolved. | present in the 20231101 release have been resolved. |
45 | 45 | ||
46 | Dell E6400 on its own tree | ||
47 | ----------------------------- | ||
46 | ### Dell E6400 on its own tree | ||
48 | 47 | ||
49 | 48 | Libreboot contains a DDR2 raminit patch for Dell Latitude E6400, that increases | Libreboot contains a DDR2 raminit patch for Dell Latitude E6400, that increases |
50 | 49 | reliability on coldboot, but it negatively affects other GM45 machines that use | reliability on coldboot, but it negatively affects other GM45 machines that use |
... | ... | when using on GM45 ThinkPads (ROM images for those machines were then deleted | |
61 | 60 | from the 20231021 and 20231101 release archives). Today's Libreboot release | from the 20231021 and 20231101 release archives). Today's Libreboot release |
62 | 61 | solves that problem, so these machines can be used reliably once again. | solves that problem, so these machines can be used reliably once again. |
63 | 62 | ||
64 | Coreboot, GRUB, U-Boot and SeaBIOS revisions | ||
65 | ------------------------------------ | ||
63 | ### Coreboot, GRUB, U-Boot and SeaBIOS revisions | ||
66 | 64 | ||
67 | 65 | Libreboot 20231106 and 20231101 are both based on these revisions: | Libreboot 20231106 and 20231101 are both based on these revisions: |
68 | 66 | ||
... | ... | Libreboot 20231106 and 20231101 are both based on these revisions: | |
77 | 75 | Several other fixes and tweaks have been made, in addition to this and the | Several other fixes and tweaks have been made, in addition to this and the |
78 | 76 | E6400 patch mentioned above. | E6400 patch mentioned above. |
79 | 77 | ||
80 | Build system tweaks | ||
81 | =================== | ||
78 | ### Build system tweaks | ||
82 | 79 | ||
83 | 80 | These changes were made: | These changes were made: |
84 | 81 | ||
... | ... | is in progress, and rapid development towards a new stable release; it is very | |
151 | 148 | much planned that 12 December 2023 will have a new stable release of Libreboot. | much planned that 12 December 2023 will have a new stable release of Libreboot. |
152 | 149 | ||
153 | 150 | Hardware supported in this release | Hardware supported in this release |
154 | ================================== | ||
151 | ---------------------------------- | ||
155 | 152 | ||
156 | 153 | All of the following are believed to *boot*, but if you have any issues, | All of the following are believed to *boot*, but if you have any issues, |
157 | 154 | please contact the Libreboot project. They are: | please contact the Libreboot project. They are: |
... | ... | please contact the Libreboot project. They are: | |
161 | 158 | - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) | - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) |
162 | 159 | - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) | - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) |
163 | 160 | ||
164 | Desktops (AMD, Intel, x86) | ||
165 | ----------------------- | ||
161 | ### Desktops (AMD, Intel, x86) | ||
166 | 162 | ||
167 | 163 | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) | - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) |
168 | 164 | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) | - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) |
... | ... | Desktops (AMD, Intel, x86) | |
211 | 207 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
212 | 208 | ||
213 | 209 | Downloads | Downloads |
214 | ========= | ||
210 | ---------- | ||
215 | 211 | ||
216 | 212 | You can find this release on the downloads page. At the time of this | You can find this release on the downloads page. At the time of this |
217 | 213 | announcement, some of the rsync mirrors may not have it yet, so please check | announcement, some of the rsync mirrors may not have it yet, so please check |
218 | 214 | another one if your favourite one doesn't have it. | another one if your favourite one doesn't have it. |
219 | 215 | ||
220 | 216 | Post-release errata | Post-release errata |
221 | =================== | ||
222 | |||
223 | S3 on GM45/i945 | ||
224 | 217 | --------------- | --------------- |
225 | 218 | ||
219 | ### S3 on GM45/i945 | ||
220 | |||
226 | 221 | GM45 ThinkPads still have buggy S3 behaviour, ditto i945. x4x and Pineview | GM45 ThinkPads still have buggy S3 behaviour, ditto i945. x4x and Pineview |
227 | 222 | untested, other Intel platforms work; AMD untested but should work. | untested, other Intel platforms work; AMD untested but should work. |
228 | 223 | ||
... | ... | If you're using a GM45 ThinkPad (e.g. X200, T400), don't try putting your | |
230 | 225 | laptop to sleep. S3 suspend/resume is broken. The intention is that this will | laptop to sleep. S3 suspend/resume is broken. The intention is that this will |
231 | 226 | be fixed before the next stable release. | be fixed before the next stable release. |
232 | 227 | ||
233 | E6430 VBT config | ||
234 | ---------------- | ||
228 | ### E6430 VBT config | ||
235 | 229 | ||
236 | 230 | See: <https://browse.libreboot.org/lbmk.git/commit/?id=a02c7e316370409e985fa634fec5a59326e3b4fd> | See: <https://browse.libreboot.org/lbmk.git/commit/?id=a02c7e316370409e985fa634fec5a59326e3b4fd> |
237 | 231 | ||
... | ... | now, you can build Libreboot from `lbmk.git`. See: | |
243 | 237 | [Building Libreboot from source](../docs/build/) | [Building Libreboot from source](../docs/build/) |
244 | 238 | ||
245 | 239 | Errata | Errata |
246 | ====== | ||
240 | ------- | ||
247 | 241 | ||
248 | 242 | Many modules were removed from GRUB, to save space in flash, but the ones that | Many modules were removed from GRUB, to save space in flash, but the ones that |
249 | 243 | are actually needed were carefully retained. | are actually needed were carefully retained. |
File site/news/libreboot20240126.md changed (mode: 100644) (index 243b518..343b9c3) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 26 January 2024 | % 26 January 2024 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Open source BIOS/UEFI firmware | ||
6 | ------------------------------ | ||
7 | 7 | ||
8 | 8 | *This* new release, Libreboot 20240126, released today 26 January 2024, is | *This* new release, Libreboot 20240126, released today 26 January 2024, is |
9 | 9 | a new *testing* release of Libreboot. The previous release was | a new *testing* release of Libreboot. The previous release was |
... | ... | firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) | |
32 | 32 | [supported](../docs/bsd/). | [supported](../docs/bsd/). |
33 | 33 | ||
34 | 34 | Testing needed! | Testing needed! |
35 | =============== | ||
35 | --------------- | ||
36 | 36 | ||
37 | 37 | The coreboot revision has been updated very recently. Make sure to | The coreboot revision has been updated very recently. Make sure to |
38 | 38 | have [external flashing gear](../docs/install/spi.md) ready just in case! | have [external flashing gear](../docs/install/spi.md) ready just in case! |
39 | 39 | ||
40 | 40 | Work done since last release | Work done since last release |
41 | ============================ | ||
41 | ---------------------------- | ||
42 | 42 | ||
43 | New mainboards supported | ||
44 | ------------------------ | ||
43 | ### New mainboards supported | ||
45 | 44 | ||
46 | 45 | These new mainboards have been added: | These new mainboards have been added: |
47 | 46 | ||
... | ... | These new mainboards have been added: | |
57 | 56 | ||
58 | 57 | Conversely, the [ThinkPad X201 was removed](x201.md). | Conversely, the [ThinkPad X201 was removed](x201.md). |
59 | 58 | ||
60 | S3 fixed on GM45 thinkpads | ||
61 | -------------------------- | ||
59 | ### S3 fixed on GM45 thinkpads | ||
62 | 60 | ||
63 | 61 | The new coreboot revision includes a fix within it that fixes S3 suspend/resume | The new coreboot revision includes a fix within it that fixes S3 suspend/resume |
64 | 62 | on GM45 thinkpads (e.g. X200, T400). This was broken in the previous Libreboot | on GM45 thinkpads (e.g. X200, T400). This was broken in the previous Libreboot |
65 | 63 | release, but now it works again. | release, but now it works again. |
66 | 64 | ||
67 | Modest code size reduction | ||
68 | -------------------------- | ||
65 | ### Modest code size reduction | ||
69 | 66 | ||
70 | 67 | See: [Libreboot build system audit 4](audit4.md) | See: [Libreboot build system audit 4](audit4.md) |
71 | 68 | ||
72 | 69 | These and subsequent changes are included in today's release. The build system | These and subsequent changes are included in today's release. The build system |
73 | 70 | has been further optimised, both in terms of code size and performance. | has been further optimised, both in terms of code size and performance. |
74 | 71 | ||
75 | GRUB 2.12 revision now used | ||
76 | --------------------------- | ||
72 | ### GRUB 2.12 revision now used | ||
77 | 73 | ||
78 | 74 | The previous Libreboot release used a revision from GRUB 2.12-rc1, but now | The previous Libreboot release used a revision from GRUB 2.12-rc1, but now |
79 | 75 | it uses the GRUB 2.12 released during December 2023. | it uses the GRUB 2.12 released during December 2023. |
80 | 76 | ||
81 | GRUB support for EFI System Partition | ||
82 | ------------------------------------- | ||
77 | ### GRUB support for EFI System Partition | ||
83 | 78 | ||
84 | 79 | We don't use UEFI on x86, but the GRUB config in Libreboot's GRUB payload | We don't use UEFI on x86, but the GRUB config in Libreboot's GRUB payload |
85 | 80 | has now been modified, to also scan `grub.cfg` from `EFI/` directories. | has now been modified, to also scan `grub.cfg` from `EFI/` directories. |
... | ... | changes first): | |
356 | 351 | re-used by other planned ports for Dell latitudes in lbmk. Patch courtesy of | re-used by other planned ports for Dell latitudes in lbmk. Patch courtesy of |
357 | 352 | Nicholas Chin. | Nicholas Chin. |
358 | 353 | ||
359 | Exact git log, relative to 20231106: | ||
354 | ### Exacit git log, relative to 20231106 | ||
360 | 355 | ||
361 | 356 | ``` | ``` |
362 | 357 | * 7f0ca545 Libreboot 20240126 | * 7f0ca545 Libreboot 20240126 |
... | ... | Exact git log, relative to 20231106: | |
562 | 557 | ``` | ``` |
563 | 558 | ||
564 | 559 | Errata | Errata |
565 | ====== | ||
560 | ------ | ||
566 | 561 | ||
567 | 562 | Vendorfile inject script will report an error when inserting for HP 820 G2, | Vendorfile inject script will report an error when inserting for HP 820 G2, |
568 | 563 | because the refcode is compressed via `-c lzma` option in cbfstool (or it is | because the refcode is compressed via `-c lzma` option in cbfstool (or it is |
File site/news/libreboot20240225.md changed (mode: 100644) (index 62f650c..758b857) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 25 February 2024 | % 25 February 2024 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Free software BIOS/UEFI | ||
6 | ----------------------- | ||
7 | 7 | ||
8 | 8 | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing |
9 | 9 | boot firmware that initialises the hardware in your computer, to then load an | boot firmware that initialises the hardware in your computer, to then load an |
... | ... | run just fine. If you spot any issues, please report them on Libreboot's bug | |
31 | 31 | tracker. | tracker. |
32 | 32 | ||
33 | 33 | Hardware supported in this release | Hardware supported in this release |
34 | ================================== | ||
34 | ---------------------------------- | ||
35 | 35 | ||
36 | 36 | This release supports the following hardware: | This release supports the following hardware: |
37 | 37 | ||
... | ... | This release supports the following hardware: | |
105 | 105 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
106 | 106 | ||
107 | 107 | Work done since last release | Work done since last release |
108 | ============================ | ||
108 | ---------------------------- | ||
109 | 109 | ||
110 | 110 | With the exception of pico-serprog and replacing flashrom with flashprog (more | With the exception of pico-serprog and replacing flashrom with flashprog (more |
111 | 111 | on this later), the current upstream revisions remain unchanged, but this | on this later), the current upstream revisions remain unchanged, but this |
112 | 112 | release has fixed a few issues and added more mainboards, relative to last | release has fixed a few issues and added more mainboards, relative to last |
113 | 113 | month's release. | month's release. |
114 | 114 | ||
115 | New mainboards | ||
116 | -------------- | ||
115 | ### New mainboards | ||
117 | 116 | ||
118 | 117 | * **HP EliteBook 8560w** - added to lbmk by Riku Viitanen, using the coreboot port | * **HP EliteBook 8560w** - added to lbmk by Riku Viitanen, using the coreboot port |
119 | 118 | written by Iru Cai, with Riku's MXM support added on top (more on this later) | written by Iru Cai, with Riku's MXM support added on top (more on this later) |
... | ... | New mainboards | |
135 | 134 | coreboot for review, fixing VGA decode on discrete graphics cards when the | coreboot for review, fixing VGA decode on discrete graphics cards when the |
136 | 135 | Broadwell MRC is used - this patch too is not yet included in Libreboot). | Broadwell MRC is used - this patch too is not yet included in Libreboot). |
137 | 136 | ||
138 | SeaBIOS MXM INT15H interrupt | ||
139 | ---------------------------- | ||
137 | ### SeaBIOS MXM INT15H interrupt | ||
140 | 138 | ||
141 | 139 | For Libreboot's new HP EliteBook 8560w support, MXM handling was added to | For Libreboot's new HP EliteBook 8560w support, MXM handling was added to |
142 | 140 | SeaBIOS. This was performed by Riku Viitanen, who also wrote this tool: | SeaBIOS. This was performed by Riku Viitanen, who also wrote this tool: |
... | ... | had a port for some time, but without the MXM support - for now, it is only | |
159 | 157 | available in SeaBIOS, so you must use *SeaBIOS* to run the VGA Option ROM (it | available in SeaBIOS, so you must use *SeaBIOS* to run the VGA Option ROM (it |
160 | 158 | cannot yet be done directly from coreboot). | cannot yet be done directly from coreboot). |
161 | 159 | ||
162 | U-Boot release script | ||
163 | --------------------- | ||
160 | ### U-Boot release script | ||
164 | 161 | ||
165 | 162 | The script at `script/update/release` now supports generating standalone | The script at `script/update/release` now supports generating standalone |
166 | 163 | U-Boot source archives, like so: | U-Boot source archives, like so: |
... | ... | than `release/`. Libreboot still provides U-Boot embedded within the larger | |
172 | 169 | source release archive, and does not yet actually provide U-Boot as a | source release archive, and does not yet actually provide U-Boot as a |
173 | 170 | standalone project, but some people may find this useful. | standalone project, but some people may find this useful. |
174 | 171 | ||
175 | Pico-serprog updates | ||
176 | -------------------- | ||
172 | ### Pico-serprog updates | ||
177 | 173 | ||
178 | 174 | Riku Viitanen added support for controlling multiple chip-selects. With the | Riku Viitanen added support for controlling multiple chip-selects. With the |
179 | 175 | new functionality, you can set unused chipselects high. This is useful when | new functionality, you can set unused chipselects high. This is useful when |
... | ... | Riku also increased the default drive strength to 12mA on all RP2024 boards, | |
191 | 187 | increasing reliabily when externally flashing certain mainboards (e.g. PCH | increasing reliabily when externally flashing certain mainboards (e.g. PCH |
192 | 188 | having low/no resistance on connections to the data lines for the flash). | having low/no resistance on connections to the data lines for the flash). |
193 | 189 | ||
194 | Flashprog now used, instead of flashrom | ||
195 | --------------------------------------- | ||
190 | ### Flashprog now used, instead of flashrom | ||
196 | 191 | ||
197 | 192 | Nico Huber was unfairly banned from participation in the flashrom project, and | Nico Huber was unfairly banned from participation in the flashrom project, and |
198 | 193 | went on to create a new project called [flashprog](https://flashprog.org/). The | went on to create a new project called [flashprog](https://flashprog.org/). The |
... | ... | new features and hardware functionality - for instance, it has code for handling | |
241 | 236 | Riku Viitanen's recent changes on the RP2040 serprog images, for pulling unused | Riku Viitanen's recent changes on the RP2040 serprog images, for pulling unused |
242 | 237 | chipselects high (useful on machines like ThinkPad W541 for external flashing). | chipselects high (useful on machines like ThinkPad W541 for external flashing). |
243 | 238 | ||
244 | Context regarding flashprog vs flashrom | ||
245 | --------------------------------------- | ||
239 | ### Context regarding flashprog vs flashrom | ||
246 | 240 | ||
247 | 241 | It was suggested by a reader, on 27 March 2024, that the lack of context made | It was suggested by a reader, on 27 March 2024, that the lack of context made |
248 | 242 | judging this situation very difficult. Therefore, the following links have | judging this situation very difficult. Therefore, the following links have |
File site/news/libreboot20240504.md changed (mode: 100644) (index 3b519f6..6198a04) | |||
... | ... | reference, but there were problems with this release. Please instead use | |
7 | 7 | the [Libreboot 20240612 release](libreboot20240612.md).** | the [Libreboot 20240612 release](libreboot20240612.md).** |
8 | 8 | ||
9 | 9 | Introduction | Introduction |
10 | ============ | ||
10 | ------------- | ||
11 | 11 | ||
12 | 12 | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing |
13 | 13 | boot firmware that initialises the hardware in your computer, to then load an | boot firmware that initialises the hardware in your computer, to then load an |
... | ... | The main purpose of this release has been to fix bugs. A lot more work will now | |
55 | 55 | go into Libreboot for another release in the summer of 2024. | go into Libreboot for another release in the summer of 2024. |
56 | 56 | ||
57 | 57 | Hardware supported in this release | Hardware supported in this release |
58 | ================================== | ||
58 | ---------------------------------- | ||
59 | 59 | ||
60 | 60 | This release supports the following hardware: | This release supports the following hardware: |
61 | 61 | ||
... | ... | This release supports the following hardware: | |
130 | 130 | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) | - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) |
131 | 131 | ||
132 | 132 | New mainboard added | New mainboard added |
133 | ==================== | ||
133 | ------------------- | ||
134 | 134 | ||
135 | 135 | This release adds support for the following mainboard: | This release adds support for the following mainboard: |
136 | 136 | ||
137 | 137 | * Dell Latitude E5420, courtesy of Nicholas Chin | * Dell Latitude E5420, courtesy of Nicholas Chin |
138 | 138 | ||
139 | 139 | Dell Latitude laptops: S3 resume fixed | Dell Latitude laptops: S3 resume fixed |
140 | ================================ | ||
140 | ---------------------------------- | ||
141 | 141 | ||
142 | 142 | Nicholas Chin sent in a patch just before the release, fixing suspend/resume | Nicholas Chin sent in a patch just before the release, fixing suspend/resume |
143 | 143 | on sandy bridge and ivy bridge Dell laptops. According to him, resume on open | on sandy bridge and ivy bridge Dell laptops. According to him, resume on open |
144 | 144 | is still broken and therefore disabled, but pressing the power button works. | is still broken and therefore disabled, but pressing the power button works. |
145 | 145 | ||
146 | 146 | Work done since Libreboot 20230625 | Work done since Libreboot 20230625 |
147 | ============================ | ||
147 | ------------------------------- | ||
148 | 148 | ||
149 | 149 | To know the full set of differences between Libreboot 20230625 | To know the full set of differences between Libreboot 20230625 |
150 | 150 | and Libreboot 20240405, first you must read the changelogs of those interim | and Libreboot 20240405, first you must read the changelogs of those interim |
... | ... | are highlighted in bold: | |
275 | 275 | * Enable the serial console by default, on AMD boards (kgpe-d16, kcma-d8) | * Enable the serial console by default, on AMD boards (kgpe-d16, kcma-d8) |
276 | 276 | ||
277 | 277 | Exact git log (versus Libreboot 20240225) | Exact git log (versus Libreboot 20240225) |
278 | ====================================== | ||
278 | ------------------------------------ | ||
279 | 279 | ||
280 | 280 | The following is an exact log of commits in the Git repository, on the master | The following is an exact log of commits in the Git repository, on the master |
281 | 281 | branch, relative to the previous January 2024 release. There are 99 changes: | branch, relative to the previous January 2024 release. There are 99 changes: |
... | ... | You may find archives of this release, by looking at the Libreboot download | |
409 | 409 | page. Support is available on IRC or Reddit if you need help. | page. Support is available on IRC or Reddit if you need help. |
410 | 410 | ||
411 | 411 | Disabled boards | Disabled boards |
412 | =============== | ||
412 | --------------- | ||
413 | 413 | ||
414 | 414 | Libreboot's build system can be configured to exclude certain boards in | Libreboot's build system can be configured to exclude certain boards in |
415 | 415 | release archives, while still permitting them to be re-built. | release archives, while still permitting them to be re-built. |
... | ... | is believed to be stable and has been tested repeatedly) | |
431 | 431 | *All other boards have ROM images in this release.* | *All other boards have ROM images in this release.* |
432 | 432 | ||
433 | 433 | eDP mods (ThinkPad X230/X220) | eDP mods (ThinkPad X230/X220) |
434 | ========================== | ||
434 | -------------------------- | ||
435 | 435 | ||
436 | 436 | The `x230edp_12mb` and `x220edp_8mb` targets were removed, but | The `x230edp_12mb` and `x220edp_8mb` targets were removed, but |
437 | 437 | the `x230_12mb` and `x220_8mb` targets were retained. Only the original | the `x230_12mb` and `x220_8mb` targets were retained. Only the original |
... | ... | to the Libreboot project. | |
457 | 457 | That is all. | That is all. |
458 | 458 | ||
459 | 459 | Errata | Errata |
460 | ====== | ||
460 | ------ | ||
461 | 461 | ||
462 | 462 | See: <https://codeberg.org/libreboot/lbmk/issues/216> | See: <https://codeberg.org/libreboot/lbmk/issues/216> |
463 | 463 |
File site/news/libreboot20240612.md changed (mode: 100644) (index 6020bde..6d1d1d2) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
7 | 7 | there, before flashing. For posterity, | there, before flashing. For posterity, |
8 | 8 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
9 | 9 | ||
10 | Introduction | ||
11 | ============ | ||
10 | Open source BIOS/UEFI firmware | ||
11 | ----------------------------- | ||
12 | 12 | ||
13 | 13 | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing |
14 | 14 | boot firmware that initialises the hardware in your computer, to then load an | boot firmware that initialises the hardware in your computer, to then load an |
... | ... | this release, in addition to a few minor fixes made since that date. The audit | |
40 | 40 | was completed on 9 June 2024 and today is 12 June 2024. The release came unstuck. | was completed on 9 June 2024 and today is 12 June 2024. The release came unstuck. |
41 | 41 | ||
42 | 42 | Changes since Audit 5 | Changes since Audit 5 |
43 | ===================== | ||
43 | -------------------- | ||
44 | 44 | ||
45 | 45 | Audit 5 was only recent, and forms most of the changes in this release, so look | Audit 5 was only recent, and forms most of the changes in this release, so look |
46 | 46 | further down for a list of those changes or read [the audit 5 page](audit5.md). | further down for a list of those changes or read [the audit 5 page](audit5.md). |
... | ... | precisely to avoid any potential issues if a board doesn't need it. The NVMe | |
74 | 74 | patch has been extensively tested, on all of the boards that actually have it. | patch has been extensively tested, on all of the boards that actually have it. |
75 | 75 | ||
76 | 76 | Audit 5 changes | Audit 5 changes |
77 | =============== | ||
77 | --------------- | ||
78 | 78 | ||
79 | 79 | Since the recent audit 5 changes are included in this release, the changelog | Since the recent audit 5 changes are included in this release, the changelog |
80 | 80 | of that audit has simply been copied for sake of efficiency. Firstly: | of that audit has simply been copied for sake of efficiency. Firstly: |
81 | 81 | ||
82 | Modest code size reduction | ||
83 | -------------------------- | ||
82 | ### Modest code size reduction | ||
84 | 83 | ||
85 | 84 | There are 1482 lines of shell script in the build system, versus 1680 in the | There are 1482 lines of shell script in the build system, versus 1680 in the |
86 | 85 | Libreboot 20240504 release. Libreboot's build system is written purely in | Libreboot 20240504 release. Libreboot's build system is written purely in |
... | ... | This is a difference of 198 lines, or a 12% reduction. Despite the reduction, | |
90 | 89 | numerous features have been added and a large number of bugs were fixed. | numerous features have been added and a large number of bugs were fixed. |
91 | 90 | ||
92 | 91 | Summarised list of changes | Summarised list of changes |
93 | ========================== | ||
92 | -------------------------- | ||
94 | 93 | ||
95 | 94 | Changes are in order per category, from newest to oldest: | Changes are in order per category, from newest to oldest: |
96 | 95 | ||
97 | Feature changes | ||
98 | --------------- | ||
96 | ### Feature changes | ||
99 | 97 | ||
100 | 98 | * **Download crossgcc tarballs as dependencies, when cloning coreboot.** We | * **Download crossgcc tarballs as dependencies, when cloning coreboot.** We |
101 | 99 | previously relied on the coreboot build system, which automatically fetches | previously relied on the coreboot build system, which automatically fetches |
... | ... | Feature changes | |
230 | 228 | * Removed all status checks from script/roms (formerly script/build/roms), | * Removed all status checks from script/roms (formerly script/build/roms), |
231 | 229 | because it's better to document this instead, and rely on testing regardless. | because it's better to document this instead, and rely on testing regardless. |
232 | 230 | ||
233 | Bug fixes | ||
234 | --------- | ||
231 | ### Bug fixes | ||
235 | 232 | ||
236 | 233 | Some of these changes fix actual issues that were found in testing, while | Some of these changes fix actual issues that were found in testing, while |
237 | 234 | others were fixed *before* being triggered/reported and are thus *preventative | others were fixed *before* being triggered/reported and are thus *preventative |
... | ... | The changes are, from newest to earliest: | |
466 | 463 | * Main build script: exit (with error status) if not running directly from | * Main build script: exit (with error status) if not running directly from |
467 | 464 | the root of the lbmk work directory. | the root of the lbmk work directory. |
468 | 465 | ||
469 | General code cleanup | ||
470 | -------------------- | ||
466 | ### General code cleanup | ||
471 | 467 | ||
472 | 468 | In addition to *general* very sweeping code cleanup, condensing code lines | In addition to *general* very sweeping code cleanup, condensing code lines |
473 | 469 | where possible and so on: | where possible and so on: |
... | ... | where possible and so on: | |
593 | 589 | * script/build/roms: split up `main()` into multiple smaller functions | * script/build/roms: split up `main()` into multiple smaller functions |
594 | 590 | ||
595 | 591 | Revision updates | Revision updates |
596 | ================ | ||
592 | ---------------- | ||
597 | 593 | ||
598 | 594 | Some revisions were updated as part of standard routine, but happened to be | Some revisions were updated as part of standard routine, but happened to be |
599 | 595 | done during this audit. Those updates are as follows: | done during this audit. Those updates are as follows: |
600 | 596 | ||
601 | SeaBIOS | ||
602 | ------- | ||
597 | ### SeaBIOS | ||
603 | 598 | ||
604 | 599 | Bump SeaBIOS to revision `e5f2e4c69643bc3cd385306a9e5d29e11578148c`, which has | Bump SeaBIOS to revision `e5f2e4c69643bc3cd385306a9e5d29e11578148c`, which has |
605 | 600 | these changes relative to the old one: | these changes relative to the old one: |
... | ... | these changes relative to the old one: | |
629 | 624 | * a6ed6b70 limit address space used for pci devices. | * a6ed6b70 limit address space used for pci devices. |
630 | 625 | ``` | ``` |
631 | 626 | ||
632 | Flashprog | ||
633 | --------- | ||
627 | ### Flashprog | ||
634 | 628 | ||
635 | 629 | Updated to revision 5b4fdd1 from 2 May 2024, rebasing the MX workaround patch. | Updated to revision 5b4fdd1 from 2 May 2024, rebasing the MX workaround patch. |
636 | 630 | ||
... | ... | Flashrom, lead by Nico Huber after a dispute with the new leadership of | |
701 | 695 | Flashrom, and it was felt that Flashprog is a better choice for Libreboot. | Flashrom, and it was felt that Flashprog is a better choice for Libreboot. |
702 | 696 | ||
703 | 697 | Git log | Git log |
704 | ======= | ||
698 | ------ | ||
705 | 699 | ||
706 | 700 | This entire set of changelogs is based on the precise Git history in lbmk, | This entire set of changelogs is based on the precise Git history in lbmk, |
707 | 701 | relative to Libreboot 20240504 which is from where the audit began. | relative to Libreboot 20240504 which is from where the audit began. |
... | ... | The latest changes are listed first, going all the way down to earlier changes: | |
946 | 940 | This is 211 changes, since Libreboot 20240504. | This is 211 changes, since Libreboot 20240504. |
947 | 941 | ||
948 | 942 | Errata | Errata |
949 | ====== | ||
943 | ------ | ||
950 | 944 | ||
951 | Revision 1 | ||
952 | ---------- | ||
945 | ### Revision 1 | ||
953 | 946 | ||
954 | 947 | A bug was found, where booting GRUB (payload) on Haswell ThinkPads with a USB | A bug was found, where booting GRUB (payload) on Haswell ThinkPads with a USB |
955 | 948 | device plugged in would sometimes cause GRUB to hang. This was fixed with the | device plugged in would sometimes cause GRUB to hang. This was fixed with the |
... | ... | auto-load when GRUB starts. | |
980 | 973 | A full investigation is still required, but this workaround fixes the issue as | A full investigation is still required, but this workaround fixes the issue as |
981 | 974 | far as the user is concerned. | far as the user is concerned. |
982 | 975 | ||
983 | Revision 2 | ||
984 | ---------- | ||
976 | ### Revision 2 | ||
985 | 977 | ||
986 | 978 | NOTE: Source code archive not available for rev2, because another revision | NOTE: Source code archive not available for rev2, because another revision |
987 | 979 | was made that also includes the rev2 change; a 'rev3` source archive is | was made that also includes the rev2 change; a 'rev3` source archive is |
... | ... | which caused issues when flashing. The | |
993 | 985 | file `libreboot-20240612rev2_hp8200sff_4mb.tar.xz` is available, | file `libreboot-20240612rev2_hp8200sff_4mb.tar.xz` is available, |
994 | 986 | replacing `libreboot-20240612_hp8200sff_4mb.tar.xz`, on Libreboot rsync. | replacing `libreboot-20240612_hp8200sff_4mb.tar.xz`, on Libreboot rsync. |
995 | 987 | ||
996 | Revision 3 | ||
997 | ---------- | ||
988 | ### Revision 3 | ||
998 | 989 | ||
999 | 990 | Removed `util/autoport/`, becaues it's not required in release archives. | Removed `util/autoport/`, becaues it's not required in release archives. |
1000 | 991 |
File site/news/libreboot20241008.md changed (mode: 100644) (index c513862..20ac041) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
10 | 10 | there, before flashing. For posterity, | there, before flashing. For posterity, |
11 | 11 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
12 | 12 | ||
13 | Introduction | ||
14 | ============ | ||
13 | Open source BIOS/UEFI firmware | ||
14 | -------------------------- | ||
15 | 15 | ||
16 | 16 | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing | Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing |
17 | 17 | boot firmware that initialises the hardware in your computer, to then load an | boot firmware that initialises the hardware in your computer, to then load an |
... | ... | this release, and several changes have been made since then; for simplicity, thi | |
33 | 33 | page is essentially identical to the audit 6 changelog, but with the additional | page is essentially identical to the audit 6 changelog, but with the additional |
34 | 34 | changes referenced. | changes referenced. |
35 | 35 | ||
36 | The build system is smaller | ||
37 | --------------------------- | ||
36 | ### The build system is smaller | ||
38 | 37 | ||
39 | 38 | The focus of audit6 was to reduce the code size, making the build system more | The focus of audit6 was to reduce the code size, making the build system more |
40 | 39 | efficient. The build system was 1482 source lines (of shell scripting) in the | efficient. The build system was 1482 source lines (of shell scripting) in the |
... | ... | Several bug fixes were also made, in addition to new board support, since the | |
45 | 44 | Libreboot 20240612 release. | Libreboot 20240612 release. |
46 | 45 | ||
47 | 46 | Summarised list of changes | Summarised list of changes |
48 | ========================== | ||
47 | ------------------------- | ||
49 | 48 | ||
50 | 49 | The most interesting changes are marked in **bold**. "Interesting" means that | The most interesting changes are marked in **bold**. "Interesting" means that |
51 | 50 | the change greatly improves the usefulness/reliability of Libreboot, or that it | the change greatly improves the usefulness/reliability of Libreboot, or that it |
... | ... | affects the user in a profound and noticeable way. | |
53 | 52 | ||
54 | 53 | Changes are in order per category, from newest to oldest: | Changes are in order per category, from newest to oldest: |
55 | 54 | ||
56 | Board support | ||
57 | ------------- | ||
55 | ### Board support | ||
58 | 56 | ||
59 | 57 | The following boards have been added since the Libreboot 20240612 release: | The following boards have been added since the Libreboot 20240612 release: |
60 | 58 | ||
... | ... | The following boards have been added since the Libreboot 20240612 release: | |
69 | 67 | by 3mdeb, and I added the config for it to Libreboot, based on the Dell | by 3mdeb, and I added the config for it to Libreboot, based on the Dell |
70 | 68 | Precision T1650 config) | Precision T1650 config) |
71 | 69 | ||
72 | About the Dell Latitude ports | ||
73 | ----------------------------- | ||
70 | ### About the Dell Latitude ports | ||
74 | 71 | ||
75 | 72 | These are yet more Ivybridge (Intel 3rd gen) and Sandybridge (Intel 2nd gen) | These are yet more Ivybridge (Intel 3rd gen) and Sandybridge (Intel 2nd gen) |
76 | 73 | mainboards, using the same EC as on other Latitudes supported in Libreboot, so | mainboards, using the same EC as on other Latitudes supported in Libreboot, so |
... | ... | they are all internally flashable from the factory firmware. | |
79 | 76 | Installation instructions, pertaining to Dell Latitude models, can be found on | Installation instructions, pertaining to Dell Latitude models, can be found on |
80 | 77 | the [Dell Latitude page](../docs/install/latitude.md). | the [Dell Latitude page](../docs/install/latitude.md). |
81 | 78 | ||
82 | About the PlayStation BIOS | ||
83 | -------------------------- | ||
79 | ### About the PlayStation BIOS | ||
84 | 80 | ||
85 | 81 | This is *not* coreboot, but it is a fully free/opensource BIOS with source code | This is *not* coreboot, but it is a fully free/opensource BIOS with source code |
86 | 82 | under MIT license, provided by | under MIT license, provided by |
... | ... | of October 2024 or thereabouts. I'm planning to ship the *PCSX-Redux* BIOS by | |
104 | 100 | default, in the new project, which is why Libreboot has it, because I'll | default, in the new project, which is why Libreboot has it, because I'll |
105 | 101 | reference Libreboot from that project. | reference Libreboot from that project. |
106 | 102 | ||
107 | About the OptiPlex 3050 Micro port | ||
108 | ------------------------- | ||
103 | ### About the OptiPlex 3050 Micro port | ||
109 | 104 | ||
110 | 105 | Mate Kukri's excellent *[deguard](https://review.coreboot.org/admin/repos/deguard,general)* | Mate Kukri's excellent *[deguard](https://review.coreboot.org/admin/repos/deguard,general)* |
111 | 106 | utility is automatically used at build time, | utility is automatically used at build time, |
... | ... | Because of the SeaBIOS issue, an exception is made: this board executes | |
146 | 141 | GRUB first, directly from coreboot. The usual policy, since Libreboot 20240612, | GRUB first, directly from coreboot. The usual policy, since Libreboot 20240612, |
147 | 142 | is to prefer *SeaGRUB* (SeaBIOS first, and execute GRUB from SeaBIOS). | is to prefer *SeaGRUB* (SeaBIOS first, and execute GRUB from SeaBIOS). |
148 | 143 | ||
149 | Feature changes | ||
150 | --------------- | ||
144 | ### Feature changes | ||
151 | 145 | ||
152 | 146 | The changes are as follows: | The changes are as follows: |
153 | 147 | ||
... | ... | The changes are as follows: | |
367 | 361 | possible to create such a broken setup. Libreboot mitigates this fact, by | possible to create such a broken setup. Libreboot mitigates this fact, by |
368 | 362 | avoiding such configurations. | avoiding such configurations. |
369 | 363 | ||
370 | Configuration changes | ||
371 | --------------------- | ||
364 | ### Configuration changes | ||
372 | 365 | ||
373 | 366 | This pertains to anything under `config/`, for any changes that are of note, | This pertains to anything under `config/`, for any changes that are of note, |
374 | 367 | but it does not pertain to *revisions* for specific projects, nor does it | but it does not pertain to *revisions* for specific projects, nor does it |
... | ... | The changes are as follows: | |
417 | 410 | which is loaded per-project on multi-tree projects, before each target | which is loaded per-project on multi-tree projects, before each target |
418 | 411 | file. It allows easier configuration tree-wide on multi-tree projects. | file. It allows easier configuration tree-wide on multi-tree projects. |
419 | 412 | ||
420 | Bug fixes | ||
421 | --------- | ||
413 | ### Bug fixes | ||
422 | 414 | ||
423 | 415 | The changes are as follows: | The changes are as follows: |
424 | 416 | ||
... | ... | The changes are as follows: | |
635 | 627 | could create situations where the user can longer run lbmk without intervention | could create situations where the user can longer run lbmk without intervention |
636 | 628 | such as changing permission on certain files. Avoid the issue entirely. | such as changing permission on certain files. Avoid the issue entirely. |
637 | 629 | ||
638 | General code cleanup | ||
639 | -------------------- | ||
630 | ### General code cleanup | ||
640 | 631 | ||
641 | 632 | Extensive code cleanup has been performed, as was one of the main focuses in | Extensive code cleanup has been performed, as was one of the main focuses in |
642 | 633 | this release (in addition to newer hardware support): | this release (in addition to newer hardware support): |
... | ... | The changes are as follows: | |
992 | 983 | * `script/roms`: shorter variable names, condensed several functions. | * `script/roms`: shorter variable names, condensed several functions. |
993 | 984 | ||
994 | 985 | Revision updates | Revision updates |
995 | ================ | ||
986 | ---------------- | ||
996 | 987 | ||
997 | Coreboot | ||
998 | -------- | ||
988 | ### Coreboot | ||
999 | 989 | ||
1000 | 990 | The `default` tree was updated to commit ID `97bc693ab` from 29 July 2024. | The `default` tree was updated to commit ID `97bc693ab` from 29 July 2024. |
1001 | 991 | Several patches were merged upstream and therefore no longer needed in lbmk. | Several patches were merged upstream and therefore no longer needed in lbmk. |
... | ... | a single `fam15h` tree. This contains the ASUS KGPE-D16 and KCMA-D8 ports, | |
1015 | 1005 | based on coreboot's `4.11_branch` tree, with Libreboot's special build fixes | based on coreboot's `4.11_branch` tree, with Libreboot's special build fixes |
1016 | 1006 | that make it compile on modern distros, such as Debian Sid or Arch Linux. | that make it compile on modern distros, such as Debian Sid or Arch Linux. |
1017 | 1007 | ||
1018 | U-Boot | ||
1019 | ------ | ||
1008 | ### U-Boot | ||
1020 | 1009 | ||
1021 | 1010 | Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted | Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted |
1022 | 1011 | a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` | a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` |
... | ... | Chromebooks. Several improvements have been merged upstream, like Alper's | |
1024 | 1013 | patches for Qemu, so these patches have been dropped in lbmk because they're | patches for Qemu, so these patches have been dropped in lbmk because they're |
1025 | 1014 | now included by default, in the new U-Boot revision. | now included by default, in the new U-Boot revision. |
1026 | 1015 | ||
1027 | GRUB | ||
1028 | ---- | ||
1016 | ### GRUB | ||
1029 | 1017 | ||
1030 | 1018 | Updated the revision to commit ID b53ec06a1 from 17 June 2024. This fixes | Updated the revision to commit ID b53ec06a1 from 17 June 2024. This fixes |
1031 | 1019 | several bugs in the LUKS implementation. Several virtual memory fixes, and | several bugs in the LUKS implementation. Several virtual memory fixes, and |
1032 | 1020 | numerous fixes to file system drivers in the GRUB kernel. | numerous fixes to file system drivers in the GRUB kernel. |
1033 | 1021 | ||
1034 | SeaBIOS | ||
1035 | ------- | ||
1022 | ### SeaBIOS | ||
1036 | 1023 | ||
1037 | 1024 | Updated the revision to commit ID `ec0bc256` from 24 June 2024. This brings | Updated the revision to commit ID `ec0bc256` from 24 June 2024. This brings |
1038 | 1025 | in only a single change: | in only a single change: |
... | ... | in only a single change: | |
1048 | 1035 | This fixes buggy handling for 32-bit (i686) hosts, when allocating memory | This fixes buggy handling for 32-bit (i686) hosts, when allocating memory |
1049 | 1036 | for the PCI devices. | for the PCI devices. |
1050 | 1037 | ||
1051 | Flashprog | ||
1052 | --------- | ||
1038 | ### Flashprog | ||
1053 | 1039 | ||
1054 | 1040 | Updated the revision to commit ID `639d563` from 2 August 2024. | Updated the revision to commit ID `639d563` from 2 August 2024. |
1055 | 1041 | ||
1056 | PCSX Redux | ||
1057 | ---------- | ||
1042 | ### PCSX Redux | ||
1058 | 1043 | ||
1059 | 1044 | This was added git commit ID `6ec5348058413619b290b069adbdae68180ce8c0`. It is | This was added git commit ID `6ec5348058413619b290b069adbdae68180ce8c0`. It is |
1060 | 1045 | a *Sony PlayStation* emulator, but we only need one part of it: the BIOS. | a *Sony PlayStation* emulator, but we only need one part of it: the BIOS. |
... | ... | the open BIOS image, which is compatible with every PlayStation emulator and | |
1066 | 1051 | also real PlayStations (soldering required). | also real PlayStations (soldering required). |
1067 | 1052 | ||
1068 | 1053 | Git log | Git log |
1069 | ======= | ||
1054 | ------- | ||
1070 | 1055 | ||
1071 | 1056 | This git log covers all changes in this audit, relative to Libreboot 20240612. | This git log covers all changes in this audit, relative to Libreboot 20240612. |
1072 | 1057 |
File site/news/libreboot20241206.md changed (mode: 100644) (index a76d37c..0c9fe5e) | |||
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
19 | 19 | there, before flashing. For posterity, | there, before flashing. For posterity, |
20 | 20 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
21 | 21 | ||
22 | Introduction | ||
23 | ============ | ||
22 | Open source BIOS/UEFI firmware | ||
23 | ---------------------------- | ||
24 | 24 | ||
25 | 25 | <img tabindex=1 class="r" src="https://av.libreboot.org/t480/t480.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480.jpg" /></span> | <img tabindex=1 class="r" src="https://av.libreboot.org/t480/t480.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480.jpg" /></span> |
26 | 26 | ||
... | ... | and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) | |
39 | 39 | or [GRUB](https://www.gnu.org/software/grub/) to boot your operating | or [GRUB](https://www.gnu.org/software/grub/) to boot your operating |
40 | 40 | system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). | system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). |
41 | 41 | ||
42 | U-Boot UEFI payload on x86\_64 | ||
43 | ------------------------------ | ||
42 | ### U-Boot UEFI payload on x86\_64 | ||
44 | 43 | ||
45 | 44 | For Libreboot 20241206, today's release, U-Boot is *also* provided as an | For Libreboot 20241206, today's release, U-Boot is *also* provided as an |
46 | 45 | optional coreboot payload on x86 machines. This provides a sensible UEFI | optional coreboot payload on x86 machines. This provides a sensible UEFI |
... | ... | on fixing bugs and in general polishing, though several interesting features | |
60 | 59 | have been added, in addition to numerous new mainboards. | have been added, in addition to numerous new mainboards. |
61 | 60 | ||
62 | 61 | Summarised list of changes | Summarised list of changes |
63 | ========================== | ||
62 | ------------------------- | ||
64 | 63 | ||
65 | Board support | ||
66 | ------------- | ||
64 | ### Board support | ||
67 | 65 | ||
68 | 66 | The following boards have been added since the Libreboot 20241008 release: | The following boards have been added since the Libreboot 20241008 release: |
69 | 67 | ||
... | ... | The following boards have been added since the Libreboot 20241008 release: | |
78 | 76 | * **[Dell OptiPlex 780 MT](../docs/install/dell780.md)** support, implemented by | * **[Dell OptiPlex 780 MT](../docs/install/dell780.md)** support, implemented by |
79 | 77 | Nicholas Chin with testing and hardware logs provided by Lorenzo Aloe. | Nicholas Chin with testing and hardware logs provided by Lorenzo Aloe. |
80 | 78 | ||
81 | Revision updates | ||
82 | ================ | ||
79 | ### Revision updates | ||
83 | 80 | ||
84 | 81 | In descending order from latest changes to earliest changes: | In descending order from latest changes to earliest changes: |
85 | 82 | ||
... | ... | In descending order from latest changes to earliest changes: | |
103 | 100 | * Bumped flashrom to revision d128a0a, which includes a fix for Macronix flash | * Bumped flashrom to revision d128a0a, which includes a fix for Macronix flash |
104 | 101 | chips on ThinkPad W500 whereby it had previously used incorrect erase commands. | chips on ThinkPad W500 whereby it had previously used incorrect erase commands. |
105 | 102 | ||
106 | Feature changes | ||
107 | --------------- | ||
103 | ### Feature changes | ||
108 | 104 | ||
109 | 105 | In descending order from latest changes to earliest changes: | In descending order from latest changes to earliest changes: |
110 | 106 | ||
... | ... | In descending order from latest changes to earliest changes: | |
139 | 135 | on mobile graphics cards. This was used when implementing MXM support on | on mobile graphics cards. This was used when implementing MXM support on |
140 | 136 | the HP EliteBook 8560w. | the HP EliteBook 8560w. |
141 | 137 | ||
142 | Configuration changes | ||
143 | --------------------- | ||
138 | ### Configuration changes | ||
144 | 139 | ||
145 | 140 | In descending order from the latest changes to the earliest changes: | In descending order from the latest changes to the earliest changes: |
146 | 141 | ||
... | ... | In descending order from the latest changes to the earliest changes: | |
173 | 168 | machines can make use of 8th-gen Coffee Lake CPUs, which offer greater | machines can make use of 8th-gen Coffee Lake CPUs, which offer greater |
174 | 169 | performance and power efficiency. | performance and power efficiency. |
175 | 170 | ||
176 | Bug fixes | ||
177 | --------- | ||
171 | ### Bug fixes | ||
178 | 172 | ||
179 | 173 | The following bug fixes have been merged (in descending order from the latest | The following bug fixes have been merged (in descending order from the latest |
180 | 174 | changes to the earliest changes): | changes to the earliest changes): |
... | ... | changes to the earliest changes): | |
236 | 230 | of it is much more robust**) | of it is much more robust**) |
237 | 231 | * Added missing `python3-devel` to Fedora 40 build dependencies. | * Added missing `python3-devel` to Fedora 40 build dependencies. |
238 | 232 | ||
239 | General code cleanup | ||
240 | -------------------- | ||
233 | ### General code cleanup | ||
241 | 234 | ||
242 | 235 | In descending order from the latest changes to the earliest changes: | In descending order from the latest changes to the earliest changes: |
243 | 236 | ||
... | ... | In descending order from the latest changes to the earliest changes: | |
250 | 243 | because lbmk now handles this outside of coreboot. | because lbmk now handles this outside of coreboot. |
251 | 244 | ||
252 | 245 | Git log | Git log |
253 | ======= | ||
246 | ------- | ||
254 | 247 | ||
255 | 248 | This log is relative to Libreboot 20241008: | This log is relative to Libreboot 20241008: |
256 | 249 |
File site/news/libreboot20241206rev8.md changed (mode: 100644) (index 5ee4c6e..e86d8c0) | |||
... | ... | Today's Libreboot 20241206 revision, which is the 8th revision in the Libreboot | |
7 | 7 | to Libreboot 20241206 revision 7 which was released on 18 December 2024. | to Libreboot 20241206 revision 7 which was released on 18 December 2024. |
8 | 8 | The *original* Libreboot 20241206 release came out on 6 December 2024. | The *original* Libreboot 20241206 release came out on 6 December 2024. |
9 | 9 | ||
10 | What is Libreboot? | ||
11 | ============ | ||
10 | Open source BIOS/UEFI firmware | ||
11 | ------------------------------ | ||
12 | 12 | ||
13 | 13 | <img tabindex=1 class="r" src="https://av.libreboot.org/t480/t480.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480.jpg" /></span> | <img tabindex=1 class="r" src="https://av.libreboot.org/t480/t480.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480.jpg" /></span> |
14 | 14 | ||
... | ... | system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). | |
30 | 30 | We also provide an experimental U-Boot setup on x86, as a coreboot payload for | We also provide an experimental U-Boot setup on x86, as a coreboot payload for |
31 | 31 | providing a minimal UEFI implementation. | providing a minimal UEFI implementation. |
32 | 32 | ||
33 | Regarding revision 8 | ||
34 | ==================== | ||
33 | ### Regarding revision 8 | ||
35 | 34 | ||
36 | 35 | Normally, revisions would only be documented on | Normally, revisions would only be documented on |
37 | 36 | the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md), but | the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md), but |
... | ... | You will find the tar archives (including sources and ROM images) for this | |
50 | 49 | release, in the *same* directory under `stable/20241206/` on release mirrors. | release, in the *same* directory under `stable/20241206/` on release mirrors. |
51 | 50 | The old archives (from rev6) were replaced entirely; rev7 was never released. | The old archives (from rev6) were replaced entirely; rev7 was never released. |
52 | 51 | ||
53 | Regarding revision 7 | ||
54 | -------------------- | ||
52 | ### Regarding revision 7 | ||
55 | 53 | ||
56 | 54 | The only meaningful addition in *revision 7* was the feature whereby T480/T480s | The only meaningful addition in *revision 7* was the feature whereby T480/T480s |
57 | 55 | ThunderBolt firmware can be separately downloaded, for external flashing instead | ThunderBolt firmware can be separately downloaded, for external flashing instead |
... | ... | YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions | |
63 | 61 | there, before flashing. For posterity, | there, before flashing. For posterity, |
64 | 62 | [here is the link again](../docs/install/ivy_has_common.md).** | [here is the link again](../docs/install/ivy_has_common.md).** |
65 | 63 | ||
66 | |||
67 | 64 | Summarised list of changes | Summarised list of changes |
68 | ========================== | ||
65 | ------------------------ | ||
69 | 66 | ||
70 | Board support | ||
71 | ------------- | ||
67 | ### Board support | ||
72 | 68 | ||
73 | 69 | RP2530 devices now supported in `pico-serprog`, e.g. Raspberry Pi Pico 2. | RP2530 devices now supported in `pico-serprog`, e.g. Raspberry Pi Pico 2. |
74 | 70 | ||
... | ... | The documentation has been updated, to reflect this improvement. Libreboot also | |
79 | 75 | now imports `picotool` which is now used to compile the UF2 binaries for | now imports `picotool` which is now used to compile the UF2 binaries for |
80 | 76 | installation, when building them from `pico-sdk`. | installation, when building them from `pico-sdk`. |
81 | 77 | ||
82 | Revision updates | ||
83 | ---------------- | ||
78 | ### Revision updates | ||
84 | 79 | ||
85 | 80 | In descending order from latest changes to earliest changes: | In descending order from latest changes to earliest changes: |
86 | 81 | ||
... | ... | In descending order from latest changes to earliest changes: | |
95 | 90 | * Bumped flashprog to revision eb2c041 (14 Nov 2024). This brings in several | * Bumped flashprog to revision eb2c041 (14 Nov 2024). This brings in several |
96 | 91 | important fixes from upstream. | important fixes from upstream. |
97 | 92 | ||
98 | Feature changes | ||
99 | --------------- | ||
93 | ### Feature changes | ||
100 | 94 | ||
101 | 95 | In descending order from latest changes to earliest changes: | In descending order from latest changes to earliest changes: |
102 | 96 | ||
... | ... | In descending order from latest changes to earliest changes: | |
136 | 130 | on any boards, nor will it be, on release images, but the user can do it | on any boards, nor will it be, on release images, but the user can do it |
137 | 131 | themselves when compiling from source. | themselves when compiling from source. |
138 | 132 | ||
139 | Configuration changes | ||
140 | --------------------- | ||
133 | ### Configuration changes | ||
141 | 134 | ||
142 | 135 | In descending order from the latest changes to the earliest changes: | In descending order from the latest changes to the earliest changes: |
143 | 136 | ||
... | ... | In descending order from the latest changes to the earliest changes: | |
146 | 139 | can turn it back on and build from source, if they wish, for a roughly 15 | can turn it back on and build from source, if they wish, for a roughly 15 |
147 | 140 | percent performance boost under highly multi-threaded workloads. | percent performance boost under highly multi-threaded workloads. |
148 | 141 | ||
149 | Bug fixes | ||
150 | --------- | ||
142 | ### Bug fixes | ||
151 | 143 | ||
152 | 144 | Several fixes were made to prevent build errors on the latest Debian Sid | Several fixes were made to prevent build errors on the latest Debian Sid |
153 | 145 | and Arch Linux, as of 6 January 2025. Fedora 41 was also tested, fixing | and Arch Linux, as of 6 January 2025. Fedora 41 was also tested, fixing |
... | ... | changes to the earliest changes): | |
258 | 250 | * `lib.sh`: Safer exit when running `./mk dependencies` (don't rely on the | * `lib.sh`: Safer exit when running `./mk dependencies` (don't rely on the |
259 | 251 | exit statuses of chained commands being zero). | exit statuses of chained commands being zero). |
260 | 252 | ||
261 | General code cleanup | ||
262 | -------------------- | ||
253 | ### General code cleanup | ||
263 | 254 | ||
264 | 255 | In descending order from the latest changes to the earliest changes: | In descending order from the latest changes to the earliest changes: |
265 | 256 | ||
... | ... | In descending order from the latest changes to the earliest changes: | |
273 | 264 | currently used by anything. | currently used by anything. |
274 | 265 | ||
275 | 266 | Git log | Git log |
276 | ======= | ||
267 | ------ | ||
277 | 268 | ||
278 | 269 | This log is relative to Libreboot 20241206 *revision 7*: | This log is relative to Libreboot 20241206 *revision 7*: |
279 | 270 | ||
... | ... | This log is relative to Libreboot 20241206 *revision 7*: | |
389 | 380 | This is roughly 100 changes. | This is roughly 100 changes. |
390 | 381 | ||
391 | 382 | Older revisions | Older revisions |
392 | ========= | ||
383 | -------------- | ||
393 | 384 | ||
394 | 385 | Please review the | Please review the |
395 | 386 | original [Libreboot 20241206 announcement](libreboot20241206.md), and | original [Libreboot 20241206 announcement](libreboot20241206.md), and |
396 | 387 | the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md). | the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md). |
397 | 388 | ||
398 | 389 | Formalised release schedule | Formalised release schedule |
399 | ================= | ||
390 | --------------- | ||
400 | 391 | ||
401 | 392 | UPDATE: the text of this section was removed on 17 January 2025. | UPDATE: the text of this section was removed on 17 January 2025. |
402 | 393 |
File site/news/microcode.md changed (mode: 100644) (index ad157d9..74319a0) | |||
... | ... | As I write this, I'm quite close to providing a new stable release of Libreboot. | |
11 | 11 | The final push to get it out the door is underway, with round-the-clock build | The final push to get it out the door is underway, with round-the-clock build |
12 | 12 | testing and general polishing. | testing and general polishing. |
13 | 13 | ||
14 | Introduction | ||
15 | ============ | ||
14 | Free as in freedom? | ||
15 | ------------------- | ||
16 | 16 | ||
17 | 17 | Firstly, what is microcode? In this context, CPU microcode is what configures | Firstly, what is microcode? In this context, CPU microcode is what configures |
18 | 18 | logic gates in the CPU to implement an instruction set. You can learn more | logic gates in the CPU to implement an instruction set. You can learn more |
... | ... | announced that Libreboot had re-added certain mitigations, working around bugs | |
50 | 50 | caused when microcode is removed on certain Intel GM45 platforms (e.g. X200 or | caused when microcode is removed on certain Intel GM45 platforms (e.g. X200 or |
51 | 51 | T400 ThinkPads). | T400 ThinkPads). |
52 | 52 | ||
53 | Why? | ||
54 | ---- | ||
53 | ### Why? | ||
55 | 54 | ||
56 | 55 | Freedom of choice, that's why. Libreboot's policy explicitly | Freedom of choice, that's why. Libreboot's policy explicitly |
57 | 56 | [states](policy.md#configuration), in the context of *adding* vendor files: | [states](policy.md#configuration), in the context of *adding* vendor files: |
... | ... | features. The CPU already has older, buggier microcode burned into mask ROM, | |
76 | 75 | so the choice is to either update it, or encounter more bugs. Regardless, | so the choice is to either update it, or encounter more bugs. Regardless, |
77 | 76 | this is a point of contention for some people. | this is a point of contention for some people. |
78 | 77 | ||
79 | How? | ||
80 | ---- | ||
78 | ### How? | ||
81 | 79 | ||
82 | 80 | The change was implemented by [this | The change was implemented by [this |
83 | 81 | patch](https://browse.libreboot.org/lbmk.git/commit/?id=f338697b96757977d2a14da00a91236595704fed) | patch](https://browse.libreboot.org/lbmk.git/commit/?id=f338697b96757977d2a14da00a91236595704fed) |
... | ... | ROM images there are named simply according to what is already | |
164 | 162 | the case. | the case. |
165 | 163 | ||
166 | 164 | Removing microcode also possible on older releases | Removing microcode also possible on older releases |
167 | ================================================== | ||
165 | --------------------------------------------------- | ||
168 | 166 | ||
169 | 167 | Libreboot releases *before* 20221214 excluded microcode by default, and did | Libreboot releases *before* 20221214 excluded microcode by default, and did |
170 | 168 | not provide ROMs *with* microcode. | not provide ROMs *with* microcode. |
File site/news/policy.de.md changed (mode: 100644) (index e7d553b..9d8136e) | |||
3 | 3 | % 4 January 2022 (updated 15 November 2022) | % 4 January 2022 (updated 15 November 2022) |
4 | 4 | ||
5 | 5 | Einleitung | Einleitung |
6 | ============ | ||
6 | ------------ | ||
7 | 7 | ||
8 | 8 | Dieser Artikel beschreibt die *Prinzipien* die das Libreboot Projekt definieren. | Dieser Artikel beschreibt die *Prinzipien* die das Libreboot Projekt definieren. |
9 | 9 | Für Informationen darüber *wie diese Prinzipien in der Praxis angewendet | Für Informationen darüber *wie diese Prinzipien in der Praxis angewendet |
... | ... | technische Informationen schau in die [Libreboot build system | |
33 | 33 | documentation](../docs/maintain/). | documentation](../docs/maintain/). |
34 | 34 | ||
35 | 35 | Derzeitiger Projektrahmen | Derzeitiger Projektrahmen |
36 | ===================== | ||
36 | ------------------------- | ||
37 | 37 | ||
38 | 38 | Das Libreboot Projekt ist besorgt um das was in den Haupt Boot Flash IC geht, | Das Libreboot Projekt ist besorgt um das was in den Haupt Boot Flash IC geht, |
39 | 39 | aber es gibt andere Firmware Teile welche in Betracht gezogen werden sollten, | aber es gibt andere Firmware Teile welche in Betracht gezogen werden sollten, |
... | ... | Die kritischsten hiervon sind: | |
45 | 45 | * HDD/SSD firmware | * HDD/SSD firmware |
46 | 46 | * Intel Management Engine / AMD PSP firmware | * Intel Management Engine / AMD PSP firmware |
47 | 47 | ||
48 | Was ist ein binärer Blob? | ||
49 | ---------------------- | ||
48 | ### Was ist ein binärer Blob? | ||
50 | 49 | ||
51 | 50 | Ein binärer Blob, in diesem Zusammenhang, ist jegliches Ausführbares für | Ein binärer Blob, in diesem Zusammenhang, ist jegliches Ausführbares für |
52 | 51 | welches kein Quelltext existiert, welchen Du nicht in einer angemessenen | welches kein Quelltext existiert, welchen Du nicht in einer angemessenen |
... | ... | Für Informationen über die Intel Management Engine und AMD PSP, schau unter | |
62 | 61 | FAQ. | FAQ. |
63 | 62 | ||
64 | 63 | Blob *reduction* policy | Blob *reduction* policy |
65 | ======================= | ||
64 | --------------------- | ||
66 | 65 | ||
67 | Default configurations | ||
68 | ---------------------- | ||
66 | ### Default configurations | ||
69 | 67 | ||
70 | 68 | Coreboot, upon which Libreboot is based, is mostly libre software but does | Coreboot, upon which Libreboot is based, is mostly libre software but does |
71 | 69 | require vendor files on some platforms. A most common example might be raminit | require vendor files on some platforms. A most common example might be raminit |
... | ... | Libreboot's pragmatic policies will inevitably result in more people becoming | |
126 | 124 | coreboot developers in the future, by acting as that crucial *bridge* between | coreboot developers in the future, by acting as that crucial *bridge* between |
127 | 125 | *it* and non-technical people who just need a bit of help to get started. | *it* and non-technical people who just need a bit of help to get started. |
128 | 126 | ||
129 | Configuration | ||
130 | ------------- | ||
127 | ### Configuration | ||
131 | 128 | ||
132 | 129 | The principles above should apply to *default* configurations. However, libreboot | The principles above should apply to *default* configurations. However, libreboot |
133 | 130 | is to be *configurable*, allowing the user to do whatever they like. | is to be *configurable*, allowing the user to do whatever they like. |
... | ... | problem! The goal of the libreboot project is simply to make coreboot more | |
142 | 139 | accessible for otherwise non-technical users. | accessible for otherwise non-technical users. |
143 | 140 | ||
144 | 141 | FREEDOM CATALOG | FREEDOM CATALOG |
145 | =============== | ||
142 | -------------- | ||
146 | 143 | ||
147 | 144 | A *[freedom status](../freedom-status.md)* page should also be made available, | A *[freedom status](../freedom-status.md)* page should also be made available, |
148 | 145 | educating people about the software freedom status on each machine supported by | educating people about the software freedom status on each machine supported by |
... | ... | exist, for example, the work done by Sam Zeloof and the Libre Silicon project: | |
178 | 175 | (Sam literally makes CPUs in his garage) | (Sam literally makes CPUs in his garage) |
179 | 176 | ||
180 | 177 | More detailed insight about microcode | More detailed insight about microcode |
181 | ===================================== | ||
178 | --------------------------------- | ||
182 | 179 | ||
183 | 180 | To be clear: it is preferable that microcode be free. | To be clear: it is preferable that microcode be free. |
184 | 181 | Not including CPU microcode updates is an absolute disaster for system | Not including CPU microcode updates is an absolute disaster for system |
... | ... | it literally behaves differently than it's supposed to, so software will have | |
229 | 226 | unpredictable bugs that could even cause data corruption - or worse. | unpredictable bugs that could even cause data corruption - or worse. |
230 | 227 | ||
231 | 228 | Why was this page written? | Why was this page written? |
232 | ========================== | ||
229 | -------------------------- | ||
233 | 230 | ||
234 | 231 | Many of the topics discussed here are actually hotly contested, by different | Many of the topics discussed here are actually hotly contested, by different |
235 | 232 | sections of the free software movement. Libreboot has taken a firm stance. | sections of the free software movement. Libreboot has taken a firm stance. |
File site/news/policy.md changed (mode: 100644) (index 07fc728..516855d) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 4 January 2022 (updated 15 November 2022) | % 4 January 2022 (updated 15 November 2022) |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Free as in freedom! | ||
6 | ----------------- | ||
7 | 7 | ||
8 | 8 | This article describes the *principles* that govern the Libreboot project. For | This article describes the *principles* that govern the Libreboot project. For |
9 | 9 | information about *how those principles are applied in practise*, please read | information about *how those principles are applied in practise*, please read |
... | ... | ideology and it is therefore (mostly) non-technical; for technical information, | |
31 | 31 | you can refer to the [Libreboot build system documentation](../docs/maintain/). | you can refer to the [Libreboot build system documentation](../docs/maintain/). |
32 | 32 | ||
33 | 33 | Current project scope | Current project scope |
34 | ===================== | ||
34 | --------------------- | ||
35 | 35 | ||
36 | 36 | The libreboot project is concerned with what goes in the main boot flash IC, but | The libreboot project is concerned with what goes in the main boot flash IC, but |
37 | 37 | there are other pieces of firmware to take into consideration, as covered | there are other pieces of firmware to take into consideration, as covered |
... | ... | Most critical of these are: | |
43 | 43 | * HDD/SSD firmware | * HDD/SSD firmware |
44 | 44 | * Intel Management Engine / AMD PSP firmware | * Intel Management Engine / AMD PSP firmware |
45 | 45 | ||
46 | What is a binary blob? | ||
47 | ---------------------- | ||
46 | ### What is a binary blob? | ||
48 | 47 | ||
49 | 48 | A binary blob, in this context, is any executable for which no source code | A binary blob, in this context, is any executable for which no source code |
50 | 49 | exists, that you cannot study and modify in a reasonable manner. By definition, | exists, that you cannot study and modify in a reasonable manner. By definition, |
... | ... | all such blobs are *proprietary* in nature, and should be avoided if possible. | |
53 | 52 | For information about Intel Management Engine and AMD PSP, refer to the FAQ. | For information about Intel Management Engine and AMD PSP, refer to the FAQ. |
54 | 53 | ||
55 | 54 | Blob *reduction* policy | Blob *reduction* policy |
56 | ======================= | ||
55 | --------------------- | ||
57 | 56 | ||
58 | Default configurations | ||
59 | ---------------------- | ||
57 | ### Default configurations | ||
60 | 58 | ||
61 | 59 | Coreboot, upon which Libreboot is based, is mostly libre software but does | Coreboot, upon which Libreboot is based, is mostly libre software but does |
62 | 60 | require certain vendor code on some platforms. A most common example might be raminit | require certain vendor code on some platforms. A most common example might be raminit |
... | ... | Libreboot's pragmatic policies will inevitably result in more people becoming | |
117 | 115 | coreboot developers in the future, by acting as that crucial *bridge* between | coreboot developers in the future, by acting as that crucial *bridge* between |
118 | 116 | *it* and non-technical people who just need a bit of help to get started. | *it* and non-technical people who just need a bit of help to get started. |
119 | 117 | ||
120 | Configuration | ||
121 | ------------- | ||
118 | ### Configuration | ||
122 | 119 | ||
123 | 120 | The principles above should apply to *default* configurations. However, libreboot | The principles above should apply to *default* configurations. However, libreboot |
124 | 121 | is to be *configurable*, allowing the user to do whatever they like. | is to be *configurable*, allowing the user to do whatever they like. |
... | ... | problem! The goal of the libreboot project is simply to make coreboot more | |
134 | 131 | accessible for otherwise non-technical users. | accessible for otherwise non-technical users. |
135 | 132 | ||
136 | 133 | Examples of Libreboot policy in action | Examples of Libreboot policy in action |
137 | ====================================== | ||
134 | ----------------------------------- | ||
138 | 135 | ||
139 | 136 | More information about this is also available on | More information about this is also available on |
140 | 137 | the [freedom status](../freedom-status.md) page. | the [freedom status](../freedom-status.md) page. |
... | ... | examples of how this very policy is implemented in Libreboot: | |
207 | 204 | operating of a free operating system. | operating of a free operating system. |
208 | 205 | ||
209 | 206 | FREEDOM CATALOG | FREEDOM CATALOG |
210 | =============== | ||
207 | -------------- | ||
211 | 208 | ||
212 | 209 | A *[freedom status](../freedom-status.md)* page should also be made available, | A *[freedom status](../freedom-status.md)* page should also be made available, |
213 | 210 | educating people about the software freedom status on each machine supported by | educating people about the software freedom status on each machine supported by |
... | ... | exist, for example, the work done by Sam Zeloof and the Libre Silicon project: | |
243 | 240 | (Sam literally makes CPUs in his garage) | (Sam literally makes CPUs in his garage) |
244 | 241 | ||
245 | 242 | More detailed insight about microcode | More detailed insight about microcode |
246 | ===================================== | ||
243 | --------------------------------- | ||
247 | 244 | ||
248 | 245 | To be clear: it is preferable that microcode be free. | To be clear: it is preferable that microcode be free. |
249 | 246 | Not including CPU microcode updates is an absolute disaster for system | Not including CPU microcode updates is an absolute disaster for system |
... | ... | it literally behaves differently than it's supposed to, so software will have | |
294 | 291 | unpredictable bugs that could even cause data corruption - or worse. | unpredictable bugs that could even cause data corruption - or worse. |
295 | 292 | ||
296 | 293 | Why was this page written? | Why was this page written? |
297 | ========================== | ||
294 | ---------------------------- | ||
298 | 295 | ||
299 | 296 | Firstly, observe the following graphic: | Firstly, observe the following graphic: |
300 | 297 |
File site/news/policy.uk.md changed (mode: 100644) (index 79893a3..4b7eef4) | |||
3 | 3 | % 4 січня 2022 року (оновлено 15 листопада 2022 року) | % 4 січня 2022 року (оновлено 15 листопада 2022 року) |
4 | 4 | ||
5 | 5 | Вступ | Вступ |
6 | ============ | ||
6 | ----- | ||
7 | 7 | ||
8 | 8 | У цій статті описано *принципи*, які керують проектом Libreboot. Щоб отримати | У цій статті описано *принципи*, які керують проектом Libreboot. Щоб отримати |
9 | 9 | інформацію про те, *як ці принципи застосовуються на практиці*, прочитайте | інформацію про те, *як ці принципи застосовуються на практиці*, прочитайте |
... | ... | coreboot*, приблизно так само, як *Alpine Linux* є дистр | |
30 | 30 | ви можете звернутися до [документації системи збірки Libreboot](../docs/maintain/). | ви можете звернутися до [документації системи збірки Libreboot](../docs/maintain/). |
31 | 31 | ||
32 | 32 | Поточний обсяг проекту | Поточний обсяг проекту |
33 | ===================== | ||
33 | ---------------------- | ||
34 | 34 | ||
35 | 35 | Проект libreboot стосується того, що входить до основної мікросхеми завантажувальної флеш-пам'яті, | Проект libreboot стосується того, що входить до основної мікросхеми завантажувальної флеш-пам'яті, |
36 | 36 | але є й інші компоненти мікропрограми, які слід взяти до уваги, про що йдеться | але є й інші компоненти мікропрограми, які слід взяти до уваги, про що йдеться |
... | ... | coreboot*, приблизно так само, як *Alpine Linux* є дистр | |
42 | 42 | * Прошивка жорстких дисків/твердотілих накопичувачів | * Прошивка жорстких дисків/твердотілих накопичувачів |
43 | 43 | * Прошивка Intel Management Engine / AMD PSP | * Прошивка Intel Management Engine / AMD PSP |
44 | 44 | ||
45 | Що таке двійковий блоб? | ||
46 | ---------------------- | ||
45 | ### Що таке двійковий блоб? | ||
47 | 46 | ||
48 | 47 | Двійковий блоб у цьому контексті - це будь-який виконуваний файл, для якого не існує вихідного коду, | Двійковий блоб у цьому контексті - це будь-який виконуваний файл, для якого не існує вихідного коду, |
49 | 48 | який ви не можете досліджувати та змінювати розумним чином. За визначенням, | який ви не можете досліджувати та змінювати розумним чином. За визначенням, |
... | ... | coreboot*, приблизно так само, як *Alpine Linux* є дистр | |
56 | 55 | Для інформації про Intel Management Engine та AMD PSP зверніться до поширених запитань. | Для інформації про Intel Management Engine та AMD PSP зверніться до поширених запитань. |
57 | 56 | ||
58 | 57 | Політика *зменшення* блобів | Політика *зменшення* блобів |
59 | ======================= | ||
58 | --------------------------- | ||
60 | 59 | ||
61 | Конфігурації за замовчуванням | ||
62 | ---------------------- | ||
60 | ### Конфігурації за замовчуванням | ||
63 | 61 | ||
64 | 62 | Coreboot, на якому Libreboot базується, є здебільшого вільним програмним забезпеченням, але | Coreboot, на якому Libreboot базується, є здебільшого вільним програмним забезпеченням, але |
65 | 63 | на деяких платформах вимагає двійкових блобів. Найпоширенішим прикладом може бути raminit | на деяких платформах вимагає двійкових блобів. Найпоширенішим прикладом може бути raminit |
... | ... | Libreboot вирішує цю ситуацію *суворо* та *принци | |
120 | 118 | розробниками coreboot, виступаючи в якості важливого *містка* між | розробниками coreboot, виступаючи в якості важливого *містка* між |
121 | 119 | *ним* і нетехнічними людьми, яким просто потрібна допомога, щоб розпочати роботу. | *ним* і нетехнічними людьми, яким просто потрібна допомога, щоб розпочати роботу. |
122 | 120 | ||
123 | Налаштування | ||
124 | ------------- | ||
121 | ### Налаштування | ||
125 | 122 | ||
126 | 123 | Наведені вище принципи мають застосовуватися до конфігурацій *за замовчуванням*. Однак libreboot | Наведені вище принципи мають застосовуватися до конфігурацій *за замовчуванням*. Однак libreboot |
127 | 124 | має бути *конфігурованим*, дозволяючи користувачеві робити все, що заманеться. | має бути *конфігурованим*, дозволяючи користувачеві робити все, що заманеться. |
... | ... | Libreboot вирішує цю ситуацію *суворо* та *принци | |
136 | 133 | доступним для нетехнічних користувачів. | доступним для нетехнічних користувачів. |
137 | 134 | ||
138 | 135 | КАТАЛОГ СВОБОДИ | КАТАЛОГ СВОБОДИ |
139 | =============== | ||
136 | --------------- | ||
140 | 137 | ||
141 | 138 | Також має бути доступна сторінка *[статусу блобів](../freedom-status.uk.md)*, | Також має бути доступна сторінка *[статусу блобів](../freedom-status.uk.md)*, |
142 | 139 | яка інформуватиме людей про статус бінарних блобів на кожній машині, що | яка інформуватиме людей про статус бінарних блобів на кожній машині, що |
... | ... | Libreboot вирішує цю ситуацію *суворо* та *принци | |
172 | 169 | (Сем буквально виробляє процесори в своєму гаражі) | (Сем буквально виробляє процесори в своєму гаражі) |
173 | 170 | ||
174 | 171 | More detailed insight about microcode | More detailed insight about microcode |
175 | ===================================== | ||
172 | ------------------------------------- | ||
176 | 173 | ||
177 | 174 | To be clear: it is preferable that microcode be free. | To be clear: it is preferable that microcode be free. |
178 | 175 | Not including CPU microcode updates is an absolute disaster for system | Not including CPU microcode updates is an absolute disaster for system |
... | ... | it literally behaves differently than it's supposed to, so software will have | |
223 | 220 | unpredictable bugs that could even cause data corruption - or worse. | unpredictable bugs that could even cause data corruption - or worse. |
224 | 221 | ||
225 | 222 | Why was this page written? | Why was this page written? |
226 | ========================== | ||
223 | ------------------------- | ||
227 | 224 | ||
228 | 225 | Firstly, observe the following graphic: | Firstly, observe the following graphic: |
229 | 226 |
File site/news/ports202402.md changed (mode: 100644) (index a34c639..6b8b2f8) | |||
... | ... | stop. Many more will be added, for the next Libreboot release. | |
10 | 10 | The boards are: | The boards are: |
11 | 11 | ||
12 | 12 | Dell OptiPlex 7020 and 9020 (MT and SFF) | Dell OptiPlex 7020 and 9020 (MT and SFF) |
13 | ======================================== | ||
13 | ----------------------------------------- | ||
14 | 14 | ||
15 | 15 | See: [Dell OptiPlex 9020 SFF/MT (and 7020)](../docs/install/dell9020.html) | See: [Dell OptiPlex 9020 SFF/MT (and 7020)](../docs/install/dell9020.html) |
16 | 16 | ||
... | ... | Libreboot project. I added this myself recently, based on patches from coreboot | |
25 | 25 | Gerrit. | Gerrit. |
26 | 26 | ||
27 | 27 | HP EliteBook 8560w | HP EliteBook 8560w |
28 | ================== | ||
28 | ------------------ | ||
29 | 29 | ||
30 | 30 | Riku Viitanen added this recently. See: | Riku Viitanen added this recently. See: |
31 | 31 | [HP EliteBook 8560w](../docs/install/hp8560w.html). | [HP EliteBook 8560w](../docs/install/hp8560w.html). |
... | ... | we don't need to do anything there except load the VGA option ROM from SeaBIOS. | |
40 | 40 | However, on these EliteBooks, it must be provided in the boot flash. | However, on these EliteBooks, it must be provided in the boot flash. |
41 | 41 | ||
42 | 42 | A *lot* more Dell Latitudes | A *lot* more Dell Latitudes |
43 | =========================== | ||
43 | --------------------------- | ||
44 | 44 | ||
45 | 45 | Nicholas Chin recently added these Dell Latitudes (of Sandybridge and Ivybridge | Nicholas Chin recently added these Dell Latitudes (of Sandybridge and Ivybridge |
46 | 46 | platforms) to Libreboot: | platforms) to Libreboot: |
File site/news/safety.md changed (mode: 100644) (index ce6e1a9..00883bd) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 7 July 2023 | % 7 July 2023 |
4 | 4 | ||
5 | New safety features | ||
6 | =============== | ||
5 | UPDATE 2025-01-03: New safety features | ||
6 | ------------------- | ||
7 | 7 | ||
8 | 8 | NOTE: This page is mostly completely obsolete, as of 3 January 2025; changes | NOTE: This page is mostly completely obsolete, as of 3 January 2025; changes |
9 | 9 | made in the vendor inject script for Libreboot 20241206 rev8 or higher (and | made in the vendor inject script for Libreboot 20241206 rev8 or higher (and |
... | ... | still [insert vendor files](../docs/install/ivy_has_common.md) regardless, | |
39 | 39 | prior to Libreboot installation, if required on your board.** | prior to Libreboot installation, if required on your board.** |
40 | 40 | ||
41 | 41 | Article | Article |
42 | ======= | ||
42 | ------ | ||
43 | 43 | ||
44 | 44 | **Please also follow this guide if using Dell Latitude laptops.** | **Please also follow this guide if using Dell Latitude laptops.** |
45 | 45 | ||
... | ... | The reason why was explained, in | |
54 | 54 | the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** | the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** |
55 | 55 | ||
56 | 56 | Introduction | Introduction |
57 | ============ | ||
57 | ------------- | ||
58 | 58 | ||
59 | 59 | **UPDATE (21 August 2023): None of the proposals below have yet been | **UPDATE (21 August 2023): None of the proposals below have yet been |
60 | 60 | implemented, and this page is still relevant for Libreboot 20231021. It applies | implemented, and this page is still relevant for Libreboot 20231021. It applies |
... | ... | users have been bricking their machines, on the following mainboards: | |
74 | 74 | * Ivybridge platforms (e.g. ThinkPad X230, T430) | * Ivybridge platforms (e.g. ThinkPad X230, T430) |
75 | 75 | * Haswell platforms (e.g. ThinkPad T440p, W541, OptiPlex 9020) | * Haswell platforms (e.g. ThinkPad T440p, W541, OptiPlex 9020) |
76 | 76 | ||
77 | Why? | ||
78 | ---- | ||
77 | ### Why? | ||
79 | 78 | ||
80 | 79 | On these platforms, the following binary vendor files are required: | On these platforms, the following binary vendor files are required: |
81 | 80 | ||
... | ... | automatically download and insert all of the following: | |
116 | 115 | ||
117 | 116 | More information is available in the guide. | More information is available in the guide. |
118 | 117 | ||
119 | What can be done to reduce the risk? | ||
120 | ------------------------------------ | ||
118 | ### What can be done to reduce the risk? | ||
121 | 119 | ||
122 | 120 | Like I said, there's technically nothing wrong with recent Libreboot releases. | Like I said, there's technically nothing wrong with recent Libreboot releases. |
123 | 121 | ||
... | ... | prominently displayed. Such warnings are now littered all throughout the | |
127 | 125 | Libreboot documentation, even mentioned in bold lettering at the top of the | Libreboot documentation, even mentioned in bold lettering at the top of the |
128 | 126 | downloads page, so there's no way a user can miss it. | downloads page, so there's no way a user can miss it. |
129 | 127 | ||
130 | Other mitigations considered | ||
131 | ----------------------------- | ||
128 | ### Other mitigations considered | ||
132 | 129 | ||
133 | 130 | See: <https://codeberg.org/libreboot/lbmk/issues/92> | See: <https://codeberg.org/libreboot/lbmk/issues/92> |
134 | 131 |
File site/news/schedule.md changed (mode: 100644) (index 051c9b7..1afe58a) | |||
5 | 5 | Libreboot releases will now be on a much stricter timeline than in the past. | Libreboot releases will now be on a much stricter timeline than in the past. |
6 | 6 | ||
7 | 7 | Testing/Stable release cycle | Testing/Stable release cycle |
8 | ============================ | ||
8 | ---------------------------- | ||
9 | |||
10 | ### April/June and October/December | ||
9 | 11 | ||
10 | 12 | As alluded to in the Libreboot 20241206 release, a new release schedule is | As alluded to in the Libreboot 20241206 release, a new release schedule is |
11 | 13 | planned for 2025 onward: | planned for 2025 onward: |
... | ... | be: Libreboot 25.04 "Corny Calamity". | |
31 | 33 | ||
32 | 34 | This .4, .6, .10 and .12 scheme will continue in 2026 and beyond. | This .4, .6, .10 and .12 scheme will continue in 2026 and beyond. |
33 | 35 | ||
34 | Rules for revisions: | ||
35 | -------------------- | ||
36 | ### Rules for revisions | ||
36 | 37 | ||
37 | 38 | Testing releases come out two months before stable; any number of non-breaking | Testing releases come out two months before stable; any number of non-breaking |
38 | 39 | or otherwise relatively safe changes can be made, and testing releases will | or otherwise relatively safe changes can be made, and testing releases will |
... | ... | releases post-release will be critical bug fixes; in a few cases, special | |
46 | 47 | additions will be made when desirable and safe (e.g. Pico 2 support was added | additions will be made when desirable and safe (e.g. Pico 2 support was added |
47 | 48 | to Libreboot 20241206 post-release, in the revision 8 update from 2025-01-06). | to Libreboot 20241206 post-release, in the revision 8 update from 2025-01-06). |
48 | 49 | ||
49 | Why? | ||
50 | ---- | ||
50 | ### Why? | ||
51 | 51 | ||
52 | 52 | In the past, a problem Libreboot has had was that we'd do testing releases, | In the past, a problem Libreboot has had was that we'd do testing releases, |
53 | 53 | but not do revisions on them; then by the time a stable release came around, | but not do revisions on them; then by the time a stable release came around, |
... | ... | This decision is part of a much larger initiative to boost Libreboot's | |
64 | 64 | popularity and therefore use within the free software world. | popularity and therefore use within the free software world. |
65 | 65 | ||
66 | 66 | Release version numbers | Release version numbers |
67 | ======================= | ||
67 | ----------------------- | ||
68 | 68 | ||
69 | Libreboot YY.MM releases | ||
70 | ------------------------ | ||
69 | ### Libreboot YY.MM releases | ||
71 | 70 | ||
72 | 71 | Libreboot YYYYMMDD was the previous version number scheme. | Libreboot YYYYMMDD was the previous version number scheme. |
73 | 72 | ||
... | ... | With this new scheme, and given Libreboot's expansion plans, it won't matter | |
85 | 84 | even if a release build takes 2 days to complete, because the day of the month | even if a release build takes 2 days to complete, because the day of the month |
86 | 85 | will no longer be included in a given release number. | will no longer be included in a given release number. |
87 | 86 | ||
88 | Y2.1k compliance | ||
89 | ---------------- | ||
87 | ### Y2.1k compliance | ||
90 | 88 | ||
91 | 89 | If Libreboot still exists in the year 2100, then those releases will be | If Libreboot still exists in the year 2100, then those releases will be |
92 | 90 | e.g. Libreboot 100.04 for April 2100 release. | e.g. Libreboot 100.04 for April 2100 release. |
93 | 91 | ||
94 | 92 | It could happen. Even if I'm no longer around by then, Libreboot might still be. | It could happen. Even if I'm no longer around by then, Libreboot might still be. |
95 | 93 | ||
96 | Release codenames | ||
97 | ----------------- | ||
94 | ### Release codenames | ||
98 | 95 | ||
99 | 96 | The release codename for Libreboot 25.04 will be "Corny Calamity", which is a | The release codename for Libreboot 25.04 will be "Corny Calamity", which is a |
100 | 97 | nod of respect to an equally gutsy release codename that *Fedora* used in | nod of respect to an equally gutsy release codename that *Fedora* used in |
... | ... | The rules for Libreboot release codenames are: two words, each starting with | |
104 | 101 | the same letter. | the same letter. |
105 | 102 | ||
106 | 103 | Credit | Credit |
107 | ====== | ||
104 | ------ | ||
108 | 105 | ||
109 | 106 | [Britney Lozza](https://janethemotherfucker.github.io/) was the one who suggested | [Britney Lozza](https://janethemotherfucker.github.io/) was the one who suggested |
110 | 107 | to me that I use this new release number and codename scheme, and I previously | to me that I use this new release number and codename scheme, and I previously |
File site/news/translations.de.md changed (mode: 100644) (index f0b9836..8f7a0be) | |||
... | ... | HTML Seiten. | |
13 | 13 | Die Seite die Du gerade liest wurde auf diese Weise erstellt! | Die Seite die Du gerade liest wurde auf diese Weise erstellt! |
14 | 14 | ||
15 | 15 | Vorbereitung | Vorbereitung |
16 | =============== | ||
16 | -------------------- | ||
17 | 17 | ||
18 | 18 | Die Libreboot Webseite ist verfügbar, in Markdown, über ein Git Repository:\ | Die Libreboot Webseite ist verfügbar, in Markdown, über ein Git Repository:\ |
19 | 19 | <https://codeberg.org/libreboot/lbwww> | <https://codeberg.org/libreboot/lbwww> |
... | ... | dort jedesmal vermerken wenn ich Änderungen an der Seite vornehme, und | |
34 | 34 | zeigen wo diese Änderungen dann auf übersetzten Seiten erledigt werden | zeigen wo diese Änderungen dann auf übersetzten Seiten erledigt werden |
35 | 35 | müssen für jede Seite die ich ändere. | müssen für jede Seite die ich ändere. |
36 | 36 | ||
37 | |||
38 | 37 | Wie übersetzt man libreboot.org | Wie übersetzt man libreboot.org |
39 | ============================== | ||
38 | ------------------------ | ||
40 | 39 | ||
41 | 40 | Die Dokumentation auf <https://untitled.vimuser.org/> erläutert wie Du | Die Dokumentation auf <https://untitled.vimuser.org/> erläutert wie Du |
42 | 41 | Übersetzungen handhaben kannst. | Übersetzungen handhaben kannst. |
File site/news/translations.md changed (mode: 100644) (index 3ae0c7c..2804f25) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 4 January 2022 | % 4 January 2022 |
4 | 4 | ||
5 | The libreboot website is currently only available in English. | ||
5 | Libreboot wants *you* | ||
6 | --------------------- | ||
7 | |||
8 | Most of the Libreboot website is currently only available in English. | ||
6 | 9 | ||
7 | 10 | I've recently added support for translations to | I've recently added support for translations to |
8 | 11 | the [Untitled Static Site Generator](https://untitled.vimuser.org/), which the | the [Untitled Static Site Generator](https://untitled.vimuser.org/), which the |
... | ... | this software generates HTML pages. | |
12 | 15 | This very page that you are reading was created this way! | This very page that you are reading was created this way! |
13 | 16 | ||
14 | 17 | Getting started | Getting started |
15 | =============== | ||
18 | --------------- | ||
16 | 19 | ||
17 | 20 | The libreboot website is available, in Markdown, from a Git repository:\ | The libreboot website is available, in Markdown, from a Git repository:\ |
18 | 21 | <https://codeberg.org/libreboot/lbwww> | <https://codeberg.org/libreboot/lbwww> |
... | ... | where these changes need to then be performed in translated versions of each | |
32 | 35 | page that I change. | page that I change. |
33 | 36 | ||
34 | 37 | How to translate libreboot.org | How to translate libreboot.org |
35 | ============================== | ||
38 | ------------------------------- | ||
36 | 39 | ||
37 | 40 | The documentation on <https://untitled.vimuser.org/> tells you how to handle | The documentation on <https://untitled.vimuser.org/> tells you how to handle |
38 | 41 | translations. | translations. |
File site/news/update202308.md changed (mode: 100644) (index df1664d..9f76866) | |||
... | ... | To receive these updates, you must use Git for now. See: | |
12 | 12 | [how to download Libreboot from Git](../git.md) | [how to download Libreboot from Git](../git.md) |
13 | 13 | ||
14 | 14 | Introduction | Introduction |
15 | ============ | ||
15 | -------------- | ||
16 | 16 | ||
17 | SeaBIOS and GRUB updates | ||
18 | ------------------------ | ||
17 | ### SeaBIOS and GRUB updates | ||
19 | 18 | ||
20 | 19 | For *all* mainboards that provide GRUB or SeaBIOS revisions, new versions of | For *all* mainboards that provide GRUB or SeaBIOS revisions, new versions of |
21 | 20 | these payloads are now used in Libreboot, as implemented by these patches: | these payloads are now used in Libreboot, as implemented by these patches: |
... | ... | these payloads are now used in Libreboot, as implemented by these patches: | |
27 | 26 | a 20 January 2023 revision. Patch: | a 20 January 2023 revision. Patch: |
28 | 27 | <https://browse.libreboot.org/lbmk.git/commit/?id=cb8bf380e9e4ab065f597b9ea643897caa4b6ccb> | <https://browse.libreboot.org/lbmk.git/commit/?id=cb8bf380e9e4ab065f597b9ea643897caa4b6ccb> |
29 | 28 | ||
30 | Coreboot update | ||
31 | --------------- | ||
29 | ### Coreboot update | ||
32 | 30 | ||
33 | 31 | The `default` cbtree is now based upon coreboot from 2 August 2023, where | The `default` cbtree is now based upon coreboot from 2 August 2023, where |
34 | 32 | previously it was based upon coreboot from 17 February 2023. Patch: | previously it was based upon coreboot from 17 February 2023. Patch: |
... | ... | tree (libre MRC on T440p/W541), `cros` (gru chromebooks) and `fam15h` trees used | |
58 | 56 | on KGPE-D16/KCMA-D8/KFSN4-DRE have not yet been updated. | on KGPE-D16/KCMA-D8/KFSN4-DRE have not yet been updated. |
59 | 57 | ||
60 | 58 | Testing needed! | Testing needed! |
61 | =============== | ||
59 | --------------- | ||
62 | 60 | ||
63 | 61 | I want to get as much testing done now as possible, ready for the next release, | I want to get as much testing done now as possible, ready for the next release, |
64 | 62 | which will still be marked as a testing release anyway; the next stable release | which will still be marked as a testing release anyway; the next stable release |
65 | 63 | is a long way off, as much new work is planned for Libreboot. | is a long way off, as much new work is planned for Libreboot. |
66 | 64 | ||
67 | Apply to become a tester | ||
68 | ------------------------ | ||
65 | ### Apply to become a tester | ||
69 | 66 | ||
70 | 67 | If you wish to provide such testing, please read the following page: | If you wish to provide such testing, please read the following page: |
71 | 68 | ||
... | ... | need to know. Coreboot tends to audit very carefully and updates are usually | |
77 | 74 | smooth, but testing is one of Libreboot's main purposes, to provide stable | smooth, but testing is one of Libreboot's main purposes, to provide stable |
78 | 75 | releases based on coreboot. | releases based on coreboot. |
79 | 76 | ||
80 | How to download | ||
81 | --------------- | ||
77 | ### How to download | ||
82 | 78 | ||
83 | 79 | To receive these updates, you must use Git for now. See: | To receive these updates, you must use Git for now. See: |
84 | 80 | [how to download Libreboot from Git](../git.md) | [how to download Libreboot from Git](../git.md) |
85 | 81 | ||
86 | Build from source | ||
87 | ----------------- | ||
82 | ### Build from source | ||
88 | 83 | ||
89 | 84 | This update, since it is not yet available pre-compiled in a release, must be | This update, since it is not yet available pre-compiled in a release, must be |
90 | 85 | compiled from source. See: | compiled from source. See: |
File site/news/usa-libre-part2.md changed (mode: 100644) (index ae1a874..8fd8e59) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 12 February 2023 | % 12 February 2023 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Free software in your government? | ||
6 | -------------------------- | ||
7 | 7 | ||
8 | 8 | This article makes use of the term *libre software*, which has the same meaning | This article makes use of the term *libre software*, which has the same meaning |
9 | 9 | as more popular terms such as *open source software* | as more popular terms such as *open source software* |
... | ... | With your help, libre software could suddenly find itself in a much stronger | |
38 | 38 | position, with more users and more developers, encouraged by such positive | position, with more users and more developers, encouraged by such positive |
39 | 39 | changes. | changes. |
40 | 40 | ||
41 | When, who, what and where? | ||
42 | ------------------ | ||
41 | ### When, who, what and where? | ||
43 | 42 | ||
44 | 43 | Eric Gallager, the representative behind the previous bill, has continued his | Eric Gallager, the representative behind the previous bill, has continued his |
45 | 44 | efforts and now has a new hearing for the following bill very soon: | efforts and now has a new hearing for the following bill very soon: |
... | ... | the bill, and to defend it against any opposition. | |
59 | 58 | ||
60 | 59 | The bill's hearing shall take place in room 306-308. | The bill's hearing shall take place in room 306-308. |
61 | 60 | ||
62 | Who to contact | ||
63 | -------------- | ||
61 | ### Who to contact | ||
64 | 62 | ||
65 | 63 | Eric Gallager is the representative in charge of the proposed bill, and you can | Eric Gallager is the representative in charge of the proposed bill, and you can |
66 | 64 | contact him in the following ways: | contact him in the following ways: |
... | ... | to its proprietary nature - use Mastodon or email if you can): \ | |
76 | 74 | <https://twitter.com/cooljeanius> | <https://twitter.com/cooljeanius> |
77 | 75 | ||
78 | 76 | Why should you support this bill? | Why should you support this bill? |
79 | ================================= | ||
77 | ------------------------------ | ||
80 | 78 | ||
81 | 79 | If this newly proposed bill is passed, it will provide the libre software | If this newly proposed bill is passed, it will provide the libre software |
82 | 80 | movement a *foot in the door*, that could lead to greater reform at a later | movement a *foot in the door*, that could lead to greater reform at a later |
File site/news/usa-libre-part3.md changed (mode: 100644) (index b599878..4e1d7a3) | |||
3 | 3 | % 20 February 2023 | % 20 February 2023 |
4 | 4 | ||
5 | 5 | Introduction | Introduction |
6 | ============ | ||
6 | ------------ | ||
7 | 7 | ||
8 | 8 | You may recall last year's article: [New Hampshire (USA) may soon enshrine | You may recall last year's article: [New Hampshire (USA) may soon enshrine |
9 | 9 | Software Freedom into law](usa-libre.md) - a proposed bill, if it passed, | Software Freedom into law](usa-libre.md) - a proposed bill, if it passed, |
... | ... | contact your house representative, and ask them to support this bill! This | |
26 | 26 | web page can let you find who your representative is:\ | web page can let you find who your representative is:\ |
27 | 27 | <https://www.gencourt.state.nh.us/house/members/>* | <https://www.gencourt.state.nh.us/house/members/>* |
28 | 28 | ||
29 | Can't attend? | ||
30 | ------------- | ||
29 | ### Can't attend? | ||
31 | 30 | ||
32 | 31 | That's OK! You can still help. Please tell as many people about this as | That's OK! You can still help. Please tell as many people about this as |
33 | 32 | possible, and spread the news on as many websites/blogs as possible. Post it | possible, and spread the news on as many websites/blogs as possible. Post it |
34 | 33 | on your social media account, if you have one. Write to the media! | on your social media account, if you have one. Write to the media! |
35 | 34 | ||
36 | 35 | When and where? | When and where? |
37 | =============== | ||
36 | --------------- | ||
38 | 37 | ||
39 | 38 | **This bill's hearing is on 21 February 2023 at 9AM in the Legislative Office | **This bill's hearing is on 21 February 2023 at 9AM in the Legislative Office |
40 | 39 | Building, 33 N. State Ct., Concord, New Hampshire:**\ | Building, 33 N. State Ct., Concord, New Hampshire:**\ |
... | ... | the goal of the movement, and that of the Libreboot project which is a part of | |
48 | 47 | said movement. | said movement. |
49 | 48 | ||
50 | 49 | Who to contact | Who to contact |
51 | ============== | ||
50 | -------------- | ||
52 | 51 | ||
53 | 52 | Eric Gallager is the representative in charge of the proposed bill, and you can | Eric Gallager is the representative in charge of the proposed bill, and you can |
54 | 53 | contact him in the following ways: | contact him in the following ways: |
... | ... | to its proprietary nature - use Mastodon or email if you can): \ | |
64 | 63 | <https://twitter.com/cooljeanius> | <https://twitter.com/cooljeanius> |
65 | 64 | ||
66 | 65 | What does house bill 556-FN say? | What does house bill 556-FN say? |
67 | ================================ | ||
66 | -------------------------------- | ||
68 | 67 | ||
69 | 68 | The actual text of the bill is provided here:\ | The actual text of the bill is provided here:\ |
70 | 69 | <https://gencourt.state.nh.us/lsr_search/billText.aspx?id=193&type=4> | <https://gencourt.state.nh.us/lsr_search/billText.aspx?id=193&type=4> |
... | ... | copyleft versus permissive (BSD-style) licensing, the advancement of *any* | |
81 | 80 | libre software on such massive scale will help the entire movement. | libre software on such massive scale will help the entire movement. |
82 | 81 | ||
83 | 82 | Live streams | Live streams |
84 | ============ | ||
83 | ------------ | ||
85 | 84 | ||
86 | 85 | Although not mentioned in previous articles on this agenda, the New Hampshire | Although not mentioned in previous articles on this agenda, the New Hampshire |
87 | 86 | court building provides live streams of hearings. | court building provides live streams of hearings. |
... | ... | Per the text of HB-556, the stream for *that* bill will be on: | |
99 | 98 | ||
100 | 99 | The links change, for each stream, so you should check them on the day. | The links change, for each stream, so you should check them on the day. |
101 | 100 | ||
102 | Use invidious! | ||
103 | -------------- | ||
101 | ### Use invidious! | ||
104 | 102 | ||
105 | 103 | The Youtube.com link is provided, above, for the sake of completion. However, | The Youtube.com link is provided, above, for the sake of completion. However, |
106 | 104 | you should use an Invidious instance. Invidious acts as a proxy for Youtube, | you should use an Invidious instance. Invidious acts as a proxy for Youtube, |
File site/news/usa-libre.md changed (mode: 100644) (index 2bf5e52..3a86d23) | |||
2 | 2 | % Leah Rowe | % Leah Rowe |
3 | 3 | % 8 January 2022 | % 8 January 2022 |
4 | 4 | ||
5 | Introduction | ||
6 | ============ | ||
5 | Free software in your government? | ||
6 | ---------------------------------- | ||
7 | 7 | ||
8 | 8 | This event of such global importance to libre software projects, and the | This event of such global importance to libre software projects, and the |
9 | 9 | libre movement as a whole, has made me decide to write an article. **The | libre movement as a whole, has made me decide to write an article. **The |
... | ... | of Libreboot is to help users *avoid* proprietary software at the firmware | |
36 | 36 | level, whenever feasible. | level, whenever feasible. |
37 | 37 | ||
38 | 38 | What's happening in New Hampshire? | What's happening in New Hampshire? |
39 | ================================== | ||
39 | --------------------------- | ||
40 | 40 | ||
41 | 41 | An important bill is being proposed in New Hampshire, which would enshrine | An important bill is being proposed in New Hampshire, which would enshrine |
42 | 42 | much of what we know as Open Source *into law*. Here is the proposed bill, | much of what we know as Open Source *into law*. Here is the proposed bill, |
... | ... | which could redefine our movement and give *libre software* real power | |
115 | 115 | instead. | instead. |
116 | 116 | ||
117 | 117 | HOW TO HELP | HOW TO HELP |
118 | =========== | ||
118 | ------------ | ||
119 | 119 | ||
120 | TESTIFY IN SUPPORT OF THE BILL | ||
121 | ------------------------------ | ||
120 | ### TESTIFY IN SUPPORT OF THE BILL | ||
122 | 121 | ||
123 | 122 | **The reading of the bill is happening on 11 January 2022. This is when you | **The reading of the bill is happening on 11 January 2022. This is when you |
124 | 123 | should go to New Hampshire.** | should go to New Hampshire.** |
... | ... | This thread on Twitter is where Eric announced that the reading of the bill is | |
151 | 150 | to proceed (original Twitter URL):\ | to proceed (original Twitter URL):\ |
152 | 151 | <https://twitter.com/cooljeanius/status/1479555737223413760> | <https://twitter.com/cooljeanius/status/1479555737223413760> |
153 | 152 | ||
154 | More states/countries will follow | ||
155 | --------------------------------- | ||
153 | ### More states/countries will follow | ||
156 | 154 | ||
157 | 155 | If this bill is passed in New Hampshire, more states will likely follow. It | If this bill is passed in New Hampshire, more states will likely follow. It |
158 | 156 | will lead to a massively renewed drive to liberate all computer users, and US | will lead to a massively renewed drive to liberate all computer users, and US |
... | ... | global level. | |
164 | 162 | You *must* support this bill. If you want to see it pass, please go to New | You *must* support this bill. If you want to see it pass, please go to New |
165 | 163 | Hampshire on 11 January 2022 to make sure your voice is heard. | Hampshire on 11 January 2022 to make sure your voice is heard. |
166 | 164 | ||
167 | OUR ENEMIES WILL BE THERE | ||
168 | ------------------------- | ||
165 | ### OUR ENEMIES WILL BE THERE | ||
169 | 166 | ||
170 | 167 | The *proprietary* software companies like Microsoft and Apple will also be | The *proprietary* software companies like Microsoft and Apple will also be |
171 | 168 | there, trying to argue the case *against* the use of Libre Software. | there, trying to argue the case *against* the use of Libre Software. |
... | ... | They will try to trick the law makers by claiming things such as: | |
239 | 236 | by some external entity; *your* installation of libre software is controlled | by some external entity; *your* installation of libre software is controlled |
240 | 237 | by *you*. | by *you*. |
241 | 238 | ||
242 | If you're familiar with the *Matrix* films, proprietary operating systems like | ||
243 | Windows/MacOS are basically like the Matrix; bland, no individuality, no | ||
244 | independent thought, everything tightly controlled. By contrast, libre operating | ||
245 | systems (such as Linux distributions or the BSDs) are like zion/io; vibrant, | ||
246 | full of life, buzzing with activity, everything loose and free, and everyone | ||
247 | is different (a highly diverse culture of people from all walks of life, acting | ||
248 | in common cause but nonetheless individuals). | ||
249 | |||
250 | 239 | Meanwhile, Windows is known to have backdoors. Microsoft actively informs the | Meanwhile, Windows is known to have backdoors. Microsoft actively informs the |
251 | 240 | NSA about how to exploit them, so that it can break into people's computers | NSA about how to exploit them, so that it can break into people's computers |
252 | 241 | and steal private data. | and steal private data. |
File site/other.md changed (mode: 100644) (index 76f8539..caab302) | |||
... | ... | title: Other coreboot distributions | |
3 | 3 | x-toc-enable: true | x-toc-enable: true |
4 | 4 | ... | ... |
5 | 5 | ||
6 | Introduction | ||
7 | ============ | ||
6 | What is a coreboot distro? | ||
7 | -------------------------- | ||
8 | 8 | ||
9 | 9 | Libreboot is a *coreboot distribution* or *coreboot distro*, in the same way | Libreboot is a *coreboot distribution* or *coreboot distro*, in the same way |
10 | 10 | that Debian is a *Linux distro*. Its purpose is to provide free/opensource boot | that Debian is a *Linux distro*. Its purpose is to provide free/opensource boot |
... | ... | It's thanks to the various coreboot distros that many people use coreboot today; | |
32 | 32 | without them, many otherwise non-technical users might not use coreboot at all. | without them, many otherwise non-technical users might not use coreboot at all. |
33 | 33 | ||
34 | 34 | List of coreboot distros | List of coreboot distros |
35 | ======================== | ||
35 | ------------------------ | ||
36 | 36 | ||
37 | 37 | Not all distros are listed; only those of high quality or otherwise of interest; | Not all distros are listed; only those of high quality or otherwise of interest; |
38 | 38 | quality, not quantity. In alphabetical order: | quality, not quantity. In alphabetical order: |
39 | 39 | ||
40 | Canoeboot | ||
41 | --------- | ||
40 | ### Canoeboot | ||
42 | 41 | ||
43 | 42 | Website: <https://canoeboot.org/> | Website: <https://canoeboot.org/> |
44 | 43 | ||
... | ... | you could consider Canoeboot to be *legacy Libreboot*. Libreboot adopted the | |
67 | 66 | Binary Blob Reduction Policy in November 2022, as part of a general desire to | Binary Blob Reduction Policy in November 2022, as part of a general desire to |
68 | 67 | support more - and newer - hardware. | support more - and newer - hardware. |
69 | 68 | ||
70 | Dasharo | ||
71 | ------- | ||
69 | ### Dasharo | ||
72 | 70 | ||
73 | 71 | Website: <https://docs.dasharo.com/> | Website: <https://docs.dasharo.com/> |
74 | 72 | ||
... | ... | coreboot images for each supported mainboard, with an emphasis on stability. | |
88 | 86 | It's a very different approach than Libreboot's approach; Libreboot provides | It's a very different approach than Libreboot's approach; Libreboot provides |
89 | 87 | a more generalised design in its build system and infrastructure. | a more generalised design in its build system and infrastructure. |
90 | 88 | ||
91 | Heads | ||
92 | ----- | ||
89 | ### Heads | ||
93 | 90 | ||
94 | 91 | Website: <https://osresearch.net/> | Website: <https://osresearch.net/> |
95 | 92 | ||
... | ... | but they target different kinds of users and use-case scenarios, with Libreboot | |
130 | 127 | targeting a more general audience (while providing security hardening options), | targeting a more general audience (while providing security hardening options), |
131 | 128 | whereas Heads specifically targets security-conscious users. | whereas Heads specifically targets security-conscious users. |
132 | 129 | ||
133 | MrChromeBox | ||
134 | ----------- | ||
130 | ### MrChromeBox | ||
135 | 131 | ||
136 | 132 | Website: <https://docs.mrchromebox.tech/> | Website: <https://docs.mrchromebox.tech/> |
137 | 133 | ||
... | ... | the interview: | |
167 | 163 | Libreboot largely avoids supporting Chromebooks, precisely because | Libreboot largely avoids supporting Chromebooks, precisely because |
168 | 164 | MrChromebox is a perfectly viable option on these machines. | MrChromebox is a perfectly viable option on these machines. |
169 | 165 | ||
170 | Skulls | ||
171 | ------ | ||
166 | ### Skulls | ||
172 | 167 | ||
173 | 168 | Git repositories: <https://github.com/merge/skulls> | Git repositories: <https://github.com/merge/skulls> |
174 | 169 | ||
... | ... | aims to provide ease of use while also providing great power and flexibility. | |
183 | 178 | So Libreboot is aimed specifically at power users, while also trying to | So Libreboot is aimed specifically at power users, while also trying to |
184 | 179 | accomodate non-technical users; Skulls largely targets the latter. | accomodate non-technical users; Skulls largely targets the latter. |
185 | 180 | ||
186 | System76 Open Firmware | ||
187 | ---------------------- | ||
181 | ### System76 Open Firmware | ||
188 | 182 | ||
189 | 183 | Git repository: <https://github.com/system76/firmware-open> | Git repository: <https://github.com/system76/firmware-open> |
190 | 184 | ||
... | ... | System76 provides the coreboot firmware, along with EDK2 UEFI payload. It can | |
199 | 193 | boot Linux distros, BSD systems and even Windows perfectly. | boot Linux distros, BSD systems and even Windows perfectly. |
200 | 194 | ||
201 | 195 | Is your distro unlisted? | Is your distro unlisted? |
202 | ======================== | ||
196 | ------------------------ | ||
203 | 197 | ||
204 | 198 | Please get in touch! We'd love to link your project here. | Please get in touch! We'd love to link your project here. |
205 | 199 | ||
... | ... | firmware, which was the primary motivation behind this page, in promoting the | |
215 | 209 | various projects. | various projects. |
216 | 210 | ||
217 | 211 | Non-coreboot free firmware | Non-coreboot free firmware |
218 | ========================== | ||
212 | -------------------------- | ||
219 | 213 | ||
220 | 214 | Several other projects besides coreboot provide free hardware initialisation, | Several other projects besides coreboot provide free hardware initialisation, |
221 | 215 | such as [U-Boot](https://www.u-boot.org/) (as own firmware, distinct from U-Boot | such as [U-Boot](https://www.u-boot.org/) (as own firmware, distinct from U-Boot |
File site/tasks/index.md changed (mode: 100644) (index 2431691..0bafb80) | |||
... | ... | You may also benefit from *assimilating* all knowledge contained in | |
16 | 16 | the *[lbmk maintenance manual](../docs/maintain/).* | the *[lbmk maintenance manual](../docs/maintain/).* |
17 | 17 | ||
18 | 18 | Rockchip RK3588 SoCs in coreboot | Rockchip RK3588 SoCs in coreboot |
19 | ================================ | ||
19 | -------------------------------- | ||
20 | 20 | ||
21 | 21 | See: | See: |
22 | 22 | <https://www.collabora.com/news-and-blog/blog/2024/02/21/almost-a-fully-open-source-boot-chain-for-rockchips-rk3588/> | <https://www.collabora.com/news-and-blog/blog/2024/02/21/almost-a-fully-open-source-boot-chain-for-rockchips-rk3588/> |
... | ... | to coreboot. | |
26 | 26 | ||
27 | 27 | Also: | Also: |
28 | 28 | ||
29 | Add TF-A support to Libreboot | ||
30 | ----------------------------- | ||
29 | ### Add TF-A support to Libreboot | ||
31 | 30 | ||
32 | 31 | Yes. We already provide other non-coreboot firmware, such as the serprog | Yes. We already provide other non-coreboot firmware, such as the serprog |
33 | 32 | images. We even integrate U-Boot, albeit as a coreboot payload with some init | images. We even integrate U-Boot, albeit as a coreboot payload with some init |
... | ... | It is essentially an analog of coreboot; coreboot even uses parts of this, on | |
41 | 40 | some boards. | some boards. |
42 | 41 | ||
43 | 42 | general auditing | general auditing |
44 | ================ | ||
43 | ---------------- | ||
45 | 44 | ||
46 | 45 | Libreboot's build system design is already extremely efficient. See: | Libreboot's build system design is already extremely efficient. See: |
47 | 46 | [lbmk build system documentation](../docs/maintain/) | [lbmk build system documentation](../docs/maintain/) |
... | ... | I say again: | |
68 | 67 | Code equals bugs, so fewer lines of code will cause fewer bugs. | Code equals bugs, so fewer lines of code will cause fewer bugs. |
69 | 68 | ||
70 | 69 | Interesting board ports | Interesting board ports |
71 | ======================= | ||
70 | ----------------------- | ||
72 | 71 | ||
73 | 72 | **Any board port is interesting. These are just a few that happened to be | **Any board port is interesting. These are just a few that happened to be |
74 | 73 | noticed at a given time. The list below is by no means complete!** | noticed at a given time. The list below is by no means complete!** |
... | ... | Libreboot can support any board from coreboot, in principle. It would also be | |
77 | 76 | feasible to integrate other (libre) boot firmware, if desirable. The list below | feasible to integrate other (libre) boot firmware, if desirable. The list below |
78 | 77 | is not exhaustive, it just lists boards that are interesting to us at this time: | is not exhaustive, it just lists boards that are interesting to us at this time: |
79 | 78 | ||
80 | Boards | ||
81 | ------ | ||
79 | ### Boards | ||
82 | 80 | ||
83 | 81 | * HP EliteBook 2760p | * HP EliteBook 2760p |
84 | 82 | * HP ProBook 6360b | * HP ProBook 6360b |
... | ... | Boards | |
96 | 94 | not much different code-wise to the D16 mainboard, so differences | not much different code-wise to the D16 mainboard, so differences |
97 | 95 | in coreboot `4.11_branch` could be adapted to provide a Dasharo port. | in coreboot `4.11_branch` could be adapted to provide a Dasharo port. |
98 | 96 | ||
99 | ThinkPad T430s and T431s | ||
100 | ------------------------- | ||
97 | ### ThinkPad T430s and T431s | ||
101 | 98 | ||
102 | 99 | These are interesting; the T431s in particular has soldered RAM, so we'd need | These are interesting; the T431s in particular has soldered RAM, so we'd need |
103 | 100 | to take care of SPDs (not done automatically yet, in coreboot). The schematics | to take care of SPDs (not done automatically yet, in coreboot). The schematics |
... | ... | machine). | |
109 | 106 | ||
110 | 107 | Both are supported by coreboot. | Both are supported by coreboot. |
111 | 108 | ||
112 | 840 G2 (possible 820 G2) | ||
113 | ------------------------- | ||
109 | ### 840 G2 (possible 820 G2) | ||
114 | 110 | ||
115 | 111 | These notes are based on a chat on Libreboot IRC. | These notes are based on a chat on Libreboot IRC. |
116 | 112 | ||
... | ... | newer TPM version - SLB9665 firmware can meet TPM 2.0 specification. | |
121 | 117 | ||
122 | 118 | (we do not yet use the TPM in any meaningful way on Libreboot machines) | (we do not yet use the TPM in any meaningful way on Libreboot machines) |
123 | 119 | ||
124 | Blobless boards | ||
125 | ----------- | ||
120 | ### Blobless boards | ||
126 | 121 | ||
127 | 122 | Not yet supported, but interesting for the project. Separated thus: | Not yet supported, but interesting for the project. Separated thus: |
128 | 123 | ||
... | ... | already supported by coreboot: | |
133 | 128 | * Scan coreboot code for ICH9/ICH10 systems, or boards with x4x/gm45 based | * Scan coreboot code for ICH9/ICH10 systems, or boards with x4x/gm45 based |
134 | 129 | northbridges. Many of these can boot blobless. | northbridges. Many of these can boot blobless. |
135 | 130 | ||
136 | Dell Latitude/Precision: | ||
137 | ----------------------- | ||
131 | ### Dell Latitude/Precision: | ||
138 | 132 | ||
139 | 133 | * Dell Latitude laptops: E4200, E4300, E5400, E5500, E6500, Precision M4400, | * Dell Latitude laptops: E4200, E4300, E5400, E5500, E6500, Precision M4400, |
140 | 134 | ||
... | ... | SuperIO: at least M6500 is known to use ECE5028. I have a bunch of these | |
153 | 147 | Dells at my lab, they are high priority for porting because they would be | Dells at my lab, they are high priority for porting because they would be |
154 | 148 | easily flashable. | easily flashable. |
155 | 149 | ||
156 | Broadwell Dell | ||
157 | -------------- | ||
150 | ### Broadwell Dell | ||
158 | 151 | ||
159 | 152 | E5450 uses MEC5085, currently untested for dell-flash-unlock. | E5450 uses MEC5085, currently untested for dell-flash-unlock. |
160 | 153 | ||
161 | Skylake Dell | ||
162 | ------------ | ||
154 | ### Skylake Dell | ||
163 | 155 | ||
164 | 156 | <https://en.wikipedia.org/wiki/Dell_Latitude#Exx70_Models_(2016)> | <https://en.wikipedia.org/wiki/Dell_Latitude#Exx70_Models_(2016)> |
165 | 157 | ||
... | ... | Non-E models don't have the MEC ECs. The E models have MEC5085. | |
168 | 160 | Nicholas isn't sure whether these have bootguard. TODO: test, and also | Nicholas isn't sure whether these have bootguard. TODO: test, and also |
169 | 161 | test with dell-flash-unlock. | test with dell-flash-unlock. |
170 | 162 | ||
171 | Dell Latitude E7240 | ||
172 | ------------------- | ||
163 | ### Dell Latitude E7240 | ||
173 | 164 | ||
174 | 165 | See: <https://review.coreboot.org/c/coreboot/+/79746> | See: <https://review.coreboot.org/c/coreboot/+/79746> |
175 | 166 | ||
... | ... | libremrc in lbmk. | |
180 | 171 | ||
181 | 172 | NOTE: Iru Cai is the person working on this. | NOTE: Iru Cai is the person working on this. |
182 | 173 | ||
183 | Dell Precision M4800 and M6800 | ||
184 | -------------------- | ||
174 | ### Dell Precision M4800 and M6800 | ||
185 | 175 | ||
186 | 176 | Also M6800, though no port is available yet. 17.3 inch display. | Also M6800, though no port is available yet. 17.3 inch display. |
187 | 177 | ||
... | ... | for entry into coreboot due to copyright reasons. | |
196 | 186 | This port is worth looking at. When the issues are fixed, this will make a | This port is worth looking at. When the issues are fixed, this will make a |
197 | 187 | fine addition to lbmk. | fine addition to lbmk. |
198 | 188 | ||
199 | E4200 SPD | ||
200 | --------- | ||
189 | ### E4200 SPD | ||
201 | 190 | ||
202 | 191 | NOTE: Some of this may be inaccurate, because it's copied from handwritten | NOTE: Some of this may be inaccurate, because it's copied from handwritten |
203 | 192 | notes that were written very hastily and are barely legible. | notes that were written very hastily and are barely legible. |
... | ... | see <https://unix.stackexchange.com/questions/92037/how-to-view-rams-spd-timings | |
229 | 218 | modprobe i2c-dev and sudo i2cdump 0 0x50 works in libreboot, but not the | modprobe i2c-dev and sudo i2cdump 0 0x50 works in libreboot, but not the |
230 | 219 | vendor bios. | vendor bios. |
231 | 220 | ||
232 | Other Dells (Ivybridge and Sandybridge) | ||
233 | ------------------------ | ||
221 | ### Other Dells (Ivybridge and Sandybridge) | ||
234 | 222 | ||
235 | 223 | Nicholas Chin is interested in these: | Nicholas Chin is interested in these: |
236 | 224 | ||
... | ... | Look at the page: | |
251 | 239 | It lists Dell Latitude models, though "Precision" brand is also available | It lists Dell Latitude models, though "Precision" brand is also available |
252 | 240 | on some models that may be Libreboot-feasible. | on some models that may be Libreboot-feasible. |
253 | 241 | ||
254 | ARM-based CrOS devices | ||
255 | ---------------------- | ||
242 | ### ARM-based CrOS devices | ||
256 | 243 | ||
257 | 244 | Alper Nebi Yasak ported several of these to Libreboot, but only | Alper Nebi Yasak ported several of these to Libreboot, but only |
258 | 245 | the `gru_bob` and `gru_kevin` machines are known to be stable. | the `gru_bob` and `gru_kevin` machines are known to be stable. |
... | ... | on `gru` chromebooks. | |
278 | 265 | Caleb is interested in the `krane` chromebooks, but has had problems with vboot, | Caleb is interested in the `krane` chromebooks, but has had problems with vboot, |
279 | 266 | getting it to boot reliably on custom firmware builds. | getting it to boot reliably on custom firmware builds. |
280 | 267 | ||
281 | OpenSIL and AMD Ryzen | ||
282 | --------------------- | ||
268 | ### OpenSIL and AMD Ryzen | ||
283 | 269 | ||
284 | 270 | Coreboot is importing OpenSIL code from AMD, to support Epyc Genoa (server | Coreboot is importing OpenSIL code from AMD, to support Epyc Genoa (server |
285 | 271 | platform). | platform). |
... | ... | coreboot, under the direction of Arthur Heymans. | |
297 | 283 | ||
298 | 284 | also <https://www.youtube.com/watch?v=gAZw0fTKdYg> | also <https://www.youtube.com/watch?v=gAZw0fTKdYg> |
299 | 285 | ||
300 | AMD Family16 boards | ||
301 | ------------------- | ||
286 | ### AMD Family16 boards | ||
302 | 287 | ||
303 | 288 | See: <https://review.coreboot.org/c/coreboot/+/71607> | See: <https://review.coreboot.org/c/coreboot/+/71607> |
304 | 289 | ||
... | ... | Also referenced there: Biostar A68N-5200 mainboard. Check | |
315 | 300 | coreboot `4.18_branch` for these boards. Coreboot started removing the | coreboot `4.18_branch` for these boards. Coreboot started removing the |
316 | 301 | AGESA boards after release 4.11. | AGESA boards after release 4.11. |
317 | 302 | ||
318 | Lenovo G505s | ||
319 | ------------ | ||
303 | ### Lenovo G505s | ||
320 | 304 | ||
321 | 305 | Old board, removed from coreboot ages ago, but one of the fastest pre-PSP | Old board, removed from coreboot ages ago, but one of the fastest pre-PSP |
322 | 306 | AMD laptops, has full init in coreboot - it does require a VGA ROM for | AMD laptops, has full init in coreboot - it does require a VGA ROM for |
... | ... | graphics. Anyway: | |
326 | 310 | This page was linked to me ages ago by Mike Banon. It contains instructions | This page was linked to me ages ago by Mike Banon. It contains instructions |
327 | 311 | for how to configure the machine. It might be worth integrating into lbmk. | for how to configure the machine. It might be worth integrating into lbmk. |
328 | 312 | ||
329 | RISC-V hardware | ||
330 | --------------- | ||
313 | ### RISC-V hardware | ||
331 | 314 | ||
332 | 315 | See: <https://github.com/oreboot/oreboot> | See: <https://github.com/oreboot/oreboot> |
333 | 316 | ||
... | ... | oreboot is still a good project. | |
340 | 323 | (though, whenever possible, lbmk should stick to coreboot, to keep things | (though, whenever possible, lbmk should stick to coreboot, to keep things |
341 | 324 | simpler - are there efforts to implement oreboot ports in coreboot/C?) | simpler - are there efforts to implement oreboot ports in coreboot/C?) |
342 | 325 | ||
343 | LoongArch support | ||
344 | ----------------- | ||
326 | ### LoongArch support | ||
345 | 327 | ||
346 | 328 | Ariadne Conill has been working on bringup for coreboot. Work also being done | Ariadne Conill has been working on bringup for coreboot. Work also being done |
347 | 329 | with edk2; U-Boot also desirable here. | with edk2; U-Boot also desirable here. |
348 | 330 | ||
349 | RockPro64 | ||
350 | --------- | ||
331 | ### RockPro64 | ||
351 | 332 | ||
352 | 333 | Another interesting board that coreboot supports. We could add this. | Another interesting board that coreboot supports. We could add this. |
353 | 334 | ||
354 | uefistub | ||
355 | -------- | ||
335 | ### uefistub | ||
356 | 336 | ||
357 | 337 | Currently [under review](https://review.coreboot.org/c/coreboot/+/78913) in | Currently [under review](https://review.coreboot.org/c/coreboot/+/78913) in |
358 | 338 | the coreboot project, this provides an *incomplete* UEFI implementation, but | the coreboot project, this provides an *incomplete* UEFI implementation, but |
... | ... | uefistub will remain mentioned here for the time being. The context for | |
369 | 349 | uefistub is linuxboot-only setups; this is where uefistub can truly shine, | uefistub is linuxboot-only setups; this is where uefistub can truly shine, |
370 | 350 | specifically on ARM64 devices. | specifically on ARM64 devices. |
371 | 351 | ||
372 | Videos (plus RISCV) | ||
373 | ------ | ||
352 | ### Videos (plus RISCV) | ||
374 | 353 | ||
375 | 354 | The *Open Source Firmware Conference* (OSFC) in 2023 had several interesting | The *Open Source Firmware Conference* (OSFC) in 2023 had several interesting |
376 | 355 | talks pertaining to ARM, secureboot, linuxboot, UEFI and everything in between. | talks pertaining to ARM, secureboot, linuxboot, UEFI and everything in between. |
... | ... | In general, there are many interesting talks: | |
388 | 367 | The talks go all the way back to 2018. They're all worth watching. | The talks go all the way back to 2018. They're all worth watching. |
389 | 368 | ||
390 | 369 | Linuxboot | Linuxboot |
391 | ========= | ||
370 | --------- | ||
392 | 371 | ||
393 | 372 | **NOTE: Stali Linux is a useful base, on top of which any Linux-based setup | **NOTE: Stali Linux is a useful base, on top of which any Linux-based setup |
394 | 373 | could be built. With a stripped down kernel, it already provides a sensible | could be built. With a stripped down kernel, it already provides a sensible |
... | ... | This makes it a useful drop-in replacement for the GRUB bootloader payload that | |
422 | 401 | Libreboot currently uses. Linux has much better drivers than GRUB, especially | Libreboot currently uses. Linux has much better drivers than GRUB, especially |
423 | 402 | for things like LUKS2 and networking. | for things like LUKS2 and networking. |
424 | 403 | ||
425 | Ideas for how to implement in lbmk | ||
426 | ----------------------------------- | ||
404 | ### Ideas for how to implement in lbmk | ||
427 | 405 | ||
428 | 406 | Look at the [lbmk documentation](../docs/maintain/) for context. The most | Look at the [lbmk documentation](../docs/maintain/) for context. The most |
429 | 407 | logical way to implement Linux payloads in Libreboot's build system, lbmk, | logical way to implement Linux payloads in Libreboot's build system, lbmk, |
... | ... | build system would not increase much. It's mainly the addition of | |
462 | 440 | musl-cross-make. Most of the generic build logic already exists in lbmk, for | musl-cross-make. Most of the generic build logic already exists in lbmk, for |
463 | 441 | projects that use cmake and/or make. It could be done with minimal complexity. | projects that use cmake and/or make. It could be done with minimal complexity. |
464 | 442 | ||
465 | Flash size limitations | ||
466 | ---------------------- | ||
443 | ### Flash size limitations | ||
467 | 444 | ||
468 | 445 | With a stripped down kernel, and sensible configuration, about 6-8MB of flash | With a stripped down kernel, and sensible configuration, about 6-8MB of flash |
469 | 446 | space would be required in this setup. The Heads setup is just under 8MB. | space would be required in this setup. The Heads setup is just under 8MB. |
470 | 447 | ||
471 | Why Linux in flash? | ||
472 | ------------------- | ||
448 | ### Why Linux in flash? | ||
473 | 449 | ||
474 | 450 | Linux has better drivers than GRUB, has netboot, and it's much more practical | Linux has better drivers than GRUB, has netboot, and it's much more practical |
475 | 451 | when you want to control the boot process. For example, you could more easily | when you want to control the boot process. For example, you could more easily |
... | ... | implement measured boot and make use of TPM-based security mechanisms. | |
478 | 454 | For the everyday user, it probably doesn't make much difference if they're | For the everyday user, it probably doesn't make much difference if they're |
479 | 455 | already happy with SeaBIOS, GRUB or SeaBIOS. | already happy with SeaBIOS, GRUB or SeaBIOS. |
480 | 456 | ||
481 | x86 implementation | ||
482 | ------------------ | ||
457 | ### x86 implementation | ||
483 | 458 | ||
484 | 459 | Coreboot can directly execute it as a payload, but we would also execute it | Coreboot can directly execute it as a payload, but we would also execute it |
485 | 460 | from the GRUB payload - if running from the GRUB payload, we could just provide | from the GRUB payload - if running from the GRUB payload, we could just provide |
486 | 461 | it as a vmlinuz and initramfs file. | it as a vmlinuz and initramfs file. |
487 | 462 | ||
488 | ARM implementation | ||
489 | ------------------ | ||
463 | ### ARM implementation | ||
490 | 464 | ||
491 | 465 | We already standardise on U-Boot, for ARM machines. It's debateable whether | We already standardise on U-Boot, for ARM machines. It's debateable whether |
492 | 466 | Linuxboot is even desirable here, U-Boot is quite competent, but the SPL mode | Linuxboot is even desirable here, U-Boot is quite competent, but the SPL mode |
... | ... | correct UEFI implementation. | |
505 | 479 | (then again, linux on bare metal providing kexec as main bootloader method is | (then again, linux on bare metal providing kexec as main bootloader method is |
506 | 480 | also quite non-standard, at least on x86 and ARM). | also quite non-standard, at least on x86 and ARM). |
507 | 481 | ||
508 | Netboot.xyz | ||
509 | ----------- | ||
482 | ### Netboot.xyz | ||
510 | 483 | ||
511 | 484 | It's unlikely that this will actually be used in lbmk, but this provides a really | It's unlikely that this will actually be used in lbmk, but this provides a really |
512 | 485 | nice way to boot Linux distros over the network: | nice way to boot Linux distros over the network: |
... | ... | nice way to boot Linux distros over the network: | |
515 | 488 | ||
516 | 489 | It uses iPXE, whereas we would be using Linux and kexec. | It uses iPXE, whereas we would be using Linux and kexec. |
517 | 490 | ||
518 | Zfsbootmenu | ||
519 | ----------- | ||
491 | ### Zfsbootmenu | ||
520 | 492 | ||
521 | 493 | See: <https://docs.zfsbootmenu.org/en/v2.3.x/> | See: <https://docs.zfsbootmenu.org/en/v2.3.x/> |
522 | 494 | ||
... | ... | This was briefly documented on the Libreboot website, | |
527 | 499 | before [argon2 kdf support](../news/argon2.md) was merged in Libreboot GRUB. | before [argon2 kdf support](../news/argon2.md) was merged in Libreboot GRUB. |
528 | 500 | ||
529 | 501 | Seek QUBES endorsement | Seek QUBES endorsement |
530 | ====================== | ||
502 | ---------------------- | ||
531 | 503 | ||
532 | 504 | Libreboot is compatible with Qubes, on several supported mainboards. This could | Libreboot is compatible with Qubes, on several supported mainboards. This could |
533 | 505 | be audited, to provide a complete list. Qubes has a page on their website which | be audited, to provide a complete list. Qubes has a page on their website which |
... | ... | the same time, which is an excellent project. We could host a page specifically | |
538 | 510 | for it, saying what works on our end, and basically copy that to their wiki. | for it, saying what works on our end, and basically copy that to their wiki. |
539 | 511 | ||
540 | 512 | GRUB VGA modes | GRUB VGA modes |
541 | ============== | ||
513 | -------------- | ||
542 | 514 | ||
543 | 515 | VGA support is not universal in Libreboot. We typically rely on GRUB to start | VGA support is not universal in Libreboot. We typically rely on GRUB to start |
544 | 516 | in console mode (`GRUB_TERMINAL=console`), which means GRUB won't change | in console mode (`GRUB_TERMINAL=console`), which means GRUB won't change |
... | ... | menu works is, it scans for GRUB and Syslinux/Extlinux configs on the user's | |
557 | 529 | HDD/SSD, switching to the first one found. | HDD/SSD, switching to the first one found. |
558 | 530 | ||
559 | 531 | GRUB configs menu | GRUB configs menu |
560 | ================ | ||
532 | ----------------- | ||
561 | 533 | ||
562 | 534 | Libreboot systematically scans for GRUB/Syslinux/Extlinux configs provided by | Libreboot systematically scans for GRUB/Syslinux/Extlinux configs provided by |
563 | 535 | the user's operating system, by scanning partitions. It can also scan | the user's operating system, by scanning partitions. It can also scan |
... | ... | This pertains to the GRUB *payload* provided in the flash, by Libreboot. It is | |
577 | 549 | currently the preferred payload in Libreboot, at least for x86 machines. | currently the preferred payload in Libreboot, at least for x86 machines. |
578 | 550 | ||
579 | 551 | Document flash write protection | Document flash write protection |
580 | ============================ | ||
552 | ------------------------------- | ||
581 | 553 | ||
582 | IFD-based method | ||
583 | ---------------- | ||
554 | ### IFD-based method | ||
584 | 555 | ||
585 | 556 | Already covered, but could be documented more prominently. | Already covered, but could be documented more prominently. |
586 | 557 | Use `ifdtool --lock libreboot.rom` to lock the IFD. | Use `ifdtool --lock libreboot.rom` to lock the IFD. |
... | ... | useless; on the E6400, the EC firmware can be instructed to override the | |
593 | 564 | IFD settings, by enabling the Flash Descriptor Override (in fact, this is part | IFD settings, by enabling the Flash Descriptor Override (in fact, this is part |
594 | 565 | of what the `dell-flash-unlock` utility does). | of what the `dell-flash-unlock` utility does). |
595 | 566 | ||
596 | FLILL-based method | ||
597 | ------------------ | ||
567 | ### FLILL-based method | ||
598 | 568 | ||
599 | 569 | We already vaguely mention Intel Flash Descriptor settings ta enable | We already vaguely mention Intel Flash Descriptor settings ta enable |
600 | 570 | write protection. This documentation should be expanded on. | write protection. This documentation should be expanded on. |
... | ... | Flash Descriptor Override, will not affect FLILL entries. | |
621 | 591 | ||
622 | 592 | We could document this on the Libreboot website. | We could document this on the Libreboot website. |
623 | 593 | ||
624 | SMM write protection | ||
625 | -------------------- | ||
594 | ### SMM write protection | ||
626 | 595 | ||
627 | 596 | system management mode can also be used, to implement flash write protection. | system management mode can also be used, to implement flash write protection. |
628 | 597 | ||
629 | PR (Protected Range) registers | ||
630 | ------------------------------ | ||
598 | ### PR (Protected Range) registers | ||
631 | 599 | ||
632 | 600 | Differing per platform but defined by Intel datasheets, the Protected Range | Differing per platform but defined by Intel datasheets, the Protected Range |
633 | 601 | registers can be set, to enable flash write protection. Once written, these | registers can be set, to enable flash write protection. Once written, these |
... | ... | protecting `/dev/mem` by default, that the user can turn off at boot time when | |
657 | 625 | they want to flash (e.g. cmdline option `iomem=relaxed` in Linux, | they want to flash (e.g. cmdline option `iomem=relaxed` in Linux, |
658 | 626 | or `kern.securelevel=-1` in OpenBSD). | or `kern.securelevel=-1` in OpenBSD). |
659 | 627 | ||
660 | Chip-specific | ||
661 | ------------- | ||
628 | ### Chip-specific | ||
662 | 629 | ||
663 | 630 | Some flash chips support their own write protection scheme, covered in their | Some flash chips support their own write protection scheme, covered in their |
664 | 631 | datasheets, but this is usually unreliable or inconsistent. This method is | datasheets, but this is usually unreliable or inconsistent. This method is |
665 | 632 | not to be relied upon. | not to be relied upon. |
666 | 633 | ||
667 | Layers! | ||
668 | ------- | ||
634 | ### Layers! | ||
669 | 635 | ||
670 | 636 | Security is all about layers. When you want to lock down the flash, use every | Security is all about layers. When you want to lock down the flash, use every |
671 | 637 | method available to you. | method available to you. |
672 | 638 | ||
673 | 639 | lbwww: Document MXM graphics | lbwww: Document MXM graphics |
674 | ============================ | ||
640 | ---------------------------- | ||
675 | 641 | ||
676 | 642 | MXM graphics modules are present, on some laptops that we do not yet support, | MXM graphics modules are present, on some laptops that we do not yet support, |
677 | 643 | because certain functionality is needed on them that we do not implement yet. | because certain functionality is needed on them that we do not implement yet. |
... | ... | Several more high-end HP EliteBook machines use MXM graphics modules, | |
688 | 654 | e.g. HP EliteBook 8560w. | e.g. HP EliteBook 8560w. |
689 | 655 | ||
690 | 656 | lbmk-c: clustered builds | lbmk-c: clustered builds |
691 | ======================== | ||
657 | ------------------------ | ||
692 | 658 | ||
693 | 659 | I had an idea on IRC when we were talking about how to optimise the build | I had an idea on IRC when we were talking about how to optimise the build |
694 | 660 | speed in Libreboot. Most of the time is spent simply compiling the ROM images, | speed in Libreboot. Most of the time is spent simply compiling the ROM images, |
... | ... | distcc is probably useful here: | |
715 | 681 | ||
716 | 682 | <https://www.distcc.org/scenarios.html> | <https://www.distcc.org/scenarios.html> |
717 | 683 | ||
718 | ccache | ||
719 | ------ | ||
684 | ### ccache | ||
720 | 685 | ||
721 | 686 | not directly related, but this can speed up coreboot builds | not directly related, but this can speed up coreboot builds |
722 | 687 | ||
723 | 688 | Fixdep | Fixdep |
724 | ====== | ||
689 | ------ | ||
725 | 690 | ||
726 | 691 | This would be something to implement in coreboot's build system, but could also | This would be something to implement in coreboot's build system, but could also |
727 | 692 | benefit lbmk. Currently, any changes to the coreboot's config results in Make | benefit lbmk. Currently, any changes to the coreboot's config results in Make |
... | ... | config. | |
753 | 718 | ||
754 | 719 | Consider: | Consider: |
755 | 720 | ||
756 | - Board A, which sets CONFIG_TEST=y | ||
757 | - Board B, which sets CONFIG_TEST=n | ||
758 | - Board C, which sets CONFIG_TEST=y | ||
759 | - test.c, which uses the value of CONFIG_TEST | ||
721 | - Board A, which sets CONFIG\_TEST=y | ||
722 | - Board B, which sets CONFIG\_TEST=n | ||
723 | - Board C, which sets CONFIG\_TEST=y | ||
724 | - test.c, which uses the value of CONFIG\_TEST | ||
760 | 725 | ||
761 | An order such as A->C->B would be most efficient: | ||
726 | An order such as A-\>C-\>B would be most efficient: | ||
762 | 727 | ||
763 | 1. A: test.c compiled for the first time with CONFIG_TEST=y | ||
764 | 2. C: CONFIG_TEST hasn't changed, so test.o can be reused from step 1 | ||
765 | 3. B: test.c recompiled, since CONFIG_TEST changed back to n | ||
728 | 1. A: test.c compiled for the first time with CONFIG\_TEST=y | ||
729 | 2. C: CONFIG\_TEST hasn't changed, so test.o can be reused from step 1 | ||
730 | 3. B: test.c recompiled, since CONFIG\_TEST changed back to n | ||
766 | 731 | ||
767 | An order such as A->B->C would be least efficient: | ||
732 | An order such as A-\>B-\>C would be least efficient: | ||
768 | 733 | ||
769 | 1. A: test.c compiled for the first time with CONFIG_TEST=y | ||
770 | 2. B: test.c recompiled, since CONFIG_TEST changed to n | ||
771 | 3. C: test.c recompiled again, since CONFIG_TEST changed back to y, even though | ||
734 | 1. A: test.c compiled for the first time with CONFIG\_TEST=y | ||
735 | 2. B: test.c recompiled, since CONFIG\_TEST changed to n | ||
736 | 3. C: test.c recompiled again, since CONFIG\_TEST changed back to y, even though | ||
772 | 737 | this configuration was previously built in step 1. | this configuration was previously built in step 1. |
773 | 738 | ||
774 | 739 | Given the number of possible configs, the ideal order is likely impractical to | Given the number of possible configs, the ideal order is likely impractical to |
... | ... | the header "Dependency tracking": | |
787 | 752 | Nicholas Chin is looking at this in coreboot. | Nicholas Chin is looking at this in coreboot. |
788 | 753 | ||
789 | 754 | Use crossgcc for SeaBIOS and GRUB | Use crossgcc for SeaBIOS and GRUB |
790 | ================================= | ||
755 | --------------------------------- | ||
791 | 756 | ||
792 | 757 | We currently use hostcc for the SeaBIOS and GRUB payloads. This, among other | We currently use hostcc for the SeaBIOS and GRUB payloads. This, among other |
793 | 758 | things, means lbmk is currently only supported for amd64 machines. | things, means lbmk is currently only supported for amd64 machines. |
... | ... | GRUB specifically, we should therefore use musl-cross-make. SeaBIOS can be | |
802 | 767 | built using crossgcc. | built using crossgcc. |
803 | 768 | ||
804 | 769 | Port lbmk to BSD systems | Port lbmk to BSD systems |
805 | ======================== | ||
770 | ------------------------ | ||
806 | 771 | ||
807 | 772 | In particular, FreeBSD is of interest. | In particular, FreeBSD is of interest. |
808 | 773 | ||
... | ... | Libreboot already has excellent support for booting all of the BSDs. Having the | |
836 | 801 | build system be compatible would just be another great boon. | build system be compatible would just be another great boon. |
837 | 802 | ||
838 | 803 | Package lbmk in distros | Package lbmk in distros |
839 | ======================= | ||
804 | ----------------------- | ||
840 | 805 | ||
841 | 806 | Providing binaries of Libreboot in distros wouldn't make sense, because we | Providing binaries of Libreboot in distros wouldn't make sense, because we |
842 | 807 | do that anyway, on Libreboot RSYNC, but having ports of the build system on | do that anyway, on Libreboot RSYNC, but having ports of the build system on |
... | ... | system itself. A distro could package lbmk to build for a specific Libreboot | |
863 | 828 | version, and handle all of the dependencies and everything. | version, and handle all of the dependencies and everything. |
864 | 829 | ||
865 | 830 | Vendor scripts | Vendor scripts |
866 | ============== | ||
831 | -------------- | ||
867 | 832 | ||
868 | Bruteforce more files | ||
869 | --------------------- | ||
833 | ### Bruteforce more files | ||
870 | 834 | ||
871 | 835 | We bruteforce extract IME but some other firmwares are more or less | We bruteforce extract IME but some other firmwares are more or less |
872 | 836 | hardcoded in config. | hardcoded in config. |
... | ... | time. This work began mostly after mid-2022, and has since been expanded to | |
885 | 849 | cover many types of firmwares, used on various mainboards. | cover many types of firmwares, used on various mainboards. |
886 | 850 | ||
887 | 851 | Investigate 16MB flash setups | Investigate 16MB flash setups |
888 | ============================= | ||
852 | ----------------------------- | ||
889 | 853 | ||
890 | 854 | On some ivybridge and sandybridge boards, where flash is 8MB or 12MB, | On some ivybridge and sandybridge boards, where flash is 8MB or 12MB, |
891 | 855 | it is feasible (with some soldering) to upgrade it to 16MB setups. | it is feasible (with some soldering) to upgrade it to 16MB setups. |
... | ... | MOSI/MISO are shared, and the PCH/southbridge will enable or disable the given | |
912 | 876 | flash IC to access the region needed. | flash IC to access the region needed. |
913 | 877 | ||
914 | 878 | ME Cleaner status page | ME Cleaner status page |
915 | ====================== | ||
879 | ---------------------- | ||
916 | 880 | ||
917 | 881 | See: <https://github.com/corna/me_cleaner/issues/3> | See: <https://github.com/corna/me_cleaner/issues/3> |
918 | 882 | ||
... | ... | It's a good reference, though far from complete. People post there saying | |
920 | 884 | whether their hardware works with `me_cleaner`. | whether their hardware works with `me_cleaner`. |
921 | 885 | ||
922 | 886 | Overclocking | Overclocking |
923 | ============ | ||
887 | ------------ | ||
924 | 888 | ||
925 | 889 | See: <https://review.coreboot.org/c/coreboot/+/42547> | See: <https://review.coreboot.org/c/coreboot/+/42547> |
926 | 890 | ||
... | ... | It might be useful on some machines. The research here (by Angel Pons) may be | |
932 | 896 | transferrable to other platforms. | transferrable to other platforms. |
933 | 897 | ||
934 | 898 | Detect module changes | Detect module changes |
935 | ===================== | ||
899 | --------------------- | ||
936 | 900 | ||
937 | 901 | When a given package is already downloaded and built in some way, lbmk | When a given package is already downloaded and built in some way, lbmk |
938 | 902 | currently works on the assumption that it doesn't change. During development, | currently works on the assumption that it doesn't change. During development, |
... | ... | In practise, revisions don't change very often in Libreboot, and they're | |
949 | 913 | normally updated all at once, when they are updated. | normally updated all at once, when they are updated. |
950 | 914 | ||
951 | 915 | Normal/fallback scheme | Normal/fallback scheme |
952 | ====================== | ||
916 | ---------------------- | ||
953 | 917 | ||
954 | 918 | Libreboot currently does not handle the normal/fallback payload scheme at all. | Libreboot currently does not handle the normal/fallback payload scheme at all. |
955 | 919 | Instead, it is assumed that the user will always be booting from the fallback | Instead, it is assumed that the user will always be booting from the fallback |
... | ... | Coreboot supports configuring which scheme to use, at boot time, but we don't | |
960 | 924 | use it. Coreboot's default is to always load the fallback, so we use that. | use it. Coreboot's default is to always load the fallback, so we use that. |
961 | 925 | ||
962 | 926 | Improved payload documentation | Improved payload documentation |
963 | =============================== | ||
927 | ------------------------------ | ||
964 | 928 | ||
965 | 929 | The actual payload documentation is quite sparse in Libreboot, especially SeaBIOS | The actual payload documentation is quite sparse in Libreboot, especially SeaBIOS |
966 | 930 | but also GRUB. We don't need to repeat what is said by upstream docs, but we | but also GRUB. We don't need to repeat what is said by upstream docs, but we |
... | ... | We should start writing about the payloads in more detail, referencing upstream | |
970 | 934 | documentation whenever possible. | documentation whenever possible. |
971 | 935 | ||
972 | 936 | Static compiled utils in releases | Static compiled utils in releases |
973 | ================================= | ||
937 | --------------------------------- | ||
974 | 938 | ||
975 | 939 | We curerntly only provide binaries of the firmware itself, for each mainboard, | We curerntly only provide binaries of the firmware itself, for each mainboard, |
976 | 940 | but we do not provide utilities compiled. We provide only source code, and the | but we do not provide utilities compiled. We provide only source code, and the |
... | ... | download scripts. This should be done alongside providing musl-cross-make for | |
981 | 945 | the linuxboot builds. | the linuxboot builds. |
982 | 946 | ||
983 | 947 | Download repositories in bulk | Download repositories in bulk |
984 | ============================= | ||
948 | ----------------------------- | ||
985 | 949 | ||
986 | 950 | At present, lbmk does what it needs to do, and downloads repositories only as | At present, lbmk does what it needs to do, and downloads repositories only as |
987 | 951 | required, upon each stage of the boot process. For example, it may download | required, upon each stage of the boot process. For example, it may download |
... | ... | but for very long builds (ones that take hours, which some do), it may be that | |
994 | 958 | the user's internet goes down, and a latter part of the build fails, where it | the user's internet goes down, and a latter part of the build fails, where it |
995 | 959 | might have succeeded if packages were downloaded much earlier and in bulk. | might have succeeded if packages were downloaded much earlier and in bulk. |
996 | 960 | ||
997 | Optimisation | ||
998 | ------------ | ||
961 | ### Optimisation | ||
999 | 962 | ||
1000 | 963 | So, TODO: Make lbmk determine precisely what packages would later be downloaded | So, TODO: Make lbmk determine precisely what packages would later be downloaded |
1001 | 964 | through various parts of a build, for a given command, and do it all at once, | through various parts of a build, for a given command, and do it all at once, |
... | ... | recommended that you run lbmk an on internet connection that is at least 100Mbps | |
1011 | 974 | You can still use slower connections, it'll just take longer. | You can still use slower connections, it'll just take longer. |
1012 | 975 | ||
1013 | 976 | Don't copy src trees | Don't copy src trees |
1014 | ==================== | ||
977 | -------------------- | ||
1015 | 978 | ||
1016 | 979 | For multi-tree projects, lbmk currently copies the source code per tree, | For multi-tree projects, lbmk currently copies the source code per tree, |
1017 | 980 | e.g. `coreboot/default`, `coreboot/dell`. What could be done instead is to | e.g. `coreboot/default`, `coreboot/dell`. What could be done instead is to |
... | ... | provided, they would just use whatever revision is used in the defined submodule | |
1037 | 1000 | for the main target project that lbmk is downloading for. | for the main target project that lbmk is downloading for. |
1038 | 1001 | ||
1039 | 1002 | Vendor scripts | Vendor scripts |
1040 | ============== | ||
1003 | -------------- | ||
1041 | 1004 | ||
1042 | Check hashes of resulting files | ||
1043 | ------------------------------- | ||
1005 | ### Check hashes of resulting files | ||
1044 | 1006 | ||
1045 | 1007 | Libreboot extracts the files from vendor updates, and those updates are checked | Libreboot extracts the files from vendor updates, and those updates are checked |
1046 | 1008 | against known hashes, but lbmk only defines such hashes for the larger updates | against known hashes, but lbmk only defines such hashes for the larger updates |
... | ... | to current behaviour (only check the main file) if individual checksums for | |
1050 | 1012 | inside files are not defined. | inside files are not defined. |
1051 | 1013 | ||
1052 | 1014 | Reproducible builds | Reproducible builds |
1053 | =================== | ||
1015 | ------------------- | ||
1054 | 1016 | ||
1055 | 1017 | We can't focus on this reliably, because we use hostcc extensively for many | We can't focus on this reliably, because we use hostcc extensively for many |
1056 | 1018 | parts of the build process. Other parts of this TODO page talk about how to | parts of the build process. Other parts of this TODO page talk about how to |
... | ... | Cross compilation is the first step to reproducibility, because then we only | |
1060 | 1022 | have to worry about the toolchain, which is easier to control. We can start | have to worry about the toolchain, which is easier to control. We can start |
1061 | 1023 | focusing specifically on reproducibility once all of that has been done. | focusing specifically on reproducibility once all of that has been done. |
1062 | 1024 | ||
1063 | Tarballs | ||
1064 | -------- | ||
1025 | ### Tarballs | ||
1065 | 1026 | ||
1066 | 1027 | We already have partial reproducibility, though we currently use the `-T0` | We already have partial reproducibility, though we currently use the `-T0` |
1067 | 1028 | option in xz, whereas `-T1` is more appropriate; forcing it to run on 1 core | option in xz, whereas `-T1` is more appropriate; forcing it to run on 1 core |
... | ... | Also: <https://lists.debian.org/debian-dpkg/2016/10/msg00012.html> | |
1079 | 1040 | This post writes about the rationale for `-T1` when using xz. | This post writes about the rationale for `-T1` when using xz. |
1080 | 1041 | ||
1081 | 1042 | VGA: Run-time, not build-time | VGA: Run-time, not build-time |
1082 | ============================= | ||
1043 | ----------------------------- | ||
1083 | 1044 | ||
1084 | 1045 | In coreboot, configuration of video initialisation is done at build time. This | In coreboot, configuration of video initialisation is done at build time. This |
1085 | 1046 | has several disadvantages, in that you now need multiple ROM images for multiple | has several disadvantages, in that you now need multiple ROM images for multiple |
... | ... | possible to change the payload at runtime for instance (manually), by running | |
1123 | 1084 | cbfstool. | cbfstool. |
1124 | 1085 | ||
1125 | 1086 | Modularise the coreboot stages | Modularise the coreboot stages |
1126 | ============================== | ||
1087 | ------------------------------ | ||
1127 | 1088 | ||
1128 | ie. generate cbfs in lbmk | ||
1129 | ------------------------- | ||
1089 | ### ie. generate cbfs in lbmk | ||
1130 | 1090 | ||
1131 | 1091 | We currently use the coreboot build system which is designed to build all | We currently use the coreboot build system which is designed to build all |
1132 | 1092 | stages, such as the bootblock, car, ramstage, romstage etc. The coreboot build | stages, such as the bootblock, car, ramstage, romstage etc. The coreboot build |
... | ... | We might have to backport to some older revisions, because lbmk uses certain | |
1156 | 1116 | older revisions on some machines, e.g. AMD AGESA platforms. | older revisions on some machines, e.g. AMD AGESA platforms. |
1157 | 1117 | ||
1158 | 1118 | Macbook21 C-states patch | Macbook21 C-states patch |
1159 | ======================== | ||
1119 | ------------------------ | ||
1160 | 1120 | ||
1161 | 1121 | See: <https://review.coreboot.org/c/coreboot/+/63587> | See: <https://review.coreboot.org/c/coreboot/+/63587> |
1162 | 1122 | ||
... | ... | is described there), we can expand it to configure c-states differently on | |
1168 | 1128 | imac52. This config is used to enable efficient power management, on these | imac52. This config is used to enable efficient power management, on these |
1169 | 1129 | machines. | machines. |
1170 | 1130 | ||
1171 | How to dump c-state config | ||
1172 | -------------------------- | ||
1131 | ### How to dump c-state config | ||
1173 | 1132 | ||
1174 | 1133 | ``` | ``` |
1175 | 1134 | i2cdump 0x69 | i2cdump 0x69 |
... | ... | these machines, doesn't work well in apple's firmware. mentioned by avph in | |
1187 | 1146 | the gerrit link (see above) | the gerrit link (see above) |
1188 | 1147 | ||
1189 | 1148 | Check file ownership in builds | Check file ownership in builds |
1190 | ============================== | ||
1149 | ------------------------------ | ||
1191 | 1150 | ||
1192 | 1151 | When lbmk is running, it is assumed that the current user has ownership of | When lbmk is running, it is assumed that the current user has ownership of |
1193 | 1152 | the files. If lbmk is operated on a clone that is under different ownership, | the files. If lbmk is operated on a clone that is under different ownership, |
... | ... | warning message to the user, so that they know what to do to fix it. Lbmk | |
1207 | 1166 | would also then exit earlier, rather than trying to run something, which | would also then exit earlier, rather than trying to run something, which |
1208 | 1167 | might result in very unpredictable behaviour. | might result in very unpredictable behaviour. |
1209 | 1168 | ||
1210 | Sanity checks | ||
1211 | ------------- | ||
1169 | ### Sanity checks | ||
1212 | 1170 | ||
1213 | 1171 | We basically should have startup sanity checks in general, such as checking | We basically should have startup sanity checks in general, such as checking |
1214 | 1172 | whether all the right dependencies are installed on the host system. | whether all the right dependencies are installed on the host system. |
... | ... | is basically the same thing as the other entry on this page about porting | |
1229 | 1187 | to BSD. So tackle both. | to BSD. So tackle both. |
1230 | 1188 | ||
1231 | 1189 | Software Bill of Materials | Software Bill of Materials |
1232 | ========================== | ||
1190 | -------------------------- | ||
1233 | 1191 | ||
1234 | 1192 | Generate an SBOM for all of Libreboot, on release builds specifically; it can | Generate an SBOM for all of Libreboot, on release builds specifically; it can |
1235 | 1193 | be skipped for performance/convenience reasons on regular development builds | be skipped for performance/convenience reasons on regular development builds |
... | ... | NOTE: the `-z` option in ./update trees is not yet implemented. Again, the | |
1294 | 1252 | above just a concept. | above just a concept. |
1295 | 1253 | ||
1296 | 1254 | Re-use build artifacts | Re-use build artifacts |
1297 | ====================== | ||
1255 | ----------------------- | ||
1298 | 1256 | ||
1299 | 1257 | Libreboot's build system, lbmk, does not re-use artifacts well. It largely | Libreboot's build system, lbmk, does not re-use artifacts well. It largely |
1300 | 1258 | assumes that you are building everything from scratch, which is great for | assumes that you are building everything from scratch, which is great for |
... | ... | most projects only get built once, unless they are modified (by a developer). | |
1309 | 1267 | ||
1310 | 1268 | This might be useful for: | This might be useful for: |
1311 | 1269 | ||
1312 | Partial coreboot re-builds | ||
1313 | -------------------------- | ||
1270 | ### Partial coreboot re-builds | ||
1314 | 1271 | ||
1315 | 1272 | A lot of the time in lbmk, we are building multiple variants of the same | A lot of the time in lbmk, we are building multiple variants of the same |
1316 | 1273 | mainboard, for different setups. We could skip a lot of the re-building. | mainboard, for different setups. We could skip a lot of the re-building. |
... | ... | This pretty much goes hand in hand with the other entry on this TODO page, | |
1318 | 1275 | about spliting up the various stages in coreboot, and handling CBFS generation | about spliting up the various stages in coreboot, and handling CBFS generation |
1319 | 1276 | within lbmk. | within lbmk. |
1320 | 1277 | ||
1321 | Notes about Git | ||
1322 | --------------- | ||
1278 | ### Notes about Git | ||
1323 | 1279 | ||
1324 | 1280 | See: <https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/> | See: <https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/> |
1325 | 1281 | ||
... | ... | reducing the amount of deltas that need to be resolved when cloning). | |
1332 | 1288 | In particular, Git Work Trees are a useful feature that we might use in lbmk. | In particular, Git Work Trees are a useful feature that we might use in lbmk. |
1333 | 1289 | ||
1334 | 1290 | Chinese users can't run lbmk | Chinese users can't run lbmk |
1335 | ========================== | ||
1291 | ---------------------------- | ||
1336 | 1292 | ||
1337 | 1293 | Libreboot has quite a few Chinese users, but the Chinese internet blocks access | Libreboot has quite a few Chinese users, but the Chinese internet blocks access |
1338 | 1294 | to several sites like github - and apparently the coreboot gerrit site is also | to several sites like github - and apparently the coreboot gerrit site is also |
... | ... | copy of GitHub), but registration required a Chinese phone number, so I couldn't | |
1351 | 1307 | make an account. I was going to set it up for Libreboot. | make an account. I was going to set it up for Libreboot. |
1352 | 1308 | ||
1353 | 1309 | me cleaner is old | me cleaner is old |
1354 | ================= | ||
1310 | ----------------- | ||
1355 | 1311 | ||
1356 | 1312 | From what I can tell, `me_cleaner` is not well-tested or supported on many | From what I can tell, `me_cleaner` is not well-tested or supported on many |
1357 | 1313 | newer Intel platforms. it shouldn't affect us in Libreboot for now, because we're | newer Intel platforms. it shouldn't affect us in Libreboot for now, because we're |
1358 | 1314 | not even past Haswell yet, but see for instance: | not even past Haswell yet, but see for instance: |
1359 | 1315 | ||
1360 | |||
1361 | Also: disablement | ||
1362 | ----------------- | ||
1316 | ### Also: disablement | ||
1363 | 1317 | ||
1364 | 1318 | See: <https://github.com/corna/me_cleaner/issues/278> | See: <https://github.com/corna/me_cleaner/issues/278> |
1365 | 1319 | ||
... | ... | possible to completely disable the ME (remove it from the nor flash), | |
1368 | 1322 | with "almost no ill effects" according to the OP on that issue page. | with "almost no ill effects" according to the OP on that issue page. |
1369 | 1323 | ||
1370 | 1324 | FAQ: cover USB fuzzing attacks | FAQ: cover USB fuzzing attacks |
1371 | ============================== | ||
1325 | ------------------------------ | ||
1372 | 1326 | ||
1373 | 1327 | We write on the FAQ that SATA devices could potentially have DMA capability, | We write on the FAQ that SATA devices could potentially have DMA capability, |
1374 | 1328 | but this has still not been proven, and it's probably not true in practise. | but this has still not been proven, and it's probably not true in practise. |
... | ... | So we should cover it, and talk about ways to mitigate the risk (e.g. disable | |
1389 | 1343 | USB input devices and networking devices, in the user's operating system). | USB input devices and networking devices, in the user's operating system). |
1390 | 1344 | ||
1391 | 1345 | Auto-configure IFD region limits | Auto-configure IFD region limits |
1392 | ================================ | ||
1346 | -------------------------------- | ||
1393 | 1347 | ||
1394 | 1348 | We currently configure the ME/BIOS region sizes manually, which is fine, but | We currently configure the ME/BIOS region sizes manually, which is fine, but |
1395 | 1349 | the way it's configured is very complicated. | the way it's configured is very complicated. |
... | ... | more; you can also read about them on the [lbmk maintenance | |
1429 | 1383 | manual](../docs/maintain/). | manual](../docs/maintain/). |
1430 | 1384 | ||
1431 | 1385 | Signed commits | Signed commits |
1432 | ============== | ||
1386 | -------------- | ||
1433 | 1387 | ||
1434 | 1388 | Start signing commits in Git. There's nothing more to say. Just do it. | Start signing commits in Git. There's nothing more to say. Just do it. |
1435 | 1389 | ||
1436 | 1390 | Secure suspend method (LUKS setups) | Secure suspend method (LUKS setups) |
1437 | ================================ | ||
1391 | ----------------------------------- | ||
1438 | 1392 | ||
1439 | 1393 | See: <https://github.com/shmalebx9/luks-suspend-portable> | See: <https://github.com/shmalebx9/luks-suspend-portable> |
1440 | 1394 | ||
... | ... | keys are not stored in memory. It's worth looking into. We might be able to | |
1443 | 1397 | provide something automated in lbmk. | provide something automated in lbmk. |
1444 | 1398 | ||
1445 | 1399 | USB keyboard in secondary payload | USB keyboard in secondary payload |
1446 | ================================= | ||
1400 | --------------------------------- | ||
1447 | 1401 | ||
1448 | 1402 | We don't use secondary payloads defined here, but see: | We don't use secondary payloads defined here, but see: |
1449 | 1403 | <https://ticket.coreboot.org/issues/484> | <https://ticket.coreboot.org/issues/484> |
... | ... | The issue page has info about the problem, and a workaround. Listed here | |
1452 | 1406 | for reference, in case this functionality is ever used in Libreboot. | for reference, in case this functionality is ever used in Libreboot. |
1453 | 1407 | ||
1454 | 1408 | zstd in btrfs on grub | zstd in btrfs on grub |
1455 | ===================== | ||
1409 | --------------------- | ||
1456 | 1410 | ||
1457 | 1411 | Reported buggy by a user on IRC. TODO: test it | Reported buggy by a user on IRC. TODO: test it |
1458 | 1412 | ||
... | ... | information was given, other than it is "buggy". Reported | |
1461 | 1415 | on Libreboot 20231101. | on Libreboot 20231101. |
1462 | 1416 | ||
1463 | 1417 | Optimise crossgcc space | Optimise crossgcc space |
1464 | ======================= | ||
1418 | ----------------------- | ||
1465 | 1419 | ||
1466 | 1420 | Re-use crossgcc from other coreboot trees, in other coreboot trees. We currently | Re-use crossgcc from other coreboot trees, in other coreboot trees. We currently |
1467 | 1421 | build several versions of it, but we probably only need one, maybe two. Audit | build several versions of it, but we probably only need one, maybe two. Audit |
... | ... | this, across various coreboot trees. Specific coreboot trees (older ones) could | |
1469 | 1423 | just be patched if re-using crossgcc from a newer tree. | just be patched if re-using crossgcc from a newer tree. |
1470 | 1424 | ||
1471 | 1425 | T60 /proc/acpi/ibm/thermal | T60 /proc/acpi/ibm/thermal |
1472 | ========================== | ||
1426 | -------------------------- | ||
1473 | 1427 | ||
1474 | 1428 | Reported by a user (unknown what LIbreboot version), this file is not available | Reported by a user (unknown what LIbreboot version), this file is not available |
1475 | 1429 | at all. It was later revealed that the user flashed a ROM image without microcode | at all. It was later revealed that the user flashed a ROM image without microcode |
... | ... | updates, triggering the AE18 errata. Thermal management is buggy without the | |
1477 | 1431 | updates, on that platform. | updates, on that platform. |
1478 | 1432 | ||
1479 | 1433 | Link CPU errata PDFs | Link CPU errata PDFs |
1480 | ===================== | ||
1434 | -------------------- | ||
1481 | 1435 | ||
1482 | 1436 | Libreboot makes reference to CPU errata in documentation, but without actually | Libreboot makes reference to CPU errata in documentation, but without actually |
1483 | 1437 | linking to the documents themselves. Link to the PDFs for all available CPUs, | linking to the documents themselves. Link to the PDFs for all available CPUs, |
... | ... | microcode updates - they also generally provide information for OS developers, | |
1487 | 1441 | to know how certain bugs should be mitigated, whenever possible. | to know how certain bugs should be mitigated, whenever possible. |
1488 | 1442 | ||
1489 | 1443 | Macbook2,1 backlight controls | Macbook2,1 backlight controls |
1490 | ============================= | ||
1444 | ----------------------------- | ||
1491 | 1445 | ||
1492 | 1446 | Was reported broken in linux 6.1, but works in 5.x | Was reported broken in linux 6.1, but works in 5.x |
1493 | 1447 | ||
... | ... | coreboot can differ a bit from the vendor firmware on some boards. | |
1504 | 1458 | ||
1505 | 1459 | Not really a major issue, but it does need to be addressed. | Not really a major issue, but it does need to be addressed. |
1506 | 1460 | ||
1507 | TODO: test other platforms too | ||
1508 | ------------------------------- | ||
1461 | ### TODO: test other platforms too | ||
1509 | 1462 | ||
1510 | 1463 | Test other platforms. | Test other platforms. |
1511 | 1464 | ||
1512 | 1465 | Document CH341A variants | Document CH341A variants |
1513 | ======================== | ||
1466 | ------------------------ | ||
1514 | 1467 | ||
1515 | 1468 | All CH341A variants are garbage for ISP-based flashing, because of weak | All CH341A variants are garbage for ISP-based flashing, because of weak |
1516 | 1469 | drive strength and poor board layout, also the WP/HOLD pins are often held | drive strength and poor board layout, also the WP/HOLD pins are often held |
... | ... | convenient, because you don't have to mess with a breadboard or anything, | |
1530 | 1483 | because they already have ZIF sockets on them for DIP-8 ICs, on which you can | because they already have ZIF sockets on them for DIP-8 ICs, on which you can |
1531 | 1484 | also use adapters for SOIC-8, SOIC-16 and WSON-8. | also use adapters for SOIC-8, SOIC-16 and WSON-8. |
1532 | 1485 | ||
1533 | E6400 VGA ROM (Nvidia) | ||
1534 | ---------------------- | ||
1486 | ### E6400 VGA ROM (Nvidia) | ||
1535 | 1487 | ||
1536 | 1488 | See: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990662#22> | See: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990662#22> |
1537 | 1489 | ||
... | ... | Also: `e6400nvidia_4mb` works better on that setup, nouveau is actually stable | |
1542 | 1494 | in some cases. Check the E6400 page for libreboot, it lists issues with nouveau | in some cases. Check the E6400 page for libreboot, it lists issues with nouveau |
1543 | 1495 | on those machines. | on those machines. |
1544 | 1496 | ||
1545 | Test Crystalwell CPUs on T440p | ||
1546 | ------------------------------ | ||
1497 | ### Test Crystalwell CPUs on T440p | ||
1547 | 1498 | ||
1548 | 1499 | Coreboot has support for these, but they have not been tested as far as I know, | Coreboot has support for these, but they have not been tested as far as I know, |
1549 | 1500 | and no reports have been made for them by Libreboot users. These offer higher | and no reports have been made for them by Libreboot users. These offer higher |
... | ... | performance and the machine is already very nice. | |
1551 | 1502 | ||
1552 | 1503 | Ditto W541. | Ditto W541. |
1553 | 1504 | ||
1554 | How to extract VBT data | ||
1555 | ----------------------- | ||
1505 | ### How to extract VBT data | ||
1556 | 1506 | ||
1557 | 1507 | See: | See: |
1558 | 1508 | ||
... | ... | Example patch (merged in coreboot) that used this: | |
1573 | 1523 | <https://review.coreboot.org/c/coreboot/+/79625> | <https://review.coreboot.org/c/coreboot/+/79625> |
1574 | 1524 | ||
1575 | 1525 | Guix: use debootstrap | Guix: use debootstrap |
1576 | ===================== | ||
1526 | --------------------- | ||
1577 | 1527 | ||
1578 | 1528 | GCC-Gnat is unavailable in Guix, due to the distro's requirement for sources | GCC-Gnat is unavailable in Guix, due to the distro's requirement for sources |
1579 | 1529 | to be bootstrapped. GCC-Gnat is also required, for building GCC-Gnat. We build | to be bootstrapped. GCC-Gnat is also required, for building GCC-Gnat. We build |
... | ... | In the logic for `./build dependencies distroname`, add an option for Guix, | |
1596 | 1546 | but on that one, make lbmk automatically set up debootstrap if it's being | but on that one, make lbmk automatically set up debootstrap if it's being |
1597 | 1547 | run for Guix (and it would detect whether the host actually is Guix System). | run for Guix (and it would detect whether the host actually is Guix System). |
1598 | 1548 | ||
1599 | docs/build/clean.md | ||
1600 | =================== | ||
1549 | docs/build/clean*.*md | ||
1550 | ------------------- | ||
1601 | 1551 | ||
1602 | 1552 | Add this section, telling the user (of lbmk specifically) how to clean various | Add this section, telling the user (of lbmk specifically) how to clean various |
1603 | 1553 | directories. This isn't handled universally, due to lbmk's design. When | directories. This isn't handled universally, due to lbmk's design. When |
... | ... | That is Libreboot's philosophy, that the user should never have to do more than | |
1619 | 1569 | is absolutely necessary when someonething could just as easily be done in code. | is absolutely necessary when someonething could just as easily be done in code. |
1620 | 1570 | ||
1621 | 1571 | E6400 security | E6400 security |
1622 | ============== | ||
1572 | -------------- | ||
1623 | 1573 | ||
1624 | 1574 | See other section on this page about write protection. | See other section on this page about write protection. |
1625 | 1575 | ||
1626 | 1576 | Setting PR registers for write protection is a valid way to write protect on | Setting PR registers for write protection is a valid way to write protect on |
1627 | 1577 | Dell E6400, and it would not be affected by the flash-unlock utilitiy. | Dell E6400, and it would not be affected by the flash-unlock utilitiy. |
1628 | 1578 | ||
1629 | SMM methods | ||
1630 | ----------- | ||
1579 | ### SMM methods | ||
1631 | 1580 | ||
1632 | 1581 | Tere are two SMM write protect methods: | Tere are two SMM write protect methods: |
1633 | 1582 | ||
... | ... | method. | |
1644 | 1593 | ^ These notes were supplied by Nicholas Chin via IRC. | ^ These notes were supplied by Nicholas Chin via IRC. |
1645 | 1594 | ||
1646 | 1595 | PCI-E REBAR | PCI-E REBAR |
1647 | =========== | ||
1596 | ----------- | ||
1648 | 1597 | ||
1649 | 1598 | See: <https://github.com/xCuri0/ReBarUEFI> | See: <https://github.com/xCuri0/ReBarUEFI> |
1650 | 1599 | ||
... | ... | factory firmware does not and will not enable it (and the above link is for | |
1664 | 1613 | UEFI systems only). | UEFI systems only). |
1665 | 1614 | ||
1666 | 1615 | Shrink FSP size (Intel) | Shrink FSP size (Intel) |
1667 | ========================= | ||
1616 | ----------------------- | ||
1668 | 1617 | ||
1669 | 1618 | See: <https://blog.osfw.foundation/breaking-the-boundary-a-way-to-create-your-own-fsp-binary/> | See: <https://blog.osfw.foundation/breaking-the-boundary-a-way-to-create-your-own-fsp-binary/> |
1670 | 1619 | ||
... | ... | but possible on other platforms. | |
1674 | 1623 | ||
1675 | 1624 | Thanks go to Nicholas Chin for linking this. | Thanks go to Nicholas Chin for linking this. |
1676 | 1625 | ||
1677 | Chromebooks | ||
1678 | ----------- | ||
1626 | ### Chromebooks | ||
1679 | 1627 | ||
1680 | 1628 | Especially useful here, if using the default setup. In the default setup, | Especially useful here, if using the default setup. In the default setup, |
1681 | 1629 | there are essentially three copies of the firmware in flash: a recovery | there are essentially three copies of the firmware in flash: a recovery |
1682 | 1630 | image, an "A" image and a "B" image, according to Nicholas Chin. | image, an "A" image and a "B" image, according to Nicholas Chin. |
1683 | 1631 | ||
1684 | 1632 | Compare factory/download neutered ME | Compare factory/download neutered ME |
1685 | ==================================== | ||
1633 | ------------------------------------ | ||
1686 | 1634 | ||
1687 | 1635 | Use tools and hexdump diffs to compare neutered Intel ME images, | Use tools and hexdump diffs to compare neutered Intel ME images, |
1688 | 1636 | comparing ones neutered from factory.bin dump, and ones from | comparing ones neutered from factory.bin dump, and ones from |
... | ... | doing this in osboot, and heads did it for years before we did, and | |
1694 | 1642 | they never had any problems). | they never had any problems). |
1695 | 1643 | ||
1696 | 1644 | HP 820 G2 TPM | HP 820 G2 TPM |
1697 | ============= | ||
1645 | ------------- | ||
1698 | 1646 | ||
1699 | 1647 | TODO: check that it can be upgraded to TPM 2.0 (default is 1.2). | TODO: check that it can be upgraded to TPM 2.0 (default is 1.2). |
1700 | 1648 | It's a SLB 9660 TPM | It's a SLB 9660 TPM |
... | ... | And also this, straight from the horse's mouth: | |
1712 | 1660 | <https://www.infineon.com/cms/en/product/security-smart-card-solutions/optiga-embedded-security-solutions/optiga-tpm/slb-9660xt1.2/> | <https://www.infineon.com/cms/en/product/security-smart-card-solutions/optiga-embedded-security-solutions/optiga-tpm/slb-9660xt1.2/> |
1713 | 1661 | ||
1714 | 1662 | 4th SSD on T440p | 4th SSD on T440p |
1715 | ================ | ||
1663 | ---------------- | ||
1716 | 1664 | ||
1717 | 1665 | probably possible on w541 too | probably possible on w541 too |
1718 | 1666 | ||
... | ... | be possible to use this in coreboot with linux/bsd | |
1726 | 1674 | todo: test it. need to actually solder it and test it. | todo: test it. need to actually solder it and test it. |
1727 | 1675 | ||
1728 | 1676 | Disable ME device in devicetree | Disable ME device in devicetree |
1729 | ================================ | ||
1677 | ------------------------------- | ||
1730 | 1678 | ||
1731 | 1679 | We neutered, but coreboot still enables MEI1 on many boards. | We neutered, but coreboot still enables MEI1 on many boards. |
1732 | 1680 | ||
... | ... | we neuter anyway, so the ME interface is broken by default. Leaving it | |
1745 | 1693 | on in devicetree will result in a benign error message on linux dmesg. | on in devicetree will result in a benign error message on linux dmesg. |
1746 | 1694 | ||
1747 | 1695 | Switchable Graphics (Optimus) | Switchable Graphics (Optimus) |
1748 | ============================= | ||
1696 | ----------------------------- | ||
1749 | 1697 | ||
1750 | 1698 | Some of the Thinkpads we support have dual graphics, using Nvidia Optimus. | Some of the Thinkpads we support have dual graphics, using Nvidia Optimus. |
1751 | 1699 | It'd be nice to have. This coreboot patch enables it on Thinkpads: | It'd be nice to have. This coreboot patch enables it on Thinkpads: |
... | ... | There are other patches on Gerit, related to Optimus too: | |
1759 | 1707 | This should be looked into. | This should be looked into. |
1760 | 1708 | ||
1761 | 1709 | Overclocking (CPU and RAM) | Overclocking (CPU and RAM) |
1762 | ========================= | ||
1710 | -------------------------- | ||
1763 | 1711 | ||
1764 | 1712 | Coreboot could be modified to support overclocking. Here is an example | Coreboot could be modified to support overclocking. Here is an example |
1765 | 1713 | patch on gerrit (not merged in main): | patch on gerrit (not merged in main): |
... | ... | on certain machines. NOTE: Page is in Russian, use a translator. | |
1786 | 1734 | The type of people (enthusiasts) that like Libreboot would be into this sort | The type of people (enthusiasts) that like Libreboot would be into this sort |
1787 | 1735 | of thing. It may be interesting to study, especially on haswell machines. | of thing. It may be interesting to study, especially on haswell machines. |
1788 | 1736 | ||
1789 | Haswell | ||
1790 | ------- | ||
1737 | ### Haswell | ||
1791 | 1738 | ||
1792 | 1739 | <https://www.youtube.com/watch?v=vCZiTSZutR4> | <https://www.youtube.com/watch?v=vCZiTSZutR4> |
1793 | 1740 | ||
... | ... | haswell overclocking would be very useful to have, on libreboot machines, | |
1801 | 1748 | because you can get some still-very-nice CPUs for these machines. | because you can get some still-very-nice CPUs for these machines. |
1802 | 1749 | ||
1803 | 1750 | X60/T60 alloc magic is broken at 0x7b1aedf0: 0 | X60/T60 alloc magic is broken at 0x7b1aedf0: 0 |
1804 | =============================================== | ||
1751 | ---------------------------------------------- | ||
1805 | 1752 | ||
1806 | 1753 | See: <https://codeberg.org/libreboot/lbmk/issues/179> | See: <https://codeberg.org/libreboot/lbmk/issues/179> |
1807 | 1754 | ||
... | ... | to work around the issue, but it'll possibly be fixed before that release, | |
1822 | 1769 | otherwise afterward. | otherwise afterward. |
1823 | 1770 | ||
1824 | 1771 | Intel/AMD errata PDF | Intel/AMD errata PDF |
1825 | ==================== | ||
1772 | -------------------- | ||
1826 | 1773 | ||
1827 | 1774 | List PDF links for Intel/AMD CPUs, provided by Intel/AMD, showing what is | List PDF links for Intel/AMD CPUs, provided by Intel/AMD, showing what is |
1828 | 1775 | unpatched as of yet, in microcode updates. | unpatched as of yet, in microcode updates. |
... | ... | unpatched as of yet, in microcode updates. | |
1834 | 1781 | Links. | Links. |
1835 | 1782 | ||
1836 | 1783 | interesting video | interesting video |
1837 | ================= | ||
1784 | ----------------- | ||
1838 | 1785 | ||
1839 | 1786 | <https://www.youtube.com/watch?v=5qauRh7eTNY> | <https://www.youtube.com/watch?v=5qauRh7eTNY> |
1840 | 1787 | ||
1841 | 1788 | Automate testing | Automate testing |
1842 | ================ | ||
1789 | ---------------- | ||
1843 | 1790 | ||
1844 | 1791 | Even though there's lots of error handling, it's better to be paranoid than | Even though there's lots of error handling, it's better to be paranoid than |
1845 | 1792 | brick users' machines. | brick users' machines. |
1846 | 1793 | ||
1847 | Unit tests | ||
1848 | ---------- | ||
1794 | ### Unit tests | ||
1849 | 1795 | ||
1850 | 1796 | - Build time or separate? | - Build time or separate? |
1851 | 1797 | - me_cleaner -c: checks that ime was inserted and has valid signatures | - me_cleaner -c: checks that ime was inserted and has valid signatures |
1852 | 1798 | ||
1853 | CI | ||
1854 | -- | ||
1799 | ### CI | ||
1855 | 1800 | ||
1856 | 1801 | Preferably self-hosted. Run tests for every commit. There could be tests of | Preferably self-hosted. Run tests for every commit. There could be tests of |
1857 | 1802 | different size, and even a periodic nightly release could be done. | different size, and even a periodic nightly release could be done. |
... | ... | Integrating this with an automated test stand would also be doable. At the | |
1860 | 1805 | very least, it would assure that the ROM images boot successfully. | very least, it would assure that the ROM images boot successfully. |
1861 | 1806 | ||
1862 | 1807 | Board status | Board status |
1863 | ============ | ||
1808 | ------------ | ||
1864 | 1809 | ||
1865 | 1810 | As the number of ports grows, it becomes harder to keep track of what works. | As the number of ports grows, it becomes harder to keep track of what works. |
1866 | 1811 | Let's build a machine-readable repo documenting every release (or commit) | Let's build a machine-readable repo documenting every release (or commit) |
... | ... | to not install an unbootable (broken) ROM, and would inform users about any | |
1872 | 1817 | known problems and have meaningful options. | known problems and have meaningful options. |
1873 | 1818 | ||
1874 | 1819 | haswell board bifircation | haswell board bifircation |
1875 | ========================= | ||
1820 | ------------------------- | ||
1876 | 1821 | ||
1877 | 1822 | <https://www.mouser.com/pdfDocs/4th-gen-core-family-desktop-vol-1-datasheet.pdf> | <https://www.mouser.com/pdfDocs/4th-gen-core-family-desktop-vol-1-datasheet.pdf> |
1878 | 1823 | ||
... | ... | also | |
1883 | 1828 | <https://winraid.level1techs.com/t/bios-mod-to-enable-pcie-bifurcation/31547> | <https://winraid.level1techs.com/t/bios-mod-to-enable-pcie-bifurcation/31547> |
1884 | 1829 | ||
1885 | 1830 | ec hacking on lenovo x230 | ec hacking on lenovo x230 |
1886 | ========================= | ||
1831 | ------------------------- | ||
1887 | 1832 | ||
1888 | 1833 | <https://zmatt.net/unlocking-my-lenovo-laptop-part-2/> | <https://zmatt.net/unlocking-my-lenovo-laptop-part-2/> |
1889 | 1834 | ||
1890 | 1835 | DELL 7th gen | DELL 7th gen |
1891 | ============ | ||
1892 | |||
1836 | ------------ | ||
1893 | 1837 | ||
1894 | 1838 | 3050 micro is being worked on. | 3050 micro is being worked on. |
1895 | 1839 | ||
... | ... | DELL 7th gen | |
1898 | 1842 | 5050 models also. | 5050 models also. |
1899 | 1843 | ||
1900 | 1844 | Dell 3020 | Dell 3020 |
1901 | ========= | ||
1845 | --------- | ||
1902 | 1846 | ||
1903 | 1847 | another haswell. different to 9020, but could be added. | another haswell. different to 9020, but could be added. |
1904 | 1848 | ||
1905 | 1849 | Dell 3050 Micro century byte | Dell 3050 Micro century byte |
1906 | ============================ | ||
1850 | ---------------------------- | ||
1907 | 1851 | ||
1908 | 1852 | The `CONFIG_USE_LEGACY_8254_TIMER` | The `CONFIG_USE_LEGACY_8254_TIMER` |
1909 | 1853 | and `CONFIG_USE_PC_CMOS_ALTCENTURY` options must both be | and `CONFIG_USE_PC_CMOS_ALTCENTURY` options must both be |
File site/template.de.include changed (mode: 100644) (index 33c1340..49f49e8) | |||
... | ... | $return$ | |
92 | 92 | $endif$ | $endif$ |
93 | 93 | $if(toc)$ | $if(toc)$ |
94 | 94 | <nav id="$idprefix$TOC"> | <nav id="$idprefix$TOC"> |
95 | <h1>Navigate this page:</h1> | ||
95 | <h2>Navigate this page:</h2> | ||
96 | 96 | $toc$ | $toc$ |
97 | 97 | </nav> | </nav> |
98 | 98 | $endif$ | $endif$ |
File site/template.include changed (mode: 100644) (index cc0ef98..db1c152) | |||
... | ... | $return$ | |
92 | 92 | $endif$ | $endif$ |
93 | 93 | $if(toc)$ | $if(toc)$ |
94 | 94 | <nav id="$idprefix$TOC"> | <nav id="$idprefix$TOC"> |
95 | <h1>Navigate this page:</h1> | ||
95 | <h2>Navigate this page:</h2> | ||
96 | 96 | $toc$ | $toc$ |
97 | 97 | </nav> | </nav> |
98 | 98 | $endif$ | $endif$ |
File site/template.it.include changed (mode: 100644) (index 8d831eb..4292fd5) | |||
... | ... | $return$ | |
92 | 92 | $endif$ | $endif$ |
93 | 93 | $if(toc)$ | $if(toc)$ |
94 | 94 | <nav id="$idprefix$TOC"> | <nav id="$idprefix$TOC"> |
95 | <h1>Sfoglia questa pagina:</h1> | ||
95 | <h2>Sfoglia questa pagina:</h2> | ||
96 | 96 | $toc$ | $toc$ |
97 | 97 | </nav> | </nav> |
98 | 98 | $endif$ | $endif$ |
File site/template.uk.include changed (mode: 100644) (index f77477d..77f03de) | |||
... | ... | $return$ | |
92 | 92 | $endif$ | $endif$ |
93 | 93 | $if(toc)$ | $if(toc)$ |
94 | 94 | <nav id="$idprefix$TOC"> | <nav id="$idprefix$TOC"> |
95 | <h1>Навігація цією сторінкою:</h1> | ||
95 | <h2>Навігація цією сторінкою:</h2> | ||
96 | 96 | $toc$ | $toc$ |
97 | 97 | </nav> | </nav> |
98 | 98 | $endif$ | $endif$ |
File site/template.zh-cn.include changed (mode: 100644) (index fb7c740..f193ac8) | |||
... | ... | $return$ | |
92 | 92 | $endif$ | $endif$ |
93 | 93 | $if(toc)$ | $if(toc)$ |
94 | 94 | <nav id="$idprefix$TOC"> | <nav id="$idprefix$TOC"> |
95 | <h1>本页导航:</h1> | ||
95 | <h2>本页导航:</h2> | ||
96 | 96 | $toc$ | $toc$ |
97 | 97 | </nav> | </nav> |
98 | 98 | $endif$ | $endif$ |