libreboot / lbwww (public) (License: Unspecified) (since 2023-04-11) (hash sha1)
libreboot website (markdown files). https://libreboot.org/
List of commits:
Subject Hash Author Date (UTC)
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
Commit 9a2da14a2e5859da8781e88dda72b556a5e92880 - general audit / cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
Author: Leah Rowe
Author date (UTC): 2025-01-19 18:02
Committer name: Leah Rowe
Committer date (UTC): 2025-01-19 18:02
Parent(s): 1ba45bf5e5e23bf766b52c4a585761be2c388faa
Signer:
Signing key:
Signing status: N
Tree: b84648aec8428046cb400e8359652102b4b8cc70
File Lines added Lines deleted
site/contact.de.md 8 10
site/contact.fr.md 9 10
site/contact.it.md 9 13
site/contact.md 8 10
site/contact.ru.md 9 11
site/contact.uk.md 8 10
site/contrib.md 66 118
site/docs/bsd/index.md 162 58
site/docs/build/index.md 24 29
site/docs/build/index.uk.md 20 26
site/docs/grub/index.md 6 4
site/docs/index.md 7 7
site/docs/index.uk.md 5 5
site/docs/index.zh-cn.md 5 5
site/docs/install/c201.md 15 11
site/docs/install/chromebooks.md 25 17
site/docs/install/d945gclf.md 14 8
site/docs/install/deguard.md 50 2
site/docs/install/dell3050.md 24 31
site/docs/install/dell7010.md 20 17
site/docs/install/dell780.md 21 17
site/docs/install/dell9020.md 22 27
site/docs/install/devmem.md 4 6
site/docs/install/ga-g41m-es2l.md 11 7
site/docs/install/hp2170p.md 17 17
site/docs/install/hp2560p.md 7 4
site/docs/install/hp2570p.md 10 3
site/docs/install/hp8200sff.md 17 14
site/docs/install/hp820g2.md 16 12
site/docs/install/hp8300usdt.md 21 12
site/docs/install/hp8460p.md 18 16
site/docs/install/hp8470p.md 13 16
site/docs/install/hp8560w.md 15 16
site/docs/install/hp9470m.md 14 8
site/docs/install/ich9utils.md 7 8
site/docs/install/index.md 64 102
site/docs/install/ivy_has_common.md 21 16
site/docs/install/ivy_internal.md 12 5
site/docs/install/kcma-d8.md 17 13
site/docs/install/kfsn4-dre.md 17 9
site/docs/install/kgpe-d16.md 16 9
site/docs/install/latitude.md 27 19
site/docs/install/mac_address.md 9 13
site/docs/install/macbook21.md 23 21
site/docs/install/nvmutil.md 54 60
site/docs/install/nvmutilimport.md 15 25
site/docs/install/playstation.md 15 21
site/docs/install/r400.md 27 26
site/docs/install/spi.md 164 86
site/docs/install/spi.zh-cn.md 47 81
site/docs/install/spi_generic.md 10 7
site/docs/install/t1650.md 20 18
site/docs/install/t400.md 27 27
site/docs/install/t420_external.md 11 5
site/docs/install/t440p_external.md 19 15
site/docs/install/t480.md 78 63
site/docs/install/t500.md 30 28
site/docs/install/t60_unbrick.md 8 0
site/docs/install/w541_external.md 20 13
site/docs/install/x200.md 28 26
site/docs/install/x200.uk.md 14 19
site/docs/install/x230_external.md 7 0
site/docs/install/x60_unbrick.md 8 1
site/docs/install/x60tablet_unbrick.md 8 1
site/docs/linux/grub_boot_installer.md 32 11
site/docs/linux/grub_cbfs.md 23 18
site/docs/linux/grub_hardening.md 70 27
site/docs/linux/index.md 56 44
site/docs/maintain/index.md 118 181
site/docs/maintain/porting.md 11 7
site/docs/maintain/porting.uk.md 4 4
site/docs/maintain/style.md 24 33
site/docs/maintain/testing.md 6 6
site/docs/maintain/testing.uk.md 9 9
site/docs/misc/codenames.md 5 3
site/docs/misc/emulation.md 4 4
site/docs/misc/index.md 6 7
site/docs/uboot/index.md 6 17
site/docs/uboot/uboot-archlinux.md 23 10
site/docs/uboot/uboot-debian-bookworm.md 8 7
site/docs/uboot/uboot-openbsd.md 4 4
site/docs/uboot/uboot-x86.md 13 19
site/download.md 1 1
site/faq.md 44 70
site/faq.uk.md 53 80
site/freedom-status.md 27 36
site/freedom-status.uk.md 25 35
site/git.de.md 11 18
site/git.md 12 19
site/git.uk.md 11 18
site/index.md 6 8
site/index.ru.md 5 7
site/news/10.md 70 80
site/news/argon2.md 7 11
site/news/argon2.uk.md 6 10
site/news/audit.md 8 12
site/news/audit2.md 2 2
site/news/audit3.md 3 4
site/news/audit4.md 4 5
site/news/audit5.md 10 16
site/news/audit6.md 11 17
site/news/codeberg.md 6 10
site/news/e6400.md 5 8
site/news/e6400.uk.md 4 7
site/news/e6400nvidia.md 7 12
site/news/fam15h.md 4 6
site/news/gm45microcode.md 4 6
site/news/hp2170p.md 6 9
site/news/hp8200sff.md 5 8
site/news/hp8200sff.uk.md 4 7
site/news/hp820g2.md 3 3
site/news/hp8470p_and_dell_t1650.md 6 9
site/news/hp_elitebooks.md 3 4
site/news/kgpe-d16.md 3 4
site/news/libreboot20131212.md 3 5
site/news/libreboot20131213.md 3 5
site/news/libreboot20131214.md 3 5
site/news/libreboot20140622.md 5 9
site/news/libreboot20140911.md 5 9
site/news/libreboot20141015.md 2 3
site/news/libreboot20150124.md 2 3
site/news/libreboot20150126.md 2 3
site/news/libreboot20150208.md 2 3
site/news/libreboot20210522.md 33 50
site/news/libreboot20211122.md 3 4
site/news/libreboot20220710.md 8 14
site/news/libreboot20221214.md 15 57
site/news/libreboot20230319.md 8 99
site/news/libreboot20230413.md 10 16
site/news/libreboot20230423.md 11 16
site/news/libreboot20230625.md 13 20
site/news/libreboot20231021.md 20 33
site/news/libreboot20231101.md 11 15
site/news/libreboot20231106.md 13 19
site/news/libreboot20240126.md 11 16
site/news/libreboot20240225.md 10 16
site/news/libreboot20240504.md 9 9
site/news/libreboot20240612.md 17 26
site/news/libreboot20241008.md 20 35
site/news/libreboot20241206.md 11 18
site/news/libreboot20241206rev8.md 14 23
site/news/microcode.md 5 7
site/news/policy.de.md 9 12
site/news/policy.md 11 14
site/news/policy.uk.md 9 12
site/news/ports202402.md 3 3
site/news/safety.md 7 10
site/news/schedule.md 10 13
site/news/translations.de.md 2 3
site/news/translations.md 6 3
site/news/update202308.md 7 12
site/news/usa-libre-part2.md 5 7
site/news/usa-libre-part3.md 7 9
site/news/usa-libre.md 7 18
site/other.md 11 17
site/tasks/index.md 133 189
site/template.de.include 1 1
site/template.include 1 1
site/template.it.include 1 1
site/template.uk.include 1 1
site/template.zh-cn.include 1 1
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 Reddit
89 ------
87 ### Reddit
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 Mail Mail
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 Reddit
77 ------
76 ### Reddit
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 Reddit
94 ------
91 ### Reddit
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 Reddit
89 ------
87 ### Reddit
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 Reddit
75 ------
73 ### Reddit
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 Reddit
89 ------
87 ### Reddit
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 ![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"} ![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){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 ![](https://av.libreboot.org/d945gclf/d945gclf_spi.jpg) ![](https://av.libreboot.org/d945gclf/d945gclf_spi.jpg)
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 ![](https://av.libreboot.org/r400/0000.jpg)\ ![](https://av.libreboot.org/r400/0000.jpg)\
 
... ... 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 ![](https://av.libreboot.org/chip/soic8.jpg) ![](https://av.libreboot.org/chip/soic8.jpg)
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 ![](https://av.libreboot.org/chip/soic16.jpg) ![](https://av.libreboot.org/chip/soic16.jpg)
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 ![](https://av.libreboot.org/t400s/soic8.jpg)\ ![](https://av.libreboot.org/t400s/soic8.jpg)\
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 ![](https://av.libreboot.org/dip8/dip8.jpg) ![](https://av.libreboot.org/dip8/dip8.jpg)
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 ![](https://av.libreboot.org/rpi/wiring.webp) ![](https://av.libreboot.org/rpi/wiring.webp)
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 ![](https://av.libreboot.org/rpi/0009.webp) ![](https://av.libreboot.org/rpi/0009.webp)
 
... ... 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 ![](https://av.libreboot.org/dip8/adapter.jpg) ![](https://av.libreboot.org/dip8/adapter.jpg)
969 1050 ![](https://av.libreboot.org/dip8/sop8todip8.jpg) ![](https://av.libreboot.org/dip8/sop8todip8.jpg)
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 ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg) ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg)
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 ![](https://av.libreboot.org/chip/soic8.jpg) ![](https://av.libreboot.org/chip/soic8.jpg)
203 196
204 SOIC16
205 ------
197 ### SOIC16
206 198
207 199 ![](https://av.libreboot.org/chip/soic16.jpg) ![](https://av.libreboot.org/chip/soic16.jpg)
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 ![](https://av.libreboot.org/x200t_flash/X200T-flashchip-location.jpg) ![](https://av.libreboot.org/x200t_flash/X200T-flashchip-location.jpg)
 
... ... T400S 上,是在 RAM 附近的这个位置:\
218 209 ![](https://av.libreboot.org/t400s/soic8.jpg)\ ![](https://av.libreboot.org/t400s/soic8.jpg)\
219 210 注意: 本照片中的芯片换成了 SOIC8 注意: 本照片中的芯片换成了 SOIC8
220 211
221 DIP8
222 ----
212 ### DIP8
223 213
224 214 ![](https://av.libreboot.org/dip8/dip8.jpg) ![](https://av.libreboot.org/dip8/dip8.jpg)
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 ![](https://av.libreboot.org/rpi/wiring.webp) ![](https://av.libreboot.org/rpi/wiring.webp)
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 ![](https://av.libreboot.org/rpi/0009.webp) ![](https://av.libreboot.org/rpi/0009.webp)
 
... ... 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 ![](https://av.libreboot.org/dip8/adapter.jpg) ![](https://av.libreboot.org/dip8/adapter.jpg)
665 634 ![](https://av.libreboot.org/dip8/sop8todip8.jpg) ![](https://av.libreboot.org/dip8/sop8todip8.jpg)
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 ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg) ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg)
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 ![](https://av.libreboot.org/t400/0001.jpg) ![](https://av.libreboot.org/t400/0002.jpg) ![](https://av.libreboot.org/t400/0001.jpg) ![](https://av.libreboot.org/t400/0002.jpg)
 
... ... 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 ![](https://av.libreboot.org/t500/0000.jpg)\ ![](https://av.libreboot.org/t500/0000.jpg)\
 
... ... 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 ![](https://av.libreboot.org/t400/0012.jpg) ![](https://av.libreboot.org/t400/ar5b95.jpg) ![](https://av.libreboot.org/t400/0012.jpg) ![](https://av.libreboot.org/t400/ar5b95.jpg)
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 ![](https://av.libreboot.org/x200/disassembly/0018.jpg) ![](https://av.libreboot.org/x200/disassembly/0018.jpg)
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 ![](https://av.libreboot.org/xe513c24/debbook-firefox.jpg) ![](https://av.libreboot.org/xe513c24/debbook-firefox.jpg)
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 &lt;insert random system here&gt;, is it supported?
497 --------------------------------------------------------------------------------------------------------
485 ### Hi, I have &lt;insert random system here&gt;, 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 Привіт, у мене &lt;вставте сюди випадкову систему&gt;, чи підтримується вона?
532 --------------------------------------------------------------------------------------------------------
520 ### Привіт, у мене &lt;вставте сюди випадкову систему&gt;, чи підтримується вона?
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 more on this later) more on this later)
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 ![Two HP EliteBooks side by side, both running Libreboot](https://av.libreboot.org/hp9470m/9470m+2560p.jpg) ![Two HP EliteBooks side by side, both running Libreboot](https://av.libreboot.org/hp9470m/9470m+2560p.jpg)
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$
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

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

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

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

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