mirror of
https://codeberg.org/libreboot/lbwww.git
synced 2025-07-05 08:27:01 +00:00
Compare commits
296 commits
Author | SHA1 | Date | |
---|---|---|---|
|
e377afa37b | ||
|
b0744ca0ea | ||
|
8cfc7486bd | ||
|
2fc8efd375 | ||
|
514bda8049 | ||
|
6742a9fc95 | ||
|
df73de2bcd | ||
|
56120eb2fb | ||
|
9e1697ed8c | ||
|
c1a7cb4f7f | ||
|
939b0e741c | ||
|
675a6d2efd | ||
|
278ccbff75 | ||
|
c443c76ee4 | ||
|
fc83a7156a | ||
|
9128788bd7 | ||
|
a8355f8339 | ||
|
ea0daee30e | ||
|
4ecef4611a | ||
|
888fbb0304 | ||
|
6f6c27c936 | ||
|
b88487ab6c | ||
|
f994c7ac22 | ||
|
f1471fdb06 | ||
|
87894a4220 | ||
|
9eacd92e11 | ||
|
6286e69902 | ||
|
261d19edbf | ||
|
47c993cba4 | ||
|
68f4ff8a0f | ||
|
9c86f0c89a | ||
|
0aaf3f3288 | ||
|
9ce0dc2889 | ||
|
a52ebef53b | ||
|
be35d8c0e1 | ||
|
0a83f8fc42 | ||
|
6bbbf9fe08 | ||
|
c73745f648 | ||
|
086765046d | ||
|
dbf5ec3ebf | ||
|
9bbc142ef1 | ||
|
0d6abc447d | ||
|
2f579433bc | ||
|
69cf3f5213 | ||
|
067aa38216 | ||
|
b38fb33560 | ||
|
1e4efd903e | ||
|
198b3c6d20 | ||
|
5109958992 | ||
|
5589d09492 | ||
|
380d78a68e | ||
|
7d51451492 | ||
|
2095c95771 | ||
|
02f623491b | ||
|
40ca3087b7 | ||
|
e484a829e3 | ||
|
9a3fcc68af | ||
|
8725126ec2 | ||
|
fda7faffcd | ||
|
fa485ebbe6 | ||
|
d0c1908702 | ||
|
24d1145ca4 | ||
|
38be4f3ab3 | ||
|
4dd4f756bc | ||
|
990dc943d3 | ||
|
6f6ccc1ea9 | ||
|
7307e9eb33 | ||
|
dd993be62f | ||
|
6b1b574549 | ||
|
dd0bf75198 | ||
|
4e7473b822 | ||
|
46ab4acf3a | ||
|
84219b20eb | ||
|
363fdf2d5e | ||
|
cf64fdd409 | ||
|
f628901f61 | ||
|
987afae58a | ||
|
5cf2ddde73 | ||
|
3b90750b4b | ||
|
98ac57b0ef | ||
|
eb3c0fba23 | ||
|
e48c951f25 | ||
|
3d3ca98ade | ||
|
a655788bdb | ||
|
675e3d8593 | ||
|
b9e94013d8 | ||
|
9bd18ec1ae | ||
|
f3b1187644 | ||
|
3c2af034ed | ||
|
0638856c1c | ||
|
138b3e306f | ||
|
755666a238 | ||
|
51b53dc54f | ||
|
e073938b8b | ||
|
4eaaccbd0a | ||
|
d9c07032e9 | ||
|
73e9255f70 | ||
|
0fc65e4fac | ||
|
71228ffa0d | ||
|
3ec8d5abb6 | ||
|
d1921809b8 | ||
|
57c5edbbf5 | ||
|
246820568f | ||
|
72121b9184 | ||
|
2276bb3183 | ||
|
07b4c69883 | ||
|
b80d5e04ad | ||
|
016bdaf4c4 | ||
|
125c88f2ad | ||
|
3257c13936 | ||
|
aa1b889795 | ||
|
6c924caffb | ||
|
fceaf19cd8 | ||
|
3f90f156c3 | ||
|
c910f813c4 | ||
|
121325f3fb | ||
|
712f7395a1 | ||
|
a6d2f10fb9 | ||
|
d57edfcc87 | ||
|
8d6c16a4b1 | ||
|
a1b60ec64f | ||
|
9a2da14a2e | ||
|
1ba45bf5e5 | ||
|
759616ba96 | ||
|
b356cc3040 | ||
|
c5ad70955d | ||
|
7f16d5cc66 | ||
|
97b6ffc5a0 | ||
|
e4b30750d1 | ||
|
77198f7f5d | ||
|
6f9ec4cc4d | ||
|
4c12433a6a | ||
|
7c63e81b32 | ||
|
927a06cdc6 | ||
|
62b5b1950e | ||
|
5662b578d8 | ||
|
0d6d90bf1e | ||
|
55722b5643 | ||
|
6cfd22e1f6 | ||
|
ee096776a9 | ||
|
e64e6a065d | ||
|
3f51720e2a | ||
|
949f2bcc46 | ||
|
a5cbc416f4 | ||
|
a5a8a8daea | ||
|
5d516331cb | ||
|
ceaaeb98d9 | ||
|
e5d30675db | ||
|
4702e16767 | ||
|
97b0fa3c60 | ||
|
c278f8b5bf | ||
|
ec57689078 | ||
|
4fb11aaca6 | ||
|
572ea3bdc1 | ||
|
f78ee7861a | ||
|
5afacd5138 | ||
|
b5e0d96be5 | ||
|
e94f06a744 | ||
|
71e4a89c86 | ||
|
0b7a136d73 | ||
|
3809609b3e | ||
|
ba3ca8c23d | ||
|
8c678d515d | ||
|
ee4aca89fc | ||
|
4bd184da81 | ||
|
aa98970a88 | ||
|
d25c4185f0 | ||
|
3d494145ad | ||
|
d9a4d2c5ce | ||
|
55d17ed3e9 | ||
|
8ba82574fb | ||
|
a7dd851f5b | ||
|
c6d4b6fa6b | ||
|
6be0468d05 | ||
|
abceff29c6 | ||
|
5443cd0d05 | ||
|
e10c9b80f0 | ||
|
315f4cd6b2 | ||
|
d120ebf8f2 | ||
|
a6478d6797 | ||
|
090e58d4f8 | ||
|
1b4326dd62 | ||
|
4c54c12c83 | ||
|
7421e9a8c7 | ||
|
c1daf0fc5e | ||
|
6a8e230d7a | ||
|
fcb63c3c3b | ||
|
fd1a0ae3a2 | ||
|
7fddfaca82 | ||
|
d641ee3378 | ||
|
ff005cd9cf | ||
|
44db45ac57 | ||
|
32c057108e | ||
|
90804582a8 | ||
|
a3158f3f97 | ||
|
990f550563 | ||
|
a6026556c9 | ||
|
43e7f2eff0 | ||
|
00dacd33ef | ||
|
9011218a8e | ||
|
e6e952ac11 | ||
|
08f35ff1b6 | ||
|
c587cee2ac | ||
|
2361a1de72 | ||
|
b11a61c97c | ||
|
1e117c77af | ||
|
b6929f8381 | ||
|
c303716569 | ||
|
ed08e80f59 | ||
|
37c0872287 | ||
|
8c2e77e0c7 | ||
|
ec57019f3e | ||
|
6ae9714ecf | ||
|
12b4f64b1b | ||
|
9d018b474a | ||
|
c3ad859ea0 | ||
|
6c57ce1586 | ||
|
4d7f0dbb9d | ||
|
a1ff143fe6 | ||
|
2c7d4c4df8 | ||
|
965baf9bb0 | ||
|
c5273bc020 | ||
|
ab51fb8ba6 | ||
|
8cdb2f257c | ||
|
3b55fca2c9 | ||
|
32c80dae9c | ||
|
935e5aec14 | ||
|
0893abd635 | ||
|
bf443e2e4d | ||
|
19fab47201 | ||
|
6447f5d183 | ||
|
58bab1695b | ||
|
007136a010 | ||
|
aad0b223e0 | ||
|
2e2b6c7d52 | ||
|
f2dd78251c | ||
|
71b502349a | ||
|
2ac7deeefc | ||
|
443078014d | ||
|
a69a1260c8 | ||
|
40b8dec853 | ||
|
8e3508c313 | ||
|
4811a7683e | ||
|
777ea30c59 | ||
|
71cc1104e0 | ||
|
8576804b30 | ||
|
3ed4b4f6b3 | ||
|
ca4a6756e3 | ||
|
2a4b7d5943 | ||
|
4aea280c60 | ||
|
52da2a4d01 | ||
|
63db2df0fe | ||
|
207c641445 | ||
|
3da0fb028f | ||
|
332d9fa8d3 | ||
|
69957dc6dd | ||
|
cbb250dfda | ||
|
66f217fba1 | ||
|
5c92e8f188 | ||
|
db8b4b3fe6 | ||
|
b621f4fcf7 | ||
|
dbe9dc6fe8 | ||
|
e36d7b7ea2 | ||
|
a4c441f642 | ||
|
67c9386dc9 | ||
|
7e8e045a00 | ||
|
9b41e070bc | ||
|
95d5b067cf | ||
|
762f1516fe | ||
|
a2cace6ea0 | ||
|
e8c2795b6a | ||
|
a776d13bc4 | ||
|
8d40609ed7 | ||
|
b29821a4b3 | ||
|
7879fe48dd | ||
|
91f6140863 | ||
|
30387872fa | ||
|
da5734ac34 | ||
|
0eb22b1fa8 | ||
|
0cd6d8de10 | ||
|
670df4e5e3 | ||
|
7c0d9349ed | ||
|
66a862b10a | ||
|
4fa9b69411 | ||
|
853f2db51d | ||
|
f191930c1f | ||
|
1a5937905b | ||
|
c372dde2d5 | ||
|
3f41235319 | ||
|
fe741e7acc | ||
|
058ae354ed | ||
|
7e1fa9ff12 | ||
|
9b6df387ba | ||
|
21aec25c8d | ||
|
1c0b7b2aa8 | ||
|
332faa80c9 |
362 changed files with 12484 additions and 5434 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
||||||
*.html
|
*.html
|
||||||
|
/site/sitemap.xml
|
||||||
/site/news/index*
|
/site/news/index*
|
||||||
/site/sitemap.md
|
/site/sitemap.md
|
||||||
/site/push
|
/site/push
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
---
|
---
|
||||||
title: Kontakt
|
title: Kontakt der Libreboot projekt
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Buy Libreboot pre-installed
|
Buy Libreboot pre-installed
|
||||||
==========
|
--------------------
|
||||||
|
|
||||||
If you want professional installation, Minifree Ltd sells [Libreboot
|
If you want professional installation, Minifree Ltd sells [Libreboot
|
||||||
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
||||||
|
@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available.
|
||||||
Contact information (IRC, mailing list etc) is below:
|
Contact information (IRC, mailing list etc) is below:
|
||||||
|
|
||||||
User support
|
User support
|
||||||
============
|
------------
|
||||||
|
|
||||||
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).
|
||||||
Für Informationen bzgl. IRC and Reddit siehe unten.
|
Für Informationen bzgl. IRC and Reddit siehe unten.
|
||||||
|
|
||||||
Mailing list
|
Mailing list
|
||||||
============
|
------------
|
||||||
|
|
||||||
Libreboot has this mailing list:
|
Libreboot has this mailing list:
|
||||||
<https://lists.sr.ht/~libreboot/libreboot>
|
<https://lists.sr.ht/~libreboot/libreboot>
|
||||||
|
@ -32,7 +32,7 @@ Libreboot has this mailing list:
|
||||||
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)
|
||||||
|
|
||||||
Entwicklungs Diskussion
|
Entwicklungs Diskussion
|
||||||
======================
|
---------------------
|
||||||
|
|
||||||
Siehe unter
|
Siehe unter
|
||||||
[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.
|
||||||
|
@ -40,7 +40,7 @@ Siehe unter
|
||||||
Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests).
|
Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests).
|
||||||
|
|
||||||
IRC Chatraum
|
IRC Chatraum
|
||||||
============
|
-------------
|
||||||
|
|
||||||
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
|
||||||
IRC.
|
IRC.
|
||||||
|
@ -71,12 +71,11 @@ Website erläutern wie dies funktioniert:
|
||||||
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.
|
||||||
|
|
||||||
Soziale Medien
|
Soziale Medien
|
||||||
============
|
-----------------
|
||||||
|
|
||||||
Libreboot existiert offiziell an vielen Orten.
|
Libreboot existiert offiziell an vielen Orten.
|
||||||
|
|
||||||
Mastodon
|
### Mastodon
|
||||||
--------
|
|
||||||
|
|
||||||
Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon:
|
Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon:
|
||||||
|
|
||||||
|
@ -85,8 +84,7 @@ Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon:
|
||||||
Leah kann zudem unter dieser eMail kontaktiert werden:
|
Leah kann zudem unter dieser eMail kontaktiert werden:
|
||||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||||
|
|
||||||
Reddit
|
### Reddit
|
||||||
------
|
|
||||||
|
|
||||||
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:
|
||||||
<https://www.reddit.com/r/libreboot/>
|
<https://www.reddit.com/r/libreboot/>
|
||||||
|
|
79
site/contact.fr.md
Normal file
79
site/contact.fr.md
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
---
|
||||||
|
title: Contact the Libreboot project
|
||||||
|
x-toc-enable: true
|
||||||
|
...
|
||||||
|
|
||||||
|
Où acheter du matériel avec Libreboot pré-installé
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot.
|
||||||
|
|
||||||
|
Si vous installez Libreboot vous-même, un support est disponible via différents canaux de communication (IRC, mail, etc.) :
|
||||||
|
|
||||||
|
|
||||||
|
Suport utilisateur
|
||||||
|
------------------
|
||||||
|
|
||||||
|
IRC et Reddit sont recommandés pour demander de l'aide (IRC est à privilégier) :
|
||||||
|
|
||||||
|
|
||||||
|
Mail
|
||||||
|
----
|
||||||
|
|
||||||
|
Libreboot dispose d'une liste de diffusion : <https://lists.sr.ht/~libreboot/libreboot>
|
||||||
|
|
||||||
|
L'adresse mail est [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
|
||||||
|
|
||||||
|
Discussion sur le developpement
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
IRC chatroom
|
||||||
|
------------
|
||||||
|
|
||||||
|
Le chat IRC est le principal moyen de contact pour le projet Libreboot via `#libreboot` sur Libera IRC.
|
||||||
|
|
||||||
|
Webchat:
|
||||||
|
<https://web.libera.chat/#libreboot>
|
||||||
|
|
||||||
|
Libera est un des plus grands réseaux IRC utilisé pour les projets en lien avec le logiciel libre. Vous trouverez plus d'information ici : <https://libera.chat/>
|
||||||
|
|
||||||
|
Si vous souhaitez vous connecter via votre client préféré ( comme weechat ou irssi), veuillez utiliser ces informations :
|
||||||
|
|
||||||
|
* Server: `irc.libera.chat`
|
||||||
|
* Channel: `#libreboot`
|
||||||
|
* Port (TLS): `6697`
|
||||||
|
* Port (non-TLS): `6667`
|
||||||
|
|
||||||
|
Nous vous recommandons d'utiliser le port `6697` avec l'encryption TLS activée.
|
||||||
|
|
||||||
|
Il est recommandé d'utiliser SASL pour l'authentification. Ces pages vous indiqueront comment l'utiliser :
|
||||||
|
|
||||||
|
* WeeChat SASL guide: <https://libera.chat/guides/weechat>
|
||||||
|
* Irssi SASL guide: <https://libera.chat/guides/irssi>
|
||||||
|
* HexChat SASL guide: <https://libera.chat/guides/hexchat>
|
||||||
|
|
||||||
|
De manière générale, reportez-vous à la documentation de votre logiciel IRC.
|
||||||
|
|
||||||
|
|
||||||
|
Réseaux sociaux
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Libreboot existe officiellement sur différents réseaux sociaux.
|
||||||
|
|
||||||
|
### Mastodon
|
||||||
|
|
||||||
|
Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon:
|
||||||
|
|
||||||
|
* <https://mas.to/@libreleah>
|
||||||
|
|
||||||
|
Leah peut également être contacté par mail :
|
||||||
|
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||||
|
|
||||||
|
### Reddit
|
||||||
|
|
||||||
|
Généralement utilisé pour le support mais aussi pour l'annonces des dernières nouveautés :
|
||||||
|
<https://www.reddit.com/r/libreboot/>
|
|
@ -4,7 +4,7 @@ x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Buy Libreboot pre-installed
|
Buy Libreboot pre-installed
|
||||||
==========
|
---------------------------
|
||||||
|
|
||||||
If you want professional installation, Minifree Ltd sells [Libreboot
|
If you want professional installation, Minifree Ltd sells [Libreboot
|
||||||
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
||||||
|
@ -18,14 +18,14 @@ If you're installing Libreboot yourself, support for that is also available.
|
||||||
Contact information (IRC, mailing list etc) is below:
|
Contact information (IRC, mailing list etc) is below:
|
||||||
|
|
||||||
Supporto utenti
|
Supporto utenti
|
||||||
===============
|
---------------
|
||||||
|
|
||||||
IRC o Reddit sono consigliati, sebbene preferiamo che usi il canale IRC
|
IRC o Reddit sono consigliati, sebbene preferiamo che usi il canale IRC
|
||||||
per avere o per offrire supporto tecnico. Continua a leggere per avere
|
per avere o per offrire supporto tecnico. Continua a leggere per avere
|
||||||
ulteriori informazioni.
|
ulteriori informazioni.
|
||||||
|
|
||||||
Mailing list
|
Mailing list
|
||||||
============
|
------------
|
||||||
|
|
||||||
Libreboot has this mailing list:
|
Libreboot has this mailing list:
|
||||||
<https://lists.sr.ht/~libreboot/libreboot>
|
<https://lists.sr.ht/~libreboot/libreboot>
|
||||||
|
@ -33,7 +33,7 @@ Libreboot has this mailing list:
|
||||||
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)
|
||||||
|
|
||||||
Discussione sullo sviluppo
|
Discussione sullo sviluppo
|
||||||
==========================
|
--------------------------
|
||||||
|
|
||||||
Per ora dai un occhiata sulla
|
Per ora dai un occhiata sulla
|
||||||
[pagina Git](git.md) per avere maggiori informazioni su come puoi
|
[pagina Git](git.md) per avere maggiori informazioni su come puoi
|
||||||
|
@ -43,7 +43,7 @@ Su quella stessa pagina puoi trovare informazioni su come inviare
|
||||||
correzioni (patches) tramite pull requests.
|
correzioni (patches) tramite pull requests.
|
||||||
|
|
||||||
Canale IRC
|
Canale IRC
|
||||||
==========
|
----------
|
||||||
|
|
||||||
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.
|
||||||
Il canale ufficiale e' `#libreboot` su Libera IRC.
|
Il canale ufficiale e' `#libreboot` su Libera IRC.
|
||||||
|
@ -73,26 +73,22 @@ di Libera spiegano come:
|
||||||
Comunque dovresti sempre controllare la documentazione del tuo client IRC preferito.
|
Comunque dovresti sempre controllare la documentazione del tuo client IRC preferito.
|
||||||
|
|
||||||
Reti sociali online
|
Reti sociali online
|
||||||
===================
|
-------------------
|
||||||
|
|
||||||
Libreboot esiste ufficialmente in molte piattaforme.
|
Libreboot esiste ufficialmente in molte piattaforme.
|
||||||
|
|
||||||
Mastodon
|
### Mastodon
|
||||||
--------
|
|
||||||
|
|
||||||
Il fondatore e sviluppatore principale, Leah Rowe, e' su Mastodon:
|
Il fondatore e sviluppatore principale, Leah Rowe, e' su Mastodon:
|
||||||
|
|
||||||
* <https://mas.to/@libreleah>
|
* <https://mas.to/@libreleah>
|
||||||
|
|
||||||
Posta elettronica
|
### Posta elettronica
|
||||||
-----------------
|
|
||||||
|
|
||||||
Leah puo' essere contattata anche via email a questo indirizzo:
|
Leah puo' essere contattata anche via email a questo indirizzo:
|
||||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||||
|
|
||||||
Reddit
|
### Reddit
|
||||||
------
|
|
||||||
|
|
||||||
Usato principalmente come canale di supporto e per annunciare notizie:
|
Usato principalmente come canale di supporto e per annunciare notizie:
|
||||||
<https://www.reddit.com/r/libreboot/>
|
<https://www.reddit.com/r/libreboot/>
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
---
|
---
|
||||||
title: Contact
|
title: Contact the Libreboot project
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Buy Libreboot pre-installed
|
Buy Libreboot pre-installed
|
||||||
==========
|
--------------------------
|
||||||
|
|
||||||
If you want professional installation, Minifree Ltd sells [Libreboot
|
If you want professional installation, Minifree Ltd sells [Libreboot
|
||||||
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
||||||
|
@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available.
|
||||||
Contact information (IRC, mailing list etc) is below:
|
Contact information (IRC, mailing list etc) is below:
|
||||||
|
|
||||||
User support
|
User support
|
||||||
============
|
-------------
|
||||||
|
|
||||||
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).
|
||||||
See below for information about IRC and Reddit.
|
See below for information about IRC and Reddit.
|
||||||
|
|
||||||
Mailing list
|
Mailing list
|
||||||
============
|
------------
|
||||||
|
|
||||||
Libreboot has this mailing list:
|
Libreboot has this mailing list:
|
||||||
<https://lists.sr.ht/~libreboot/libreboot>
|
<https://lists.sr.ht/~libreboot/libreboot>
|
||||||
|
@ -32,7 +32,7 @@ Libreboot has this mailing list:
|
||||||
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)
|
||||||
|
|
||||||
Development discussion
|
Development discussion
|
||||||
======================
|
--------------------
|
||||||
|
|
||||||
See notes
|
See notes
|
||||||
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,7 +40,7 @@ on [the Git page](git.md) for information about how to assist with development.
|
||||||
Instructions are also on that page for sending patches (via pull requests).
|
Instructions are also on that page for sending patches (via pull requests).
|
||||||
|
|
||||||
IRC chatroom
|
IRC chatroom
|
||||||
============
|
-------------
|
||||||
|
|
||||||
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
|
||||||
IRC.
|
IRC.
|
||||||
|
@ -71,12 +71,11 @@ website tells you how:
|
||||||
In general, you should check the documentation provided by your IRC software.
|
In general, you should check the documentation provided by your IRC software.
|
||||||
|
|
||||||
Social media
|
Social media
|
||||||
============
|
-------------
|
||||||
|
|
||||||
libreboot exists officially on many places.
|
libreboot exists officially on many places.
|
||||||
|
|
||||||
Mastodon
|
### Mastodon
|
||||||
--------
|
|
||||||
|
|
||||||
The founder and lead developer, Leah Rowe, is on Mastodon:
|
The founder and lead developer, Leah Rowe, is on Mastodon:
|
||||||
|
|
||||||
|
@ -85,8 +84,7 @@ The founder and lead developer, Leah Rowe, is on Mastodon:
|
||||||
Leah can also be contacted by this email address:
|
Leah can also be contacted by this email address:
|
||||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||||
|
|
||||||
Reddit
|
### Reddit
|
||||||
------
|
|
||||||
|
|
||||||
Mostly used as a support channel, and also for news announcements:
|
Mostly used as a support channel, and also for news announcements:
|
||||||
<https://www.reddit.com/r/libreboot/>
|
<https://www.reddit.com/r/libreboot/>
|
||||||
|
|
|
@ -4,7 +4,7 @@ x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Купите Libreboot предустановленным
|
Купите Libreboot предустановленным
|
||||||
==================================
|
----------------------------------
|
||||||
|
|
||||||
Если вы хотите, чтобы профессионал установил 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/) на ваши машины.
|
||||||
|
|
||||||
|
@ -13,26 +13,26 @@ x-toc-enable: true
|
||||||
Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку:
|
Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку:
|
||||||
|
|
||||||
Поддержка пользователей
|
Поддержка пользователей
|
||||||
=======================
|
-----------------------
|
||||||
|
|
||||||
IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже.
|
IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже.
|
||||||
|
|
||||||
Почтовая рассылка
|
Почтовая рассылка
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
У Libreboot есть своя почтовая рассылка: <https://lists.sr.ht/~libreboot/libreboot>
|
У Libreboot есть своя почтовая рассылка: <https://lists.sr.ht/~libreboot/libreboot>
|
||||||
|
|
||||||
Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
|
Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
|
||||||
|
|
||||||
Обсуждение разработки
|
Обсуждение разработки
|
||||||
=====================
|
---------------------
|
||||||
|
|
||||||
Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot.
|
Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot.
|
||||||
|
|
||||||
На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request).
|
На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request).
|
||||||
|
|
||||||
Чат в IRC
|
Чат в IRC
|
||||||
==========
|
---------
|
||||||
|
|
||||||
IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC.
|
IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC.
|
||||||
|
|
||||||
|
@ -59,10 +59,9 @@ Libera - самая большая сеть IRC, используемая для
|
||||||
В общем, вы должны проверить документацию вашего клиента для IRC.
|
В общем, вы должны проверить документацию вашего клиента для IRC.
|
||||||
|
|
||||||
Социальные сети
|
Социальные сети
|
||||||
===============
|
---------------
|
||||||
|
|
||||||
Mastodon
|
### Mastodon
|
||||||
--------
|
|
||||||
|
|
||||||
Основатель и велущий разработчик, Лия Роу, есть на Mastodon:
|
Основатель и велущий разработчик, Лия Роу, есть на Mastodon:
|
||||||
|
|
||||||
|
@ -71,8 +70,7 @@ Mastodon
|
||||||
Связаться с Лией также можно и по этому адресу электронной почты:
|
Связаться с Лией также можно и по этому адресу электронной почты:
|
||||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||||
|
|
||||||
Reddit
|
### Reddit
|
||||||
------
|
|
||||||
|
|
||||||
Чаще всего используется для поддержки пользователей, а также для новостей и анонсов:
|
Чаще всего используется для поддержки пользователей, а также для новостей и анонсов:
|
||||||
<https://www.reddit.com/r/libreboot/>
|
<https://www.reddit.com/r/libreboot/>
|
79
site/contact.tr.md
Normal file
79
site/contact.tr.md
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
---
|
||||||
|
title: Libreboot Projesi ile İletişim
|
||||||
|
x-toc-enable: true
|
||||||
|
...
|
||||||
|
|
||||||
|
Libreboot Önyüklenmiş Olarak Satın Alın
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot önyüklenmiş](https://minifree.org/) cihazlar satmaktadır ve ayrıca makinenizi göndererek Libreboot kurulumu yaptırmak istiyorsanız [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır.
|
||||||
|
|
||||||
|
Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'yi de işletmektedir; satışlar Libreboot projesi için finansman sağlamaktadır.
|
||||||
|
|
||||||
|
Libreboot'u kendiniz kuruyorsanız, bunun için de destek mevcuttur. İletişim bilgileri (IRC, e-posta listesi vb.) aşağıdadır:
|
||||||
|
|
||||||
|
Kullanıcı Desteği
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Destek istemek istiyorsanız IRC veya Reddit önerilir (IRC önerilir). IRC ve Reddit hakkında bilgi için aşağıya bakın.
|
||||||
|
|
||||||
|
E-posta Listesi
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Libreboot'un şu e-posta listesi vardır:
|
||||||
|
<https://lists.sr.ht/~libreboot/libreboot>
|
||||||
|
|
||||||
|
E-posta adresi: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
|
||||||
|
|
||||||
|
Geliştirme Tartışmaları
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Geliştirmeye nasıl yardımcı olabileceğiniz hakkında bilgi için [Git sayfasındaki](git.md) notlara bakın.
|
||||||
|
|
||||||
|
Yamaları (çekme istekleri aracılığıyla) nasıl göndereceğinize dair talimatlar da o sayfada bulunmaktadır.
|
||||||
|
|
||||||
|
IRC Sohbet Odası
|
||||||
|
---------------
|
||||||
|
|
||||||
|
IRC, Libreboot projesiyle iletişim kurmanın ana yoludur. Libera IRC'de `#libreboot` kanalı.
|
||||||
|
|
||||||
|
Web sohbeti:
|
||||||
|
<https://web.libera.chat/#libreboot>
|
||||||
|
|
||||||
|
Libera, Özgür Yazılım projeleri için kullanılan en büyük IRC ağlarından biridir. Onlar hakkında daha fazla bilgiyi burada bulabilirsiniz: <https://libera.chat/>
|
||||||
|
|
||||||
|
Tercih ettiğiniz istemciyi (weechat veya irssi gibi) kullanarak bağlanmak isterseniz, bağlantı bilgileri şu şekildedir:
|
||||||
|
|
||||||
|
* Sunucu: `irc.libera.chat`
|
||||||
|
* Kanal: `#libreboot`
|
||||||
|
* Port (TLS): `6697`
|
||||||
|
* Port (TLS olmayan): `6667`
|
||||||
|
|
||||||
|
TLS şifrelemesi etkin olarak `6697` portunu kullanmanızı öneririz.
|
||||||
|
|
||||||
|
Kimlik doğrulama için SASL kullanmanız önerilir. Libera web sitesindeki şu sayfalar size nasıl yapılacağını anlatır:
|
||||||
|
|
||||||
|
* WeeChat SASL kılavuzu: <https://libera.chat/guides/weechat>
|
||||||
|
* Irssi SASL kılavuzu: <https://libera.chat/guides/irssi>
|
||||||
|
* HexChat SASL kılavuzu: <https://libera.chat/guides/hexchat>
|
||||||
|
|
||||||
|
Genel olarak, IRC yazılımınızın sağladığı belgeleri kontrol etmelisiniz.
|
||||||
|
|
||||||
|
Sosyal Medya
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Libreboot resmi olarak birçok yerde bulunmaktadır.
|
||||||
|
|
||||||
|
### Mastodon
|
||||||
|
|
||||||
|
Kurucu ve baş geliştirici Leah Rowe, Mastodon'da:
|
||||||
|
|
||||||
|
* <https://mas.to/@libreleah>
|
||||||
|
|
||||||
|
Leah'ya ayrıca şu e-posta adresinden ulaşılabilir:
|
||||||
|
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||||
|
|
||||||
|
### Reddit
|
||||||
|
|
||||||
|
Çoğunlukla destek kanalı olarak ve ayrıca haber duyuruları için kullanılır:
|
||||||
|
<https://www.reddit.com/r/libreboot/>
|
|
@ -4,7 +4,7 @@ x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Buy Libreboot pre-installed
|
Buy Libreboot pre-installed
|
||||||
==========
|
---------------------------
|
||||||
|
|
||||||
If you want professional installation, Minifree Ltd sells [Libreboot
|
If you want professional installation, Minifree Ltd sells [Libreboot
|
||||||
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
pre-installed](https://minifree.org/) on select hardware, and it also provides
|
||||||
|
@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available.
|
||||||
Contact information (IRC, mailing list etc) is below:
|
Contact information (IRC, mailing list etc) is below:
|
||||||
|
|
||||||
Підтримка користувачів
|
Підтримка користувачів
|
||||||
============
|
----------------------
|
||||||
|
|
||||||
IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC).
|
IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC).
|
||||||
Дивіться інформацію нижче щодо IRC та Reddit.
|
Дивіться інформацію нижче щодо IRC та Reddit.
|
||||||
|
|
||||||
Mailing list
|
Mailing list
|
||||||
============
|
------------
|
||||||
|
|
||||||
Libreboot has this mailing list:
|
Libreboot has this mailing list:
|
||||||
<https://lists.sr.ht/~libreboot/libreboot>
|
<https://lists.sr.ht/~libreboot/libreboot>
|
||||||
|
@ -32,7 +32,7 @@ Libreboot has this mailing list:
|
||||||
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)
|
||||||
|
|
||||||
Обговорення розробки
|
Обговорення розробки
|
||||||
======================
|
--------------------
|
||||||
|
|
||||||
Зараз, подивіться нотатки
|
Зараз, подивіться нотатки
|
||||||
на [сторінці Git](git.md) для інформації щодо допомоги з розробкою.
|
на [сторінці Git](git.md) для інформації щодо допомоги з розробкою.
|
||||||
|
@ -40,7 +40,7 @@ The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb
|
||||||
На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и).
|
На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и).
|
||||||
|
|
||||||
Кімната IRC
|
Кімната IRC
|
||||||
============
|
-----------
|
||||||
|
|
||||||
IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera
|
IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera
|
||||||
IRC.
|
IRC.
|
||||||
|
@ -71,12 +71,11 @@ Libera є однією з найбільших мереж IRC, використ
|
||||||
Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC.
|
Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC.
|
||||||
|
|
||||||
Соціальні мережі
|
Соціальні мережі
|
||||||
============
|
----------------
|
||||||
|
|
||||||
Libreboot офіційно існує в багатьох місцях.
|
Libreboot офіційно існує в багатьох місцях.
|
||||||
|
|
||||||
Mastodon
|
### Mastodon
|
||||||
--------------------
|
|
||||||
|
|
||||||
Засновник та головний розробник, Лія Роу, є в Mastodon:
|
Засновник та головний розробник, Лія Роу, є в Mastodon:
|
||||||
|
|
||||||
|
@ -85,8 +84,7 @@ Mastodon
|
||||||
Також можливо зв'язатися з Лією за ії електронною адресою:
|
Також можливо зв'язатися з Лією за ії електронною адресою:
|
||||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||||
|
|
||||||
Reddit
|
### Reddit
|
||||||
------
|
|
||||||
|
|
||||||
Найбільше використовується як канал підтримки, та також для оголошення новин:
|
Найбільше використовується як канал підтримки, та також для оголошення новин:
|
||||||
<https://www.reddit.com/r/libreboot/>
|
<https://www.reddit.com/r/libreboot/>
|
||||||
|
|
489
site/contrib.md
489
site/contrib.md
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: Project contributors
|
title: People who contributed to the Libreboot project
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -10,9 +10,6 @@ If we forgot to mention you here, let us know and we'll add you. (or if
|
||||||
you don't want to be mentioned, let us know and we'll remove your
|
you don't want to be mentioned, let us know and we'll remove your
|
||||||
entry)
|
entry)
|
||||||
|
|
||||||
Information about who works on libreboot, and how the project is run, can
|
|
||||||
be found on this page: [who.md](who.md)
|
|
||||||
|
|
||||||
You can know the history of the libreboot project, simply by reading this page.
|
You can know the history of the libreboot project, simply by reading this page.
|
||||||
It goes into detail about all of the major contributions to the project, and in
|
It goes into detail about all of the major contributions to the project, and in
|
||||||
general how the project was created (and who helped create it).
|
general how the project was created (and who helped create it).
|
||||||
|
@ -40,32 +37,15 @@ works on all aspects of libreboot, such as:
|
||||||
that libreboot uses
|
that libreboot uses
|
||||||
* Providing user support on IRC
|
* Providing user support on IRC
|
||||||
|
|
||||||
Caleb La Grange
|
Check the Git repositories to find my own contributions to the project. There
|
||||||
---------------
|
are a lot, too many to list here, but my work is enabled by the many people
|
||||||
|
who help me, and those who work on all the upstream projects that I use in
|
||||||
**Secondary developer, number two to Leah.** Caleb is a full time libreboot developer
|
Libreboot. I regularly work with all sorts of people.
|
||||||
with a narrower focus. Caleb focuses on several areas of development:
|
|
||||||
|
|
||||||
* Build system. Caleb is responsible for improving and fixing the libreboot Make build
|
|
||||||
system. Specifically: automation, and reproducibility.
|
|
||||||
* Hardware modification. Caleb has a passion for hardware alteration; soldering,
|
|
||||||
desoldering, and testing libreboot software on the resulting hardware.
|
|
||||||
* Board porting. Anything supported in Coreboot can be ported to libreboot, Caleb
|
|
||||||
will test and port any board he can get his hands on. Additionally, anyone can
|
|
||||||
contact Caleb to generate libreboot roms for testing on their board.
|
|
||||||
* Documentation. Caleb actively maintains documentation on the above areas of
|
|
||||||
interest. Additionally, Caleb is responsible for disassembly guides with his own
|
|
||||||
pictures and diagrams for several boards.
|
|
||||||
* User support. Caleb is active on irc and willing to help any user interested in
|
|
||||||
using libreboot or in need of help.
|
|
||||||
* Project goals. Caleb collaborates with Leah on determining project goals.
|
|
||||||
Leah has the final say in every decision.
|
|
||||||
|
|
||||||
External projects
|
External projects
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
Coreboot project
|
### Coreboot project
|
||||||
----------------
|
|
||||||
|
|
||||||
Without coreboot, the libreboot project simply would not be possible.
|
Without coreboot, the libreboot project simply would not be possible.
|
||||||
|
|
||||||
|
@ -73,28 +53,36 @@ The people and companies that work on coreboot are numerous, and they make the
|
||||||
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
|
||||||
provide hardware initialization.
|
provide hardware initialization.
|
||||||
|
|
||||||
GRUB
|
### GRUB
|
||||||
--------
|
|
||||||
|
|
||||||
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
|
||||||
developers enable libreboot, through their work.
|
developers enable libreboot, through their work.
|
||||||
|
|
||||||
SeaBIOS
|
### SeaBIOS
|
||||||
-------
|
|
||||||
|
|
||||||
The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a
|
The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a
|
||||||
legacy x86 BIOS implementation.
|
legacy x86 BIOS implementation.
|
||||||
|
|
||||||
U-Boot
|
### U-Boot
|
||||||
------
|
|
||||||
|
|
||||||
Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks.
|
Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks.
|
||||||
|
|
||||||
Contributors in alphabetical order
|
### Flashprog
|
||||||
==================================
|
|
||||||
|
|
||||||
Alper Nebi Yasak
|
Libreboot uses Nico Huber's *flashprog* to provide flashing on all boards;
|
||||||
----------------
|
without this code, you would not be able to install Libreboot in freedom,
|
||||||
|
because other NOR flashing tools are typically proprietary (and not as good).
|
||||||
|
|
||||||
|
Contributors in alphabetical order
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
### Alexei Sorokin
|
||||||
|
|
||||||
|
Sent minor fixes to lbmk; improved sha512sum verification on images, config
|
||||||
|
improvements e.g. hide MEI device where neutered ME is used. General
|
||||||
|
improvements and tweaks.
|
||||||
|
|
||||||
|
### Alper Nebi Yasak
|
||||||
|
|
||||||
Contributed the build system integration and documentation for using
|
Contributed the build system integration and documentation for using
|
||||||
U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks
|
U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks
|
||||||
|
@ -103,8 +91,7 @@ based on that.
|
||||||
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
|
||||||
complete port of the `gru-kevin` board and got it merged upstream.
|
complete port of the `gru-kevin` board and got it merged upstream.
|
||||||
|
|
||||||
Alyssa Rosenzweig
|
### Alyssa Rosenzweig
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).**
|
PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).**
|
||||||
|
@ -117,18 +104,52 @@ now been heavily modified and forked into a formal project, by Leah Rowe:
|
||||||
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;
|
||||||
the Libreboot website is now built with Untitled)
|
the Libreboot website is now built with Untitled)
|
||||||
|
|
||||||
Andrew Robbins
|
### Andrea Perotti
|
||||||
--------------
|
|
||||||
|
Sent several small fixes to Libreboot's dependencies scripts for Debian, Fedora
|
||||||
|
and Ubuntu distros.
|
||||||
|
|
||||||
|
### Andrew Robbins
|
||||||
|
|
||||||
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.
|
||||||
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,
|
||||||
until his departure in March 2021.
|
until his departure in March 2021. Although the work was ultimately scrapped
|
||||||
|
in 2021, in favour of Libreboot's
|
||||||
|
current [lbmk design](docs/maintain/), he provided countless hours of work to
|
||||||
|
the project over the years, helping users on IRC and generally being a very
|
||||||
|
passionate Libreboot developer.
|
||||||
|
|
||||||
|
Andrew was working on a build system re-write
|
||||||
|
that ultimately never reached a stable state, and he abandoned the project
|
||||||
|
after his work was replaced, but the feeling of disgust that he had was not
|
||||||
|
mutual.
|
||||||
|
|
||||||
I, Leah Rowe, am very grateful to Andrew Robbins for his numerous contributions
|
I, Leah Rowe, am very grateful to Andrew Robbins for his numerous contributions
|
||||||
over the years.
|
over the years. Anyone who contributes to Libreboot is a hero. Look at the
|
||||||
|
old Libreboot repository on [notabug](https://notabug.org/libreboot) to find
|
||||||
|
his contributions.
|
||||||
|
|
||||||
Arthur Heymans
|
### Angel Pons
|
||||||
--------------
|
|
||||||
|
Angel is a coreboot developer. Their contributions are numerous, in that and
|
||||||
|
many other projects. Countless patches in coreboot from them have enabled
|
||||||
|
Libreboot to be what it is.
|
||||||
|
|
||||||
|
The most noteworthy work by Angel, that Libreboot imported, is the native
|
||||||
|
raminit (NRI) for Intel Haswell platform, which Libreboot was able to use
|
||||||
|
for replacing the Intel MRC. Because of these patches, Libreboot is able to
|
||||||
|
provide wholly free initialisation on that platform, in the BIOS region of
|
||||||
|
the flash. For example, the ThinkPad T440p and OptiPlex 9020 ports boot in
|
||||||
|
such a configuration, since these are Haswell machines.
|
||||||
|
|
||||||
|
Over 2000 commits in coreboot were written by Angel, as of January 2025. They
|
||||||
|
are one of coreboot's most active developers.
|
||||||
|
|
||||||
|
### Arsen Arsenović
|
||||||
|
|
||||||
|
Added the config for ThinkPad T430 to Libreboot.
|
||||||
|
|
||||||
|
### Arthur Heymans
|
||||||
|
|
||||||
Merged a patch from coreboot into libreboot, enabling C3 and C4 power
|
Merged a patch from coreboot into libreboot, enabling C3 and C4 power
|
||||||
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
|
||||||
|
@ -141,8 +162,54 @@ project. He still works on coreboot, to this day, and Libreboot greatly
|
||||||
benefits from his work. His contributions to the coreboot project, and Libreboot,
|
benefits from his work. His contributions to the coreboot project, and Libreboot,
|
||||||
are invaluable.
|
are invaluable.
|
||||||
|
|
||||||
Damien Zammit
|
### Ben Westover
|
||||||
-------------
|
|
||||||
|
Added info about internal flashing for Dell OptiPlex 9020, in the Libreboot
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
### Caleb La Grange
|
||||||
|
|
||||||
|
Caleb contributed heavily to the Libreboot build system, and even implemented
|
||||||
|
the first version of
|
||||||
|
Libreboot's [vendor inject script](docs/install/ivy_has_common.md), back when
|
||||||
|
it was part of the erstwhile osboot project, which formally merged with
|
||||||
|
Libreboot in November 2022.
|
||||||
|
|
||||||
|
Before Caleb came along, Libreboot didn't have any sort of structure in its
|
||||||
|
package management. The current `include/git.sh` script in Libreboot, which
|
||||||
|
uses a centralised set of configuration files, is ultimately derived from the
|
||||||
|
work that Caleb did.
|
||||||
|
|
||||||
|
Caleb was the one who figured out how to auto-download and neuter the Intel ME
|
||||||
|
on ThinkPad T440p, where previous osboot versions had used one that had to be
|
||||||
|
extracted from a dump of the original firmware; the Heads project also made use
|
||||||
|
of his work, in their project, to add the ThinkPad T440p, since their build
|
||||||
|
system focuses a lot on reproducibility so they place an emphasis on auto
|
||||||
|
downloading such files, to get the same version each time. Caleb's work in
|
||||||
|
Libreboot was largely inspired by Heads, which did the same thing at that time
|
||||||
|
on the ThinkPad X230. Libreboot's checksum-based design was also implemented
|
||||||
|
by him; when inserting vendor files, checksums are verified on images, to
|
||||||
|
ensure that they match what was built in the original release, for each given
|
||||||
|
release.
|
||||||
|
|
||||||
|
Caleb worked heavily on the Libreboot documentation, vastly improving much of
|
||||||
|
the installation instructions, and provided a lot of user support on IRC.
|
||||||
|
|
||||||
|
In general, Caleb heavily audited the entire project. The very nature of its
|
||||||
|
design, now, is based directly on the work that he did, when looking at the
|
||||||
|
design of the build system. The various Libreboot build system audits that
|
||||||
|
started in 2023 were essentially turbo-charged versions of the same work he
|
||||||
|
was doing.
|
||||||
|
|
||||||
|
Caleb has also been a good friend to me, Leah, and provided a lot of advice
|
||||||
|
during the osboot merger. I avoided a lot of stupid mistakes because of his
|
||||||
|
advice.
|
||||||
|
|
||||||
|
### Canberk TURAN
|
||||||
|
|
||||||
|
Added Turkish Q keyboard layout to Libreboot's GRUB payload.
|
||||||
|
|
||||||
|
### Damien Zammit
|
||||||
|
|
||||||
Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated
|
Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated
|
||||||
in libreboot. Also works on other hardware for the benefit of the
|
in libreboot. Also works on other hardware for the benefit of the
|
||||||
|
@ -152,8 +219,11 @@ Damien didn't work directly on Libreboot itself, but he worked heavily with
|
||||||
Leah Rowe, integrating patches and new board ports into Libreboot, based on
|
Leah Rowe, integrating patches and new board ports into Libreboot, based on
|
||||||
Damien's upstream work on coreboot.
|
Damien's upstream work on coreboot.
|
||||||
|
|
||||||
Denis Carikli
|
### Daniil Prokofev
|
||||||
-------------
|
|
||||||
|
Translated several Libreboot website pages into the Russian language.
|
||||||
|
|
||||||
|
### Denis Carikli
|
||||||
|
|
||||||
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
|
||||||
the coreboot project, got native graphics initialization to work on the
|
the coreboot project, got native graphics initialization to work on the
|
||||||
|
@ -174,8 +244,52 @@ didn't work with ACPI based brightness controls. Others in coreboot later
|
||||||
improved it, making ACPI-based backlight controls work properly, based on this
|
improved it, making ACPI-based backlight controls work properly, based on this
|
||||||
earlier work.
|
earlier work.
|
||||||
|
|
||||||
Ferass El Hafidi
|
Very cool guy!!!
|
||||||
--------
|
|
||||||
|
### Eason aka ezntek
|
||||||
|
|
||||||
|
Sent a SOIC8 photo for Raspberry Pi Pico pinout, where previously only SOIC16
|
||||||
|
info existed. Also added info about `thinkpad_acpi` Linux kernel module for
|
||||||
|
ThinkPad T480.
|
||||||
|
|
||||||
|
I (Leah) worked with ezntek on some testing and he discovered several bugs
|
||||||
|
on the ThinkPad T480, while Mate and I were working on it for Libreboot.
|
||||||
|
|
||||||
|
ezntek wrote this guide:
|
||||||
|
<https://ezntek.com/posts/librebooting-the-thinkpad-t480-20241207t0933/>
|
||||||
|
|
||||||
|
This guide was written based on my and other people's help, on IRC, while we
|
||||||
|
were in the process of adding the T480 to Libreboot. Several parts of this guide
|
||||||
|
were in fact used to improve the Libreboot guide, such as the info about how
|
||||||
|
to update the Lenovo UEFI firmware prior to Libreboot installation, by using
|
||||||
|
USB boot media instead of needing to boot Windows.
|
||||||
|
|
||||||
|
Eason's guide also made number one on hacker news that day, and as a result,
|
||||||
|
many more people learned about Libreboot, especially its support for T480,
|
||||||
|
which helped to spread the news about the work.
|
||||||
|
|
||||||
|
Absolute legend. One of Libreboot's many great champions.
|
||||||
|
|
||||||
|
### E. Blåsten
|
||||||
|
|
||||||
|
Documented several quirks of the MacBook2,1 and ThinkPad X200T, such as
|
||||||
|
swivel/rotation on X200T, and various alt keys on the MacBook to make it more
|
||||||
|
usable with Linux, when used on Libreboot.
|
||||||
|
|
||||||
|
Also helped me (Leah) in a very fundamental way, in 2018. The help I got enabled
|
||||||
|
me to be who I am today.
|
||||||
|
|
||||||
|
### Fedja Beader
|
||||||
|
|
||||||
|
Wrote several guides for Libreboot, including the original version of the
|
||||||
|
GRUB hardening guide. Wrote the info about the Linux kernel panic/netconsole
|
||||||
|
on Libreboot's FAQ.
|
||||||
|
|
||||||
|
Also sent some small fixes to Libreboot's GRUB configuration, enabling USB
|
||||||
|
devices to boot more reliably. Also improved Libreboot's documentation
|
||||||
|
pertaining to Full Disk Encryption.
|
||||||
|
|
||||||
|
### Ferass El Hafidi
|
||||||
|
|
||||||
Added cstate 3 support on macbook21, enabling higher battery life and cooler
|
Added cstate 3 support on macbook21, enabling higher battery life and cooler
|
||||||
CPU temperatures on idle usage.
|
CPU temperatures on idle usage.
|
||||||
|
@ -184,17 +298,44 @@ Also has a series of extensive improvements to the entire Libreboot system;
|
||||||
for example, Ferass made the entire build system use POSIX `sh`, removing
|
for example, Ferass made the entire build system use POSIX `sh`, removing
|
||||||
bashisms that previously plagued it.
|
bashisms that previously plagued it.
|
||||||
|
|
||||||
|
Libreboot's original support for cross-compiling AArch64 coreboot was added
|
||||||
|
by him. He also submitted a few bug fixes to the GRUB configuration used by
|
||||||
|
Libreboot.
|
||||||
|
|
||||||
This is IRC nick `f_` on Libreboot IRC. Cool guy!
|
This is IRC nick `f_` on Libreboot IRC. Cool guy!
|
||||||
|
|
||||||
Jeroen Quint
|
### hslick
|
||||||
------------
|
|
||||||
|
Documented Arch Linux ARM installation on ARM64 U-Boot targets.
|
||||||
|
|
||||||
|
### Integral
|
||||||
|
|
||||||
|
Translated the Libreboot home page into Chinese language.
|
||||||
|
|
||||||
|
### Jason Lenz
|
||||||
|
|
||||||
|
Sent instructions for installing Debian Linux on ARM64-based chromebooks
|
||||||
|
with Libreboot and Alper's U-Boot ARM64 payload.
|
||||||
|
|
||||||
|
### Jeroen Quint
|
||||||
|
|
||||||
Contributed several fixes to the libreboot documentation, relating to
|
Contributed several fixes to the libreboot documentation, relating to
|
||||||
installing on Arch-based systems with full disk encryption on libreboot
|
installing on Arch-based systems with full disk encryption on libreboot
|
||||||
systems.
|
systems.
|
||||||
|
|
||||||
Joshua Gay
|
### John Doe
|
||||||
----------
|
|
||||||
|
This person never gave their name, but they sent two patches:
|
||||||
|
|
||||||
|
```
|
||||||
|
* 676eb110c7f Perform the silentoldconfig step of seabios before full make
|
||||||
|
* acc57bda6df scripts: process git versions when lbmk is a worktree or submodule
|
||||||
|
```
|
||||||
|
|
||||||
|
Every contribution is appreciated. Every contributor gets their own entry in
|
||||||
|
the Libreboot Hall of Fame.
|
||||||
|
|
||||||
|
### Joshua Gay
|
||||||
|
|
||||||
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
|
||||||
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;
|
||||||
|
@ -204,14 +345,16 @@ He made sure everyone knew what I was doing, and he taught me a *lot* about
|
||||||
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,
|
||||||
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.
|
||||||
|
|
||||||
Klemens Nanni
|
### Klemens Nanni
|
||||||
-------------
|
|
||||||
|
|
||||||
Made many fixes and improvements to the GRUB configuration used in
|
Made many fixes and improvements to the GRUB configuration used in
|
||||||
libreboot, and several tweaks to the build system.
|
libreboot, and several tweaks to the build system.
|
||||||
|
|
||||||
Lisa Marie Maginnis
|
### Linear Cannon
|
||||||
-------------------
|
|
||||||
|
Added NetBSD support for `dell-flash-unlock`.
|
||||||
|
|
||||||
|
### Lisa Marie Maginnis
|
||||||
|
|
||||||
Lisa was one of Libreboot's early contributors to Libreboot. She personally
|
Lisa was one of Libreboot's early contributors to Libreboot. She personally
|
||||||
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,
|
||||||
|
@ -225,8 +368,15 @@ in Libreboot, e.g. ASUS Chromebook C201PA - at the time, this was using
|
||||||
Google's own Depthcharge payload, which you can find in 2016 Libreboot
|
Google's own Depthcharge payload, which you can find in 2016 Libreboot
|
||||||
releases.
|
releases.
|
||||||
|
|
||||||
Lorenzo Aloe
|
### Livio
|
||||||
------------
|
|
||||||
|
Sent a small enhancement for GRUB, allowing the user to turn on or off several
|
||||||
|
options at boot time, such as graphical options or spkmodem output, so that
|
||||||
|
these features can be included on every image, and used flexibly.
|
||||||
|
|
||||||
|
Sent some small fixes to the QEMU target, fixing a bug in the SMBIOS info.
|
||||||
|
|
||||||
|
### Lorenzo Aloe
|
||||||
|
|
||||||
Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md),
|
Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md),
|
||||||
also provided testing for proxmox with GPU passthrough on Dell Precision T1650,
|
also provided testing for proxmox with GPU passthrough on Dell Precision T1650,
|
||||||
|
@ -236,13 +386,63 @@ that OS is not natively supported.
|
||||||
|
|
||||||
All round good guy, an honest and loyal fan.
|
All round good guy, an honest and loyal fan.
|
||||||
|
|
||||||
Marcus Moeller
|
### Luke T. Shumaker
|
||||||
--------------
|
|
||||||
|
Sent a patch to Libreboot, fixing vboot on 32-bit (i686) hosts; it previously
|
||||||
|
only compiled on 64-bit x86 (amd64) machines.
|
||||||
|
|
||||||
|
### Marcus Moeller
|
||||||
|
|
||||||
Made the libreboot logo.
|
Made the libreboot logo.
|
||||||
|
|
||||||
Nicholas Chin
|
### Mate Kukri
|
||||||
-------------
|
|
||||||
|
Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams
|
||||||
|
that it uses; he is a coreboot developer, and also contributes heavily to the
|
||||||
|
GRUB bootloader project.
|
||||||
|
|
||||||
|
Off the top of my head, here are just a few of the contributions that he has
|
||||||
|
made:
|
||||||
|
|
||||||
|
* Wrote several enhancements for `pico-serprog`, based on the original work
|
||||||
|
done by [stacksmashing](https://github.com/stacksmashing), who also has
|
||||||
|
this very interesting [youtube channel](https://www.youtube.com/channel/UC3S8vxwRfqLBdIhgRlDRVzw);
|
||||||
|
Riku's work is heavily inspired by Mate's and stacksmashing's work.
|
||||||
|
* Ported the Dell OptiPlex 9020 SFF and MT, and provided several fixes on it
|
||||||
|
for the Libreboot project; several fixes that I (Leah) did were also based on
|
||||||
|
advice that he gave me.
|
||||||
|
* Wrote the [deguard](docs/install/deguard.md) utility for disabling Intel
|
||||||
|
Boot Guard on MEv11; this is used for the Dell OptiPlex 3050 Micro
|
||||||
|
and ThinkPad T480 ports.
|
||||||
|
* Ported the Dell OptiPlex 3050 Micro and Lenovo ThinkPad T480/T480s to
|
||||||
|
coreboot, directly providing Leah with advice when integrating these ports
|
||||||
|
into Libreboot. This work included heavy amounts of reverse engineering
|
||||||
|
Lenovo's EC firmware.
|
||||||
|
* Ported the ASUS H610M-K D4 motherboard to coreboot, an Alderlake machine that
|
||||||
|
Libreboot is interested in, for the release planned by April 2025; this
|
||||||
|
bullet-point is being written on 5 January 2025 prior to its addition in
|
||||||
|
Libreboot.
|
||||||
|
* Wrote the NVMe driver that Libreboot uses in GRUB, based upon work done for
|
||||||
|
the SeaBIOS project.
|
||||||
|
|
||||||
|
Mate Kukri is a hero to the Libreboot project. Without him, Libreboot would not
|
||||||
|
be what it is today.
|
||||||
|
|
||||||
|
### Michael Reed
|
||||||
|
|
||||||
|
Wrote Libreboot's original OpenBSD installation guide.
|
||||||
|
|
||||||
|
Also sent fixes to the original static site generator that Alyssa wrote, upon
|
||||||
|
which the Untitled Static Site Generator was later based.
|
||||||
|
|
||||||
|
### Michał Masłowski
|
||||||
|
|
||||||
|
Sent several fixes to Libreboot's early build system, back in the early days
|
||||||
|
of the project. Also taught Leah how to use Git, because the very first revisions
|
||||||
|
were released only as tarballs, without Git history; the first commits in
|
||||||
|
the old repository were imports of those tarballs.
|
||||||
|
|
||||||
|
### Nicholas Chin
|
||||||
|
|
||||||
[Ported Dell Latitude E6400 to Libreboot](news/e6400.md)
|
[Ported Dell Latitude E6400 to Libreboot](news/e6400.md)
|
||||||
and also [Dell Latitude E6430](docs/install/latitude.md) - author of
|
and also [Dell Latitude E6430](docs/install/latitude.md) - author of
|
||||||
|
@ -250,23 +450,52 @@ the `dell-flash-unlock` (formerly `e6400-flash-unlock`) utility, which
|
||||||
can unlock the flash on these boards, allowing internal flashing of
|
can unlock the flash on these boards, allowing internal flashing of
|
||||||
Libreboot directly from host OS running under the original Dell firmware.
|
Libreboot directly from host OS running under the original Dell firmware.
|
||||||
|
|
||||||
Patrick "P. J." McDermott
|
Nicholas has ported many more Dell Latitude laptops to Libreboot, and he works
|
||||||
---------------------------
|
heavily on the upstream coreboot project. In fact, *every* Dell Latitude
|
||||||
|
board supported in Libreboot was done by him, at least as of 5 January 2025.
|
||||||
|
|
||||||
|
Nicholas has provided countless hours of user support on the Libreboot IRC
|
||||||
|
channel and in those of projects which Libreboot uses, and submitted many
|
||||||
|
fixes to Libreboot, both in terms of code and documentation.
|
||||||
|
|
||||||
|
He has advised me, Leah, on many occasions, teaching me things. Needless to
|
||||||
|
say, he is one of Libreboot's champions.
|
||||||
|
|
||||||
|
Nicholas also contributes to coreboot heavily, to flashprog, and several
|
||||||
|
other projects that Libreboot uses.
|
||||||
|
|
||||||
|
### 0xloem
|
||||||
|
|
||||||
|
Added info about LPC flashing on Libreboot's external flashing guide.
|
||||||
|
|
||||||
|
### Patrick "P. J." McDermott
|
||||||
|
|
||||||
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
|
||||||
relating to the [Intel Management Engine](../faq.md#intelme), in addition
|
relating to the [Intel Management Engine](../faq.md#intelme), in addition
|
||||||
to making several improvements to the build system in libreboot. **Former
|
to making several improvements to the build system in libreboot. **Former
|
||||||
libreboot project maintainer.**
|
libreboot project maintainer.**
|
||||||
|
|
||||||
Paul Kocialkowski
|
### Patrick Rudolph
|
||||||
-----------------
|
|
||||||
|
Coreboot developer. Also wrote the xHCI GRUB driver, that Libreboot uses;
|
||||||
|
without it, several ports in Libreboot would not be feasible, unless they
|
||||||
|
excluded GRUB as a payload, because several newer Intel platforms no longer
|
||||||
|
have (or configure) EHCI controllers. Upstream GRUB currently has no xHCI
|
||||||
|
driver, but Patrick sent patches in 2020 that Libreboot later re-based,
|
||||||
|
on top of GRUB 2.12.
|
||||||
|
|
||||||
|
### Paul Kocialkowski
|
||||||
|
|
||||||
Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to
|
Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to
|
||||||
libreboot. Also one of the main [Replicant](http://www.replicant.us/)
|
libreboot. Also one of the main [Replicant](http://www.replicant.us/)
|
||||||
developers.
|
developers.
|
||||||
|
|
||||||
Paul Menzel
|
He was also responsible for the original re-write of the Libreboot build
|
||||||
-----------
|
system, upon which Libreboot's effort from 2017-2021 was based; ultimately,
|
||||||
|
this work never became stable and the work was scrapped in 2021, in favour of
|
||||||
|
the current Libreboot build system design, named lbmk.
|
||||||
|
|
||||||
|
### Paul Menzel
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -279,15 +508,17 @@ Paul worked with Libreboot on
|
||||||
this, sending patches to test periodically until the bug was fixed
|
this, sending patches to test periodically until the bug was fixed
|
||||||
in coreboot, and then helped her integrate the fix in libreboot.
|
in coreboot, and then helped her integrate the fix in libreboot.
|
||||||
|
|
||||||
Peter Stuge
|
### Peaksol
|
||||||
-----------
|
|
||||||
|
Translated several pages, including the SPI flashing guide, into Chinese
|
||||||
|
language.
|
||||||
|
|
||||||
|
### Peter Stuge
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
in those days, and a major developer in the *libusb* project (which flashrom
|
in those days, and a major developer in the *libusb* project (which flashprog
|
||||||
makes heavy use of).
|
makes heavy use of).
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
|
||||||
now, as of 27 January 2024.
|
|
||||||
|
|
||||||
Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap
|
Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap
|
||||||
(TS) bit on i945 laptops such as ThinkPad X60/T60, which is useful for a
|
(TS) bit on i945 laptops such as ThinkPad X60/T60, which is useful for a
|
||||||
|
@ -300,16 +531,72 @@ bucts before flashing the ROM again, to flash the main bootblock. Libreboot
|
||||||
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
|
||||||
responsive.
|
responsive.
|
||||||
|
|
||||||
Riku Viitanen
|
### Riku Viitanen
|
||||||
-------------
|
|
||||||
|
|
||||||
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
|
||||||
about this in the hardware page:
|
about this in the hardware page:
|
||||||
|
|
||||||
[HP Elite 8200 SFF](docs/install/hp8200sff.md)
|
[HP Elite 8200 SFF](docs/install/hp8200sff.md)
|
||||||
|
|
||||||
Steve Shenton
|
Riku also ported the HP Elite 8300 USDT.
|
||||||
-------------
|
|
||||||
|
Riku implemented MXM support as an INT15h handler in SeaBIOS, and wrote
|
||||||
|
some tooling for it, which enables the HP EliteBook 8560w port to work reliably
|
||||||
|
in Libreboot.
|
||||||
|
|
||||||
|
Riku also added the HP Folio 9470m to Libreboot.
|
||||||
|
|
||||||
|
Riku is also in charge of Libreboot's fork of `pico-serprog`, which is used
|
||||||
|
to provide serprog firmware on Raspberry Pi Pico devices. These devices can
|
||||||
|
be used to set up a cheap but reliable NOR flasher, which is now the default
|
||||||
|
recommended one for flashing Libreboot externally. Riku's fork contains several
|
||||||
|
enhancements, such as a higher default drive level of 12mA and the ability to
|
||||||
|
control multiple chip select pins, useful for flashing dual-chip Intel boards.
|
||||||
|
|
||||||
|
Riku has submitted numerous bug fixes to many boards, and generally sent many
|
||||||
|
improvements for the build system and also the Libreboot documentation. He
|
||||||
|
also added the HP EliteBook 2560p to Libreboot.
|
||||||
|
|
||||||
|
Riku also contributes to coreboot and flashprog, and several other projects
|
||||||
|
that Libreboot uses.
|
||||||
|
|
||||||
|
### samuraikid
|
||||||
|
|
||||||
|
Added Portuguese keyboard layout to Libreboot's GRUB payload.
|
||||||
|
|
||||||
|
### semigel
|
||||||
|
|
||||||
|
Added BTRFS subvolume support to Libreboot's GRUB configuration, for auto-booting
|
||||||
|
various Linux distros.
|
||||||
|
|
||||||
|
### Simon Glass
|
||||||
|
|
||||||
|
Simon Glass is principally responsible for the x86 U-Boot payload that Libreboot
|
||||||
|
now uses as a coreboot payload. Simon provided Leah with several critical patches
|
||||||
|
and advised Leah on several aspects of U-Boot's design, that helped a lot
|
||||||
|
when integrating it.
|
||||||
|
|
||||||
|
Without him, Libreboot would not have a functioning U-Boot implementation on
|
||||||
|
x86.
|
||||||
|
|
||||||
|
### Snooze Function
|
||||||
|
|
||||||
|
Translated several pages on the Libreboot documentation into the German
|
||||||
|
language.
|
||||||
|
|
||||||
|
### StackSmashing
|
||||||
|
|
||||||
|
Author of the original [pico-serprog](https://github.com/stacksmashing/pico-serprog)
|
||||||
|
project, upon which Libreboot's fork (maintained by Riku Viitanen) is based.
|
||||||
|
|
||||||
|
StackSmashing didn't do this specifically for Libreboot, but their work is
|
||||||
|
outstanding, so their name is honoured here.
|
||||||
|
|
||||||
|
StackSmashing also has a [YouTube channel](https://www.youtube.com/channel/UC3S8vxwRfqLBdIhgRlDRVzw)
|
||||||
|
with a lot of really cool videos on it about all things electronics, and hacking
|
||||||
|
of electronics. Check it out!
|
||||||
|
|
||||||
|
### Steve Shenton
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -344,23 +631,21 @@ engineered the layout of the Intel GbE NVM (non-volatile memory) region in the
|
||||||
boot flash. This region defines configuration options for the onboard Intel
|
boot flash. This region defines configuration options for the onboard Intel
|
||||||
GbE NIC, if present.
|
GbE NIC, if present.
|
||||||
|
|
||||||
Based on this, I was able to take Steve's initial proof of concept and write
|
Based on this, I was able to take Steve's initial proof of concept
|
||||||
|
and work with him extensively to write
|
||||||
the `ich9gen` utility, which generates an Intel Flash Descriptor and GbE NVM
|
the `ich9gen` utility, which generates an Intel Flash Descriptor and GbE NVM
|
||||||
region, from scratch, without an Intel ME region defined. It is this tool,
|
region, from scratch, without an Intel ME region defined,
|
||||||
the `ich9gen` tool, that Libreboot uses to provide ROM images for GM45+ICH9M
|
without needing a dump of the original Lenovo BIOS firmware.
|
||||||
|
Libreboot used to use `ich9gen` to provide ROM images for GM45+ICH9M
|
||||||
platforms (such as ThinkPad X200/T400/T500/W500), with a fully functional
|
platforms (such as ThinkPad X200/T400/T500/W500), with a fully functional
|
||||||
descriptor and functional Gigabit Ethernet, but *without* needing Intel
|
descriptor and functional Gigabit Ethernet, but *without* needing Intel
|
||||||
Management Engine (ME) firmware, thus making those machines *libre* (the ME
|
Management Engine (ME) firmware, thus making those machines *libre* (the ME
|
||||||
is fully disabled, when you use a descriptor+gbe image generated by `ich9gen`).
|
is fully disabled, when you use a descriptor+gbe image generated by `ich9gen`).
|
||||||
|
Note that `ich9gen` is now obsolete as the Flash Descriptor and NVM region
|
||||||
|
are generated pre-assembled, and `nvmutil` is used to change MAC addresses
|
||||||
|
instead.
|
||||||
|
|
||||||
With *my* `ich9gen` tool (Steve's tool was called `ich9deblob`), you didn't
|
### Swift Geek
|
||||||
need a dump of the original Lenovo BIOS firmware anymore! I could not have
|
|
||||||
written this tool, without Steve's initial proof of concept. I worked with him,
|
|
||||||
extensively, for many months. All GM45+ICH9M support (X200, T400, etc) in
|
|
||||||
Libreboot is made possible because of the work he did, back in 2014.
|
|
||||||
|
|
||||||
Swift Geek
|
|
||||||
----------
|
|
||||||
|
|
||||||
Contributed a patch for ich9gen to generate 16MiB descriptors.
|
Contributed a patch for ich9gen to generate 16MiB descriptors.
|
||||||
|
|
||||||
|
@ -377,14 +662,17 @@ lot about hardware. Swift Geek also did some upstream development on GRUB.
|
||||||
Swift Geek has provided technical advice on numerous occasions, to Leah Rowe,
|
Swift Geek has provided technical advice on numerous occasions, to Leah Rowe,
|
||||||
and helped her to improve her soldering skills in addition to teaching her
|
and helped her to improve her soldering skills in addition to teaching her
|
||||||
some repair skills, to the point where she can now repair most faults on
|
some repair skills, to the point where she can now repair most faults on
|
||||||
ThinkPad mainboards (while looking at the schematics and boardview).
|
ThinkPad motherboards (while looking at the schematics and boardview).
|
||||||
|
|
||||||
Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best
|
Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best
|
||||||
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
|
||||||
years.
|
years.
|
||||||
|
|
||||||
Timothy Pearson
|
### Timothee Benedet
|
||||||
---------------
|
|
||||||
|
Translated several Libreboot website pages into the French language.
|
||||||
|
|
||||||
|
### Timothy Pearson
|
||||||
|
|
||||||
Ported the ASUS KGPE-D16 board to coreboot for the company Raptor
|
Ported the ASUS KGPE-D16 board to coreboot for the company Raptor
|
||||||
Engineering of which Timothy is the CEO.
|
Engineering of which Timothy is the CEO.
|
||||||
|
@ -395,8 +683,7 @@ contact details are on the raptor site.
|
||||||
**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
|
||||||
revisions of Libreboot, and older release versions.**
|
revisions of Libreboot, and older release versions.**
|
||||||
|
|
||||||
Vladimir Serbinenko
|
### Vladimir Serbinenko
|
||||||
-------------------
|
|
||||||
|
|
||||||
Ported many of the thinkpads supported in libreboot, to coreboot, and
|
Ported many of the thinkpads supported in libreboot, to coreboot, and
|
||||||
made many fixes in coreboot which benefited the libreboot project.
|
made many fixes in coreboot which benefited the libreboot project.
|
||||||
|
@ -406,3 +693,13 @@ Intel platforms in Libreboot, when flashing it (now rewritten
|
||||||
by others in Ada, for libgfxinit in coreboot, but originally it was written in
|
by others in Ada, for libgfxinit in coreboot, but originally it was written in
|
||||||
C and included directly in coreboot; libgfxinit is a 3rdparty submodule of
|
C and included directly in coreboot; libgfxinit is a 3rdparty submodule of
|
||||||
coreboot).
|
coreboot).
|
||||||
|
|
||||||
|
### Vladislav Shapovalov
|
||||||
|
|
||||||
|
Translated several pages of the Libreboot website into Ukranian language.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
**Did we forget your name?**
|
||||||
|
|
||||||
|
**If so, and you would like to be listed here, please contact the Libreboot project.**
|
||||||
|
|
|
@ -1,26 +1,120 @@
|
||||||
---
|
---
|
||||||
title: BSD operating systems
|
title: Install a BSD operating system on Libreboot
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Guide last updated on 16 November 2022.
|
It is assumed here that you are using the *SeaBIOS* payload, *not* the GRUB
|
||||||
|
payload; the U-Boot payload may also work, but that is not covered here. The
|
||||||
|
SeaBIOS payload must ideally run in text mode (`txtmode` images from Libreboot
|
||||||
|
releases).
|
||||||
|
|
||||||
NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM
|
This guide pertains to x86 hosts, and does not cover supported CrOS/ARM
|
||||||
chromebooks. For ARM targets, you should refer to u-boot documentation.
|
chromebooks. For ARM targets, you should refer to [u-boot
|
||||||
|
documentation](../uboot/) - and [U-Boot x86](../uboot/uboot-x86.md) is also
|
||||||
|
available. The U-Boot x86 payload is interesting, because it can in fact boot
|
||||||
|
OpenBSD via UEFI method (U-Boot provides a lightweight UEFI implementation
|
||||||
|
independently of, say, EDK2).
|
||||||
|
|
||||||
libreboot is capable of booting many BSD systems. This section mostly documents
|
What is BSD?
|
||||||
the peculiarities of libreboot as it pertains to BSD; you can otherwise refer to
|
------------
|
||||||
the official documentation for whatever BSD system you would like to use.
|
|
||||||
|
|
||||||
Kernel Mode Setting
|
In our context, we are referring to those descendents of 4.4BSD-Lite starting
|
||||||
===================
|
in the early 1990s. On balance, they are about equal to Linux in many ways,
|
||||||
|
and some would argue that they are *better* (higher code quality). It can be
|
||||||
|
said that the BSDs are the closest we have to *true* open source Unix systems,
|
||||||
|
since they ultimately descend from that code lineage. For example, the
|
||||||
|
FreeBSD project briefly covers its own history in the Hand Book:
|
||||||
|
<https://docs.freebsd.org/en/books/handbook/introduction/#history>
|
||||||
|
|
||||||
|
Chief among them are:
|
||||||
|
|
||||||
|
* [FreeBSD](https://www.freebsd.org/) (HardenedBSD probably also works)
|
||||||
|
* [NetBSD](https://netbsd.org/)
|
||||||
|
* [OpenBSD](https://www.openbsd.org/)
|
||||||
|
* [DragonFlyBSD](https://www.dragonflybsd.org/) (UNTESTED)
|
||||||
|
|
||||||
|
**TODO: DragonFlyBSD is untested, as of January 2025. It ought to be tested.**
|
||||||
|
|
||||||
|
Many other BSD systems exist, that are largely derived from these.
|
||||||
|
|
||||||
|
Why use BSD (instead of Linux)?
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
BSD operating systems are in wide use today, powering much of the world's
|
||||||
|
most critical infrastructure, and they're quite competent laptop/desktop or
|
||||||
|
workstation systems. Some of them have unique features that you can't find
|
||||||
|
anywhere else (e.g. FreeBSD jails, OpenBSD's numerous security enhancements,
|
||||||
|
NetBSD's rump kernel design and clean code quality).
|
||||||
|
|
||||||
|
BSD systems are superficially similar to Linux systems, but they are very
|
||||||
|
different under the hood (different kernel designs, different userspace
|
||||||
|
implementations, and so on). However, almost all of the Linux userspace programs
|
||||||
|
that you enjoy using are probably available in the various BSD *ports trees*,
|
||||||
|
or they can be compiled with little to no modification. This is because, despite
|
||||||
|
the actual differences under the hood, the BSDs and various Linux distros all
|
||||||
|
adhere to the same basic standards (e.g. Single Unix Specification).
|
||||||
|
|
||||||
|
If you want to enjoy using a high quality operating system, with many unique
|
||||||
|
features, BSD systems can be quite fun to use, and quite challenging. They tend
|
||||||
|
to have a much more conservative take on implementations, compared to Linux
|
||||||
|
distros, instead opting for technical correctness and minimalism; this is a
|
||||||
|
good thing, because lots of Linux distros these days are extremely bloated.
|
||||||
|
Using a BSD system feels like Linux did in the year 2005, just with much better
|
||||||
|
hardware support, and that's a *good thing*; the reason why is that BSD systems
|
||||||
|
simply have fewer users, and a higher concentration of *technical* users, and
|
||||||
|
this *shows* when you use it. Linux is *much* more mass market and has to cater
|
||||||
|
to all sorts of people, and these days Linux distros have to *Just Work*.
|
||||||
|
|
||||||
|
You can look at the documentation of each BSD system and try each one out, to
|
||||||
|
see which one is right for you. Be warned, BSD systems *are* typically harder
|
||||||
|
to use than Linux systems. Even the most seasoned Linux user will often have a
|
||||||
|
hard time with any BSD, if it's their first time using a BSD system. This is
|
||||||
|
mitigated by excellent documentation, which is one of the things that the BSDs
|
||||||
|
excel at, but you are expected to *read* the documentation; many Linux distros
|
||||||
|
try to hold your hand ("it Just Works"), but the BSDs generally don't do that.
|
||||||
|
|
||||||
|
If you're already a power user on Linux, and comfortable with the more hands-on
|
||||||
|
distros like Arch Linux or Gentoo Linux, you'll have a much easier time
|
||||||
|
learning a BSD. FreeBSD for example comes completely barebones by default, and
|
||||||
|
you add packages to it, configuring it to your liking, much like Arch Linux; if
|
||||||
|
you're wily enough, you might also use the CURRENT tree and install all packages
|
||||||
|
by building them from *ports* (akin to how Gentoo Linux is used).
|
||||||
|
|
||||||
|
BSD systems also have much more relaxed licensing than Linux systems, by and
|
||||||
|
large; most of the software in the base system, on any BSD project, will use
|
||||||
|
a permissive license instead of copyleft. They can be regarded as Free Software,
|
||||||
|
but it's a very different ideology than, say, GNU. Some might argue that this
|
||||||
|
is better, because licensing conflicts are common among copyleft licenses, even
|
||||||
|
among different versions of the GPL. A BSD-style license permits *anyone* to
|
||||||
|
use the code, *without* requiring modified versions to ship source code, so it
|
||||||
|
can be said that the BSD license model contains [far fewer
|
||||||
|
restrictions](https://docs.freebsd.org/en/articles/bsdl-gpl/). One might say
|
||||||
|
that the BSD systems are *more free* than GNU/Linux systems.
|
||||||
|
|
||||||
|
Basically, your choice to use BSD will likely be based on a combination of
|
||||||
|
technical and/or ideological preferences. But don't say we didn't warn you.
|
||||||
|
BSD is hard. On the flip side of that coin, BSD is *easy*, because it forces
|
||||||
|
you to really learn how your system works; when you become proficient with
|
||||||
|
BSD, you'll learn everything else much easier, and you may find yourself doing
|
||||||
|
things more efficiently *in Linux* as well!
|
||||||
|
|
||||||
|
That's enough BSD fanaticism. Please read the following sections, *before*
|
||||||
|
you embark on your BSD Libreboot journey:
|
||||||
|
|
||||||
|
Common issues with BSD+Libreboot
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
This page will not tell you how to install BSD systems; that is best left to
|
||||||
|
the documentation for your BSD system. Instead, these next sections cover only
|
||||||
|
the idiosyncrasies of Libreboot as they relate to BSD:
|
||||||
|
|
||||||
|
### Kernel Mode Setting
|
||||||
|
|
||||||
Your BSD system *must* support Kernel Mode Setting for your graphics
|
Your BSD system *must* support Kernel Mode Setting for your graphics
|
||||||
device (most of them do nowadays). The reasons will become apparent, as
|
device (most of them do nowadays). The reasons will become apparent, as
|
||||||
you read this article.
|
you read this article.
|
||||||
|
|
||||||
Boot BSD, using SeaBIOS
|
### Boot BSD, using SeaBIOS
|
||||||
=======================
|
|
||||||
|
|
||||||
On x86 platforms, Libreboot provides the choice of GRUB and/or
|
On x86 platforms, Libreboot provides the choice of GRUB and/or
|
||||||
SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is
|
SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is
|
||||||
|
@ -37,8 +131,18 @@ If you don't plan to set up Xorg/Wayland, then that's all you really need to
|
||||||
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
|
||||||
probably don't mind running in text mode all the time.
|
probably don't mind running in text mode all the time.
|
||||||
|
|
||||||
OpenBSD and corebootfb
|
#### GRUB payload
|
||||||
----------------------
|
|
||||||
|
GRUB *can* directly boot many BSD systems, but this is ill advisable. You are
|
||||||
|
advised to use either SeaBIOS, and boot a BIOS-based BSD bootloader, or use
|
||||||
|
Libreboot's [U-Boot payload](../uboot/) and use it to boot via UEFI; U-Boot's
|
||||||
|
bootflow menu can achieve this.
|
||||||
|
|
||||||
|
The U-Boot coreboot payload is still experimental, on ARM64 *and* x86/x86\_64,
|
||||||
|
so you should probably use SeaBIOS for now (on x86). U-Boot is the *only*
|
||||||
|
coreboot payload for Libreboot on ARM64 motherboards.
|
||||||
|
|
||||||
|
### OpenBSD and corebootfb
|
||||||
|
|
||||||
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
|
||||||
can work with SeaBIOS booting in a coreboot framebuffer, with SeaVGABIOS. In
|
can work with SeaBIOS booting in a coreboot framebuffer, with SeaVGABIOS. In
|
||||||
|
@ -46,19 +150,22 @@ Libreboot ROM images, this would be SeaBIOS images with `corebootfb` in the
|
||||||
file name.
|
file name.
|
||||||
|
|
||||||
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
|
||||||
Just Work.
|
Just Work. **GPT partitioning won't work in OpenBSD, if you use the SeaBIOS
|
||||||
|
payload, but will work if you boot/install it via UEFI boot method with
|
||||||
|
Libreboot's [U-Boot UEFI payload](../uboot/uboot-x86.md) instead.**
|
||||||
|
|
||||||
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,
|
||||||
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.
|
||||||
|
|
||||||
FreeBSD and corebootfb
|
### FreeBSD and corebootfb
|
||||||
----------------------
|
|
||||||
|
|
||||||
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
|
||||||
mode (lbmk ROM images with `txtmode` in the file name, not `corebootfb`).
|
mode (lbmk ROM images with `txtmode` in the file name, not `corebootfb`).
|
||||||
|
|
||||||
Warnings for X11 users
|
Please boot in *text mode*. FreeBSD can be configured to use KMS, if you need
|
||||||
----------------------
|
Xorg or wayland.
|
||||||
|
|
||||||
|
### Warnings for X11 users
|
||||||
|
|
||||||
One important peculiarity of most libreboot systems is: VGA mode
|
One important peculiarity of most libreboot systems is: VGA mode
|
||||||
support exists, if booting with corebootfb (coreboot's own framebuffer) and
|
support exists, if booting with corebootfb (coreboot's own framebuffer) and
|
||||||
|
@ -113,43 +220,7 @@ You should not rely on the above instruction (for FreeBSD), because the exact
|
||||||
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
|
||||||
documentation provided by your system, to know how KMS is configured.
|
documentation provided by your system, to know how KMS is configured.
|
||||||
|
|
||||||
ALWAYS READ THE MANUAL
|
### Desktop users
|
||||||
----------------------
|
|
||||||
|
|
||||||
All of the BSDs have *excellent* documentation; it's one of the defining
|
|
||||||
characteristics, versus typical Linux distros.
|
|
||||||
|
|
||||||
Aside from this quirk in coreboot, regarding *BIOS* video modes, the BSDs
|
|
||||||
otherwise work in exactly the same way as you would expect, and you can
|
|
||||||
follow along to their official documentation without much fuss.
|
|
||||||
|
|
||||||
No specific or detailed guides will be provided here, because SeaBIOS is
|
|
||||||
fairly self-explanatory; you can otherwise refer to the SeaBIOS
|
|
||||||
documentation.
|
|
||||||
|
|
||||||
If you're flashing a ROM for a machine where `seabios_withgrub`
|
|
||||||
and `seabios_grubfirst` ROMs are available, choose `seabios_withgrub`.
|
|
||||||
|
|
||||||
DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were
|
|
||||||
present in older Libreboot releases, and supported in previous revisions
|
|
||||||
of the build system, but they did not work for the intended purpose. More
|
|
||||||
info is written on the [Libreboot installation guide](../install/). ROM
|
|
||||||
images with `seabios_grubfirst` in the filename will NOT be included in
|
|
||||||
future Libreboot releases.
|
|
||||||
|
|
||||||
Dubious mention: Tianocore
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
Tianocore is extremely bloated, and unauditable, so it is not included
|
|
||||||
in Libreboot firmware, but it is the reference UEFI implementation by
|
|
||||||
Intel and contributors. It can boot most BSD systems very well.
|
|
||||||
|
|
||||||
More robust ways to provide UEFI services in Libreboot are to be investigated.
|
|
||||||
Tianocore integration will not be provided officially, in any current or future
|
|
||||||
releases of Libreboot.
|
|
||||||
|
|
||||||
Desktop users
|
|
||||||
-------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -173,3 +244,36 @@ extremely expensive computationally speaking. This is why modern kernels
|
||||||
You can learn more about INT10H text/VGA modes here:
|
You can learn more about INT10H text/VGA modes here:
|
||||||
|
|
||||||
<https://en.wikipedia.org/wiki/INT_10H>
|
<https://en.wikipedia.org/wiki/INT_10H>
|
||||||
|
|
||||||
|
If you use the *U-Boot* payload, INT10H is irrelevant because you will rely on
|
||||||
|
an EFI framebuffer instead, which U-Boot does provide (piggybacking off of the
|
||||||
|
coreboot framebuffer where one is available).
|
||||||
|
|
||||||
|
Regardless of whether you have an EFI framebuffer or INT10H VGA interrupts,
|
||||||
|
the various BSD systems all support KMS so you should be able to use Xorg or
|
||||||
|
Wayland just fine.
|
||||||
|
|
||||||
|
ALWAYS READ THE MANUAL
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
All of the BSDs have *excellent* documentation; it's one of the defining
|
||||||
|
characteristics, versus typical Linux distros. This is precisely *because*
|
||||||
|
the BSDs develop everything in-house, so the various components of a BSD
|
||||||
|
system are much more heavily integrated, and this means that they can provide
|
||||||
|
much more reliable documentation; reliable from both the user's perspective
|
||||||
|
and from the perspective of technical correctness.
|
||||||
|
|
||||||
|
Aside from these and other quirks when installing BSD *on Libreboot*, the BSDs
|
||||||
|
otherwise work in exactly the same way as you would expect, and you can
|
||||||
|
follow along to their official documentation without much fuss.
|
||||||
|
|
||||||
|
No specific or detailed guides will be provided here, because SeaBIOS is
|
||||||
|
fairly self-explanatory; you can otherwise refer to the SeaBIOS
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were
|
||||||
|
present in older Libreboot releases, and supported in previous revisions
|
||||||
|
of the build system, but they did not work for the intended purpose. More
|
||||||
|
info is written on the [Libreboot installation guide](../install/). ROM
|
||||||
|
images with `seabios_grubfirst` in the filename will NOT be included in
|
||||||
|
future Libreboot releases.
|
||||||
|
|
1
site/docs/bsd/index.md.description
Normal file
1
site/docs/bsd/index.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install OpenBSD, FreeBSD, NetBSD and other BSD operating systems on Libreboot. Libreboot provides free/opensource BIOS/UEFI firmware based on coreboot.
|
175
site/docs/build/index.md
vendored
175
site/docs/build/index.md
vendored
|
@ -1,32 +1,39 @@
|
||||||
---
|
---
|
||||||
title: Build from source
|
title: Compile Libreboot from source
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
WARNING: Flash from bin/, NOT elf/
|
If you need to build Libreboot from source, this guide is for you.
|
||||||
==================================
|
|
||||||
|
|
||||||
**WARNING: When you build a ROM image from the Libreboot build system, please
|
|
||||||
ensure that you flash the appropriate ROM image from `bin/`, NOT `elf/`.
|
|
||||||
The `elf/` coreboot ROMs do not contain payloads. Libreboot's build system
|
|
||||||
builds no-payload ROMs under `elf/`, and payloads separately under `elf/`. Then
|
|
||||||
it copies from `elf/` and inserts payloads from `elf/`, and puts the final ROM
|
|
||||||
images (containing payloads) in `bin/`. This design is more efficient, and
|
|
||||||
permits many configurations without needless duplication of work. More info
|
|
||||||
is available in the [lbmk maintenance manual](../maintain/)**
|
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
============
|
------------
|
||||||
|
|
||||||
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
|
||||||
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.
|
libreboot from the available source code.
|
||||||
|
|
||||||
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
|
||||||
to it: [libreboot maintenance manual](../maintain/)
|
to it: [libreboot maintenance manual](../maintain/)
|
||||||
|
|
||||||
|
### WARNING: eCryptfs file name limits
|
||||||
|
|
||||||
|
Do not run the build system on a eCryptfs file system, because it has
|
||||||
|
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
|
||||||
|
who encrypt their home directory with eCryptfs; regular LUKS encryption will
|
||||||
|
do nicely.
|
||||||
|
|
||||||
|
System requirements
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
You must ensure that you have the correct operating system, CPU, RAM, disk space
|
||||||
|
and so on.
|
||||||
|
|
||||||
|
System requirements are documented in
|
||||||
|
the [lbmk maintenance manual](../maintain/#system-requirements).
|
||||||
|
|
||||||
Multi-threaded builds
|
Multi-threaded builds
|
||||||
=====================
|
---------------------
|
||||||
|
|
||||||
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
|
||||||
it by doing e.g.
|
it by doing e.g.
|
||||||
|
@ -40,42 +47,22 @@ is passed, where THREADS is the number of threads. This is also set when running
|
||||||
xz commands for compression, using the `-t` option.
|
xz commands for compression, using the `-t` option.
|
||||||
|
|
||||||
Environmental variables
|
Environmental variables
|
||||||
=======================
|
-----------------------
|
||||||
|
|
||||||
Please read about environmental variables in [the build
|
Please read about environmental variables in [the build
|
||||||
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
|
your variables accordingly, though you do not technically need to; some
|
||||||
of them may be useful, e.g. `LBMK_THREADS` (sets the number of build threads).
|
of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads).
|
||||||
|
|
||||||
Sources
|
Sources
|
||||||
=======
|
-------
|
||||||
|
|
||||||
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
|
||||||
the `lbmk` git repository, which
|
the `lbmk` git repository, which
|
||||||
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).
|
||||||
|
|
||||||
A note about documentation (and this page)
|
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
From Libreboot 20231021 onwards, *all* releases (including 20231021)
|
|
||||||
have `lbwww.git` (the website) and `lbwww-img.git` (images for the website)
|
|
||||||
archived in the *src* tar archive for that release; older releases were hit
|
|
||||||
or miss, from 20210522 to 20230625, as to whether they came with documentation;
|
|
||||||
releases older than 20210522 generally always came with documentation. Modern
|
|
||||||
Libreboot documentation is written in Markdown (pandoc variant)
|
|
||||||
|
|
||||||
If you're working with *release* documentation, you don't get the full HTML
|
|
||||||
files (such as the one you're viewing now, if you're reading *this* page in a
|
|
||||||
web browser), so either read the Markdown files directly, or compile them to
|
|
||||||
HTML using the [Untitled Static Site Generator](https://untitled.vimuser.org/)
|
|
||||||
(which is what the Libreboot project uses to generate HTML from those files).
|
|
||||||
|
|
||||||
NOTE: `av.libreboot.org` is hardcoded as the domain name where images are
|
|
||||||
pointed to, in `lbwww.git`, so you will need to replace these references in
|
|
||||||
your local version, unless you're happy to just continue using those.
|
|
||||||
|
|
||||||
Git
|
Git
|
||||||
===
|
---
|
||||||
|
|
||||||
Libreboot's build system uses Git, extensively. You should perform the steps
|
Libreboot's build system uses Git, extensively. You should perform the steps
|
||||||
below, *even if you're using a release archive*.
|
below, *even if you're using a release archive*.
|
||||||
|
@ -94,39 +81,20 @@ Change the name and email address to whatever you want, when doing this.
|
||||||
You may also want to follow more of the steps here:
|
You may also want to follow more of the steps here:
|
||||||
<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>
|
||||||
|
|
||||||
Python
|
|
||||||
======
|
|
||||||
|
|
||||||
You should ensure that the `python` command runs python 3, on your system.
|
|
||||||
Python2 is unused by lbmk or anything that it pulls down as modules.
|
|
||||||
|
|
||||||
If building on Debian/Ubuntu based systems, you can achieve that via:
|
|
||||||
|
|
||||||
sudo apt install python-is-python3
|
|
||||||
|
|
||||||
On Fedora, you can use the following
|
|
||||||
|
|
||||||
sudo dnf install python-unversioned-command
|
|
||||||
|
|
||||||
On most modern distros, Python 2 is no longer included and Python 3 will be
|
|
||||||
the only one available on the `python`.
|
|
||||||
|
|
||||||
How to compile Libreboot
|
How to compile Libreboot
|
||||||
========================
|
------------------------
|
||||||
|
|
||||||
Actual development/testing is always done using lbmk directly, and this
|
Actual development/testing is always done using lbmk directly, and this
|
||||||
includes when building from source. Here are some instructions to get you
|
includes when building from source. Here are some instructions to get you
|
||||||
started:
|
started:
|
||||||
|
|
||||||
Zero..st, check time/date
|
### Zero..st, check time/date
|
||||||
-------------------------
|
|
||||||
|
|
||||||
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,
|
||||||
because parts of the build process download from HTTPS servers and wrong
|
because parts of the build process download from HTTPS servers and wrong
|
||||||
time or date can cause connections to be dropped during negotiation.
|
time or date can cause connections to be dropped during negotiation.
|
||||||
|
|
||||||
First, install build dependencies
|
### First, install build dependencies
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
Libreboot includes a script that automatically installs build dependencies
|
Libreboot includes a script that automatically installs build dependencies
|
||||||
according to the selected linux distro.
|
according to the selected linux distro.
|
||||||
|
@ -143,12 +111,16 @@ or
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
./mk dependencies fedora38
|
./mk dependencies fedora41
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
./mk dependencies arch
|
./mk dependencies arch
|
||||||
|
|
||||||
|
NOTE: For versioned files, such as `fedora41`, typically other versions will
|
||||||
|
be available too, e.g. `fedora38`. Make sure to check `config/dependencies/`,
|
||||||
|
so that you know whether or not a file is available for your distro.
|
||||||
|
|
||||||
NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release,
|
NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release,
|
||||||
use the dedicated configuration file:
|
use the dedicated configuration file:
|
||||||
|
|
||||||
|
@ -160,8 +132,59 @@ Technically, any Linux distribution can be used to build libreboot.
|
||||||
However, you will have to write your own script for installing build
|
However, you will have to write your own script for installing build
|
||||||
dependencies.
|
dependencies.
|
||||||
|
|
||||||
Next, build ROM images
|
### Debian Trixie/Sid
|
||||||
----------------------
|
|
||||||
|
Debian Trixie, the testing release as of 3 January 2025, and Debian Sid,
|
||||||
|
provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and
|
||||||
|
installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other
|
||||||
|
toolchain components correspond to this version.
|
||||||
|
|
||||||
|
The GCC/GNAT versions need to match during build time, so Libreboot's build
|
||||||
|
system hacks the `PATH` environmental variable, setting up symlinks, matching
|
||||||
|
GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get
|
||||||
|
GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the
|
||||||
|
KGPE-D16 board failed to compile in this configuration. This PATH hack is only
|
||||||
|
done for compiling the coreboot crossgcc toolchain, and nothing else; after that,
|
||||||
|
coreboot's toolchain is used.
|
||||||
|
|
||||||
|
GNAT is used by coreboot, because some of the Intel graphics devices are
|
||||||
|
initialised natively, with code written in Ada spark (called `libgfxinit`).
|
||||||
|
|
||||||
|
When updating from Debian stable to Debian Trixie(testing) or Sid, you should
|
||||||
|
also check for orphaned packages, using `aptitude search '~o'`. Do this,
|
||||||
|
removing what was leftover from the old release, and make sure to re-run the
|
||||||
|
Debian dependencies script, but do it like this:
|
||||||
|
|
||||||
|
./mk dependencies debian --reinstall
|
||||||
|
|
||||||
|
For better reliability, you should, after running the dependencies script,
|
||||||
|
remove `gnat` and install `gnat-14` instead, which is available on this day
|
||||||
|
of 3 December 2025, but currently marked experimental. When you install
|
||||||
|
GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to
|
||||||
|
anything. Libreboot *still* accomodates this, detecting and matching the GCC
|
||||||
|
and GNAT versions, which would in this instance match version 14 between them,
|
||||||
|
so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x.
|
||||||
|
When we tested with this configuration, the KGPE-D16 images also compiled.
|
||||||
|
|
||||||
|
NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may
|
||||||
|
also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10.
|
||||||
|
|
||||||
|
### MIPS cross compiler
|
||||||
|
|
||||||
|
Libreboot has support for the Sony PlayStation (PS1/PSX), based on
|
||||||
|
the PCSX-Redux Open BIOS. If you're doing a full release build, and/or
|
||||||
|
specifically building the PSX BIOS, you need a MIPS cross compiler.
|
||||||
|
|
||||||
|
Arch-based systems have a mipsel cross compiler available from AUR, and most
|
||||||
|
Debian-based systems have a mipsel cross compiler in apt; for these, the normal
|
||||||
|
dependencies installation command will provide them. We know Void Linux and
|
||||||
|
Fedora don't have a MIPS compiler, for instance.
|
||||||
|
|
||||||
|
If your distro doesn't have the MIPS compiler available,
|
||||||
|
the [PlayStation](../install/playstation.md) page provides instructions for
|
||||||
|
manual installation; please do this in addition to the normal dependencies.
|
||||||
|
|
||||||
|
### Next, build ROM images
|
||||||
|
|
||||||
Libreboot MaKe (lbmk) automatically runs all necessary commands; for
|
Libreboot MaKe (lbmk) automatically runs all necessary commands; for
|
||||||
example, `./mk -b coreboot` will automatically build the required payloads
|
example, `./mk -b coreboot` will automatically build the required payloads
|
||||||
|
@ -180,8 +203,7 @@ or get a list of supported build targets:
|
||||||
|
|
||||||
./mk -b coreboot list
|
./mk -b coreboot list
|
||||||
|
|
||||||
Or maybe just build payloads?
|
### Or maybe just build payloads?
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
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:
|
||||||
|
|
||||||
|
@ -206,3 +228,24 @@ example want to modify a config, e.g.:
|
||||||
|
|
||||||
Or perhaps add a new board! The maintenance manual will teach you how the
|
Or perhaps add a new board! The maintenance manual will teach you how the
|
||||||
Libreboot build system (lbmk) works!
|
Libreboot build system (lbmk) works!
|
||||||
|
|
||||||
|
A note about documentation (and this page)
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
From Libreboot 20231021 onwards, *all* releases (including 20231021)
|
||||||
|
have `lbwww.git` (the website) and `lbwww-img.git` (images for the website)
|
||||||
|
archived in the *src* tar archive for that release; older releases were hit
|
||||||
|
or miss, from 20210522 to 20230625, as to whether they came with documentation;
|
||||||
|
releases older than 20210522 generally always came with documentation. Modern
|
||||||
|
Libreboot documentation is written in Markdown (pandoc variant)
|
||||||
|
|
||||||
|
If you're working with *release* documentation, you don't get the full HTML
|
||||||
|
files (such as the one you're viewing now, if you're reading *this* page in a
|
||||||
|
web browser), so either read the Markdown files directly, or compile them to
|
||||||
|
HTML using the [Untitled Static Site Generator](https://untitled.vimuser.org/)
|
||||||
|
(which is what the Libreboot project uses to generate HTML from those files).
|
||||||
|
|
||||||
|
NOTE: `av.libreboot.org` is hardcoded as the domain name where images are
|
||||||
|
pointed to, in `lbwww.git`, so you will need to replace these references in
|
||||||
|
your local version, unless you're happy to just continue using those.
|
||||||
|
|
||||||
|
|
1
site/docs/build/index.md.description
vendored
Normal file
1
site/docs/build/index.md.description
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Libreboot project documentation. Learn about Libreboot installation, how Libreboot is designed and how you can contribute to the project.
|
125
site/docs/build/index.uk.md
vendored
125
site/docs/build/index.uk.md
vendored
|
@ -3,22 +3,12 @@ title: Побудова з джерельного коду
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
WARNING: Flash from bin/, NOT elf/
|
**TODO: This page needs to be re-translated. Much of the newer sections are
|
||||||
==================================
|
still in English, and there may be some differences aside from translation,
|
||||||
|
versus the English version.**
|
||||||
TODO: translate this section into ukrainian language
|
|
||||||
|
|
||||||
**WARNING: When you build a ROM image from the Libreboot build system, please
|
|
||||||
ensure that you flash the appropriate ROM image from `bin/`, NOT `elf/`.
|
|
||||||
The `elf/` coreboot ROMs do not contain payloads. Libreboot's build system
|
|
||||||
builds no-payload ROMs under `elf/`, and payloads separately under `elf/`. Then
|
|
||||||
it copies from `elf/` and inserts payloads from `elf/`, and puts the final ROM
|
|
||||||
images (containing payloads) in `bin/`. This design is more efficient, and
|
|
||||||
permits many configurations without needless duplication of work. More info
|
|
||||||
is available in the [lbmk maintenance manual](../maintain/)**
|
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
============
|
------------
|
||||||
|
|
||||||
Система побудови libreboot, називається `lbmk`, скорочення від `LibreBoot MaKe`, і цей
|
Система побудови libreboot, називається `lbmk`, скорочення від `LibreBoot MaKe`, і цей
|
||||||
документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати
|
документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати
|
||||||
|
@ -35,31 +25,25 @@ libreboot з доступного джерельного коду.
|
||||||
Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни
|
Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни
|
||||||
до нього: [керівництво обслуговування libreboot](../maintain/)
|
до нього: [керівництво обслуговування libreboot](../maintain/)
|
||||||
|
|
||||||
Release status
|
### WARNING: eCryptfs file name limits
|
||||||
==============
|
|
||||||
|
|
||||||
Information about status will be reported during builds; if a board is
|
Do not run the build system on a eCryptfs file system, because it has
|
||||||
marked as stable, the build proceeds without further input. If the board is
|
very short file name limits and Libreboot's build system deals with very
|
||||||
marked anything other, a warning appears asking if you wish to proceed; to
|
long file names. We commonly get reports from this by Linux Mint users
|
||||||
disable these warnings, do this before building (not recommended):
|
who encrypt their home directory with eCryptfs; regular LUKS encryption will
|
||||||
|
do nicely.
|
||||||
|
|
||||||
export XBMK_STATUS=n
|
System requirements
|
||||||
|
-------------------
|
||||||
|
|
||||||
In Libreboot, we specify: `stable`, `unstable`, `broken` or `untested`.
|
You must ensure that you have the correct operating system, CPU, RAM, disk space
|
||||||
The "unstable" marking means that the board boots mostly/entirely reliably
|
and so on.
|
||||||
annd should be safe to use, but may have a few issues, but nothing which would,
|
|
||||||
for example, cause safety issues e.g. thermal, data reliability etc.
|
|
||||||
|
|
||||||
The `broken` setting means that a given board will likely brick if flashed.
|
System requirements are documented in
|
||||||
The `untested` setting means untested.
|
the [lbmk maintenance manual](../maintain/#system-requirements).
|
||||||
|
|
||||||
Release status is always set with regards to the current lbmk revision, on
|
|
||||||
the theory that the current revision is being used to generate a full release.
|
|
||||||
The setting is decided on a board-by-board basis, taking its various quirks
|
|
||||||
and idiosynrasies into account.
|
|
||||||
|
|
||||||
Multi-threaded builds
|
Multi-threaded builds
|
||||||
=====================
|
---------------------
|
||||||
|
|
||||||
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
|
||||||
it by doing e.g.
|
it by doing e.g.
|
||||||
|
@ -69,7 +53,7 @@ it by doing e.g.
|
||||||
This would make lbmk run on 4 threads.
|
This would make lbmk run on 4 threads.
|
||||||
|
|
||||||
Environmental variables
|
Environmental variables
|
||||||
=======================
|
-----------------------
|
||||||
|
|
||||||
Please read about environmental variables in [the build
|
Please read about environmental variables in [the build
|
||||||
instructions](../maintain/), before running lbmk. You should set
|
instructions](../maintain/), before running lbmk. You should set
|
||||||
|
@ -77,7 +61,7 @@ your variables accordingly, though you do not technically need to; some
|
||||||
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).
|
||||||
|
|
||||||
Environmental variables
|
Environmental variables
|
||||||
=======================
|
-----------------------
|
||||||
|
|
||||||
Please read about environmental variables in [the build
|
Please read about environmental variables in [the build
|
||||||
instructions](../maintain/), before running lbmk. You should set
|
instructions](../maintain/), before running lbmk. You should set
|
||||||
|
@ -85,7 +69,7 @@ your variables accordingly, though you do not technically need to; some
|
||||||
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).
|
||||||
|
|
||||||
Git
|
Git
|
||||||
===
|
---
|
||||||
|
|
||||||
Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки
|
Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки
|
||||||
знизу, *навіть, якщо ви використовуєте архів випуску*.
|
знизу, *навіть, якщо ви використовуєте архів випуску*.
|
||||||
|
@ -104,21 +88,16 @@ Git
|
||||||
Ви також можете захотіти прослідувати більшій кількості етапів тут:
|
Ви також можете захотіти прослідувати більшій кількості етапів тут:
|
||||||
<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>
|
||||||
|
|
||||||
Python
|
Build
|
||||||
======
|
-----
|
||||||
|
|
||||||
Python2 не використовується lbmk або будь-чим, що завантажується в якості модулів. Ви
|
### Zero..st, check time/date
|
||||||
маєте переконатись, що команда `python` виконує python 3 на вашій системі.
|
|
||||||
|
|
||||||
Zero..st, check time/date
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
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,
|
||||||
because parts of the build process download from HTTPS servers and wrong
|
because parts of the build process download from HTTPS servers and wrong
|
||||||
time or date can cause connections to be dropped during negotiation.
|
time or date can cause connections to be dropped during negotiation.
|
||||||
|
|
||||||
Побудова з джерельного коду
|
### Побудова з джерельного коду
|
||||||
============================
|
|
||||||
|
|
||||||
Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також
|
Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також
|
||||||
стосується збирання з джерельного коду. Ось кілька інструкцій, щоб
|
стосується збирання з джерельного коду. Ось кілька інструкцій, щоб
|
||||||
|
@ -143,9 +122,59 @@ Check: `config/dependencies/` for list of supported distros.
|
||||||
Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей
|
Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей
|
||||||
побудови.
|
побудови.
|
||||||
|
|
||||||
libreboot Make (lbmk) автоматично виконує всі необхідні команди; наприклад,
|
### Debian Trixie/Sid
|
||||||
`./build roms` автоматично виконає `./build grub`,
|
|
||||||
якщо затребувані утиліти для GRUB не збудовано, для виготовлення корисних навантажень.
|
Debian Trixie, the testing release as of 3 January 2025, and Debian Sid,
|
||||||
|
provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and
|
||||||
|
installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other
|
||||||
|
toolchain components correspond to this version.
|
||||||
|
|
||||||
|
The GCC/GNAT versions need to match during build time, so Libreboot's build
|
||||||
|
system hacks the `PATH` environmental variable, setting up symlinks, matching
|
||||||
|
GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get
|
||||||
|
GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the
|
||||||
|
KGPE-D16 board failed to compile in this configuration. This PATH hack is only
|
||||||
|
done for compiling the coreboot crossgcc toolchain, and nothing else; after that,
|
||||||
|
coreboot's toolchain is used.
|
||||||
|
|
||||||
|
GNAT is used by coreboot, because some of the Intel graphics devices are
|
||||||
|
initialised natively, with code written in Ada spark (called `libgfxinit`).
|
||||||
|
|
||||||
|
When updating from Debian stable to Debian Trixie(testing) or Sid, you should
|
||||||
|
also check for orphaned packages, using `aptitude search '~o'`. Do this,
|
||||||
|
removing what was leftover from the old release, and make sure to re-run the
|
||||||
|
Debian dependencies script, but do it like this:
|
||||||
|
|
||||||
|
./mk dependencies debian --reinstall
|
||||||
|
|
||||||
|
For better reliability, you should, after running the dependencies script,
|
||||||
|
remove `gnat` and install `gnat-14` instead, which is available on this day
|
||||||
|
of 3 December 2025, but currently marked experimental. When you install
|
||||||
|
GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to
|
||||||
|
anything. Libreboot *still* accomodates this, detecting and matching the GCC
|
||||||
|
and GNAT versions, which would in this instance match version 14 between them,
|
||||||
|
so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x.
|
||||||
|
When we tested with this configuration, the KGPE-D16 images also compiled.
|
||||||
|
|
||||||
|
NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may
|
||||||
|
also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10.
|
||||||
|
|
||||||
|
### MIPS cross compiler
|
||||||
|
|
||||||
|
Libreboot has support for the Sony PlayStation (PS1/PSX), based on
|
||||||
|
the PCSX-Redux Open BIOS. If you're doing a full release build, and/or
|
||||||
|
specifically building the PSX BIOS, you need a MIPS cross compiler.
|
||||||
|
|
||||||
|
Arch-based systems have a mipsel cross compiler available from AUR, and most
|
||||||
|
Debian-based systems have a mipsel cross compiler in apt; for these, the normal
|
||||||
|
dependencies installation command will provide them. We know Void Linux and
|
||||||
|
Fedora don't have a MIPS compiler, for instance.
|
||||||
|
|
||||||
|
If your distro doesn't have the MIPS compiler available,
|
||||||
|
the [PlayStation](../install/playstation.md) page provides instructions for
|
||||||
|
manual installation; please do this in addition to the normal dependencies.
|
||||||
|
|
||||||
|
### Next, build ROM images
|
||||||
|
|
||||||
В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати
|
В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати
|
||||||
лише одну команду, з свіжого Git clone, для побудови образів ROM:
|
лише одну команду, з свіжого Git clone, для побудови образів ROM:
|
||||||
|
|
|
@ -1,24 +1,26 @@
|
||||||
---
|
---
|
||||||
title: GRUB payload
|
title: Libreboot GRUB payload documentation
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
GRUB already has excellent
|
GRUB already has excellent
|
||||||
documentation, but there are aspects of libreboot that deserve special
|
documentation, but there are aspects of libreboot that deserve special
|
||||||
treatment. libreboot provides the option to boot GRUB directly, running on
|
treatment. Libreboot provides the option to boot GRUB directly, running on
|
||||||
bare metal (instead of using BIOS or UEFI services).
|
bare metal (instead of using BIOS or UEFI services).
|
||||||
|
|
||||||
|
Boot Linux from GRUB
|
||||||
|
--------------------
|
||||||
|
|
||||||
[The Linux section](../linux/) also has libreboot-specific guides for
|
[The Linux section](../linux/) also has libreboot-specific guides for
|
||||||
dealing with Linux distributions when using GRUB directly, in this
|
dealing with Linux distributions when using GRUB directly, in this
|
||||||
setup. [A similar section exists for BSD operating systems](../bsd/)
|
setup. [A similar section exists for BSD operating systems](../bsd/)
|
||||||
|
|
||||||
GRUB keyboard layouts
|
GRUB keyboard layouts
|
||||||
=====================
|
---------------------
|
||||||
|
|
||||||
It is possible to use *any* keymap in GRUB.
|
It is possible to use *any* keymap in GRUB.
|
||||||
|
|
||||||
Custom keyboard layout
|
### Custom keyboard layout
|
||||||
----------------------
|
|
||||||
|
|
||||||
Keymaps are stored in `config/grub/keymap/`
|
Keymaps are stored in `config/grub/keymap/`
|
||||||
|
|
||||||
|
|
1
site/docs/grub/index.md.description
Normal file
1
site/docs/grub/index.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Documentation pertaining to the GNU boot loader named GRUB, as it applies to Libreboot. GRUB is provided as a coreboot payload, on many Libreboot configurations.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: Documentation
|
title: Installing Libreboot Free/Opensource BIOS/UEFI firmware
|
||||||
...
|
...
|
||||||
|
|
||||||
Always check [libreboot.org](https://libreboot.org/) for the latest updates to
|
Always check [libreboot.org](https://libreboot.org/) for the latest updates to
|
||||||
|
@ -9,7 +9,7 @@ the [main news section](../news/).
|
||||||
[Answers to Frequently Asked Questions about libreboot](../faq.md).
|
[Answers to Frequently Asked Questions about libreboot](../faq.md).
|
||||||
|
|
||||||
Need help?
|
Need help?
|
||||||
==========
|
----------
|
||||||
|
|
||||||
Help is available on [Libreboot IRC](../contact.md) and other channels.
|
Help is available on [Libreboot IRC](../contact.md) and other channels.
|
||||||
|
|
||||||
|
@ -22,18 +22,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
||||||
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
|
|
||||||
Installing libreboot
|
Installing libreboot
|
||||||
====================
|
--------------------
|
||||||
|
|
||||||
- [How to install libreboot](install/)
|
- [How to install libreboot](install/)
|
||||||
|
|
||||||
Documentation related to operating systems
|
Installing operating systems
|
||||||
============================
|
----------------------------
|
||||||
|
|
||||||
- [How to install BSD on an x86 host system](bsd/)
|
- [Install BSD operating systems on Libreboot](bsd/)
|
||||||
- [Linux Guides](linux/)
|
- [Install Linux on a Libreboot system](linux/)
|
||||||
|
|
||||||
Information for developers
|
Information for developers
|
||||||
==========================
|
--------------------------
|
||||||
|
|
||||||
- [How to compile the libreboot source code](build/)
|
- [How to compile the libreboot source code](build/)
|
||||||
- [Build system developer documentation](maintain/)
|
- [Build system developer documentation](maintain/)
|
||||||
|
@ -41,8 +41,9 @@ Information for developers
|
||||||
- [U-Boot payload](uboot/)
|
- [U-Boot payload](uboot/)
|
||||||
|
|
||||||
Other information
|
Other information
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
|
- [Libreboot Static Site Generator](sitegen/)
|
||||||
- [Miscellaneous](misc/)
|
- [Miscellaneous](misc/)
|
||||||
- [List of codenames](misc/codenames.md)
|
- [List of codenames](misc/codenames.md)
|
||||||
|
|
||||||
|
|
1
site/docs/index.md.description
Normal file
1
site/docs/index.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Documentation pertaining to Libreboot installation. Learn how to install Libreboot, and use coreboot payloads such as the GNU boot loader GRUB.
|
42
site/docs/index.tr.md
Normal file
42
site/docs/index.tr.md
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
---
|
||||||
|
title: Libreboot Özgür/Açık Kaynak BIOS/UEFI Yazılımını Yükleme
|
||||||
|
...
|
||||||
|
|
||||||
|
Libreboot ile ilgili en son güncellemeler için her zaman [libreboot.org](https://libreboot.org/) adresini kontrol edin. Haberler ve sürüm duyuruları [ana haberler bölümünde](../news/) bulunabilir.
|
||||||
|
|
||||||
|
[Libreboot hakkında Sıkça Sorulan Sorular](../faq.md).
|
||||||
|
|
||||||
|
Yardıma mı ihtiyacınız var?
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
[Libreboot IRC](../contact.md) ve diğer kanallarda yardım alabilirsiniz.
|
||||||
|
|
||||||
|
Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot ön yüklü](https://minifree.org/) sistemler satmaktadır ve ayrıca cihazınızı göndererek Libreboot kurulumu yaptırabileceğiniz bir [Libreboot ön yükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır.
|
||||||
|
|
||||||
|
Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'nin sahibi ve işletmecisidir; satışlar Libreboot projesi için finansman sağlamaktadır.
|
||||||
|
|
||||||
|
Libreboot'u yükleme
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- [Libreboot nasıl yüklenir](install/)
|
||||||
|
|
||||||
|
İşletim sistemlerini yükleme
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
- [Libreboot üzerine BSD işletim sistemleri kurulumu](bsd/)
|
||||||
|
- [Libreboot sistemine Linux kurulumu](linux/)
|
||||||
|
|
||||||
|
Geliştiriciler için bilgiler
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
- [Libreboot kaynak kodunu nasıl derleyebilirsiniz](build/)
|
||||||
|
- [Yapı sistemi geliştirici dokümantasyonu](maintain/)
|
||||||
|
- [GRUB yükleyici](grub/)
|
||||||
|
- [U-Boot yükleyici](uboot/)
|
||||||
|
|
||||||
|
Diğer bilgiler
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- [Libreboot Statik Site Oluşturucu](sitegen/)
|
||||||
|
- [Çeşitli](misc/)
|
||||||
|
- [Kod adları listesi](misc/codenames.md)
|
|
@ -9,7 +9,7 @@ libreboot. Новини, включаючи оголошення про випу
|
||||||
[Відповіді на поширені запитання про libreboot](../faq.md).
|
[Відповіді на поширені запитання про libreboot](../faq.md).
|
||||||
|
|
||||||
Need help?
|
Need help?
|
||||||
==========
|
----------
|
||||||
|
|
||||||
Help is available on [Libreboot IRC](../contact.md) and other channels.
|
Help is available on [Libreboot IRC](../contact.md) and other channels.
|
||||||
|
|
||||||
|
@ -22,18 +22,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
||||||
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
|
|
||||||
Встановлення libreboot
|
Встановлення libreboot
|
||||||
====================
|
----------------------
|
||||||
|
|
||||||
- [Як встановити libreboot](install/)
|
- [Як встановити libreboot](install/)
|
||||||
|
|
||||||
Документація, яка має відношення до операційних систем
|
Документація, яка має відношення до операційних систем
|
||||||
============================
|
-----------------------------------------------------
|
||||||
|
|
||||||
- [Як встановити BSD на x86 хостову систему](bsd/)
|
- [Як встановити BSD на x86 хостову систему](bsd/)
|
||||||
- [Керівництва Linux](linux/)
|
- [Керівництва Linux](linux/)
|
||||||
|
|
||||||
Інформація для розробників
|
Інформація для розробників
|
||||||
==========================
|
--------------------------
|
||||||
|
|
||||||
- [Як зібрати джерельний код libreboot](build/)
|
- [Як зібрати джерельний код libreboot](build/)
|
||||||
- [Документація розробника системи побудови](maintain/)
|
- [Документація розробника системи побудови](maintain/)
|
||||||
|
@ -41,8 +41,9 @@ operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
- [Корисне навантаження U-Boot](uboot/)
|
- [Корисне навантаження U-Boot](uboot/)
|
||||||
|
|
||||||
Інша інформація
|
Інша інформація
|
||||||
=================
|
---------------
|
||||||
|
|
||||||
|
- [Libreboot Static Site Generator](sitegen/)
|
||||||
- [Різне](misc/)
|
- [Різне](misc/)
|
||||||
- [Список кодових назв](misc/codenames.md)
|
- [Список кодових назв](misc/codenames.md)
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ libreboot 的最新更新,可以在 [libreboot.org](https://libreboot.org) 上
|
||||||
[libreboot 常见问题解答](../faq.md).
|
[libreboot 常见问题解答](../faq.md).
|
||||||
|
|
||||||
Need help?
|
Need help?
|
||||||
==========
|
----------
|
||||||
|
|
||||||
Help is available on [Libreboot IRC](../contact.md) and other channels.
|
Help is available on [Libreboot IRC](../contact.md) and other channels.
|
||||||
|
|
||||||
|
@ -20,18 +20,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
||||||
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
|
|
||||||
安装 libreboot
|
安装 libreboot
|
||||||
====================
|
--------------
|
||||||
|
|
||||||
- [如何安装 libreboot](install/)
|
- [如何安装 libreboot](install/)
|
||||||
|
|
||||||
操作系统相关文档
|
操作系统相关文档
|
||||||
============================
|
----------------
|
||||||
|
|
||||||
- [如何在 x86 机器上安装 BSD](bsd/)
|
- [如何在 x86 机器上安装 BSD](bsd/)
|
||||||
- [Linux 指南](linux/)
|
- [Linux 指南](linux/)
|
||||||
|
|
||||||
开发者信息
|
开发者信息
|
||||||
==========================
|
----------
|
||||||
|
|
||||||
- [如何编译 libreboot 源代码](build/)
|
- [如何编译 libreboot 源代码](build/)
|
||||||
- [构建系统开发者文档](maintain/)
|
- [构建系统开发者文档](maintain/)
|
||||||
|
@ -39,8 +39,9 @@ operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
- [U-Boot payload](uboot/)
|
- [U-Boot payload](uboot/)
|
||||||
|
|
||||||
其它信息
|
其它信息
|
||||||
=================
|
--------
|
||||||
|
|
||||||
|
- [Libreboot Static Site Generator](sitegen/)
|
||||||
- [杂项](misc/)
|
- [杂项](misc/)
|
||||||
- [代号列表](misc/codenames.md)
|
- [代号列表](misc/codenames.md)
|
||||||
|
|
||||||
|
|
1
site/docs/index.zh-cn.md.description
Normal file
1
site/docs/index.zh-cn.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Libreboot 项目提供基于 coreboot 的自由且开源的引导固件. GNU GRUB, SeaBIOS, U-Boot.
|
1
site/docs/install/acer_g43t-am3.md.description
Normal file
1
site/docs/install/acer_g43t-am3.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Acer G43T-AM3 motherboard.
|
|
@ -1,22 +1,29 @@
|
||||||
---
|
---
|
||||||
title: ASUS Chromebook C201 installation guide
|
title: Install Libreboot ASUS Chromebook C201
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
ASUS Chromebook C201 motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
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
|
||||||
of writing, 19 February 2023. It is as yet unsolved.
|
of writing, 19 February 2023. It is as yet unsolved.
|
||||||
|
|
||||||
See: <https://notabug.org/libreboot/lbmk/issues/136>
|
See: <https://notabug.org/libreboot/lbmk/issues/136>
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
===========
|
------------
|
||||||
|
|
||||||
This page contains information about assembly and disassembly, for flashing
|
This page contains information about assembly and disassembly, for flashing
|
||||||
the ASUS Chromebook C201 externally. It will also link to internal flashing
|
the ASUS Chromebook C201 externally. It will also link to internal flashing
|
||||||
instructions, and information about U-Boot.
|
instructions, and information about U-Boot.
|
||||||
|
|
||||||
Flashrom
|
### Flashrom
|
||||||
--------
|
|
||||||
|
|
||||||
A special fork of flashrom, maintained by Google, is required for flashing.
|
A special fork of flashrom, maintained by Google, is required for flashing.
|
||||||
More information about this is present in the generic [chromebook flashing
|
More information about this is present in the generic [chromebook flashing
|
||||||
|
@ -26,8 +33,7 @@ NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog
|
||||||
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
|
||||||
is another fork of flashrom, and you should use that on chromebooks.
|
is another fork of flashrom, and you should use that on chromebooks.
|
||||||
|
|
||||||
Depthcharge payload (obsolete)
|
### Depthcharge payload (obsolete)
|
||||||
------------------------------
|
|
||||||
|
|
||||||
This board was also supported in Libreboot 20160907, with the Depthcharge
|
This board was also supported in Libreboot 20160907, with the Depthcharge
|
||||||
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
|
||||||
|
@ -40,7 +46,7 @@ instructions pertaining to Depthcharge:
|
||||||
* <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/hardware/c201.md>
|
* <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/hardware/c201.md>
|
||||||
|
|
||||||
U-boot payload
|
U-boot payload
|
||||||
==============
|
--------------
|
||||||
|
|
||||||
U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi
|
U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi
|
||||||
Yasak (`alpernebbi` on Libreboot IRC).
|
Yasak (`alpernebbi` on Libreboot IRC).
|
||||||
|
@ -50,7 +56,7 @@ Read the section pertaining to U-boot payload:
|
||||||
[u-boot payload documentation for Libreboot](../uboot/)
|
[u-boot payload documentation for Libreboot](../uboot/)
|
||||||
|
|
||||||
Internal flashing
|
Internal flashing
|
||||||
=================
|
------------------
|
||||||
|
|
||||||
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*.
|
||||||
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
|
||||||
|
@ -62,8 +68,7 @@ the information has moved.
|
||||||
|
|
||||||
See: [chromebook flashing instructions](chromebooks.md)
|
See: [chromebook flashing instructions](chromebooks.md)
|
||||||
|
|
||||||
Write-protect screw
|
### Write-protect screw
|
||||||
-------------------
|
|
||||||
|
|
||||||
The chromebook flashing instructions, linked above, refer to a *screw* that
|
The chromebook flashing instructions, linked above, refer to a *screw* that
|
||||||
can be turned, to disable flash protection. This is necessary, for internally
|
can be turned, to disable flash protection. This is necessary, for internally
|
||||||
|
@ -78,15 +83,15 @@ below. The write protect screw is located next to the SPI flash chip, circled
|
||||||
in red in the picture below. It has to be removed. Refer to the following
|
in red in the picture below. It has to be removed. Refer to the following
|
||||||
photos:
|
photos:
|
||||||
|
|
||||||
[](https://av.libreboot.org/c201/screws.jpg)
|

|
||||||
|
|
||||||
[](https://av.libreboot.org/c201/wp-screw.jpg)
|

|
||||||
|
|
||||||
The write protect screw can be put back in place later, when the device
|
The write protect screw can be put back in place later, when the device
|
||||||
is known to be in a working state.
|
is known to be in a working state.
|
||||||
|
|
||||||
External flashing
|
External flashing
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
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
|
||||||
it externally. Refer to [external flash instructions](spi.md).
|
it externally. Refer to [external flash instructions](spi.md).
|
||||||
|
|
1
site/docs/install/c201.md.description
Normal file
1
site/docs/install/c201.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS Chromebook C201.
|
|
@ -1,8 +1,19 @@
|
||||||
---
|
---
|
||||||
title: Chromebook flashing instructions
|
title: Install Libreboot on a Chromebook
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on various ARM64-based
|
||||||
|
Chromebook laptops. Libreboot replaces proprietary BIOS/UEFI firmware, though
|
||||||
|
it should be noted that Google already ships coreboot and their own payload
|
||||||
|
called Depthcharge, which is all free software; the difference with Libreboot
|
||||||
|
is that it replaces Depthcharge with *U-Boot* (as a coreboot payload), which
|
||||||
|
provides a lightweight UEFI boot implementation that can boot regular Linux and
|
||||||
|
BSD systems more easily than Depthcharge.
|
||||||
|
|
||||||
NOTE: daisy, peach and veyron boards were temporarily removed from
|
NOTE: daisy, peach and veyron boards were temporarily removed from
|
||||||
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
|
||||||
are written on the hardware compatibility page. For now, Libreboot only
|
are written on the hardware compatibility page. For now, Libreboot only
|
||||||
|
@ -13,17 +24,20 @@ custom firmware on ChromeOS devices. This guide usually refers to all of
|
||||||
them as "Chromebook"s since it's the most common form factor.
|
them as "Chromebook"s since it's the most common form factor.
|
||||||
|
|
||||||
Flashrom
|
Flashrom
|
||||||
========
|
--------
|
||||||
|
|
||||||
A special fork of flashrom, maintained by Google, is required for flashing
|
A special fork of flashrom, maintained by Google, is required for flashing
|
||||||
these Chromebook devices. See:
|
these Chromebook devices. See:
|
||||||
|
|
||||||
<https://chromium.googlesource.com/chromiumos/third_party/flashrom/>
|
<https://chromium.googlesource.com/chromiumos/third_party/flashrom/>
|
||||||
|
|
||||||
You must then compile this from source, and run it.
|
This document assumes you’ll be using ChromeOS to do the internal flashing.
|
||||||
|
ChromeOS already comes with this special fork of flashrom pre-installed. But if
|
||||||
|
you are using another OS or an external flasher, you will need to compile and
|
||||||
|
use the aforementioned flashrom fork.
|
||||||
|
|
||||||
Enable ChromeOS "Developer Mode"
|
Enable ChromeOS "Developer Mode"
|
||||||
================================
|
--------------------------------
|
||||||
|
|
||||||
Chromebooks are locked-down by default to only run ChromeOS. Most things
|
Chromebooks are locked-down by default to only run ChromeOS. Most things
|
||||||
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
|
||||||
|
@ -37,6 +51,26 @@ screen. Waiting for 30 seconds or pressing `Ctrl + D` on this screen will
|
||||||
proceed to boot into ChromeOS, which then erases all data on the device
|
proceed to boot into ChromeOS, which then erases all data on the device
|
||||||
and reboots again into a clean ChromeOS installation.
|
and reboots again into a clean ChromeOS installation.
|
||||||
|
|
||||||
|
Before following steps to configure your device as new in the first screen, you
|
||||||
|
should be able to see a “Enable debugging features” link that you should click
|
||||||
|
on. A confirmation dialog displays. Click Proceed. The system reboots, use
|
||||||
|
`Ctrl + D` again and displays a dialog with password prompts. Set the new root
|
||||||
|
password. Click Enable. The screen displays messages indicating success or
|
||||||
|
failure. Click OK. You'll see the first screen again. Follow the remaining
|
||||||
|
prompts to configure your Chrome device.
|
||||||
|
|
||||||
|
Once you are finished configuring your device, you’ll be giving the option to
|
||||||
|
sign in; here you may use the guest account option in the bottom if you like.
|
||||||
|
|
||||||
|
Now in the desktop we’ll set a password to use “sudo”: Use
|
||||||
|
`Ctrl+Alt+Forward Arrow` (the one two key to the right of esc key, representing
|
||||||
|
F2) to open a “Developer console” (similar to opening a tty) where the first
|
||||||
|
line ends with “localhost login”. Enter root and the password you just set for
|
||||||
|
it. Then you must run `chromeos-setdevpassword` and set another password, which
|
||||||
|
is the one that is actually used when running “sudo”. Now use
|
||||||
|
`Ctrl+Alt+Backward Arrow` (the key next to the right of esc, representing F1)
|
||||||
|
to get back to the desktop.
|
||||||
|
|
||||||
With Developer Mode enabled, you can launch a terminal emulator inside
|
With Developer Mode enabled, you can launch a terminal emulator inside
|
||||||
ChromeOS by pressing the `Ctrl + Alt + T` key combination. Run `shell`
|
ChromeOS by pressing the `Ctrl + Alt + T` key combination. Run `shell`
|
||||||
inside the resulting `crosh` prompt to actually get to a `bash` session
|
inside the resulting `crosh` prompt to actually get to a `bash` session
|
||||||
|
@ -44,7 +78,7 @@ where you can run programs. Most of the root file system is read-only,
|
||||||
except for `/usr/local` and any mounted drives under `/media/removable`.
|
except for `/usr/local` and any mounted drives under `/media/removable`.
|
||||||
|
|
||||||
Identify your device
|
Identify your device
|
||||||
====================
|
--------------------
|
||||||
|
|
||||||
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
|
||||||
many compatible devices can share a single codename. Libreboot ROM
|
many compatible devices can share a single codename. Libreboot ROM
|
||||||
|
@ -56,7 +90,7 @@ device's. There are a number of ways to find it, some are:
|
||||||
- Run `crossystem hwid` or `crossystem fwid` in a terminal
|
- Run `crossystem hwid` or `crossystem fwid` in a terminal
|
||||||
|
|
||||||
Back up stock firmware
|
Back up stock firmware
|
||||||
======================
|
----------------------
|
||||||
|
|
||||||
The stock firmware on your device comes with some irreplaceable data
|
The stock firmware on your device comes with some irreplaceable data
|
||||||
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
|
||||||
|
@ -78,7 +112,7 @@ If you can already boot a conventional Linux distro on your Chromebook,
|
||||||
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.
|
||||||
|
|
||||||
Check external flashability
|
Check external flashability
|
||||||
===========================
|
---------------------------
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -93,7 +127,7 @@ mechanism that lets you flash externally using a special USB debugging
|
||||||
cable. However, most boards that Libreboot supports do not have this.
|
cable. However, most boards that Libreboot supports do not have this.
|
||||||
|
|
||||||
Disable write protection
|
Disable write protection
|
||||||
========================
|
------------------------
|
||||||
|
|
||||||
Chromebooks have the SPI flash chip partially write-protected by
|
Chromebooks have the SPI flash chip partially write-protected by
|
||||||
default, but thankfully this protection can be disabled by the device
|
default, but thankfully this protection can be disabled by the device
|
||||||
|
@ -108,6 +142,12 @@ that asserts the WP pin on the flash chip. The screw can be identified
|
||||||
by the fact that it bridges electrical contacts, but finding and
|
by the fact that it bridges electrical contacts, but finding and
|
||||||
removing it might require you to disassemble most of the board.
|
removing it might require you to disassemble most of the board.
|
||||||
|
|
||||||
|
In my case as an example, my kevin board had the protection screw
|
||||||
|
[here](https://av.libreboot.org/board/kevin/write_protection_screw.jpg). It was
|
||||||
|
tricky for me to find it since it was one of the screws that seemed to hold
|
||||||
|
the heat sink in place, which I thought made it an unlikely candidate. I
|
||||||
|
recommend you leave it unscrew never the less after flashing.
|
||||||
|
|
||||||
Newer boards have a root-of-trust chip enforcing write-protection. The
|
Newer boards have a root-of-trust chip enforcing write-protection. The
|
||||||
[Closed Case Debugging](https://chromium.googlesource.com/chromiumos/platform/ec/+/cr50_stab/docs/case_closed_debugging_gsc.md)
|
[Closed Case Debugging](https://chromium.googlesource.com/chromiumos/platform/ec/+/cr50_stab/docs/case_closed_debugging_gsc.md)
|
||||||
mechanism should be used to disable hardware write-protection. Opening
|
mechanism should be used to disable hardware write-protection. Opening
|
||||||
|
@ -128,7 +168,7 @@ compile and use that flashrom fork to disable write-protection. There is
|
||||||
no `lbmk` support yet for automatically building it.
|
no `lbmk` support yet for automatically building it.
|
||||||
|
|
||||||
Prepare the ROM image
|
Prepare the ROM image
|
||||||
=====================
|
---------------------
|
||||||
|
|
||||||
Libreboot ROM image layouts are currently incompatible with the regions
|
Libreboot ROM image layouts are currently incompatible with the regions
|
||||||
that should be carried over from the stock firmware. However, the
|
that should be carried over from the stock firmware. However, the
|
||||||
|
@ -143,11 +183,7 @@ keep backups of the original firmware.
|
||||||
TODO: Instructions to preserve vital data when FMAPs are compatible.
|
TODO: Instructions to preserve vital data when FMAPs are compatible.
|
||||||
|
|
||||||
Flash the ROM image
|
Flash the ROM image
|
||||||
===================
|
-------------------
|
||||||
|
|
||||||
WARNING: Although none are supported yet, make sure not to flash ROM
|
|
||||||
images on x86 Chromebooks without injecting non-redistributable code
|
|
||||||
first (like Intel ME firmware). This is not yet documented here.
|
|
||||||
|
|
||||||
You can flash the ROM image both internally and externally. For the
|
You can flash the ROM image both internally and externally. For the
|
||||||
latter, see the [external flashing guide](spi.md) and the ChromiumOS
|
latter, see the [external flashing guide](spi.md) and the ChromiumOS
|
||||||
|
@ -163,7 +199,7 @@ If you can already boot a conventional Linux distro on your Chromebook,
|
||||||
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.
|
||||||
|
|
||||||
Install an operating system (experimental research)
|
Install an operating system (experimental research)
|
||||||
===========================
|
------------------------------------------------
|
||||||
|
|
||||||
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
|
||||||
three general methods for installing that vary depending on the distribution:
|
three general methods for installing that vary depending on the distribution:
|
||||||
|
@ -173,25 +209,23 @@ three general methods for installing that vary depending on the distribution:
|
||||||
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
|
||||||
in /boot/extlinux/extlinux.conf
|
in /boot/extlinux/extlinux.conf
|
||||||
|
|
||||||
Successful installations:
|
### Successful installations:
|
||||||
-------------------------
|
|
||||||
|
|
||||||
* [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md).
|
* [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md).
|
||||||
* [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md).
|
* [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md).
|
||||||
|
* [Trisquel Aramo on Samsung Chromebook Plus XE513C24](../uboot/uboot-trisquel-aramo.md).
|
||||||
* [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201).
|
* [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201).
|
||||||
|
|
||||||
Unsuccessful installations:
|
### Unsuccessful installations:
|
||||||
---------------------------
|
|
||||||
|
|
||||||
* [OpenBSD on Samsung Chromebook Plus XE513C24](../uboot/uboot-openbsd.md).
|
* [OpenBSD on Samsung Chromebook Plus XE513C24](../uboot/uboot-openbsd.md).
|
||||||
|
|
||||||
Other promising ARM-compatible distros:
|
### Other promising ARM-compatible distros:
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
* [Armbian](https://www.armbian.com/uefi-arm64/).
|
* [Armbian](https://www.armbian.com/uefi-arm64/).
|
||||||
|
|
||||||
See also
|
See also
|
||||||
========
|
--------
|
||||||
|
|
||||||
* [ChromiumOS Documentation](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/)
|
* [ChromiumOS Documentation](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/)
|
||||||
* [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)
|
||||||
|
|
1
site/docs/install/chromebooks.md.description
Normal file
1
site/docs/install/chromebooks.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various ARM64-based Chromebook laptops.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: Intel D945GCLF desktop board
|
title: Install Libreboot on Intel D945GCLF and/or D945GCLF2
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -18,18 +18,18 @@ x-toc-enable: true
|
||||||
| **Graphics** | ? |
|
| **Graphics** | ? |
|
||||||
| **Display** | None. |
|
| **Display** | None. |
|
||||||
| **Memory** | Up to 2GB |
|
| **Memory** | Up to 2GB |
|
||||||
| **Architecture** | x86_64 |
|
| **Architecture** | x86\_64 |
|
||||||
| **Original boot firmware** | Intel BIOS |
|
| **Original boot firmware** | Intel BIOS |
|
||||||
| **Intel ME/AMD PSP** | Not present. |
|
| **Intel ME/AMD PSP** | Not present. |
|
||||||
| **Flash chip** | SOIC-8 512KiB |
|
| **Flash chip** | SOIC-8 512KiB |
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | | Notes |
|
| ***Features*** | | Notes |
|
||||||
|
@ -47,13 +47,22 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Doesn't work |
|
| **SeaBIOS with GRUB** | Doesn't work |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Intel D945GCLF and/or D945GCLF2 desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
If you just want flashing instructions, go to
|
If you just want flashing instructions, go to
|
||||||
[../install/d945gclf.md](../install/d945gclf.md)
|
[../install/d945gclf.md](../install/d945gclf.md)
|
||||||
|
|
||||||
D945GCLF2D also reported working by a user.
|
D945GCLF2D also reported working by a user.
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
============
|
------------
|
||||||
|
|
||||||
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,
|
||||||
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
|
||||||
|
@ -76,8 +85,7 @@ hyperthreaded). Since the board is almost identical (and coreboot code
|
||||||
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
|
||||||
that it should also work but this is untested.
|
that it should also work but this is untested.
|
||||||
|
|
||||||
Remarks about vendor bios:
|
### Remarks about vendor bios:
|
||||||
--------------------------
|
|
||||||
|
|
||||||
- Without coreboot/libreboot this board is completely useless, since the
|
- Without coreboot/libreboot this board is completely useless, since the
|
||||||
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
|
||||||
|
@ -96,15 +104,14 @@ And SPI SOIC8 flash chip\
|
||||||
{width="50%" height="50%"}
|
{width="50%" height="50%"}
|
||||||
|
|
||||||
Flashing instructions {#clip}
|
Flashing instructions {#clip}
|
||||||
=====================
|
-----------------------------
|
||||||
|
|
||||||
Refer to [spi.md](spi.md) for how to re-flash externally.
|
Refer to [spi.md](spi.md) for how to re-flash externally.
|
||||||
|
|
||||||
Here is an image of the flash chip:\
|
Here is an image of the flash chip:\
|
||||||

|

|
||||||
|
|
||||||
How to replace thermal paste and fan
|
### How to replace thermal paste and fan
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
|
1
site/docs/install/d945gclf.md.description
Normal file
1
site/docs/install/d945gclf.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Intel D945GCLF motherboard.
|
|
@ -1,14 +1,32 @@
|
||||||
---
|
---
|
||||||
title: Disabling Intel Boot Guard on MEv11
|
title: Disabling Intel Boot Guard on MEv11 for Libreboot installation
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Deguard enables open source BIOS/UEFI firmware
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
On *some* (not all) motherboards, the vendor chooses to fuse a key during
|
||||||
|
manufacturing, which ensures that you can *only* boot firmware cryptographically
|
||||||
|
signed and verified by *them*. This is a form of DRM that otherwise prevents
|
||||||
|
use of coreboot-based firmware, such as Libreboot. We are *against* DRM in the
|
||||||
|
Libreboot project. *Intel* markets the Boot Guard as a security feature, but
|
||||||
|
we regard it simply as an *attack*
|
||||||
|
on [Free Software](https://writefreesoftware.org/learn).
|
||||||
|
|
||||||
|
This document will teach you about *deguard*, which is a utility that modifies
|
||||||
|
the Intel ME (which implements Boot Guard) in such a way as to *disable* the
|
||||||
|
Intel Boot Guard, by exploiting a known security vulnerability on MEv11. The
|
||||||
|
Libreboot project *uses deguard* for *several* coreboot ports, such as
|
||||||
|
the [Lenovo ThinkPad T480 with Libreboot](t480.md) or
|
||||||
|
the [Dell OptiPlex 3050 Micro with Libreboot](dell3050.md).
|
||||||
|
|
||||||
This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake
|
This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake
|
||||||
machines; note that Coffeelake includes KabyLake Refresh and may have MEv12.
|
machines; note that Coffeelake includes KabyLake Refresh and may have MEv12.
|
||||||
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
|
||||||
facts on this page are applicable to both *mobile* and *desktop* platforms.
|
facts on this page are applicable to both *mobile* and *desktop* platforms.
|
||||||
|
|
||||||
The Intel Boot Guard is a security mechanism implemented by intel, but not all
|
The Intel Boot Guard is a "security" mechanism implemented by intel, but not all
|
||||||
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
|
||||||
time by cryptographic signature verification; this means only the vendor can
|
time by cryptographic signature verification; this means only the vendor can
|
||||||
update the flash.
|
update the flash.
|
||||||
|
@ -17,10 +35,14 @@ On systems with MEv11, a bug exists in older versions (of MEv11) that allows
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
Guard is enforced, allowing for it to be disabled.
|
Guard is enforced, allowing for it to be disabled. This does *not* unfuse the
|
||||||
|
keys set by the manufacturer, but rather, it bypasses all checks against them.
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
|
Deguard utility
|
||||||
|
---------------
|
||||||
|
|
||||||
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,
|
||||||
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
|
||||||
reconfigures the ME, exploiting it so as to disable the Boot Guard.
|
reconfigures the ME, exploiting it so as to disable the Boot Guard.
|
||||||
|
@ -35,6 +57,9 @@ and Libreboot provides a mirror of this repository:
|
||||||
|
|
||||||
More information is available there.
|
More information is available there.
|
||||||
|
|
||||||
|
How it works
|
||||||
|
------------
|
||||||
|
|
||||||
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
|
||||||
automatically downloads this older version, runs `me_cleaner` on it, and applies
|
automatically downloads this older version, runs `me_cleaner` on it, and applies
|
||||||
the deguard hack; this includes machine-specific ME configuration, which is
|
the deguard hack; this includes machine-specific ME configuration, which is
|
||||||
|
@ -50,6 +75,9 @@ normally only available to vendors; the *deguard* utility written by Mate Kukri
|
||||||
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
|
||||||
releases. It can be used for *any* MEv11-based system.
|
releases. It can be used for *any* MEv11-based system.
|
||||||
|
|
||||||
|
How to use deguard
|
||||||
|
------------------
|
||||||
|
|
||||||
To download deguard in lbmk (Libreboot's build system), do this:
|
To download deguard in lbmk (Libreboot's build system), do this:
|
||||||
|
|
||||||
./mk -f deguard
|
./mk -f deguard
|
||||||
|
@ -65,6 +93,21 @@ were never fused, even if they were. [Previous work](https://trmm.net/TOCTOU/)
|
||||||
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
|
||||||
thorough and easy to use as deguard existed previously!
|
thorough and easy to use as deguard existed previously!
|
||||||
|
|
||||||
|
T480/T480s MFS data
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
As of Libreboot 20241206, the upstream deguard project did not contain an MFS
|
||||||
|
config for Lenovo ThinkPad T480 and T480s, because Libreboot added them in an
|
||||||
|
out-of-tree patch (under Mate Kukri's direct guidance).
|
||||||
|
|
||||||
|
Therefore, if you're using deguard on a standalone/custom coreboot setup without
|
||||||
|
using Libreboot/lbmk, please do ensure that they are there. The tool itself
|
||||||
|
provides a README, or you could simply import the config data from lbmk if
|
||||||
|
you wish.
|
||||||
|
|
||||||
|
How does deguard work?
|
||||||
|
----------------------
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
bug which you can read more about here:
|
bug which you can read more about here:
|
||||||
|
@ -82,7 +125,12 @@ years to try to hack around it, as a matter of user freedom. So remember: when
|
||||||
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,
|
||||||
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.
|
||||||
|
|
||||||
|
Thanks
|
||||||
|
------
|
||||||
|
|
||||||
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
|
||||||
great service to the Libreboot project.
|
great service to the Libreboot project.
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
The Libreboot project owes Mate Kukri a debt of gratitude, many times over.
|
||||||
|
|
1
site/docs/install/deguard.md.description
Normal file
1
site/docs/install/deguard.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Libreboot can disable the Intel Boot Guard, on any Intel 6th, 7th or 8th gen platform with Intel Management Engine version 11.x present, using deguard.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: Dell OptiPlex 3050 Micro
|
title: Install Libreboot on Dell OptiPlex 3050 Micro
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -18,7 +20,7 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
| **Variants** | OptiPlex 3050 Micro |
|
| **Variants** | OptiPlex 3050 Micro |
|
||||||
| **Released** | 2017 |
|
| **Released** | 2017 |
|
||||||
| **Chipset** | Intel Kaby Lake |
|
| **Chipset** | Intel Kaby Lake |
|
||||||
| **CPU** | Intel Kaby Lake |
|
| **CPU** | Intel Skylake/Kaby Lake |
|
||||||
| **Graphics** | Intel HD graphics |
|
| **Graphics** | Intel HD graphics |
|
||||||
| **Memory** | DDR4 SODIMMs (max 32GB, 2x16GB) |
|
| **Memory** | DDR4 SODIMMs (max 32GB, 2x16GB) |
|
||||||
| **Architecture** | x86\_64 |
|
| **Architecture** | x86\_64 |
|
||||||
|
@ -28,12 +30,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
?: UNKNOWN AT THIS TIME
|
?: UNKNOWN AT THIS TIME
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -47,32 +49,54 @@ P*: Partially works with blobs
|
||||||
| ***Payloads supported*** | |
|
| ***Payloads supported*** | |
|
||||||
|----------------------------|-----------|
|
|----------------------------|-----------|
|
||||||
| **GRUB (libgfxinit only)** | Works |
|
| **GRUB (libgfxinit only)** | Works |
|
||||||
| **SeaBIOS** | Broken |
|
| **SeaBIOS** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Dell OptiPlex 3050 Micro desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
**Unavailable in Libreboot 20240612 or earlier. You must [compile from
|
**Unavailable in Libreboot 20240612 or earlier. You must [compile from
|
||||||
source](../build/), or use a version newer than Libreboot 20240612.**
|
source](../build/), or use a version newer than Libreboot 20240612.**
|
||||||
|
|
||||||
|
### Buy pre-installed
|
||||||
|
|
||||||
|
**Dell OptiPlex 3050 Micro is available to purchase with Libreboot preinstalled.
|
||||||
|
See: <https://minifree.org/product/libreboot-3050-micro/>**
|
||||||
|
|
||||||
Official information about the computer can be found here:
|
Official information about the computer can be found here:
|
||||||
<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>
|
||||||
|
|
||||||
Build ROM image from source
|
### Warning regarding NVMe SSDs
|
||||||
---------------------------
|
|
||||||
|
Please use at least Libreboot
|
||||||
|
20241206 *[revision 3](../../news/libreboot20241206.Revisions.md#revision-3-11-december-2024)*
|
||||||
|
or higher. This is because older revisions contained a bug, where the NVMe
|
||||||
|
SSD would be *replugged* under Linux, randomly, leading to data loss.
|
||||||
|
|
||||||
|
This is fixed in 20241206 rev3 or higher, by disabling PCI-E hotplug on the
|
||||||
|
NVMe SSD slot.
|
||||||
|
|
||||||
|
See: [Libreboot 20241206 release](../../news/libreboot20241206.md)
|
||||||
|
|
||||||
|
### Build ROM image from source
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
./mk -b coreboot dell3050micro_fsp_16mb
|
./mk -b coreboot dell3050micro_vfsp_16mb
|
||||||
|
|
||||||
Mate Kukri's *deguard* utility disables the Intel Boot Guard on this
|
Mate Kukri's *deguard* utility disables the Intel Boot Guard on this
|
||||||
machine. Libreboot uses this by default, along with `me_cleaner` to provide
|
machine. Libreboot uses this by default, along with `me_cleaner` to provide
|
||||||
a neutered ME setup; unlike on other platforms, arbitrary code execution is also
|
a neutered ME setup; unlike on other platforms, arbitrary code execution is also
|
||||||
possible inside the ME on this mainboard, giving it much higher potential for
|
possible inside the ME on this motherboard, giving it much higher potential for
|
||||||
software freedom in the future.
|
software freedom in the future.
|
||||||
|
|
||||||
Issues
|
Issues
|
||||||
======
|
------
|
||||||
|
|
||||||
This machine basically works flawlessly, as of the Libreboot 20241206 release.
|
This machine basically works flawlessly, as of the Libreboot 20241206 release.
|
||||||
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
|
||||||
|
@ -88,10 +112,9 @@ Selection of audio devices and outputs is a bit idiosyncratic on this board.
|
||||||
Just play with pavucontrol for your setup and it should work fine.
|
Just play with pavucontrol for your setup and it should work fine.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
============
|
------------
|
||||||
|
|
||||||
Insert binary files
|
### Insert binary files
|
||||||
-------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -111,20 +134,18 @@ libre ME could include, for example, running an out-of-bound packet filter
|
||||||
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
|
||||||
OS-based software attacks).
|
OS-based software attacks).
|
||||||
|
|
||||||
MAC address
|
### MAC address
|
||||||
-----------
|
|
||||||
|
|
||||||
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
|
||||||
change. This means: there is no GbE region in the flash.
|
change. This means: there is no GbE region in the flash.
|
||||||
|
|
||||||
You can still use something like GNU MAC Changer to change your MAC address
|
You can still use something like `macchanger` to change your MAC address
|
||||||
from Linux if you want to.
|
from Linux if you want to.
|
||||||
|
|
||||||
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
|
||||||
installation.
|
installation.
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
@ -139,19 +160,81 @@ variables to flash during shutdown sequence, so you should *pull the plug* to
|
||||||
shut it down (remove the power by pulling the plug) after flashprog
|
shut it down (remove the power by pulling the plug) after flashprog
|
||||||
says `VERIFIED`.
|
says `VERIFIED`.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
For general information, please refer to [25xx NOR flash
|
For general information, please refer to [25xx NOR flash
|
||||||
instructions](../install/spi.md) - that page refers to use of socketed flash.
|
instructions](../install/spi.md) - that page refers to use of socketed flash.
|
||||||
|
|
||||||
The side cover comes off easily, and you can find the flash ICs next to the RAM.
|
The side cover comes off easily, and you can find the flash ICs next to the RAM.
|
||||||
Simply remove the screw at the back. The top panel then slides forward, and you
|
Simply remove the screw at the back. The top panel then slides forward, and you
|
||||||
can remove the SSD caddy; from then on, the flash is accossible.
|
can remove the SSD caddy; from then on, the flash is accessible.
|
||||||
|
|
||||||
Observe the following photo of the flash (SOIC-8):
|
Observe the following photo of the flash (SOIC-8):
|
||||||
|
|
||||||
<img tabindex=1 alt="Dell OptiPlex 3050 Micro flash IC" class="p" src="https://av.libreboot.org/3050micro/flash.jpg" /><span class="f"><img src="https://av.libreboot.org/3050micro/flash.jpg" /></span>
|
<img tabindex=1 alt="Dell OptiPlex 3050 Micro flash IC" class="p" src="https://av.libreboot.org/3050micro/flash.jpg" /><span class="f"><img src="https://av.libreboot.org/3050micro/flash.jpg" /></span>
|
||||||
|
|
||||||
You can otherwise flash internally, including from factory firmware(if the
|
You can otherwise flash internally, including from factory firmware (if the
|
||||||
service jumper is set).
|
service jumper is set).
|
||||||
|
|
||||||
|
Errata
|
||||||
|
------
|
||||||
|
|
||||||
|
### Power-on after power failure
|
||||||
|
|
||||||
|
Older Libreboot revisions made this machine always turn on, when plugging in
|
||||||
|
a power supply (charger brick), if a previous power loss was observed. This is
|
||||||
|
because coreboot sets a special register in the PMC that configures such
|
||||||
|
behaviour, but it was hardcoded to always-on. This is undesirable for most
|
||||||
|
people, so Libreboot 20241206 *revision 8* and newer releases contain the
|
||||||
|
following modification:
|
||||||
|
|
||||||
|
<https://browse.libreboot.org/lbmk.git/commit/?id=09a01477df67e3ddc36e11123c537332d7813c50>
|
||||||
|
|
||||||
|
If you wish to modify this behaviour again, you could modify the patch
|
||||||
|
referenced there; the actual location of the `.patch` file may change over
|
||||||
|
time, so you can basically just modify the coreboot source file
|
||||||
|
at `src/soc/intel/common/block/pmc/pmclib.c` (for the coreboot tree
|
||||||
|
under `src/coreboot/` in lbmk, pertaining to your board, which can be determined
|
||||||
|
by reading the `tree` variable in your board's `target.cfg` file within lbmk).
|
||||||
|
|
||||||
|
Use the patch as reference, to modify the coreboot behaviour as you wish, and
|
||||||
|
re-compile [from source](../build/).
|
||||||
|
|
||||||
|
### TPM disabled
|
||||||
|
|
||||||
|
The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS,
|
||||||
|
due to buggy TPM drivers there.
|
||||||
|
|
||||||
|
### Legacy 8254 timer
|
||||||
|
|
||||||
|
Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging.
|
||||||
|
|
||||||
|
### HyperThreading on 3050 Micro
|
||||||
|
|
||||||
|
NOTE: The 3050 Micro is available in different CPU configurations.
|
||||||
|
Before considering to enable HyperThreading support, make sure it is
|
||||||
|
supported by the CPU of your 3050 Micro.
|
||||||
|
|
||||||
|
Also called SMT. This is a feature where you get 2 threads on a single core.
|
||||||
|
It can improve performance in some workloads, but is actually a performance
|
||||||
|
liability in others, depending on your OS kernel/scheduler and the actual
|
||||||
|
workload.
|
||||||
|
|
||||||
|
It is a security liability, due to the Spectre/Meltdown attacks, so we
|
||||||
|
recommend turning it off, at the very least from your running operating system.
|
||||||
|
On *this* platform, you can easily turn it off from coreboot.
|
||||||
|
|
||||||
|
**Libreboot disables HyperThreading by default**, from Libreboot 20241206 rev8
|
||||||
|
onward, on this board. To turn it back on, please [build from source](../build/)
|
||||||
|
and before running the build command, do this:
|
||||||
|
|
||||||
|
./mk -m coreboot dell3050micro_vfsp_16mb
|
||||||
|
|
||||||
|
In the menu that appears, go *Chipset -> Enable Hyper-Threading* and turn it on.
|
||||||
|
Then exit from the menu, saving the config where prompted. You will see this
|
||||||
|
menu twice, because there are *two* configs for each of these boards.
|
||||||
|
|
||||||
|
SMT is rarely of benefit in practise, but can be useful in some circumstances.
|
||||||
|
For example, if you're compiling a large codebase from source that takes hours,
|
||||||
|
SMT increases the building speed by about 15 percent; for example, a 3 hour
|
||||||
|
build job might take about 2 hours and 40 minutes instead.
|
||||||
|
|
1
site/docs/install/dell3050.md.description
Normal file
1
site/docs/install/dell3050.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Dell OptiPlex 3050 installation. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader.
|
|
@ -1,13 +1,15 @@
|
||||||
---
|
---
|
||||||
title: Dell OptiPlex 7010/9010 SFF
|
title: Install Libreboot on Dell OptiPlex 7010/9010 SFF
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**This is only for the SFF variant. The MT variant is also supported, but for
|
**This is only for the SFF variant. The MT variant is also supported, but for
|
||||||
the MT variant, you must flash the [T1650 ROM image](t1650.md) instead.**
|
the MT variant, you must flash the [T1650 ROM image](t1650.md) instead.**
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -33,12 +35,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
?: UNKNOWN AT THIS TIME
|
?: UNKNOWN AT THIS TIME
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -46,7 +48,7 @@ P*: Partially works with blobs
|
||||||
|---------------------------------------------------|----|
|
|---------------------------------------------------|----|
|
||||||
| **Internal flashing with original boot firmware** | W+ |
|
| **Internal flashing with original boot firmware** | W+ |
|
||||||
| **Display (if Intel GPU)** | W+ |
|
| **Display (if Intel GPU)** | W+ |
|
||||||
| **Display (discrete CPU, SeaBIOS payload only)** | W* |
|
| **Display (discrete GPU, SeaBIOS payload only)** | W* |
|
||||||
| **Audio** | W+ |
|
| **Audio** | W+ |
|
||||||
| **RAM Init** | W+ |
|
| **RAM Init** | W+ |
|
||||||
|
|
||||||
|
@ -56,8 +58,14 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Dell OptiPlex 7010 SFF and/or OptiPlex 9010 SFF desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
**Unavailable in Libreboot 20240612 or earlier. You must [compile from
|
**Unavailable in Libreboot 20240612 or earlier. You must [compile from
|
||||||
source](../build/), or use a version newer than Libreboot 20240612.**
|
source](../build/), or use a version newer than Libreboot 20240612.**
|
||||||
|
@ -65,20 +73,22 @@ source](../build/), or use a version newer than Libreboot 20240612.**
|
||||||
Official information about the computer can be found here:
|
Official information about the computer can be found here:
|
||||||
<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>
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
./mk -b coreboot dell7010sff_12mb
|
./mk -b coreboot dell7010sff_12mb
|
||||||
|
|
||||||
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 motherboard.
|
||||||
|
|
||||||
Installation
|
Alternatively, you can use one of Libreboot's pre-compiled release images.
|
||||||
============
|
|
||||||
|
|
||||||
Insert binary files
|
Install Libreboot
|
||||||
-------------------
|
-----------------
|
||||||
|
|
||||||
|
Libreboot can be installed via internal and/or external flashing methods.
|
||||||
|
|
||||||
|
### Insert vendor files
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -88,15 +98,13 @@ Libreboot's build system automatically downloads and processes these files if
|
||||||
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
|
||||||
if you're using a release image.
|
if you're using a release image.
|
||||||
|
|
||||||
Set MAC address
|
### Set MAC address
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
|
||||||
|
|
||||||
WARNING about CPU/GPU compatibility
|
### WARNING about CPU/GPU compatibility
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
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
|
||||||
into it. You can find a list here:
|
into it. You can find a list here:
|
||||||
|
@ -110,8 +118,7 @@ used, SeaBIOS executes its VGA ROM which provides video init, instead of
|
||||||
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,
|
||||||
so the GRUB payload will also work.
|
so the GRUB payload will also work.
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
@ -127,8 +134,7 @@ variables to flash during shutdown sequence, so you should *pull the plug* to
|
||||||
shut it down (remove the power by pulling the plug) after flashprog
|
shut it down (remove the power by pulling the plug) after flashprog
|
||||||
says `VERIFIED`.
|
says `VERIFIED`.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
For general information, please refer to [25xx NOR flash
|
For general information, please refer to [25xx NOR flash
|
||||||
instructions](../install/spi.md) - that page refers to use of socketed flash.
|
instructions](../install/spi.md) - that page refers to use of socketed flash.
|
||||||
|
|
1
site/docs/install/dell7010.md.description
Normal file
1
site/docs/install/dell7010.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 7010 SFF.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: Dell OptiPlex 780 MT/USFF
|
title: Install Libreboot on Dell OptiPlex 780 MT/USFF
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -29,12 +29,12 @@ Dell OptiPlex 780
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
?: UNKNOWN AT THIS TIME
|
?: UNKNOWN AT THIS TIME
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -52,8 +52,14 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Dell OptiPlex 780 desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
**Unavailable in Libreboot 20240612 or earlier. You must [compile from
|
**Unavailable in Libreboot 20240612 or earlier. You must [compile from
|
||||||
source](../build/), or use a version newer than Libreboot 20240612.**
|
source](../build/), or use a version newer than Libreboot 20240612.**
|
||||||
|
@ -61,8 +67,7 @@ source](../build/), or use a version newer than Libreboot 20240612.**
|
||||||
Official information about the computer can be found here:
|
Official information about the computer can be found here:
|
||||||
<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>
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
|
@ -75,25 +80,27 @@ The `_truncate` image is needed if you're flashing Libreboot internally from
|
||||||
the original Dell firmware. Otherwise, you only need the regular images that
|
the original Dell firmware. Otherwise, you only need the regular images that
|
||||||
lack `_truncate` in the file name.
|
lack `_truncate` in the file name.
|
||||||
|
|
||||||
100% FREE
|
Alternatively, you can use release images instead of compiling from source.
|
||||||
=========
|
|
||||||
|
|
||||||
This mainboard does not rely on any binary blobs in the flash. It is using
|
### 100% FREE / OPEN SOURCE!
|
||||||
|
|
||||||
|
This motherboard is entirely free software in the main boot flash. It is using
|
||||||
the Intel X4X / ICH10 platform, same as on the already supported
|
the Intel X4X / ICH10 platform, same as on the already supported
|
||||||
Gigabyte GA-G41M-ES2L mainboard.
|
Gigabyte GA-G41M-ES2L motherboard.
|
||||||
|
|
||||||
Installation
|
Install Libreboot
|
||||||
============
|
-----------------
|
||||||
|
|
||||||
Set MAC address
|
These next sections will teach you how to install Libreboot, on your
|
||||||
---------------
|
Dell OptiPlex 780 motherboard.
|
||||||
|
|
||||||
|
### Set MAC address
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
|
||||||
|
|
||||||
WARNING about CPU/GPU compatibility
|
### WARNING about CPU/GPU compatibility
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Coreboot has libre initialisation code for Intel graphics, but libre
|
Coreboot has libre initialisation code for Intel graphics, but libre
|
||||||
initialisation code is not available for most graphics cards. This machine can
|
initialisation code is not available for most graphics cards. This machine can
|
||||||
|
@ -102,8 +109,7 @@ used, SeaBIOS executes its VGA ROM which provides video init, instead of
|
||||||
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,
|
||||||
so the GRUB payload will also work.
|
so the GRUB payload will also work.
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
**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
|
||||||
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!**
|
||||||
|
@ -152,8 +158,7 @@ the full image; the one without `_truncate` in the file name uses all of the
|
||||||
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
|
||||||
therefore 2MB larger on those images.
|
therefore 2MB larger on those images.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
For general information, please refer to [25xx NOR flash
|
For general information, please refer to [25xx NOR flash
|
||||||
instructions](../install/spi.md) - that page refers to use of socketed flash.
|
instructions](../install/spi.md) - that page refers to use of socketed flash.
|
||||||
|
|
1
site/docs/install/dell780.md.description
Normal file
1
site/docs/install/dell780.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 780.
|
|
@ -1,13 +1,15 @@
|
||||||
---
|
---
|
||||||
title: Dell OptiPlex 9020 SFF/MT (and 7020), and XE2 MT/SFF
|
title: Install Libreboot on Dell OptiPlex 9020 SFF/MT (or 7020), or XE2 MT/SFF
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**NOTE: Dell XE2 MT/SFF are also known to work, using the 9020 images. Same
|
**NOTE: Dell XE2 MT/SFF are also known to work, using the 9020 images. Same
|
||||||
motherboards as the 9020 and 7020.**
|
motherboards as the 9020 and 7020.**
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -37,12 +39,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
?: UNKNOWN AT THIS TIME
|
?: UNKNOWN AT THIS TIME
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -50,7 +52,7 @@ P*: Partially works with blobs
|
||||||
|---------------------------------------------------|----|
|
|---------------------------------------------------|----|
|
||||||
| **Internal flashing with original boot firmware** | W+ |
|
| **Internal flashing with original boot firmware** | W+ |
|
||||||
| **Display (if Intel GPU)** | W+ |
|
| **Display (if Intel GPU)** | W+ |
|
||||||
| **Display (discrete CPU, SeaBIOS payload only)** | W* |
|
| **Display (discrete GPU, SeaBIOS payload only)** | W* |
|
||||||
| **Audio** | W+ |
|
| **Audio** | W+ |
|
||||||
| **RAM Init** | W+ |
|
| **RAM Init** | W+ |
|
||||||
|
|
||||||
|
@ -60,8 +62,14 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Dell OptiPlex 9020/7020 SFF/MT or XE2 SFF/MT desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
**Unavailable in Libreboot 20240126 or earlier. You must [compile from
|
**Unavailable in Libreboot 20240126 or earlier. You must [compile from
|
||||||
source](../build/), or use a version newer than Libreboot 20240126**
|
source](../build/), or use a version newer than Libreboot 20240126**
|
||||||
|
@ -70,12 +78,11 @@ Official information about this machine can be found here:
|
||||||
<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>
|
||||||
|
|
||||||
ECC memory support
|
ECC memory support
|
||||||
==================
|
------------------
|
||||||
|
|
||||||
The 9020 MT/SFF do not have ECC memory support. However:
|
The 9020 MT/SFF do not have ECC memory support. However:
|
||||||
|
|
||||||
Dell Precision T1700
|
### Dell Precision T1700
|
||||||
--------------------
|
|
||||||
|
|
||||||
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
|
||||||
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.
|
||||||
|
@ -84,7 +91,7 @@ Please note however that the native raminit (libre raminit) provided by
|
||||||
Libreboot does not yet support ECC. You *may* be able to use ECC modules,
|
Libreboot does not yet support ECC. You *may* be able to use ECC modules,
|
||||||
but you won't actually have functioning ECC.
|
but you won't actually have functioning ECC.
|
||||||
|
|
||||||
ECC support currently requires `mrc.bin`, which is a blob for raminit.
|
ECC support currently requires `mrc.bin`, which is vendor firmware for raminit.
|
||||||
Libreboot removed this some time ago, instead favouring only the libre raminit.
|
Libreboot removed this some time ago, instead favouring only the libre raminit.
|
||||||
Patches are welcome, otherwise you can use an older revision of Libreboot
|
Patches are welcome, otherwise you can use an older revision of Libreboot
|
||||||
with `mrc.bin` if you need ECC; it's unknown whether both the Haswell and
|
with `mrc.bin` if you need ECC; it's unknown whether both the Haswell and
|
||||||
|
@ -97,18 +104,19 @@ if a blob *can* be avoided, it must be avoided. Therefore, `mrc.bin` is avoided
|
||||||
since the libre raminit works pretty well these days (ECC notwithstanding).
|
since the libre raminit works pretty well these days (ECC notwithstanding).
|
||||||
|
|
||||||
Buy Libreboot preinstalled
|
Buy Libreboot preinstalled
|
||||||
======================
|
--------------------------
|
||||||
|
|
||||||
You can buy this machine professionally serviced, with Libreboot preinstalled
|
You can buy this machine professionally serviced, with Libreboot preinstalled
|
||||||
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:
|
||||||
|
|
||||||
<https://minifree.org/product/libreboot-9020/>
|
**Minifree now sells the Libreboot 3050 Micro, instead of the Libreboot
|
||||||
|
9020 SFF. See: <https://minifree.org/product/libreboot-3050-micro/>**
|
||||||
|
|
||||||
Sales are conducted to provide funding for the Libreboot project. Leah Rowe
|
Sales are conducted to provide funding for the Libreboot project. Leah Rowe
|
||||||
who runs Minifree, is also Libreboot's founder and lead developer.
|
who runs Minifree, is also Libreboot's founder and lead developer.
|
||||||
|
|
||||||
Patch
|
Patch
|
||||||
=====
|
-----
|
||||||
|
|
||||||
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.
|
||||||
Kukri's patch is here:
|
Kukri's patch is here:
|
||||||
|
@ -118,16 +126,14 @@ Kukri's patch is here:
|
||||||
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
|
||||||
port.
|
port.
|
||||||
|
|
||||||
QUBES: how to get it working
|
### QUBES: how to get it working
|
||||||
-------------------
|
|
||||||
|
|
||||||
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.
|
||||||
Qubes *WILL* work, if you configure Libreboot as directed below, but otherwise
|
Qubes *WILL* work, if you configure Libreboot as directed below, but otherwise
|
||||||
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
|
||||||
default*, on this board.
|
default*, on this board.
|
||||||
|
|
||||||
Graphics cards and IOMMU
|
### Graphics cards and IOMMU
|
||||||
--------------
|
|
||||||
|
|
||||||
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
|
||||||
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,
|
||||||
|
@ -155,8 +161,7 @@ IOMMU, and only if vt-d is present. This is still the behaviour in Libreboot,
|
||||||
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
|
||||||
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.
|
||||||
|
|
||||||
Enable IOMMU
|
### Enable IOMMU
|
||||||
------------
|
|
||||||
|
|
||||||
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,
|
||||||
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
|
||||||
|
@ -175,7 +180,7 @@ Then flash the ROM image. You can find nvramtool
|
||||||
under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't
|
under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't
|
||||||
already havse `src/coreboot/default/`:
|
already havse `src/coreboot/default/`:
|
||||||
|
|
||||||
./update trees -f coreboot default
|
./mk -f coreboot default
|
||||||
|
|
||||||
Then do this:
|
Then do this:
|
||||||
|
|
||||||
|
@ -202,8 +207,7 @@ with IOMMU enabled:
|
||||||
|
|
||||||
Make sure to configure your image accordingly.
|
Make sure to configure your image accordingly.
|
||||||
|
|
||||||
7020 compatibility
|
### 7020 compatibility
|
||||||
------------------
|
|
||||||
|
|
||||||
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
|
||||||
on your 7020, and it will work.
|
on your 7020, and it will work.
|
||||||
|
@ -211,25 +215,31 @@ on your 7020, and it will work.
|
||||||
Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides
|
Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides
|
||||||
separate targets for MT and SFF.
|
separate targets for MT and SFF.
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
For the MT variant (7020 MT and 9020 MT):
|
For the **20 MT variant (7020 MT and 9020 MT):
|
||||||
|
|
||||||
./mk -b coreboot dell9020mt_nri_12mb
|
./mk -b coreboot dell9020mt_nri_12mb
|
||||||
|
|
||||||
For the SFF variant (7020 SFF and 9020 SFF):
|
For the **20 SFF variant (7020 SFF and 9020 SFF):
|
||||||
|
|
||||||
./mk -b coreboot dell9020sff_nri_12mb
|
./mk -b coreboot dell9020sff_nri_12mb
|
||||||
|
|
||||||
|
For the T1700 MT variant:
|
||||||
|
|
||||||
|
./mk -b coreboot t1700mt_bmrc_12mb
|
||||||
|
|
||||||
|
For the T1700 SFF variant:
|
||||||
|
|
||||||
|
./mk -b coreboot t1700sff_bmrc_12mb
|
||||||
|
|
||||||
It is important that you choose the right one. The MT variant is the full
|
It is important that you choose the right one. The MT variant is the full
|
||||||
MTX tower.
|
MTX tower.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
============
|
------------
|
||||||
|
|
||||||
Insert binary files
|
### Insert binary files
|
||||||
-------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -239,15 +249,13 @@ Libreboot's build system automatically downloads and processes these files if
|
||||||
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
|
||||||
if you're using a release image.
|
if you're using a release image.
|
||||||
|
|
||||||
Set MAC address
|
### Set MAC address
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
@ -267,8 +275,7 @@ the original Dell BIOS, remove power from the computer instead of
|
||||||
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
|
||||||
of the internal drive to prevent potential filesystem corruption.**
|
of the internal drive to prevent potential filesystem corruption.**
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
**REMOVE all power sources and connectors from the machine, before doing this.
|
**REMOVE all power sources and connectors from the machine, before doing this.
|
||||||
This is to prevent short circuiting and power surges while flashing.**
|
This is to prevent short circuiting and power surges while flashing.**
|
||||||
|
|
1
site/docs/install/dell9020.md.description
Normal file
1
site/docs/install/dell9020.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 9020 MT and SFF, also XE2 SFF and MT.
|
|
@ -17,7 +17,7 @@ Basically, what you need to do is:
|
||||||
laptop came with, if you bought it on ebay for example). Arctic MX-6 is good.
|
laptop came with, if you bought it on ebay for example). Arctic MX-6 is good.
|
||||||
* Check that the fan works reliably
|
* Check that the fan works reliably
|
||||||
|
|
||||||
Also: the `intel_pstate` driver can be used to artifically cap CPU speed. See:
|
Also: the `intel_pstate` driver can be used to artificially cap CPU speed. See:
|
||||||
|
|
||||||
<https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html>
|
<https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html>
|
||||||
|
|
||||||
|
|
1
site/docs/install/dell_thermal.md.description
Normal file
1
site/docs/install/dell_thermal.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Thermal protection has a few idiosyncrasies, on the various motherboards supported by Libreboot. This guide will explain what they are.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: Disabling /dev/mem protections
|
title: Disabling /dev/mem protections on Linux and BSD
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ access once you no longer need it, as this is a useful security layer against
|
||||||
any wrongful operations that you may later inadvertently run as root.
|
any wrongful operations that you may later inadvertently run as root.
|
||||||
|
|
||||||
Also disable SecureBoot
|
Also disable SecureBoot
|
||||||
=======================
|
-----------------------
|
||||||
|
|
||||||
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
|
||||||
a latter Intel platform and want to flash Libreboot internally, from
|
a latter Intel platform and want to flash Libreboot internally, from
|
||||||
|
@ -22,19 +22,23 @@ If the factory firmware implements UEFI, and this is how you boot when
|
||||||
using the factory firmware, please ensure that *SecureBoot* is disabled,
|
using the factory firmware, please ensure that *SecureBoot* is disabled,
|
||||||
because it will interfere with lower memory accesses if left enabled.
|
because it will interfere with lower memory accesses if left enabled.
|
||||||
|
|
||||||
|
If you can, boot in BIOS/CSM mode just to be sure, again with SecureBoot
|
||||||
|
disabled.
|
||||||
|
|
||||||
FLASH ERRORS (and workarounds)
|
FLASH ERRORS (and workarounds)
|
||||||
=======================
|
------------------------------
|
||||||
|
|
||||||
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.**
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
This section relates to installing libreboot on supported targets.
|
This section relates to installing libreboot on supported targets.
|
||||||
|
|
||||||
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
|
||||||
using the internal programmer. They are:
|
using the internal programmer. They are:
|
||||||
|
|
||||||
/dev/mem access error
|
### /dev/mem access error
|
||||||
---------------------
|
|
||||||
|
|
||||||
NOTE: if running `flashprog -p internal` for software based flashing, and you
|
NOTE: if running `flashprog -p internal` for software based flashing, and you
|
||||||
get an error related to `/dev/mem` access, you should reboot with
|
get an error related to `/dev/mem` access, you should reboot with
|
||||||
|
@ -46,8 +50,7 @@ is `kernel.securelevel=-1`; see [NetBSD securelevel
|
||||||
manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/)
|
manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/)
|
||||||
and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel).
|
and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel).
|
||||||
|
|
||||||
ERROR: Could not get I/O privileges
|
### ERROR: Could not get I/O privileges
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Error message: `ERROR: Could not get I/O privileges (Function not implemented)`
|
Error message: `ERROR: Could not get I/O privileges (Function not implemented)`
|
||||||
|
|
||||||
|
|
1
site/docs/install/devmem.md.description
Normal file
1
site/docs/install/devmem.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Libreboot installation relies heavily on port IO and access to lower memory, which is usually restricted. Learn how to enable access on Linux and BSD.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: Gigabyte GA-G41M-ES2L desktop board
|
title: Install Libreboot on Gigabyte GA-G41M-ES2L
|
||||||
...
|
...
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
|
@ -24,12 +24,12 @@ GA-G41M-ES2L
|
||||||
| **Flash chip** | 2x8Mbit |
|
| **Flash chip** | 2x8Mbit |
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -48,8 +48,13 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Introduction
|
Open source BIOS/UEFI firmware
|
||||||
============
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Gigabyte GA-G41M-ES2L desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
This is a desktop board using intel hardware (circa \~2009, ICH7
|
This is a desktop board using intel hardware (circa \~2009, ICH7
|
||||||
southbridge, similar performance-wise to the ThinkPad X200. It can make
|
southbridge, similar performance-wise to the ThinkPad X200. It can make
|
||||||
|
@ -89,7 +94,7 @@ You can learn more about using the build system, lbmk, here:\
|
||||||
[libreboot build instructions](../build/)
|
[libreboot build instructions](../build/)
|
||||||
|
|
||||||
RAM
|
RAM
|
||||||
===
|
---
|
||||||
|
|
||||||
**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
|
||||||
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
|
||||||
|
@ -105,25 +110,25 @@ Many other modules will probably work just fine, but raminit is very picky on
|
||||||
this board. Your mileage *will* fluctuate, wildly.
|
this board. Your mileage *will* fluctuate, wildly.
|
||||||
|
|
||||||
MAC ADDRESS
|
MAC ADDRESS
|
||||||
===========
|
-----------
|
||||||
|
|
||||||
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
|
||||||
coreboot. Therefore, you must set your own MAC address in your
|
coreboot. Therefore, you must set your own MAC address in your
|
||||||
operating system.
|
operating system.
|
||||||
|
|
||||||
Use [macchanger](http://www.gnu.org/software/macchanger) in your
|
Use macchanger in your
|
||||||
distro, to set a valid MAC address. By doing this, your NIC should
|
distro, to set a valid MAC address. By doing this, your NIC should
|
||||||
work nicely.
|
work nicely.
|
||||||
|
|
||||||
Flash chip size {#flashchips}
|
Flash chip size {#flashchips}
|
||||||
===============
|
---------------------
|
||||||
|
|
||||||
Use this to find out:
|
Use this to find out:
|
||||||
|
|
||||||
flashprog -p internal
|
flashprog -p internal
|
||||||
|
|
||||||
Flashing instructions {#clip}
|
Flashing instructions {#clip}
|
||||||
=====================
|
--------------------------
|
||||||
|
|
||||||
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
|
||||||
external flashing. *You can only externally reprogram one of the chips
|
external flashing. *You can only externally reprogram one of the chips
|
||||||
|
@ -164,5 +169,8 @@ NOTE: If you don't flash both chips, the recovery program from the default
|
||||||
factory BIOS will kick in and your board will be soft bricked. Make sure that
|
factory BIOS will kick in and your board will be soft bricked. Make sure that
|
||||||
you flash both chips!
|
you flash both chips!
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
|
|
1
site/docs/install/ga-g41m-es2l.md.description
Normal file
1
site/docs/install/ga-g41m-es2l.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Gigabyte GA-G41M-ES2L motherboard.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook 2170p
|
title: Install Libreboot on HP EliteBook 2170p
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -22,20 +24,20 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
| **Graphics** | Intel HD Graphics 4000 |
|
| **Graphics** | Intel HD Graphics 4000 |
|
||||||
| **Display** | 1366x768 11.6" TFT |
|
| **Display** | 1366x768 11.6" TFT |
|
||||||
| **Memory** | Two slots, max 8GB/slot (2x16GB), DDR3/sodimm |
|
| **Memory** | Two slots, max 8GB/slot (2x16GB), DDR3/sodimm |
|
||||||
| **Architecture** | x86_64 |
|
| **Architecture** | x86\_64 |
|
||||||
| **EC** | SMSC KBC1126, proprietary (in main boot flash) |
|
| **EC** | SMSC KBC1126, proprietary (in main boot flash) |
|
||||||
| **Original boot firmware** | HP UEFI firmware |
|
| **Original boot firmware** | HP UEFI firmware |
|
||||||
| **Intel ME/AMD PSP** | Present. Can be disabled with me_cleaner. |
|
| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. |
|
||||||
| **Flash chip** | SOIC-8 16MiB (128Mbit), in a socket |
|
| **Flash chip** | SOIC-8 16MiB (128Mbit), in a socket |
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -53,52 +55,49 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
HP EliteBook 2170p laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
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
|
||||||
available on the [coreboot
|
available on the [coreboot
|
||||||
documentation](https://doc.coreboot.org/mainboard/hp/2170p.html) - that page
|
documentation](https://doc.coreboot.org/mainboard/hp/2170p.html).
|
||||||
said (on 16 August 2023) that GRUB hangs due to the `at_keyboard` module, but
|
|
||||||
this is no longer true; it's
|
|
||||||
[fixed](https://git.savannah.gnu.org/cgit/grub.git/commit/?id=830456a6e3b6ac92d10f9261177722a308652a1a)
|
|
||||||
in the latest GRUB revisions, and Libreboot's version of GRUB contains this fix.
|
|
||||||
|
|
||||||
**Unavailable in Libreboot 20230625 or earlier. You must [compile from
|
**Unavailable in Libreboot 20230625 or earlier. You must [compile from
|
||||||
source](../build/), or use at least Libreboot 20231021.**
|
source](../build/), or use at least Libreboot 20231021.**
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
./mk -b coreboot hp2170p_16mb
|
./mk -b coreboot hp2170p_16mb
|
||||||
|
|
||||||
Installation
|
Install Libreboot
|
||||||
============
|
-----------------
|
||||||
|
|
||||||
Insert binary files
|
### Insert binary files
|
||||||
-------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
to adhere to this advice will result in a bricked machine)
|
to adhere to this advice will result in a bricked machine)
|
||||||
|
|
||||||
Set MAC address
|
### Set MAC address
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
**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.
|
||||||
This is to prevent short circuiting and power surges while flashing; although
|
This is to prevent short circuiting and power surges while flashing; although
|
||||||
|
|
1
site/docs/install/hp2170p.md.description
Normal file
1
site/docs/install/hp2170p.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2170p.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook 2560p
|
title: Install Libreboot on HP EliteBook 2560p
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -34,16 +36,20 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
Brief board info
|
This document will teach you how to install Libreboot, on your
|
||||||
================
|
HP EliteBook 2560p laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
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:
|
||||||
|
|
||||||
<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>
|
||||||
|
|
||||||
Installation of Libreboot
|
Installation of Libreboot
|
||||||
=========================
|
-------------------------
|
||||||
|
|
||||||
Coreboot also has some information:
|
Coreboot also has some information:
|
||||||
|
|
||||||
|
|
1
site/docs/install/hp2560p.md.description
Normal file
1
site/docs/install/hp2560p.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2560p.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook 2570p
|
title: Install Libreboot on HP EliteBook 2570p
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -34,15 +36,23 @@ HP EliteBook 2570p
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
HP EliteBook 2570p laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
Brief board info
|
Brief board info
|
||||||
================
|
----------------
|
||||||
|
|
||||||
Vendor info here:
|
Vendor info here:
|
||||||
|
|
||||||
<https://support.hp.com/us-en/document/c03412731>
|
<https://web.archive.org/web/20231206103727/https://support.hp.com/us-en/document/c03412731>
|
||||||
|
|
||||||
Installation of Libreboot
|
Installation of Libreboot
|
||||||
=========================
|
-------------------------
|
||||||
|
|
||||||
Coreboot also has some information:
|
Coreboot also has some information:
|
||||||
|
|
||||||
|
|
1
site/docs/install/hp2570p.md.description
Normal file
1
site/docs/install/hp2570p.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2570p.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP Elite 8200 SFF/MT and 6200 Pro Business
|
title: Install Libreboot on HP Elite 8200 SFF/MT and 6200 Pro Business
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -21,17 +23,17 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
| **CPU** | Intel Sandy/Ivy Bridge |
|
| **CPU** | Intel Sandy/Ivy Bridge |
|
||||||
| **Graphics** | Intel HD Graphics or PCI-e low profile card |
|
| **Graphics** | Intel HD Graphics or PCI-e low profile card |
|
||||||
| **Memory** | Up to 32GB (4x8GB) |
|
| **Memory** | Up to 32GB (4x8GB) |
|
||||||
| **Architecture** | x86_64 |
|
| **Architecture** | x86\_64 |
|
||||||
| **Intel ME/AMD PSP** | Present, neutered |
|
| **Intel ME/AMD PSP** | Present, neutered |
|
||||||
| **Flash chip** | SOIC-8 8MiB |
|
| **Flash chip** | SOIC-8 8MiB |
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -49,22 +51,18 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Disable security before flashing
|
Open source BIOS/UEFI firmware
|
||||||
================================
|
------------------------------
|
||||||
|
|
||||||
Before internal flashing, you must first disable `/dev/mem` protections. Make
|
This document will teach you how to install Libreboot, on your
|
||||||
sure to re-enable them after you're finished.
|
HP Elite 8200 SFF desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
See: [Disabling /dev/mem protection](../install/devmem.md)
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
Libreboot has support for this, in the Git repository and release versions
|
Libreboot has support for this, in the Git repository and release versions
|
||||||
from 20230423 onwards.
|
from 20230423 onwards.
|
||||||
|
|
||||||
Brief board info
|
### Brief board info
|
||||||
----------------
|
|
||||||
|
|
||||||
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
|
||||||
which you can read more about here:
|
which you can read more about here:
|
||||||
|
@ -79,7 +77,15 @@ Here's the [Technical Reference Manual](https://web.archive.org/web/201601091432
|
||||||
This system supports Ivy Bridge processors too. The original BIOS
|
This system supports Ivy Bridge processors too. The original BIOS
|
||||||
won't even POST with those, but with Libreboot they work fully.
|
won't even POST with those, but with Libreboot they work fully.
|
||||||
|
|
||||||
Installation of Libreboot
|
Disable security before flashing
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Before internal flashing, you must first disable `/dev/mem` protections. Make
|
||||||
|
sure to re-enable them after you're finished.
|
||||||
|
|
||||||
|
See: [Disabling /dev/mem protection](../install/devmem.md)
|
||||||
|
|
||||||
|
Install Libreboot
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
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
|
||||||
|
@ -146,8 +152,10 @@ between the pins until you can see the normal BIOS boot screen.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
Now, run this command:
|
Now, run this command:
|
||||||
|
|
||||||
|
@ -266,7 +274,7 @@ the *ROM* by using the `-C` option in nvramtool. You can find this under the
|
||||||
directory `src/coreboot/default/util/nvramtool` when downloading coreboot inside
|
directory `src/coreboot/default/util/nvramtool` when downloading coreboot inside
|
||||||
of lbmk by running the command:
|
of lbmk by running the command:
|
||||||
|
|
||||||
./update trees -f coreboot default
|
./mk -f coreboot default
|
||||||
|
|
||||||
Go in there and type `make` to build nvramtool. Simply run nvramtool without
|
Go in there and type `make` to build nvramtool. Simply run nvramtool without
|
||||||
arguments, and it will show a list of options.
|
arguments, and it will show a list of options.
|
||||||
|
|
1
site/docs/install/hp8200sff.md.description
Normal file
1
site/docs/install/hp8200sff.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8200 SFF motherboard.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook 820 G2
|
title: Install Libreboot on HP EliteBook 820 G2
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -35,12 +37,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -59,30 +61,56 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Brief board info:
|
Open source BIOS/UEFI firmware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
Full hardware specifications can be found on HP's own website:
|
This document will teach you how to install Libreboot, on your
|
||||||
|
HP EliteBook 820 G2 laptop motherboard.
|
||||||
<https://support.hp.com/gb-en/document/c04543492>
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
Please build this from source with lbmk:
|
Please build this from source with lbmk:
|
||||||
|
|
||||||
./mk -b coreboot hp820g2_12mb
|
./mk -b coreboot hp820g2_12mb
|
||||||
|
|
||||||
More information is available in the [build guide](../build/), including how
|
More information is available in the [build guide](../build/), including how
|
||||||
to install build dependencies. Building from source is required, because there
|
to install build dependencies.
|
||||||
aren't any ROM images for this board, in regular Libreboot releases. The
|
|
||||||
reason is that the vendor inject scripts don't currently work, because coreboot
|
Alternatively, you can use pre-compiled release images.
|
||||||
compresses the refcode when inserting it at build time, and the process of
|
|
||||||
compression is not yet reproducible; it's not feasible to do so, and making
|
Full hardware specifications can be found on HP's own website:
|
||||||
it not be compressed in flash would not be ideal either, so this is simply
|
|
||||||
a source-only port in Libreboot.
|
<https://web.archive.org/web/20240210201322/https://support.hp.com/gb-en/document/c04543492>
|
||||||
|
|
||||||
|
Pre-compiled images now possible!
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
From Libreboot 20241206 **revision 8** onwards, pre-compiled ROM images *are*
|
||||||
|
now available. Previous releases excluded images for this board, because vendor
|
||||||
|
file insertion was not reproducible, so you would get checksum errors. This
|
||||||
|
has been fixed with the following patch:
|
||||||
|
|
||||||
|
<https://browse.libreboot.org/lbmk.git/commit/?id=e8799310db26df89720e8476a701f1904932234b>
|
||||||
|
|
||||||
|
The refcode is inserted uncompressed, whereas upstream uses LZMA compression.
|
||||||
|
We can't predict how the implementation will change in the future, and any
|
||||||
|
behavioural changes would probably affect the checksum on insertion. Older
|
||||||
|
releases also didn't handle `rmodtool` on refcode insertion, which is used
|
||||||
|
to make the file relocatable in CBFS. See:
|
||||||
|
|
||||||
|
<https://doc.coreboot.org/lib/rmodules.html>
|
||||||
|
|
||||||
|
As of Libreboot 20241206 rev8, you can now use pre-compiled release images
|
||||||
|
and [insert vendor files](ivy_has_common.md).
|
||||||
|
|
||||||
|
The lack of refcode compression costs about 110KB, because the refcode file is
|
||||||
|
about 180KB uncompressed, but would be about 70KB compressed in flash. We
|
||||||
|
insert it uncompressed, so it's 180KB in flash. This is a small sacrifice,
|
||||||
|
considering that you still have about 10MB of unused flash space left, at least
|
||||||
|
as of the 20241206 rev8 release.
|
||||||
|
|
||||||
HP Sure Start
|
HP Sure Start
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
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:
|
||||||
<https://doc.coreboot.org/mainboard/hp/hp_sure_start.html>
|
<https://doc.coreboot.org/mainboard/hp/hp_sure_start.html>
|
||||||
|
@ -113,7 +141,7 @@ the Libreboot installation, because it's also important when updating
|
||||||
Libreboot later on.
|
Libreboot later on.
|
||||||
|
|
||||||
Installation of Libreboot
|
Installation of Libreboot
|
||||||
=========================
|
-------------------------
|
||||||
|
|
||||||
Make sure to set the MAC address in the flash:
|
Make sure to set the MAC address in the flash:
|
||||||
[Modify MAC addresses with nvmutil](../install/nvmutil.md).
|
[Modify MAC addresses with nvmutil](../install/nvmutil.md).
|
||||||
|
@ -157,20 +185,50 @@ Refer generally to the [main flashing guide](../install/) and to
|
||||||
the [external flashing guide](../install/spi.md) so that you can learn how
|
the [external flashing guide](../install/spi.md) so that you can learn how
|
||||||
to actually flash it.
|
to actually flash it.
|
||||||
|
|
||||||
TPM 2.0 potentially supported
|
TPM 2.0 supported
|
||||||
==============================
|
-----------------------------
|
||||||
|
|
||||||
|
** DO NOT DO THIS WITH ORIGINAL BOOT FIRMWARE, IT BECAMES UNBOOTABLE; see
|
||||||
|
<https://github.com/iavael/infineon-firmware-updater/issues/2> **
|
||||||
|
|
||||||
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
|
||||||
compatible with TPM 2.0 via firmware upgrade. Although not yet tested, we have
|
compatible with TPM 2.0 via firmware upgrade, but incompatible with stock rom.
|
||||||
some notes about that here:
|
|
||||||
|
|
||||||
[../../tasks/#hp-820-g2-tpm](../../tasks/#hp-820-g2-tpm)
|
Only by externally backing up the stock flash and private flash, flashing libreboot, booting to OS, downgrading it, then reflashing stock firmware from backup would make it work again. **Untested, may work with HP TPM Configuration Utility on Windows.**
|
||||||
|
|
||||||
|
One way to do it is using the TPMFactoryUpd tool from
|
||||||
|
|
||||||
|
iavael's
|
||||||
|
<https://github.com/iavael/infineon-firmware-updater>
|
||||||
|
or
|
||||||
|
crass's github repo with SLB 966x firmware;
|
||||||
|
<https://github.com/crass/infineon-firmware-updater?tab=readme-ov-file#firmware>
|
||||||
|
|
||||||
|
after making it and checking the machine's tpm version with;
|
||||||
|
|
||||||
|
```
|
||||||
|
TPMFactoryUpd -info
|
||||||
|
```
|
||||||
|
|
||||||
|
Before upgrading, make sure the ownership is unclaimed and tpm enabled.
|
||||||
|
to update, you should use config file in the firmware folder inside the downloaded and extracted 9665FW update package_1.5.zip, then start the upgrade process:
|
||||||
|
|
||||||
|
```
|
||||||
|
TPMFactoryUpd -update config-file -config TPM12_latest.cfg
|
||||||
|
```
|
||||||
|
|
||||||
Not yet used meaningfully by Libreboot itself, but the TPM can be used to
|
Not yet used meaningfully by Libreboot itself, but the TPM can be used to
|
||||||
implement things like measured boot.
|
implement things like measured boot.
|
||||||
|
|
||||||
|
Similar models working with this firmware
|
||||||
|
----------
|
||||||
|
|
||||||
|
More testing is needed, but works almost flawlessly;
|
||||||
|
|
||||||
|
<https://libreboot.org/tasks/#zbook-14-15u-g2-elitebook-840-850-g2-820-g2>
|
||||||
|
|
||||||
References
|
References
|
||||||
==========
|
----------
|
||||||
|
|
||||||
See: <https://doc.coreboot.org/soc/intel/broadwell/blobs.html>
|
See: <https://doc.coreboot.org/soc/intel/broadwell/blobs.html>
|
||||||
|
|
||||||
|
|
1
site/docs/install/hp820g2.md.description
Normal file
1
site/docs/install/hp820g2.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 820 G2.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP Compaq Elite 8300 USDT
|
title: Install Libreboot HP Compaq Elite 8300 USDT
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -24,15 +26,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
| **Intel ME/AMD PSP** | Present, neutered |
|
| **Intel ME/AMD PSP** | Present, neutered |
|
||||||
| **Flash chip** | SOIC-16 16MiB |
|
| **Flash chip** | SOIC-16 16MiB |
|
||||||
|
|
||||||
Disable security before flashing
|
Open source BIOS/UEFI firmware
|
||||||
================================
|
-------------------------
|
||||||
|
|
||||||
Before internal flashing, you must first disable `/dev/mem` protections. Make
|
This document will teach you how to install Libreboot, on your
|
||||||
sure to re-enable them after you're finished.
|
HP Elite 8300 USDT desktop motherboard. Libreboot replaces proprietary
|
||||||
|
BIOS/UEFI firmware.
|
||||||
See: [Disabling /dev/mem protection](../install/devmem.md)
|
|
||||||
|
|
||||||
# Introduction
|
|
||||||
|
|
||||||
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
|
||||||
(of up to 65W TDP).
|
(of up to 65W TDP).
|
||||||
|
@ -58,9 +57,21 @@ These features are tested and confirmed working:
|
||||||
* Wake on LAN
|
* Wake on LAN
|
||||||
* Rebooting
|
* Rebooting
|
||||||
|
|
||||||
# Installation
|
Disable security before flashing
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
## Internal flashing
|
Before internal flashing, you must first disable `/dev/mem` protections. Make
|
||||||
|
sure to re-enable them after you're finished.
|
||||||
|
|
||||||
|
See: [Disabling /dev/mem protection](../install/devmem.md)
|
||||||
|
|
||||||
|
Install Libreboot
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
These next sections will teach you how to install Libreboot on your
|
||||||
|
HP Elite 8300 USDT motherboard.
|
||||||
|
|
||||||
|
### Internal flashing
|
||||||
|
|
||||||
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
|
||||||
compatible with this guide. BIOS 2.05 is confirmed **not** to work.
|
compatible with this guide. BIOS 2.05 is confirmed **not** to work.
|
||||||
|
@ -81,8 +92,10 @@ crystal (small metal cylinder) and the power cable for the optical drive.
|
||||||
|
|
||||||
Boot into an OS of your choice (that has flashprog support).
|
Boot into an OS of your choice (that has flashprog support).
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
The BIOS should no longer impose any write-protections.
|
The BIOS should no longer impose any write-protections.
|
||||||
You can now use `flashprog -p internal` freely.
|
You can now use `flashprog -p internal` freely.
|
||||||
|
@ -111,7 +124,7 @@ You can now move the jumper back to its original place.
|
||||||
By default, Libreboot applies no write-protection, so
|
By default, Libreboot applies no write-protection, so
|
||||||
updating it can be done without the jumper anyway.
|
updating it can be done without the jumper anyway.
|
||||||
|
|
||||||
## External flashing
|
### External flashing
|
||||||
|
|
||||||
Unbricking is possible by external flashing. You first need to remove
|
Unbricking is possible by external flashing. You first need to remove
|
||||||
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
|
||||||
|
|
1
site/docs/install/hp8300usdt.md.description
Normal file
1
site/docs/install/hp8300usdt.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8300 USDT motherboard.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook 8460p
|
title: Install Libreboot on HP EliteBook 8460p
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -31,12 +33,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -54,8 +56,16 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
These next sections will teach you how to install Libreboot, on your
|
||||||
|
HP EliteBook 8460p laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
|
Vendor manual [here](https://web.archive.org/web/20240814185019/https://h10032.www1.hp.com/ctg/Manual/c03253774.pdf).
|
||||||
|
|
||||||
**Unavailable in Libreboot 20231106 or earlier. You must [compile from
|
**Unavailable in Libreboot 20231106 or earlier. You must [compile from
|
||||||
source](../build/), or use a release newer than 20231106.**
|
source](../build/), or use a release newer than 20231106.**
|
||||||
|
@ -64,38 +74,35 @@ This is a beastly 14" Sandy Bridge platform from HP.
|
||||||
**NOTE: Until otherwise stated, only the Intel GPU variant is supported in
|
**NOTE: Until otherwise stated, only the Intel GPU variant is supported in
|
||||||
Libreboot.**
|
Libreboot.**
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
./mk -b coreboot hp8460pintel_8mb
|
./mk -b coreboot hp8460pintel_8mb
|
||||||
|
|
||||||
Installation
|
Install Libreboot
|
||||||
============
|
-----------------
|
||||||
|
|
||||||
Insert binary files
|
**Please take care to insert the vendor files, if using release images.**
|
||||||
-------------------
|
|
||||||
|
### Insert binary files
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
to adhere to this advice will result in a bricked machine)
|
to adhere to this advice will result in a bricked machine)
|
||||||
|
|
||||||
Set MAC address
|
### Set MAC address
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](/nvmutil.md).
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
**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.
|
||||||
This is to prevent short circuiting and power surges while flashing.**
|
This is to prevent short circuiting and power surges while flashing.**
|
||||||
|
|
1
site/docs/install/hp8460p.md.description
Normal file
1
site/docs/install/hp8460p.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8460p.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook 8470p
|
title: Install Libreboot on HP EliteBook 8470p
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -31,12 +33,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -54,51 +56,49 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
**Unavailable in Libreboot 20230625 or earlier. You must [compile from
|
Open source BIOS/UEFI firmware
|
||||||
source](../build/), or use at least Libreboot 20231021.**
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
HP EliteBook 8470p laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
Official information about the laptop can be found here:
|
Official information about the laptop can be found here:
|
||||||
<https://support.hp.com/gb-en/document/c03374369>
|
<https://web.archive.org/web/20220813230511/https://support.hp.com/gb-en/document/c03374369>
|
||||||
|
|
||||||
This is a beastly 14" Ivy Bridge platform from HP.
|
This is a beastly 14" Ivy Bridge platform from HP.
|
||||||
**NOTE: Until otherwise stated, only the Intel GPU variant is supported in
|
**NOTE: Until otherwise stated, only the Intel GPU variant is supported in
|
||||||
Libreboot.**
|
Libreboot.**
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
./mk -b coreboot hp8470pintel_16mb
|
./mk -b coreboot hp8470pintel_16mb
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
============
|
------------
|
||||||
|
|
||||||
Insert binary files
|
### Insert binary files
|
||||||
-------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
to adhere to this advice will result in a bricked machine)
|
to adhere to this advice will result in a bricked machine)
|
||||||
|
|
||||||
Set MAC address
|
### Set MAC address
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
**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.
|
||||||
This is to prevent short circuiting and power surges while flashing.**
|
This is to prevent short circuiting and power surges while flashing.**
|
||||||
|
|
1
site/docs/install/hp8470p.md.description
Normal file
1
site/docs/install/hp8470p.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8470p.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook 8560w
|
title: Install Libreboot on HP EliteBook 8560w
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -31,12 +33,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -54,8 +56,16 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
These next sections will teach you how to install Libreboot, on your
|
||||||
|
HP EliteBook 8560w laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
|
Vendor manual [here](https://web.archive.org/web/20240629174138/https://h10032.www1.hp.com/ctg/Manual/c03424153.pdf).
|
||||||
|
|
||||||
**Unavailable in Libreboot 20240126 or earlier. You must [compile from
|
**Unavailable in Libreboot 20240126 or earlier. You must [compile from
|
||||||
source](../build/), or use a release newer than 20240126.**
|
source](../build/), or use a release newer than 20240126.**
|
||||||
|
@ -64,8 +74,7 @@ This is a beastly 15" Sandy Bridge mobile workstation from HP.
|
||||||
|
|
||||||
**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.**
|
||||||
|
|
||||||
GPU
|
### GPU
|
||||||
---
|
|
||||||
|
|
||||||
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,
|
||||||
only Quadro 1000M and 2000M (which shipped with the laptop originally) have
|
only Quadro 1000M and 2000M (which shipped with the laptop originally) have
|
||||||
|
@ -89,38 +98,33 @@ If you have an eDP panel, you should be able to use newer cards than that.
|
||||||
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
|
||||||
everything *should* work. **However, this is currently untested.**
|
everything *should* work. **However, this is currently untested.**
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
./mk -b coreboot hp8560w_8mb
|
./mk -b coreboot hp8560w_8mb
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
============
|
------------
|
||||||
|
|
||||||
Insert binary files
|
### Insert binary files
|
||||||
-------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
to adhere to this advice will result in a bricked machine)
|
to adhere to this advice will result in a bricked machine)
|
||||||
|
|
||||||
Set MAC address
|
### Set MAC address
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
### Flash a ROM image (hardware)
|
||||||
-----------------
|
|
||||||
|
|
||||||
**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.
|
||||||
This is to prevent short circuiting and power surges while flashing.**
|
This is to prevent short circuiting and power surges while flashing.**
|
||||||
|
|
1
site/docs/install/hp8560w.md.description
Normal file
1
site/docs/install/hp8560w.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8560w.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: HP EliteBook Folio 9470m
|
title: Install Libreboot on HP EliteBook Folio 9470m
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -34,21 +36,31 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Introduction
|
Open source BIOS/UEFI firmware
|
||||||
============
|
------------------------------
|
||||||
|
|
||||||
|
These sections will teach you how to install Libreboot, on your
|
||||||
|
HP EliteBook Folio 9470m laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard.
|
HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard.
|
||||||
|
|
||||||
|
Vendor manual [here](https://web.archive.org/web/20240509202822/http://h10032.www1.hp.com/ctg/Manual/c03909856.pdf).
|
||||||
|
|
||||||
Libreboot has support for this, in the Git repository and release versions
|
Libreboot has support for this, in the Git repository and release versions
|
||||||
from Libreboot 20230423 onwards.
|
from Libreboot 20230423 onwards.
|
||||||
|
|
||||||
Installation of Libreboot
|
Install Libreboot
|
||||||
=========================
|
-----------------
|
||||||
|
|
||||||
You must first compile the Libreboot ROM
|
You must first compile the Libreboot ROM
|
||||||
|
|
||||||
./mk -b coreboot hp9470m_16mb
|
./mk -b coreboot hp9470m_16mb
|
||||||
|
|
||||||
|
**You can also use release images, instead of compiling, but please make
|
||||||
|
sure to follow the notes below about vendorfile insertion, first!**
|
||||||
|
|
||||||
More information about building ROM images can be found in
|
More information about building ROM images can be found in
|
||||||
the [build guide](../build).
|
the [build guide](../build).
|
||||||
|
|
||||||
|
@ -69,8 +81,7 @@ in the same guide linked above, or read the nvmutil manual:
|
||||||
|
|
||||||
[Modify MAC addresses with nvmutil](../install/nvmutil.md).
|
[Modify MAC addresses with nvmutil](../install/nvmutil.md).
|
||||||
|
|
||||||
Disassembly
|
### Disassembly
|
||||||
-----------
|
|
||||||
|
|
||||||
Remove the battery.
|
Remove the battery.
|
||||||
|
|
||||||
|
@ -91,6 +102,8 @@ Some part of the board might turn on when programming. If programming fails,
|
||||||
you might have to attach the laptop to a charger. Make sure the laptop
|
you might have to attach the laptop to a charger. Make sure the laptop
|
||||||
powers off before running flashprog. No LEDs should be lit.
|
powers off before running flashprog. No LEDs should be lit.
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
|
|
1
site/docs/install/hp9470m.md.description
Normal file
1
site/docs/install/hp9470m.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
HP EliteBook Folio 9470m added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader.
|
|
@ -10,7 +10,8 @@ can modify the ifd file with coreboot's ifdtool. You can use nvmutil to modify
|
||||||
the GbE NVM MAC address**
|
the GbE NVM MAC address**
|
||||||
|
|
||||||
**If all you want to do is change the MAC address, you might use `nvmutil`
|
**If all you want to do is change the MAC address, you might use `nvmutil`
|
||||||
instead. See: [nvmutil documentation](../install/nvmutil.md).**
|
instead. See: [nvmutil documentation](../install/nvmutil.md), or use
|
||||||
|
the [inject script](ivy_has_common.md).**
|
||||||
|
|
||||||
The documentation below is *still valid*, if you actually want to use ich9utils.
|
The documentation below is *still valid*, if you actually want to use ich9utils.
|
||||||
You can find it in older Libreboot releases, up to Libreboot 20230625. The only
|
You can find it in older Libreboot releases, up to Libreboot 20230625. The only
|
||||||
|
@ -26,7 +27,7 @@ scrapped.
|
||||||
Anyway, ich9utils documentation:
|
Anyway, ich9utils documentation:
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
============
|
------------
|
||||||
|
|
||||||
The `ich9utils` utility from Libreboot is used to manipulate Intel Flash
|
The `ich9utils` utility from Libreboot is used to manipulate Intel Flash
|
||||||
Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically,
|
Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically,
|
||||||
|
@ -74,7 +75,7 @@ More information about the ME can be found at
|
||||||
Another project: <http://io.netgarage.org/me/>
|
Another project: <http://io.netgarage.org/me/>
|
||||||
|
|
||||||
ich9utils
|
ich9utils
|
||||||
=========
|
---------
|
||||||
|
|
||||||
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
|
||||||
`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
|
||||||
|
@ -84,7 +85,7 @@ Go in there and type `make` to get the binaries: `ich9deblob`, `ich9gen`
|
||||||
and `ich9show`.
|
and `ich9show`.
|
||||||
|
|
||||||
ICH9 show utility {#ich9show}
|
ICH9 show utility {#ich9show}
|
||||||
================
|
---------------------------
|
||||||
|
|
||||||
The *ich9show* utility outputs the entire contents of the descriptor and GbE
|
The *ich9show* utility outputs the entire contents of the descriptor and GbE
|
||||||
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
|
||||||
|
@ -92,7 +93,7 @@ format (Pandoc variant) so that it can be converted easily into various
|
||||||
formats. It could even be piped *directly* into pandoc!
|
formats. It could even be piped *directly* into pandoc!
|
||||||
|
|
||||||
ICH9 gen utility {#ich9gen}
|
ICH9 gen utility {#ich9gen}
|
||||||
================
|
---------------------------
|
||||||
|
|
||||||
When you simply run `ich9gen` without any arguments, it generates
|
When you simply run `ich9gen` without any arguments, it generates
|
||||||
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
|
||||||
|
@ -184,8 +185,7 @@ Your libreboot.rom image is now ready to be flashed on the system. Refer
|
||||||
back to [../install/\#flashprog](../install/#flashprog) for how to flash
|
back to [../install/\#flashprog](../install/#flashprog) for how to flash
|
||||||
it.
|
it.
|
||||||
|
|
||||||
Write-protecting the flash chip
|
### Write-protecting the flash chip
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
The `ich9gen` utility (see below) generates two types of descriptor+GbE setup:
|
The `ich9gen` utility (see below) generates two types of descriptor+GbE setup:
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ the contents of flash).
|
||||||
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.
|
||||||
|
|
||||||
ICH9 deblob utility {#ich9deblob}
|
ICH9 deblob utility {#ich9deblob}
|
||||||
===================
|
-----------------------------------
|
||||||
|
|
||||||
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
|
||||||
adapted for other systems that use the GM45 chipset).
|
adapted for other systems that use the GM45 chipset).
|
||||||
|
@ -209,7 +209,7 @@ not rely on dumping the factory.rom image (whereas, ich9deblob does).
|
||||||
Simply speaking, `ich9deblob` takes an original dump of the boot flash, where
|
Simply speaking, `ich9deblob` takes an original dump of the boot flash, where
|
||||||
that boot flash contains a descriptor that defines the existence of Intel ME,
|
that boot flash contains a descriptor that defines the existence of Intel ME,
|
||||||
and modifies it. The Intel Flash Descriptor is modified to disable the ME
|
and modifies it. The Intel Flash Descriptor is modified to disable the ME
|
||||||
region. It disables the ME itself aswell. The GbE region is moved to the
|
region. It disables the ME itself as well. The GbE region is moved to the
|
||||||
location just after the descriptor. The BIOS region is specified as being
|
location just after the descriptor. The BIOS region is specified as being
|
||||||
after the descriptor+GbE regions, filling the rest of the boot flash.
|
after the descriptor+GbE regions, filling the rest of the boot flash.
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ back to [index.md/\#gm45](index.md/#gm45) for how to flash
|
||||||
it.
|
it.
|
||||||
|
|
||||||
demefactory utility {#demefactory}
|
demefactory utility {#demefactory}
|
||||||
===================
|
----------------------------------
|
||||||
|
|
||||||
This utility has never been tested, officially, but it *should* work.
|
This utility has never been tested, officially, but it *should* work.
|
||||||
|
|
||||||
|
|
1
site/docs/install/ich9utils.md.description
Normal file
1
site/docs/install/ich9utils.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Documentation pertaining to the deprecated ich9utils which can generate or modify Intel Flash Descriptors, and Intel GbE NVM images.
|
|
@ -1,21 +1,34 @@
|
||||||
---
|
---
|
||||||
title: Libreboot installation guides
|
title: Install Libreboot Open Source BIOS/UEFI boot firmware
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Open source BIOS/UEFI boot firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
With x86 machines, you can use the SeaBIOS or the GNU boot loader named GRUB as
|
||||||
|
a payload. On ARM
|
||||||
|
systems, you can use the U-Boot payload (coreboot still initialises hardware).
|
||||||
|
An x86/x86\_64 U-Boot UEFI payload is also available.
|
||||||
|
|
||||||
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
|
||||||
laptop, desktop and server motherboards.
|
laptop, desktop and server motherboards of Intel/AMD x86/x86\_64 and ARM64
|
||||||
|
platform.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
**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,
|
||||||
regardless of what firmware you currently have and what firmware you're
|
regardless of what firmware you currently have and what firmware you're
|
||||||
re-flashing it with; this includes updates between Libreboot releases. Use
|
re-flashing it with; this includes updates between Libreboot releases. Use
|
||||||
the `-r` option in flashprog instead `-w`, to read from the flash.**
|
the `-r` option in flashprog instead `-w`, to read from the flash.**
|
||||||
|
|
||||||
**SAFETY WARNING!**
|
SAFETY WARNING!
|
||||||
====================================================================
|
---------------
|
||||||
|
|
||||||
**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
LIBREBOOT](../../news/safety.md).**]
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
**If you're using release ROMs, some files may be missing inside them, and must
|
**If you're using release ROMs, some files may be missing inside them, and must
|
||||||
be added. See: [Inserting Vendor Files](ivy_has_common.md).**
|
be added. See: [Inserting Vendor Files](ivy_has_common.md).**
|
||||||
|
@ -23,7 +36,7 @@ be added. See: [Inserting Vendor Files](ivy_has_common.md).**
|
||||||
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.
|
||||||
|
|
||||||
Install Libreboot via external flashing
|
Install Libreboot via external flashing
|
||||||
=================
|
---------------------------------------
|
||||||
|
|
||||||
Refer to the following article:\
|
Refer to the following article:\
|
||||||
[Externally rewrite 25xx NOR flash via SPI protocol](spi.md)
|
[Externally rewrite 25xx NOR flash via SPI protocol](spi.md)
|
||||||
|
@ -35,7 +48,7 @@ externally or internally - if only external flashing is available, then it's
|
||||||
usually the case that only external dumping is available too.
|
usually the case that only external dumping is available too.
|
||||||
|
|
||||||
Need help?
|
Need help?
|
||||||
==========
|
----------
|
||||||
|
|
||||||
Help is available on [Libreboot IRC](../../contact.md) and other channels.
|
Help is available on [Libreboot IRC](../../contact.md) and other channels.
|
||||||
|
|
||||||
|
@ -48,7 +61,7 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
||||||
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
|
|
||||||
Which systems are supported by Libreboot?
|
Which systems are supported by Libreboot?
|
||||||
========================================
|
-----------------------------------------
|
||||||
|
|
||||||
Before actually reading the installation guides, please ensure that your
|
Before actually reading the installation guides, please ensure that your
|
||||||
system is fully supported by Libreboot. More information about the Libreboot
|
system is fully supported by Libreboot. More information about the Libreboot
|
||||||
|
@ -56,27 +69,21 @@ build system can be found in the [lbmk maintenance manual](../maintain/),
|
||||||
and information about porting new systems in
|
and information about porting new systems in
|
||||||
the [porting manual](../maintain/porting.md).
|
the [porting manual](../maintain/porting.md).
|
||||||
|
|
||||||
With x86 machines, you can use the SeaBIOS or GNU GRUB payloads. On ARM
|
|
||||||
systems, you can use the U-Boot payload (coreboot still initialises hardware).
|
|
||||||
|
|
||||||
Libreboot currently supports the following systems:
|
Libreboot currently supports the following systems:
|
||||||
|
|
||||||
Games consoles
|
### Games consoles
|
||||||
--------------
|
|
||||||
|
|
||||||
- [Sony Playstation](playstation.md) (PS1/PSX)
|
- [Sony Playstation](playstation.md) (PS1/PSX)
|
||||||
|
|
||||||
Servers (AMD, x86)
|
### Servers (AMD, x86)
|
||||||
------------------
|
|
||||||
|
|
||||||
- [ASUS KFSN4-DRE motherboard](kfsn4-dre.md)
|
- [ASUS KFSN4-DRE motherboard](kfsn4-dre.md)
|
||||||
- [ASUS KGPE-D16 motherboard](kgpe-d16.md)
|
- [ASUS KGPE-D16 motherboard](kgpe-d16.md)
|
||||||
|
|
||||||
Desktops (AMD, Intel, x86)
|
### Desktops (AMD, Intel, x86)
|
||||||
--------------------------
|
|
||||||
|
|
||||||
- **[Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Also [available to buy
|
- [Dell OptiPlex 3050 Micro](dell3050.html) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)**
|
||||||
with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - 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
|
||||||
- [Acer G43T-AM3](acer_g43t-am3.md)
|
- [Acer G43T-AM3](acer_g43t-am3.md)
|
||||||
- Apple iMac 5,2
|
- Apple iMac 5,2
|
||||||
- [ASUS KCMA-D8 motherboard](kcma-d8.md)
|
- [ASUS KCMA-D8 motherboard](kcma-d8.md)
|
||||||
|
@ -84,7 +91,6 @@ Desktops (AMD, Intel, x86)
|
||||||
research is needed) - 9010 also known to work. No GPIO changes, so it should
|
research is needed) - 9010 also known to work. No GPIO changes, so it should
|
||||||
be safe to flash.
|
be safe to flash.
|
||||||
- [Dell OptiPlex 780 variants e.g. MT, USFF](dell780.md)
|
- [Dell OptiPlex 780 variants e.g. MT, USFF](dell780.md)
|
||||||
- [Dell OptiPlex 3050 Micro](dell3050.md)
|
|
||||||
- [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)**
|
- [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)**
|
||||||
- Dell Precision T1700 (use the same ROM as 9020 MT, but it won't have ECC support)
|
- Dell Precision T1700 (use the same ROM as 9020 MT, but it won't have ECC support)
|
||||||
- [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)**
|
- [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)**
|
||||||
|
@ -94,14 +100,11 @@ Desktops (AMD, Intel, x86)
|
||||||
- Intel D510MO and D410PT motherboards
|
- Intel D510MO and D410PT motherboards
|
||||||
- [Intel D945GCLF](d945gclf.md)
|
- [Intel D945GCLF](d945gclf.md)
|
||||||
|
|
||||||
Laptops (Intel, x86)
|
### Laptops (Intel, x86)
|
||||||
--------------------
|
|
||||||
|
|
||||||
- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.md)
|
- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.html) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)**
|
||||||
- **Lenovo ThinkPad T440p - Also [available
|
- Lenovo ThinkPad T440p
|
||||||
to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)**
|
- Lenovo ThinkPad W541
|
||||||
- **Lenovo ThinkPad W541 - Also [available to
|
|
||||||
buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - NOTE: W540 also compatible (same mainboard, so flash the same ROM)
|
|
||||||
- Lenovo ThinkPad X230 - *Also* available on Minifree: <https://minifree.org/product/libreboot-x230/>
|
- Lenovo ThinkPad X230 - *Also* available on Minifree: <https://minifree.org/product/libreboot-x230/>
|
||||||
- [Apple MacBook1,1 and MacBook2,1](macbook21.md)
|
- [Apple MacBook1,1 and MacBook2,1](macbook21.md)
|
||||||
- [Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel
|
- [Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel
|
||||||
|
@ -129,19 +132,17 @@ Laptops (Intel, x86)
|
||||||
- Lenovo Thinkpad X220 / X200 Tablet
|
- Lenovo Thinkpad X220 / X200 Tablet
|
||||||
- [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md)
|
- [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md)
|
||||||
|
|
||||||
Laptops (ARM, with U-Boot payload)
|
### Laptops (ARM, with U-Boot payload)
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
- [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md)
|
- [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md)
|
||||||
- [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md)
|
- [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md)
|
||||||
|
|
||||||
Emulation
|
### Emulation
|
||||||
---------
|
|
||||||
|
|
||||||
- [Qemu x86 and arm64](../misc/emulation.md)
|
- [Qemu x86 and arm64](../misc/emulation.md)
|
||||||
|
|
||||||
**Disable security before flashing**
|
Disable security before flashing
|
||||||
================================
|
--------------------------------
|
||||||
|
|
||||||
**Before internal flashing, you must first disable `/dev/mem` protections. Make
|
**Before internal flashing, you must first disable `/dev/mem` protections. Make
|
||||||
sure to re-enable them after you're finished.**
|
sure to re-enable them after you're finished.**
|
||||||
|
@ -149,7 +150,7 @@ sure to re-enable them after you're finished.**
|
||||||
**See: [Disabling /dev/mem protection](devmem.md)**
|
**See: [Disabling /dev/mem protection](devmem.md)**
|
||||||
|
|
||||||
ROM image file names
|
ROM image file names
|
||||||
====================
|
--------------------
|
||||||
|
|
||||||
Libreboot ROM images are named like
|
Libreboot ROM images are named like
|
||||||
this: `payload_board_inittype_displaytype_keymap.rom`
|
this: `payload_board_inittype_displaytype_keymap.rom`
|
||||||
|
@ -179,7 +180,7 @@ executed instead, if the primary payload is SeaBIOS, whether that be pure
|
||||||
SeaBIOS or a SeaGRUB setup.
|
SeaBIOS or a SeaGRUB setup.
|
||||||
|
|
||||||
EC firmware updates
|
EC firmware updates
|
||||||
===================
|
-------------------
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -200,31 +201,28 @@ It is recommended that you update to the latest EC firmware version. The
|
||||||
Updating the EC can sometimes provide benefit depending on the vendor. For
|
Updating the EC can sometimes provide benefit depending on the vendor. For
|
||||||
example, they might fix power issues that could then enhance battery life.
|
example, they might fix power issues that could then enhance battery life.
|
||||||
|
|
||||||
ThinkPads
|
### ThinkPads
|
||||||
---------
|
|
||||||
|
|
||||||
See: <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
|
See: <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
|
||||||
|
|
||||||
Otherwise, check the Lenovo website to find the update utility for your
|
Otherwise, check the Lenovo website to find the update utility for your
|
||||||
mainboard.
|
motherboard.
|
||||||
|
|
||||||
HP EliteBooks
|
### HP EliteBooks
|
||||||
-------------
|
|
||||||
|
|
||||||
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
|
||||||
automatically downloads this from HP for each machine, and inserts it, so
|
automatically downloads this from HP for each machine, and inserts it, so
|
||||||
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
|
||||||
inserted](ivy_has_common.md) if using release images.
|
inserted](ivy_has_common.md) if using release images.
|
||||||
|
|
||||||
Other
|
### Other
|
||||||
-----
|
|
||||||
|
|
||||||
The same wisdom applies to other laptop vendors.
|
The same wisdom applies to other laptop vendors.
|
||||||
|
|
||||||
Non-laptops typically do not have embedded controllers in them.
|
Non-laptops typically do not have embedded controllers in them.
|
||||||
|
|
||||||
Libreboot installation instructions
|
Libreboot installation instructions
|
||||||
===================================
|
-----------------------------------
|
||||||
|
|
||||||
In general, if Libreboot is already running, you can skip
|
In general, if Libreboot is already running, you can skip
|
||||||
towards the final section on this page, which provides general internal
|
towards the final section on this page, which provides general internal
|
||||||
|
@ -239,8 +237,7 @@ Therefore, before following generic guides, make sure to check first whether
|
||||||
your board has special instructions, otherwise use the generic guide at the
|
your board has special instructions, otherwise use the generic guide at the
|
||||||
end of this article.
|
end of this article.
|
||||||
|
|
||||||
Intel GbE MAC address (IFD-based systems)
|
### Intel GbE MAC address (IFD-based systems)
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -250,8 +247,7 @@ flash, and can (must) be changed prior to installation.
|
||||||
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
|
||||||
this modification to the ROM image, before flashing it.
|
this modification to the ROM image, before flashing it.
|
||||||
|
|
||||||
Flash lockdown / boot security
|
### Flash lockdown / boot security
|
||||||
-------------------
|
|
||||||
|
|
||||||
This is referred to informally as *Secure libreBoot*.
|
This is referred to informally as *Secure libreBoot*.
|
||||||
|
|
||||||
|
@ -263,10 +259,9 @@ See: [GRUB hardening / Secure libreBoot](../linux/grub_hardening.md)
|
||||||
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
|
||||||
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).
|
||||||
|
|
||||||
Updating an existing installation
|
### Updating an existing installation
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
Unless otherwise stated, in sections pertaining to each mainboard below,
|
Unless otherwise stated, in sections pertaining to each motherboard below,
|
||||||
an existing Libreboot installation can be updated via internal flashing,
|
an existing Libreboot installation can be updated via internal flashing,
|
||||||
without any special steps; simply follow the general internal flashing
|
without any special steps; simply follow the general internal flashing
|
||||||
guide, in the final section further down this page.
|
guide, in the final section further down this page.
|
||||||
|
@ -278,33 +273,29 @@ If you currently have the factory firmware, you probably need to flash
|
||||||
externally; on *some* machines, internal flashing is possible, usually with
|
externally; on *some* machines, internal flashing is possible, usually with
|
||||||
special steps required that differ from updating an existing installation.
|
special steps required that differ from updating an existing installation.
|
||||||
|
|
||||||
The next sections will pertain to specific mainboards, where indicated,
|
The next sections will pertain to specific motherboards, where indicated,
|
||||||
followed by general internal flashing instructions where applicable.
|
followed by general internal flashing instructions where applicable.
|
||||||
|
|
||||||
HP EliteBook 820 G2 (internal and external)
|
### HP EliteBook 820 G2 (internal and external)
|
||||||
-------------------
|
|
||||||
|
|
||||||
See: [HP EliteBook 820 G2 flashing guide](hp820g2.md)
|
See: [HP EliteBook 820 G2 flashing guide](hp820g2.md)
|
||||||
|
|
||||||
The flashprog command is identical, except programmer selection, on external
|
The flashprog command is identical, except programmer selection, on external
|
||||||
and internal flashing; internal is only possible if you already have Libreboot.
|
and internal flashing; internal is only possible if you already have Libreboot.
|
||||||
|
|
||||||
HP EliteBook 8560w (vendor BIOS)
|
### HP EliteBook 8560w (vendor BIOS)
|
||||||
--------------------
|
|
||||||
|
|
||||||
If you have the factory
|
If you have the factory
|
||||||
firmware: [HP 8560w external flashing guide](hp8560w.md)
|
firmware: [HP 8560w external flashing guide](hp8560w.md)
|
||||||
|
|
||||||
Dell Latitude laptops (vendor BIOS)
|
### Dell Latitude laptops (vendor BIOS)
|
||||||
---------------------
|
|
||||||
|
|
||||||
See: [Dell Latitude flashing guide](latitude.md)
|
See: [Dell Latitude flashing guide](latitude.md)
|
||||||
|
|
||||||
This applies to all supported Dell Latitude models. Remember to [update the
|
This applies to all supported Dell Latitude models. Remember to [update the
|
||||||
MAC address with nvmutil](nvmutil.md), before flashing.
|
MAC address with nvmutil](nvmutil.md), before flashing.
|
||||||
|
|
||||||
ThinkPad X200/T400/T500/W500/R400/R500
|
### ThinkPad X200/T400/T500/W500/R400/R500
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
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
|
||||||
Libreboot, because the original firmware restricts writes to the flash.
|
Libreboot, because the original firmware restricts writes to the flash.
|
||||||
|
@ -325,35 +316,30 @@ You can find WSON8 probes online, that are similar to a SOIC8/SOIC16 clip. Your
|
||||||
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
|
||||||
luck with that.
|
luck with that.
|
||||||
|
|
||||||
Intel D510MO/D410PT (vendor BIOS)
|
### Intel D510MO/D410PT (vendor BIOS)
|
||||||
-----------------------
|
|
||||||
|
|
||||||
See: [External flashing guide](spi.md) - both boards are compatible with
|
See: [External flashing guide](spi.md) - both boards are compatible with
|
||||||
the same image.
|
the same image.
|
||||||
|
|
||||||
Gigabyte GA-G41M-ES2L (vendor BIOS)
|
### Gigabyte GA-G41M-ES2L (vendor BIOS)
|
||||||
---------------------
|
|
||||||
|
|
||||||
Internal flashing is possible, from factory BIOS to Libreboot, but special
|
Internal flashing is possible, from factory BIOS to Libreboot, but special
|
||||||
steps are required.
|
steps are required.
|
||||||
|
|
||||||
See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md)
|
See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md)
|
||||||
|
|
||||||
Acer G43T-AM3 (vendor BIOS)
|
### Acer G43T-AM3 (vendor BIOS)
|
||||||
--------------------
|
|
||||||
|
|
||||||
See: [Acer G43T-AM3](acer_g43t-am3.md)
|
See: [Acer G43T-AM3](acer_g43t-am3.md)
|
||||||
|
|
||||||
MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS)
|
### MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS)
|
||||||
-------------------------
|
|
||||||
|
|
||||||
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
|
||||||
be flashed internally. iMac 5,2 can be flashed internally.
|
be flashed internally. iMac 5,2 can be flashed internally.
|
||||||
|
|
||||||
Also check the [Macbook2,1 hardware page](macbook21.md)
|
Also check the [Macbook2,1 hardware page](macbook21.md)
|
||||||
|
|
||||||
ASUS KCMA-D8 / KGPE-D16 (vendor BIOS)
|
### ASUS KCMA-D8 / KGPE-D16 (vendor BIOS)
|
||||||
--------------------------
|
|
||||||
|
|
||||||
[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
|
||||||
the [KGPE-D16 hardware page](kgpe-d16.md).
|
the [KGPE-D16 hardware page](kgpe-d16.md).
|
||||||
|
@ -363,8 +349,7 @@ Further information is available on the [KCMA-D8 page](kcma-d8.md).
|
||||||
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
|
||||||
IC (DIP-8). Refer to the external flashing guide.
|
IC (DIP-8). Refer to the external flashing guide.
|
||||||
|
|
||||||
ASUS KFSN4-DRE (vendor BIOS)
|
### ASUS KFSN4-DRE (vendor BIOS)
|
||||||
-------------------------
|
|
||||||
|
|
||||||
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
|
||||||
example of the push pin as a proof of concept:
|
example of the push pin as a proof of concept:
|
||||||
|
@ -375,27 +360,23 @@ See: [ASUS KFSN4-DRE guide](kfsn4-dre.md)
|
||||||
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
|
||||||
internally.
|
internally.
|
||||||
|
|
||||||
Intel D945GCLF (vendor BIOS)
|
### Intel D945GCLF (vendor BIOS)
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
See: [Intel D945GCLF flashing guide](d945gclf.md)
|
See: [Intel D945GCLF flashing guide](d945gclf.md)
|
||||||
|
|
||||||
Dell OptiPlex 3050 Micro (vendor BIOS)
|
### Dell OptiPlex 3050 Micro (vendor BIOS)
|
||||||
---------------------
|
|
||||||
|
|
||||||
Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible.
|
Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible.
|
||||||
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
|
||||||
disable the Boot Guard on this Intel 7th gen board.
|
disable the Boot Guard on this Intel 7th gen board.
|
||||||
|
|
||||||
Dell OptiPlex 7010/9010 SFF (vendor BIOS)
|
### Dell OptiPlex 7010/9010 SFF (vendor BIOS)
|
||||||
---------------------
|
|
||||||
|
|
||||||
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.
|
||||||
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
|
||||||
ROM is only for SFF).
|
ROM is only for SFF).
|
||||||
|
|
||||||
Dell OptiPlex 7010/9010 MT (vendor BIOS)
|
### Dell OptiPlex 7010/9010 MT (vendor BIOS)
|
||||||
---------------------
|
|
||||||
|
|
||||||
This board is essentially identical to the Dell Precision T1650, except that
|
This board is essentially identical to the Dell Precision T1650, except that
|
||||||
it does not support ECC memory. Same wiring.
|
it does not support ECC memory. Same wiring.
|
||||||
|
@ -403,22 +384,19 @@ it does not support ECC memory. Same wiring.
|
||||||
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
|
||||||
variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*.
|
variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*.
|
||||||
|
|
||||||
Dell Precision T1650 desktop
|
### Dell Precision T1650 desktop
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Refer to the [T1650 hardware page](t1650.md). External flashing
|
Refer to the [T1650 hardware page](t1650.md). External flashing
|
||||||
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
|
||||||
vendor firmware, to Libreboot).
|
vendor firmware, to Libreboot).
|
||||||
|
|
||||||
Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700
|
### Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Refer to the [7020/9020 hardware page](dell9020.md). Internal
|
Refer to the [7020/9020 hardware page](dell9020.md). Internal
|
||||||
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
|
||||||
Mode jumper.
|
Mode jumper.
|
||||||
|
|
||||||
HP EliteBook laptops (vendor BIOS)
|
### HP EliteBook laptops (vendor BIOS)
|
||||||
--------------------
|
|
||||||
|
|
||||||
Refer to the [hardware page]() for info about HP laptops, and
|
Refer to the [hardware page]() for info about HP laptops, and
|
||||||
read the [external flashing guide](spi.md).
|
read the [external flashing guide](spi.md).
|
||||||
|
@ -436,18 +414,15 @@ Links to specific HP laptop pages:
|
||||||
These pages provide more info about external flashing. You must remember
|
These pages provide more info about external flashing. You must remember
|
||||||
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.
|
||||||
|
|
||||||
HP Elite 8200 SFF (vendor BIOS)
|
### HP Elite 8200 SFF (vendor BIOS)
|
||||||
-------------------------
|
|
||||||
|
|
||||||
See: [HP Elite 8200 SFF install guide](hp8200sff.md)
|
See: [HP Elite 8200 SFF install guide](hp8200sff.md)
|
||||||
|
|
||||||
HP Elite 8300 USDT (vendor BIOS)
|
### HP Elite 8300 USDT (vendor BIOS)
|
||||||
----------------------------
|
|
||||||
|
|
||||||
See: [HP Elite 8200 USDT install guide](hp8300usdt.md)
|
See: [HP Elite 8200 USDT install guide](hp8300usdt.md)
|
||||||
|
|
||||||
ThinkPad X220/X220T/T420/T420s/T520
|
### ThinkPad X220/X220T/T420/T420s/T520
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
T420/T520: [T420 flash instructions](t420_external.md)
|
T420/T520: [T420 flash instructions](t420_external.md)
|
||||||
|
|
||||||
|
@ -461,8 +436,7 @@ internally; you must use [an external flasher](spi.md).
|
||||||
Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220
|
Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220
|
||||||
has a single 8MB flash, instead of 8MB and 4MB.
|
has a single 8MB flash, instead of 8MB and 4MB.
|
||||||
|
|
||||||
ThinkPad X230/T430/T530/W530/X230T
|
### ThinkPad X230/T430/T530/W530/X230T
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
Internal flashing from vendor BIOS to Libreboot is possible, but not
|
Internal flashing from vendor BIOS to Libreboot is possible, but not
|
||||||
recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md).
|
recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md).
|
||||||
|
@ -472,8 +446,7 @@ See: [ThinkPad X230 install guide](x230_external.md).
|
||||||
|
|
||||||
Otherwise, refer to [external SPI flashing](spi.md).
|
Otherwise, refer to [external SPI flashing](spi.md).
|
||||||
|
|
||||||
ThinkPad T60/X60/X60Tablet/X60S
|
### ThinkPad T60/X60/X60Tablet/X60S
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -566,23 +539,20 @@ bootblock, set bucts back to zero:
|
||||||
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
|
||||||
guide further down on this page.
|
guide further down on this page.
|
||||||
|
|
||||||
ThinkPad T480/T480S (vendor BIOS)
|
### ThinkPad T480/T480S (vendor BIOS)
|
||||||
----------------------
|
|
||||||
|
|
||||||
See:
|
See:
|
||||||
|
|
||||||
* [ThinkPad T480/T480S](t480.md)
|
* [ThinkPad T480/T480S](t480.md)
|
||||||
|
|
||||||
Thinkpad T440p/W541 (vendor BIOS)
|
### Thinkpad T440p/W541 (vendor BIOS)
|
||||||
---------------------
|
|
||||||
|
|
||||||
Guides:
|
Guides:
|
||||||
|
|
||||||
* [ThinkPad T440p flashing guide](t440p_external.md)
|
* [ThinkPad T440p flashing guide](t440p_external.md)
|
||||||
* [ThinkPad W541 flashing guide](w541_external.md)
|
* [ThinkPad W541 flashing guide](w541_external.md)
|
||||||
|
|
||||||
HP EliteBook laptops (vendor BIOS)
|
### HP EliteBook laptops (vendor BIOS)
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Each machine has it's own guide:
|
Each machine has it's own guide:
|
||||||
|
|
||||||
|
@ -595,16 +565,14 @@ Each machine has it's own guide:
|
||||||
* [HP EliteBook 8560w](hp8560w.md)
|
* [HP EliteBook 8560w](hp8560w.md)
|
||||||
* [HP EliteBook Folio 9470m](hp9470m.md)
|
* [HP EliteBook Folio 9470m](hp9470m.md)
|
||||||
|
|
||||||
HP Elite desktops (vendor BIOS)
|
### HP Elite desktops (vendor BIOS)
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Each machine has it's own guide:
|
Each machine has it's own guide:
|
||||||
|
|
||||||
* [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)
|
||||||
* [HP Elite 8300 USDT](hp8300usdt.md)
|
* [HP Elite 8300 USDT](hp8300usdt.md)
|
||||||
|
|
||||||
ARM-based Chromebooks
|
### ARM-based Chromebooks
|
||||||
---------------------
|
|
||||||
|
|
||||||
See: [Chromebook flashing instructions](chromebooks.md)
|
See: [Chromebook flashing instructions](chromebooks.md)
|
||||||
|
|
||||||
|
@ -613,8 +581,7 @@ the x86 machines, because the Chromebooks still use flashrom with
|
||||||
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
|
||||||
need to flash externally, due to Google's security model.
|
need to flash externally, due to Google's security model.
|
||||||
|
|
||||||
QEMU (arm64 and x86)
|
### QEMU (arm64 and x86)
|
||||||
--------------------
|
|
||||||
|
|
||||||
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
|
||||||
payloads and generally trying out Libreboot, without requiring real hardware.
|
payloads and generally trying out Libreboot, without requiring real hardware.
|
||||||
|
@ -622,12 +589,12 @@ payloads and generally trying out Libreboot, without requiring real hardware.
|
||||||
See: [Libreboot QEMU guide](../misc/emulation.md)
|
See: [Libreboot QEMU guide](../misc/emulation.md)
|
||||||
|
|
||||||
Install via host CPU (internal flashing)
|
Install via host CPU (internal flashing)
|
||||||
========================================
|
----------------------------------------
|
||||||
|
|
||||||
NOTE: This mainly applies to the x86 machines.
|
NOTE: This mainly applies to the x86 machines.
|
||||||
|
|
||||||
Please check other sections listed above, to see if there is anything
|
Please check other sections listed above, to see if there is anything
|
||||||
pertaining to your mainboard. Internal flashing means that you boot Linux or
|
pertaining to your motherboard. Internal flashing means that you boot Linux or
|
||||||
BSD on the target machine, and run `flashprog` there, flashing the machine
|
BSD on the target machine, and run `flashprog` there, flashing the machine
|
||||||
directly.
|
directly.
|
||||||
|
|
||||||
|
@ -636,14 +603,13 @@ directly.
|
||||||
Internal flashing is often unavailable with the factory firmware, but it is
|
Internal flashing is often unavailable with the factory firmware, but it is
|
||||||
usually possible when Libreboot is running (barring special circumstances).
|
usually possible when Libreboot is running (barring special circumstances).
|
||||||
|
|
||||||
Run flashprog on host CPU
|
### Run flashprog on host CPU
|
||||||
------------------------
|
|
||||||
|
|
||||||
**Always remember to [insert vendor files](ivy_has_common.md), when using
|
**Always remember to [insert vendor files](ivy_has_common.md), when using
|
||||||
release images. Otherwise, these files are added automatically at build
|
release images. Otherwise, these files are added automatically at build
|
||||||
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).**
|
||||||
|
|
||||||
### Flash chip size
|
#### Flash chip size
|
||||||
|
|
||||||
Use this to find out:
|
Use this to find out:
|
||||||
|
|
||||||
|
@ -651,7 +617,7 @@ Use this to find out:
|
||||||
|
|
||||||
In the output will be information pertaining to your boot flash.
|
In the output will be information pertaining to your boot flash.
|
||||||
|
|
||||||
### Howto: read/write/erase the boot flash
|
#### Howto: read/write/erase the boot flash
|
||||||
|
|
||||||
How to read the current chip contents:
|
How to read the current chip contents:
|
||||||
|
|
||||||
|
@ -665,7 +631,7 @@ How to erase and rewrite the chip contents:
|
||||||
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
|
||||||
|
|
||||||
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
|
||||||
the safety checks in flashprog. Flashrom and coreboot change a lot, over the years,
|
the safety checks in flashprog. Flashprog and coreboot change a lot, over the years,
|
||||||
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
|
||||||
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`.
|
||||||
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
|
||||||
|
@ -681,7 +647,7 @@ NOTE: there are exceptions where the above is not possible. Read about them in
|
||||||
the sections below:
|
the sections below:
|
||||||
|
|
||||||
Removed boards
|
Removed boards
|
||||||
==============
|
--------------
|
||||||
|
|
||||||
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
|
||||||
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:
|
||||||
|
@ -698,8 +664,7 @@ re-adding them at a later date. They were removed due to issues. List:
|
||||||
- [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md)
|
- [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md)
|
||||||
- Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`)
|
- Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`)
|
||||||
|
|
||||||
NOTES about removed boards
|
### NOTES about removed boards
|
||||||
--------------------------
|
|
||||||
|
|
||||||
**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
|
||||||
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:
|
||||||
|
@ -718,7 +683,7 @@ for now, and have been deleted from the Libreboot 20221214 and 20230319
|
||||||
releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e>
|
releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e>
|
||||||
and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>**
|
and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>**
|
||||||
|
|
||||||
d945gclf: Doesn't boot at all, according to last report. D510MO is still in
|
D945GCLF: Doesn't boot at all, according to last report. D510MO is still in
|
||||||
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
|
||||||
above).
|
above).
|
||||||
|
|
||||||
|
|
1
site/docs/install/index.md.description
Normal file
1
site/docs/install/index.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various laptop, desktop and server motherboards. Boot payloads like GNU GRUB.
|
|
@ -1,74 +1,234 @@
|
||||||
---
|
---
|
||||||
title: Insert vendor files on Sandybridge/Ivybridge/Haswell
|
title: Insert vendor files not included in Libreboot release images
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Please make sure to install [build dependencies](../build/) if following this
|
Open source BIOS/UEFI firmware
|
||||||
guide, and note that this guide assumes you use [lbmk.git](../git.md), not the
|
------------------------------
|
||||||
release archives, even if you're using release *ROM images*, which is fine.
|
|
||||||
|
|
||||||
Coreboot is nominally free software, but requires certain vendor code on some
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
boards, for certain functionalities; we cover this more thoroughly in
|
that replaces proprietary BIOS/UEFI firmware, but some newer boards still
|
||||||
the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob
|
occasionally need code from the hardware manufacturer in order to boot properly.
|
||||||
Reduction Policy](../../news/policy.md).
|
This document will teach you how to handle such a scenario, and how to check
|
||||||
|
for it. For more context, please read Libreboot's [Binary Blob Reduction
|
||||||
|
Policy](../../news/policy.md) and [Freedom Status](../../freedom-status.md)
|
||||||
|
pages.
|
||||||
|
|
||||||
Therefore, you should just follow this guide if in any doubt. Otherwise, the
|
**PLEASE MAKE SURE you read and follow the instructions on this page, prior
|
||||||
freedom status page lists all boards that require vendor files, and it says
|
to flashing Libreboot, if required for your motherboard; failure to heed this
|
||||||
what they are. This is because Libreboot cannot directly distribute some of them,
|
warning can and will result in a soft-brick, which would then necessitate
|
||||||
but they are extracted from vendor updates at build time, and inserted into
|
recovery via [external flashing](spi.md) - regardless, you are advised to
|
||||||
images; when those images are then archived for release, the non-redistributable
|
also read the external flashing guide just in caes, and have an external
|
||||||
filejs are removed.
|
flasher handy in case you need it.**
|
||||||
|
|
||||||
The same logic can be used after the fact, to re-download and re-insert these
|
Even if your board doesn't need vendor firmware inserted, you can also use this
|
||||||
files; the page that you're reading now will tell you how to do so.
|
guide to change the GbE MAC address in the flash, if your board has an Intel
|
||||||
|
Gigabit Ethernet device (where an Intel Flash Descriptor is used).
|
||||||
|
|
||||||
*If in doubt, just follow these instructions anyway; if your board doesn't need
|
WARNING: eCryptfs file name limits
|
||||||
vendor files inserted, nothing will happen. You only need to follow this guide
|
----------------------------------
|
||||||
if you use release ROMs; if you're building directly from source, using the
|
|
||||||
Libreboot build system, then you can just flash the result.*
|
|
||||||
|
|
||||||
Injecting vendor files into ROM
|
Do not run the build system on a eCryptfs file system, because it has
|
||||||
|
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
|
||||||
|
who encrypt their home directory with eCryptfs; regular LUKS encryption will
|
||||||
|
do nicely.
|
||||||
|
|
||||||
|
Install build dependencies first
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
You must determine the correct board name, for your board, based on the list
|
**You will be compiling several small utilities from source code. This means
|
||||||
generated when running this command:
|
you need the compilers and various libraries.**
|
||||||
|
|
||||||
./mk -b coreboot list
|
**Please make sure to install [build dependencies](../build/)** before using this
|
||||||
|
guide, and note that this guide assumes you use [lbmk.git](../../git.md).
|
||||||
|
|
||||||
|
**Failure to adhere to this warning will result in vendor file insertion not
|
||||||
|
working. The insertion must work correctly, prior to Libreboot installation,
|
||||||
|
if your board requires it, otherwise your board simply will not boot.**
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
On *some* boards, but certainly not all of them, certain files are required from
|
||||||
|
the hardware vendor. Libreboot has strict [rules](../../news/policy.md)
|
||||||
|
governing this, and you can find more information on
|
||||||
|
the [Freedom Status](../../freedom-status.md) page.
|
||||||
|
|
||||||
|
Libreboot can't directly distribute *all* of these files, so some of them are
|
||||||
|
downloaded at build-time, and processed for insertion into the firmware images.
|
||||||
|
**On pre-compiled ROM images in releases, these files are removed, and can be
|
||||||
|
re-added using the same automation that was applied during the build process.**
|
||||||
|
|
||||||
|
Examples of these files can be found on
|
||||||
|
the [Freedom Status](../../freedom-status.md) page.
|
||||||
|
|
||||||
|
**If in doubt, you should simply follow these instructions. If your board
|
||||||
|
doesn't need vendor files, the tar archive won't be modified.**
|
||||||
|
|
||||||
|
### MAC address
|
||||||
|
|
||||||
|
Regardless of whether your board needs vendorfiles or not, you can also use
|
||||||
|
this command to change the MAC address on systems with Intel GbE regions in
|
||||||
|
the flash, where an Intel gigabit ethernet device is used.
|
||||||
|
|
||||||
|
For example, a Lenovo ThinkPad X200 doesn't need any files added, but can still
|
||||||
|
have the mac address changed; please continue reading!
|
||||||
|
|
||||||
|
### Injecting vendor files into tarballs
|
||||||
|
|
||||||
|
**WARNING: Older versions of nvmutil used `?` for random characters. Newer
|
||||||
|
versions use `x` instead. If you have an older version, use `?` instead,
|
||||||
|
when generating random characters in MAC addresses.**
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple.
|
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple.
|
||||||
Run the injection script pointing to the release archive you downloaded:
|
Run the injection script pointing to the release archive you downloaded:
|
||||||
|
|
||||||
./vendor inject libreboot-RELEASE_targetname.tar.xz
|
./mk inject libreboot-RELEASE_targetname.tar.xz
|
||||||
|
|
||||||
**You are strongly advised only to insert it on the tarball, because then
|
**NOTE: As of Libreboot 20241206 rev8 or newer, the above command will behave
|
||||||
checksums are verified to ensure that the vendor files were inserted correctly.
|
the same way as if you declared `setmac` without argument, mentioned below:**
|
||||||
Otherwise, you can do it manually on each individual image, specifying the
|
|
||||||
board name with the instructions provided below:**
|
Where a GbE region is present in the flash, you can also use the above command
|
||||||
|
to change the MAC address, by modifying it like so:
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac
|
||||||
|
|
||||||
|
Note that `setmac`, without additional argument, will *randomise* the MAC
|
||||||
|
address, setting a *local*, *unicast* MAC address. You can specify a custom
|
||||||
|
MAC address, like so:
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:01:02
|
||||||
|
|
||||||
|
The `setmac` command, without argument, is technically redundant, since MAC
|
||||||
|
addresses are randomised by default, every time you run the inject script.
|
||||||
|
|
||||||
|
If you wish to *skip* changing the MAC address (not recommended), you can
|
||||||
|
use the `keep` argument, like so:
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac keep
|
||||||
|
|
||||||
|
The `setmac` command works by inserting a reference GbE file, contained within
|
||||||
|
lbmk. The `keep` command makes lbmk *skip* changing your current GbE region;
|
||||||
|
it does not, for example, restore the reference GbE image from lbmk.
|
||||||
|
|
||||||
|
The `setmac` command, when not using `keep`, copied the default GbE file within
|
||||||
|
lbmk for that board, modifying the temporary copy and then inserting that. To
|
||||||
|
insert the *original file*, without modification, you can do this:
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac restore
|
||||||
|
|
||||||
|
The `restore` setting does the same as `setmac` (without `keep`), but skips
|
||||||
|
running `nvmutil`; it also skips building nvmutil. Essentially, this will
|
||||||
|
restore the default MAC address from standard release images.
|
||||||
|
|
||||||
|
The above MAC address is a random example; please make sure to use one that matches
|
||||||
|
your board, if you wish. You can also use randomisation this way; the `x` character
|
||||||
|
will be randomised, e.g.:
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac xx:xx:xx:xx:xx:xx
|
||||||
|
|
||||||
|
You can mix and match arbitrary characters with random ones, e.g.:
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 0x:xx:12:xa:6x:69
|
||||||
|
|
||||||
The script can automatically detect the board as long as you do not change the file name.
|
The script can automatically detect the board as long as you do not change the file name.
|
||||||
You can then find flash-ready ROMs in `/bin/release/`
|
|
||||||
|
|
||||||
Alternatively, you may patch only a single rom file, but you must supply the
|
On Libreboot 20241206 rev8 or newer, releases newer than the 20241206 series,
|
||||||
correct board target name as alluded to above.
|
and in the latest lbmk Git repository branch revisions (`master` branch), the
|
||||||
For example:
|
commands above *directly modify the tarball*.
|
||||||
|
|
||||||
./vendor inject -r x230_libreboot.rom -b x230_12mb
|
Older versions left the tarball unmodified, and extracted the modified images
|
||||||
|
to `bin/release/` - on current behaviour, you inject the tarball and then
|
||||||
|
extract the tarball yourself afterward, to flash the modified images.
|
||||||
|
|
||||||
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
|
### Behaviour changes in Libreboot 20241206 rev8
|
||||||
For example:
|
|
||||||
|
|
||||||
./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
|
*Older* versions of this script would have produced the injected images under
|
||||||
|
the `bin/release/` directory, and/or allow you to do it on specific ROM images.
|
||||||
|
|
||||||
|
The *current* version, pertaining to this documentation, *only* supports injecting
|
||||||
|
tarballs, because the tarball-based mechanism verifies checksums on images,
|
||||||
|
after insertion.
|
||||||
|
|
||||||
|
The older versions of this script would have left the tarball unmodified, while
|
||||||
|
producing `bin/release/` containing your images.
|
||||||
|
|
||||||
|
The *current* version, pertaining to this documentation, modifies the tarball
|
||||||
|
itself. You can inject and un-inject. To un-inject, you can do:
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz nuke
|
||||||
|
|
||||||
|
Running the `nuke` command will remove vendorfiles, and re-generate a file inside
|
||||||
|
the archive named `vendorhashes`. When running regular inject, not `nuke`,
|
||||||
|
the `vendorfiles` file is removed after insertion; this way, subsequent
|
||||||
|
injections are avoided, by detecting whether they're needed on the basis of
|
||||||
|
that file.
|
||||||
|
|
||||||
|
The nuke command is available because Libreboot's build system uses it when
|
||||||
|
producing release archives. You otherwise shouldn't use `nuke` yourself, except
|
||||||
|
for testing purposes or if you're just curious.
|
||||||
|
|
||||||
|
Libreboot 20241206 rev8 have different command structure for the inject script.
|
||||||
|
Older versions could insert into lone ROM images, with a special command, and
|
||||||
|
generally didn't have good error checking. The new version of this script is
|
||||||
|
much safer and easier to use. **These changes are also present in the latest
|
||||||
|
lbmk git repository.**
|
||||||
|
|
||||||
|
ALSO: Non-injected images do, on Libreboot 20241206 rev8 or higher, have 1 byte
|
||||||
|
of padding - yes, *1 byte* - at the end, to make flashprog fail to flash it due
|
||||||
|
to size mismatch versus chip size, and the words `DO_NOT_FLASH` are inserted
|
||||||
|
into the file name. With both of these things, the user is unlikely to flash
|
||||||
|
an image that hasn't been injected.
|
||||||
|
|
||||||
|
After injection, the `DO_NOT_FLASH` file name prefix is removed, as is the
|
||||||
|
padding, so that the injected images are ready to flash, and the tarball is
|
||||||
|
re-generated with these images.
|
||||||
|
|
||||||
|
ALSO: If vendorfiles are not needed, or if an error occurs, modification of
|
||||||
|
the tarball is avoided and it's left alone, UNLESS the following condition is
|
||||||
|
met:
|
||||||
|
|
||||||
|
If no errors occured, but no vendor files are needed, you can still inject a
|
||||||
|
new MAC address, where there is a GbE region. If there isn't a GbE region,
|
||||||
|
such modification is skipped (some boards don't have Intel gigabit ethernet,
|
||||||
|
and might have a different ethernet adapter instead).
|
||||||
|
|
||||||
|
When vendor files are inserted and/or a MAC address is inserted, the tarball
|
||||||
|
is re-generated. MAC address insertion is handled with [nvmutil](nvmutil.md);
|
||||||
|
the steps there are applied automatically.
|
||||||
|
|
||||||
|
Older release images, prior to 20241206 rev8, do not have `DO_NOT_FLASH` or
|
||||||
|
the 1-byte padding, so watch out! However, this script, the new version, is
|
||||||
|
backwards compatible with older releases.
|
||||||
|
|
||||||
|
That's one possible use for the `nuke` command, running it yourself. If you're
|
||||||
|
distributing the older release images, you could inject them, and then nuke
|
||||||
|
them; doing so will re-generate the `vendorhashes` file, *and* retroactively
|
||||||
|
pad them (and add `DO_NOT_FLASH` to the image file names). It would be pointless
|
||||||
|
for Libreboot to retroactively modify the official images in this way, since
|
||||||
|
20241206 rev8 and newer already has this done to it. Just be careful when
|
||||||
|
using the older tarballs.
|
||||||
|
|
||||||
Check that the files were inserted
|
Check that the files were inserted
|
||||||
==================================
|
----------------------------------
|
||||||
|
|
||||||
|
### Automatic verification
|
||||||
|
|
||||||
You *must* ensure that the files were inserted. The inject command automatically
|
You *must* ensure that the files were inserted. The inject command automatically
|
||||||
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
|
||||||
release tarball, but not when running it manually on an individual image;
|
release tarball.
|
||||||
checking it manually is useful for the latter, but you should probably just
|
|
||||||
insert it into the tarball.
|
If there was an error, and/or the checksums didn't match, then the tarball won't
|
||||||
|
be modified. If you're using newer release images with `DO_NOT_FLASH` and
|
||||||
|
the one-byte padding (as described above), that's a good indicator, but older
|
||||||
|
release images didn't have this modification.
|
||||||
|
|
||||||
|
### Manual inspection
|
||||||
|
|
||||||
|
You could check the files manually, if you're paranoid, after insertion.
|
||||||
|
|
||||||
Some examples of how to do that in lbmk:
|
Some examples of how to do that in lbmk:
|
||||||
|
|
||||||
|
@ -85,7 +245,15 @@ below):
|
||||||
./elf/cbfstool/TREENAME/cbfstool libreboot.rom print
|
./elf/cbfstool/TREENAME/cbfstool libreboot.rom print
|
||||||
|
|
||||||
You should check that the files were inserted in cbfs, if needed; for example,
|
You should check that the files were inserted in cbfs, if needed; for example,
|
||||||
EC firmware or MRC firmware.
|
EC firmware or MRC firmware, perhaps FSP.
|
||||||
|
|
||||||
|
FSP is redistributable by Intel, but not with modification. Since coreboot has
|
||||||
|
to de-concatenate FSP into its modules, and modify pointers in the FSP-M module,
|
||||||
|
for raminit, Libreboot treats FSP modules like other injectable vendor files.
|
||||||
|
|
||||||
|
(in the original 20241206 release, FSP was directly baked in; the change
|
||||||
|
described above was applied in Libreboot 20241206 and newer, and the 3050micro
|
||||||
|
image from Libreboot 20241008 was removed from Libreboot's rsync server)
|
||||||
|
|
||||||
Next:
|
Next:
|
||||||
|
|
||||||
|
@ -96,22 +264,28 @@ Run hexdump on it:
|
||||||
|
|
||||||
hexdump flashregion_2_intel_me.bin
|
hexdump flashregion_2_intel_me.bin
|
||||||
|
|
||||||
Check the output. If it's all `0xFF` (all ones) or otherwise isn't a bunch
|
Check the output. If it's all `0xFF` (all ones) or zeroes or otherwise isn't a
|
||||||
of code, then the Intel ME firmware wasn't inserted.
|
bunch of code, then the Intel ME firmware wasn't inserted. You could also run
|
||||||
|
the `me_cleaner` program on this file, to see if it gives you any information,
|
||||||
|
if you're not savvy enough to look at stuff in hexdump.
|
||||||
|
|
||||||
You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms.
|
You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms.
|
||||||
This is because lbmk *automatically* neuters it, disabling it during
|
This is because lbmk *automatically* neuters it, disabling it during
|
||||||
early boot. This is done using `me_cleaner`, which lbmk imports.
|
early boot. This is done using `me_cleaner`, which lbmk imports. If the platform
|
||||||
|
uses MEv11 with Intel Boot Guard, the boot guard is automatically disabled
|
||||||
NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in
|
by processing the MEv11 image with Mate Kukri's [deguard](deguard.md) utility.
|
||||||
the [nvmutil documentation](nvmutil.md).
|
|
||||||
|
|
||||||
Errata
|
Errata
|
||||||
======
|
------
|
||||||
|
|
||||||
|
This section should not concern you, if you're using newer Libreboot releases.
|
||||||
|
This section largely concerns *bugs* which existed in older releases, pertaining
|
||||||
|
to this documentation, and design changes made accordingly.
|
||||||
|
|
||||||
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
|
||||||
included for Haswell; MRC is a blob for raminit, but we now provide libre
|
included for Haswell; MRC is a firmware for raminit, but we now provide native
|
||||||
raminit. The following targets no longer exist in the build system:
|
raminit written by Angel Pons, for the coreboot project. The following targets
|
||||||
|
no longer exist in the build system:
|
||||||
|
|
||||||
* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead)
|
* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead)
|
||||||
* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead)
|
* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead)
|
||||||
|
@ -122,12 +296,33 @@ raminit. The following targets no longer exist in the build system:
|
||||||
* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead)
|
* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead)
|
||||||
* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead)
|
* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead)
|
||||||
|
|
||||||
|
FSP images are also no longer baked in on release images, from
|
||||||
|
Libreboot 20241206 rev8 or higher (or releases newer than the 20241206 series),
|
||||||
|
but the machines that use them still need them; they are injected instead,
|
||||||
|
using the commands shown above on this very page. Older images with FSP baked
|
||||||
|
directly into release images had `_fsp` in the file names; newer images that
|
||||||
|
need it to be injected have `_vfsp` in the file name. Releases from Libreboot
|
||||||
|
20241206 release series at revision 8 or higher, or releases newer than the
|
||||||
|
20241206 series, no longer include `_fsp` images as they are set `release="n"`
|
||||||
|
in the build system; these releases include `_vfsp` images instead. Newer
|
||||||
|
targets added in the future, that need FSP, will also have `_vfsp` in the
|
||||||
|
file name, for consistency.
|
||||||
|
|
||||||
|
To eliminate any doubt: `_fsp` targets were also removed from lbmk,
|
||||||
|
on 1 April 2025. Not everyone was aware of this change, yet the resulting build
|
||||||
|
was identical (when compiling from source). To eliminate all questions about it,
|
||||||
|
the `_fsp` targets were removed entirely. Please use the `_vfsp` targets from
|
||||||
|
now on, when dealing with any machine that uses Intel FSP.
|
||||||
|
|
||||||
This is written as errata because some users may still be using older release
|
This is written as errata because some users may still be using older release
|
||||||
images but on the newer build system from May 2024 onward; you must use the
|
images but on the newer build system from May 2024 onward; you must use the
|
||||||
Libreboot 20240225 release if you want to inject MRC and so on, for these older
|
Libreboot 20240225 release if you want to inject MRC and so on, for these older
|
||||||
targets.
|
targets.
|
||||||
|
|
||||||
Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict,
|
Libreboot's [Binary Blob Reduction Policy](../../news/policy.md) is very strict,
|
||||||
and states: if a blob can be avoided, it must be avoided. Therefore, the MRC
|
and states: if it can be done with free software exclusively, then it should be
|
||||||
is removed on Haswell and Libreboot will only use the libre raminit (called
|
done with free software exclusively. Therefore, the MRC is removed on Haswell
|
||||||
NRI, short for Native Ram Initialisation).
|
and Libreboot will only use the libre raminit (called NRI, short for Native Ram
|
||||||
|
Initialisation).
|
||||||
|
|
||||||
|
The four freedoms are absolute.
|
||||||
|
|
1
site/docs/install/ivy_has_common.md.description
Normal file
1
site/docs/install/ivy_has_common.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your, with vendor code. Libreboot's strict Binary Blob Reduction Policy is observed.
|
|
@ -1,174 +0,0 @@
|
||||||
---
|
|
||||||
title: Insert vendore files on Sandybridge/Ivybridge/Haswell
|
|
||||||
x-toc-enable: true
|
|
||||||
...
|
|
||||||
|
|
||||||
Regarding vendorfile insertion: if unsure, just follow these instructions.
|
|
||||||
If a given target does not require vendor files, none will be inserted.
|
|
||||||
|
|
||||||
**TODO: Re-translate this again to Ukrainian. It was translated before, but
|
|
||||||
the english page got heavily re-written.**
|
|
||||||
|
|
||||||
**NOTE: This page also applies to PM45 machine Dell Latitude E6400 if it
|
|
||||||
contains an Nvidia GPU (Libreboot vendor scripts can insert the VGA ROM)**
|
|
||||||
|
|
||||||
This is not a general purpose installation guide, but you *should read it*
|
|
||||||
before installing Libreboot! *This* guide *must* be followed, no matter what
|
|
||||||
method you use to install Libreboot; even if you compile from source, you should
|
|
||||||
still read this page for later reference.
|
|
||||||
|
|
||||||
For how to use an external programmer see the [25xx NOR flashing guide](/docs/install/spi.html)
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
**PLEASE MAKE SURE you have build dependencies installed first. Although you
|
|
||||||
do not need to re-compile release ROMs, you should follow these instructions
|
|
||||||
before reading the instructions below:
|
|
||||||
<https://libreboot.org/docs/build/#first-install-build-dependencies>**
|
|
||||||
|
|
||||||
Coreboot is nominally free software, but requires certain vendor code on some
|
|
||||||
boards, for certain functionalities; it differs per board, and some boards do
|
|
||||||
not require vendor code of any kind in the flash. We cover this more thoroughly in
|
|
||||||
the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob
|
|
||||||
Reduction Policy](../../news/policy.md).
|
|
||||||
|
|
||||||
Well, not all of these files are freely redistributable. Coreboot does provide
|
|
||||||
vendor files in some cases, if the vendor has allowed it. In other cases,
|
|
||||||
extraction from factory firmware is required, or you can extract them from
|
|
||||||
vendor-supplied updates - Libreboot's build system does the latter.
|
|
||||||
|
|
||||||
When you [compile Libreboot ROM images from source](../build/), Libreboot will
|
|
||||||
automatically download any given vendor files required, for any given board
|
|
||||||
target. This is done without user intervention, and only when absolutely needed
|
|
||||||
to make the machine boot properly.
|
|
||||||
|
|
||||||
The problem?
|
|
||||||
------------
|
|
||||||
|
|
||||||
Well, if the files cannot be freely redistributed, then we can't provide them.
|
|
||||||
So how do we handle *that*, in the context of Libreboot releases?
|
|
||||||
|
|
||||||
The solution
|
|
||||||
------------
|
|
||||||
|
|
||||||
The answer is very simple: these files are **NOT** provided, at all! However,
|
|
||||||
the very same logic used by the build system can be run standalone, to re-insert
|
|
||||||
these vendor files on release ROMs. The `inject` script detects what files are
|
|
||||||
needed for your ROM image.
|
|
||||||
|
|
||||||
The script will detect what board you're inserting on, or you can manually tell
|
|
||||||
it what board, and it will fetch them for you, inserting them, so that your
|
|
||||||
board is ready to flash - flashing it without these required files may result in
|
|
||||||
a brick.
|
|
||||||
|
|
||||||
Vendor file locations
|
|
||||||
--------------
|
|
||||||
|
|
||||||
During auto-download of files, they are saved to these locations within the
|
|
||||||
Libreboot build system:
|
|
||||||
|
|
||||||
* ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will
|
|
||||||
be used by given boards, but the directory name may not match the board
|
|
||||||
target name.
|
|
||||||
* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` -
|
|
||||||
ditto 7010/9010 MT/SFF optiplex machines.
|
|
||||||
* SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/`
|
|
||||||
* Intel MRC firmware, provides raminit on HP EliteBook 820 G2
|
|
||||||
|
|
||||||
The above list refers to the *non-redistributable files*, and these are not
|
|
||||||
directly included in releases. These are auto-downloaded during the build.
|
|
||||||
The `me.bin` files are produced by extracting them from vendor updates and
|
|
||||||
neutering them with `me_cleaner` so that Intel ME is disabled during early boot.
|
|
||||||
|
|
||||||
Inject vendor files into ROM
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
You must determine the correct board name, for your board, based on the list
|
|
||||||
generated when running this command:
|
|
||||||
|
|
||||||
./mk -b coreboot list
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple.
|
|
||||||
Run the injection script pointing to the release archive you downloaded:
|
|
||||||
|
|
||||||
./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz
|
|
||||||
|
|
||||||
The script can automatically detect the board as long as you do not change the file name.
|
|
||||||
You can then find flash-ready ROMs in `/bin/release/`
|
|
||||||
|
|
||||||
Alternatively, you may patch only a single rom file, but you must supply the
|
|
||||||
correct board target name as alluded to above.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
./vendor inject -r x230_libreboot.rom -b x230_12mb
|
|
||||||
|
|
||||||
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
|
|
||||||
|
|
||||||
Check that the files were inserted
|
|
||||||
==================================
|
|
||||||
|
|
||||||
You *must* ensure that the files were inserted.
|
|
||||||
|
|
||||||
Some examples of how to do that in lbmk:
|
|
||||||
|
|
||||||
./update trees -d coreboot TREENAME
|
|
||||||
|
|
||||||
Now you find `cbutitls/default`, which is a directory containing `cbfstool`
|
|
||||||
and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example
|
|
||||||
below):
|
|
||||||
|
|
||||||
./cbutils/default/cbfstool libreboot.rom print
|
|
||||||
|
|
||||||
You should check that the files were inserted in cbfs, if needed; for example,
|
|
||||||
EC firmware or MRC firmware.
|
|
||||||
|
|
||||||
Next:
|
|
||||||
|
|
||||||
./cbutils/default/ifdtool -x libreboot.rom
|
|
||||||
|
|
||||||
This creates several `.bin` files, one of which says `me` in it (Intel ME).
|
|
||||||
Run hexdump on it:
|
|
||||||
|
|
||||||
hexdump flashregion_2_intel_me.bin
|
|
||||||
|
|
||||||
Check the output. If it's all `0xFF` (all ones) or otherwise isn't a bunch
|
|
||||||
of code, then the Intel ME firmware wasn't inserted.
|
|
||||||
|
|
||||||
You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms.
|
|
||||||
This is because lbmk *automatically* neuters it, disabling it during
|
|
||||||
early boot. This is done using `me_cleaner`, which lbmk imports.
|
|
||||||
|
|
||||||
NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in
|
|
||||||
the [nvmutil documentation](nvmutil.md).
|
|
||||||
|
|
||||||
Errata
|
|
||||||
======
|
|
||||||
|
|
||||||
NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer
|
|
||||||
included for Haswell; MRC is a blob for raminit, but we now provide libre
|
|
||||||
raminit. The following targets no longer exist in the build system:
|
|
||||||
|
|
||||||
* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead)
|
|
||||||
* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead)
|
|
||||||
* `w541mrc_12mb` (use `w541_12mb` instead)
|
|
||||||
* `w541bmrc_12mb` (use `w541_12mb` instead)
|
|
||||||
* `dell9020sff_12mb` (use `dell9020sff_nri_12mb` instead)
|
|
||||||
* `dell9020sffbmrc` (use `dell9020sff_nri_12mb` instead)
|
|
||||||
* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead)
|
|
||||||
* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead)
|
|
||||||
|
|
||||||
This is written as errata because some users may still be using older release
|
|
||||||
images but on the newer build system from May 2024 onward; you must use the
|
|
||||||
Libreboot 20240225 release if you want to inject MRC and so on, for these older
|
|
||||||
targets.
|
|
||||||
|
|
||||||
Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict,
|
|
||||||
and states: if a blob can be avoided, it must be avoided. Therefore, the MRC
|
|
||||||
is removed on Haswell and Libreboot will only use the libre raminit (called
|
|
||||||
NRI, short for Native Ram Initialisation).
|
|
|
@ -1,13 +1,26 @@
|
||||||
---
|
---
|
||||||
title: Ivybridge internal flashing
|
title: Install Libreboot internally on Lenovo ThinkPad X230
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
Open source BIOS/UEFI firmware
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Lenovo ThinkPad X230 laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
|
This document demonstrates an *internal flashing* method, by exploiting a
|
||||||
|
little-known security vulnerability in Lenovo's original UEFI firmware.
|
||||||
|
|
||||||
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
Ch1p's guide
|
Ch1p's guide
|
||||||
============
|
------------
|
||||||
|
|
||||||
This page tells you how to flash an ivybridge ThinkPad with Libreboot,
|
This page tells you how to flash an ivybridge ThinkPad with Libreboot,
|
||||||
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
|
||||||
|
@ -34,9 +47,6 @@ coreboot patch:
|
||||||
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
|
||||||
the above guide, so it has been added here to honour him.
|
the above guide, so it has been added here to honour him.
|
||||||
|
|
||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
External flashing still recommended
|
External flashing still recommended
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
@ -56,7 +66,7 @@ or just a dead ThinkPad. Proceed at your own risk!
|
||||||
If you prefer external flashing, see: [external flashing](x230_external.md)
|
If you prefer external flashing, see: [external flashing](x230_external.md)
|
||||||
|
|
||||||
Internal flashing from vendor firmware (ThinkPads only)
|
Internal flashing from vendor firmware (ThinkPads only)
|
||||||
----------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
IVYBRIDGE ONLY:
|
IVYBRIDGE ONLY:
|
||||||
|
|
||||||
|
|
1
site/docs/install/ivy_internal.md.description
Normal file
1
site/docs/install/ivy_internal.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230.
|
|
@ -1,12 +1,17 @@
|
||||||
---
|
---
|
||||||
title: ASUS KCMA-D8 desktop/workstation board
|
title: Install Libreboot on ASUS KCMA-D8
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
TODO: this page is OLD. check that the info is still valid.
|
TODO: this page is OLD. check that the info is still valid.
|
||||||
|
|
||||||
Introduction
|
Open source BIOS/UEFI firmware
|
||||||
============
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
ASUS KCMA-D8 server/workstation motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
Specifications available here:
|
Specifications available here:
|
||||||
<https://www.asus.com/uk/Commercial-Servers-Workstations/KCMAD8/>
|
<https://www.asus.com/uk/Commercial-Servers-Workstations/KCMAD8/>
|
||||||
|
@ -36,7 +41,7 @@ If you currently have the ASUS firmware, please ignore the above link and
|
||||||
instead refer to the section below:
|
instead refer to the section below:
|
||||||
|
|
||||||
Flashing
|
Flashing
|
||||||
========
|
--------
|
||||||
|
|
||||||
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
|
||||||
chip and re-flash it using external hardware.
|
chip and re-flash it using external hardware.
|
||||||
|
@ -56,7 +61,7 @@ Refer to the following guide:\
|
||||||
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
|
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
|
||||||
|
|
||||||
PCI option ROMs
|
PCI option ROMs
|
||||||
===============
|
---------------
|
||||||
|
|
||||||
Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and
|
Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and
|
||||||
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.
|
||||||
|
@ -66,21 +71,21 @@ So for example, if you wish to use an add-on graphics card, you can! It's no
|
||||||
problem, and should work just fine.
|
problem, and should work just fine.
|
||||||
|
|
||||||
CPU coolers
|
CPU coolers
|
||||||
===========
|
-----------
|
||||||
|
|
||||||
With some creativity, standard AM3+ coolers will work fine.
|
With some creativity, standard AM3+ coolers will work fine.
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
CPU compatibility
|
CPU compatibility
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
- Opteron 4100 series: Incompatible
|
- Opteron 4100 series: Incompatible
|
||||||
- Opteron 4200 series: Compatible
|
- Opteron 4200 series: Compatible
|
||||||
- Opteron 4300 series: Compatible
|
- Opteron 4300 series: Compatible
|
||||||
|
|
||||||
Board status (compatibility) {#boardstatus}
|
Board status (compatibility) {#boardstatus}
|
||||||
============================
|
-------------------------------------
|
||||||
|
|
||||||
There are two ways to identify a supported KCMA-D8 board:
|
There are two ways to identify a supported KCMA-D8 board:
|
||||||
|
|
||||||
|
@ -99,24 +104,24 @@ For more detailed information regarding the coreboot port, see
|
||||||
<https://raptorengineeringinc.com/coreboot/kcma-d8-status.php>
|
<https://raptorengineeringinc.com/coreboot/kcma-d8-status.php>
|
||||||
|
|
||||||
Form factor {#formfactor}
|
Form factor {#formfactor}
|
||||||
===========
|
-----------------------
|
||||||
|
|
||||||
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)
|
||||||
specifies board dimensions 305mm x 244mm, this board measures 305mm x 253mm;
|
specifies board dimensions 305mm x 244mm, this board measures 305mm x 253mm;
|
||||||
please ensure that your case supports this extra ~cm in width.
|
please ensure that your case supports this extra ~cm in width.
|
||||||
|
|
||||||
IPMI iKVM module add-on {#ipmi}
|
IPMI iKVM module add-on {#ipmi}
|
||||||
=======================
|
----------------------------
|
||||||
|
|
||||||
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
|
||||||
out-of-band management chip, similar to the [Intel Management
|
out-of-band management chip, similar to the [Intel Management
|
||||||
Engine](../../faq.md#intelme). Fortunately, the firmware is
|
Engine](../../faq.md#intelme). Fortunately, the firmware is
|
||||||
unsigned (possible to replace) and physically separate from the
|
unsigned (possible to replace) and physically separate from the
|
||||||
mainboard since it's on the add-on module, which you don't have to
|
motherboard since it's on the add-on module, which you don't have to
|
||||||
install.
|
install.
|
||||||
|
|
||||||
Flash chips {#flashchips}
|
Flash chips {#flashchips}
|
||||||
===========
|
-----------------------
|
||||||
|
|
||||||
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
|
||||||
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:
|
||||||
|
@ -133,13 +138,13 @@ Ideally, you should not hot-swap. Only remove the IC when the system is
|
||||||
powered down and disconnected from mains.
|
powered down and disconnected from mains.
|
||||||
|
|
||||||
Native graphics initialization {#graphics}
|
Native graphics initialization {#graphics}
|
||||||
==============================
|
-----------------------------------------
|
||||||
|
|
||||||
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
|
||||||
framebuffer display (if it has KMS - kernel mode setting).
|
framebuffer display (if it has KMS - kernel mode setting).
|
||||||
|
|
||||||
NOTE: This section relates to the onboard ASpeed GPU. You *can* use an add-on
|
NOTE: This section relates to the onboard ASpeed GPU. You *can* use an add-on
|
||||||
PCI-E GPU in one of the available slots on the mainboard. Nvidia GTX 780 cards
|
PCI-E GPU in one of the available slots on the motherboard. Nvidia GTX 780 cards
|
||||||
are what libreboot recommends; it has excellent support in Nouveau (free Linux
|
are what libreboot recommends; it has excellent support in Nouveau (free Linux
|
||||||
kernel / mesa driver for Nvidia cards) and generally works well; however, the
|
kernel / mesa driver for Nvidia cards) and generally works well; however, the
|
||||||
performance won't be as high in Nouveau, compared to the non-free Nvidia driver
|
performance won't be as high in Nouveau, compared to the non-free Nvidia driver
|
||||||
|
@ -147,7 +152,7 @@ because the Nouveau driver can't increase the GPU clock (it doesn't know how,
|
||||||
as of 18 March 2021).
|
as of 18 March 2021).
|
||||||
|
|
||||||
Current issues {#issues}
|
Current issues {#issues}
|
||||||
==============
|
----------------------
|
||||||
|
|
||||||
- Opteron 4100 series CPUs are currently incompatible
|
- Opteron 4100 series CPUs are currently incompatible
|
||||||
- LRDIMM memory modules are currently incompatible
|
- LRDIMM memory modules are currently incompatible
|
||||||
|
|
1
site/docs/install/kcma-d8.md.description
Normal file
1
site/docs/install/kcma-d8.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KCMA-D8 motherboard.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: ASUS KFSN4-DRE server/workstation board
|
title: Install Libreboot on ASUS KFSN4-DRE
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ x-toc-enable: true
|
||||||
|----------------------------|------------------------------------------------|
|
|----------------------------|------------------------------------------------|
|
||||||
| **Manufacturer** | ASUS |
|
| **Manufacturer** | ASUS |
|
||||||
| **Name** | KFSN4-DRE |
|
| **Name** | KFSN4-DRE |
|
||||||
| **Released** | ? |
|
| **Released** | 2007 |
|
||||||
| **Chipset** | nVIDIA nForce Professional 2200 |
|
| **Chipset** | nVIDIA nForce Professional 2200 |
|
||||||
| **CPU** | AMD Opteron 2000 series (Barcelona Family) |
|
| **CPU** | AMD Opteron 2000 series (Barcelona Family) |
|
||||||
| **Graphics** | XGI Z9s VGA Controller |
|
| **Graphics** | XGI Z9s VGA Controller |
|
||||||
|
@ -24,12 +24,12 @@ x-toc-enable: true
|
||||||
| **Flash chip** | PLCC 1MiB (Upgradable to 2MiB) |
|
| **Flash chip** | PLCC 1MiB (Upgradable to 2MiB) |
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -48,24 +48,34 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS with GRUB** | Partially works |
|
| **SeaBIOS with GRUB** | Partially works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
ASUS KFSN4-DRE server/workstation motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
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
|
||||||
for building a high-powered workstation. Powered by libreboot.
|
for building a high-powered workstation. Powered by libreboot.
|
||||||
|
|
||||||
Flashing instructions can be found at
|
Flashing instructions can be found at
|
||||||
[../install/\#flashprog](../install/)
|
[../install/\#flashprog](../install/)
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
Form factor {#formfactor}
|
Form factor {#formfactor}
|
||||||
===========
|
---------------------
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
identical, but the position of the screws are different.
|
identical, but the position of the screws are different.
|
||||||
|
|
||||||
Flash chips {#flashchips}
|
Flash chips {#flashchips}
|
||||||
===========
|
-----------------------
|
||||||
|
|
||||||
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
|
||||||
flash size 1MiB (8Mbits), and can be upgraded to 2MiB (16Mbits).
|
flash size 1MiB (8Mbits), and can be upgraded to 2MiB (16Mbits).
|
||||||
|
@ -78,18 +88,18 @@ extractor. These can be found online. See
|
||||||
<http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools>*
|
<http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools>*
|
||||||
|
|
||||||
Native graphics initialization {#graphics}
|
Native graphics initialization {#graphics}
|
||||||
==============================
|
---------------------------------------
|
||||||
|
|
||||||
Native graphics initialization exists (XGI Z9s) for this board.
|
Native graphics initialization exists (XGI Z9s) for this board.
|
||||||
Framebuffer- and text-mode both work. A serial port is also available.
|
Framebuffer- and text-mode both work. A serial port is also available.
|
||||||
|
|
||||||
Memory
|
Memory
|
||||||
======
|
-------
|
||||||
|
|
||||||
DDR2 533/667 Registered ECC. 16 slots. Total capacity up to 64GiB.
|
DDR2 533/667 Registered ECC. 16 slots. Total capacity up to 64GiB.
|
||||||
|
|
||||||
Hex-core CPUs {#hexcore}
|
Hex-core CPUs {#hexcore}
|
||||||
=============
|
---------------------
|
||||||
|
|
||||||
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
|
||||||
(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
|
||||||
|
@ -103,7 +113,8 @@ To be sure your board supports a CPU check the official ASUS website here:
|
||||||
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.
|
||||||
|
|
||||||
Board configurations {#configurations}
|
Board configurations {#configurations}
|
||||||
==============
|
----------------------------------------
|
||||||
|
|
||||||
There are 7 different configurations of this board: "standard", 2S, iKVM,
|
There are 7 different configurations of this board: "standard", 2S, iKVM,
|
||||||
iKVM/IST, SAS, SAS/iKVM and SAS/iKVM/IST.
|
iKVM/IST, SAS, SAS/iKVM and SAS/iKVM/IST.
|
||||||
|
|
||||||
|
@ -122,7 +133,7 @@ The IST versions with PCB revision 1.05G are the ones who are believed to
|
||||||
support the six core Opteron Istanbul processors (2400 and 8400 series).
|
support the six core Opteron Istanbul processors (2400 and 8400 series).
|
||||||
|
|
||||||
Current issues {#issues}
|
Current issues {#issues}
|
||||||
==============
|
-----------------------
|
||||||
|
|
||||||
- There seems to be a 30 second bootblock delay (observed by
|
- There seems to be a 30 second bootblock delay (observed by
|
||||||
tpearson); the system otherwise boots and works as expected. See
|
tpearson); the system otherwise boots and works as expected. See
|
||||||
|
@ -149,7 +160,7 @@ Current issues {#issues}
|
||||||
the USB booting doesn't work.
|
the USB booting doesn't work.
|
||||||
|
|
||||||
Other information
|
Other information
|
||||||
=================
|
------------------
|
||||||
|
|
||||||
[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)
|
||||||
|
|
||||||
|
|
1
site/docs/install/kfsn4-dre.md.description
Normal file
1
site/docs/install/kfsn4-dre.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KFSN4-DRE motherboard.
|
|
@ -3,10 +3,18 @@ title: ASUS KGPE-D16 server/workstation board
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
ASUS KGPE-D16 server/workstation motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
TODO: OLD page. TODO: check that all the info is still valid.
|
TODO: OLD page. TODO: check that all the info is still valid.
|
||||||
|
|
||||||
Introduction
|
Free your BIOS today!
|
||||||
============
|
---------------------
|
||||||
|
|
||||||
This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs
|
This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs
|
||||||
available). It can also be used for building a high-powered workstation.
|
available). It can also be used for building a high-powered workstation.
|
||||||
|
@ -26,34 +34,34 @@ possible to re-flash using software running in Linux on the
|
||||||
KGPE-D16, without using external hardware.
|
KGPE-D16, without using external hardware.
|
||||||
|
|
||||||
CPU compatibility
|
CPU compatibility
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
Opteron 62xx and 63xx CPUs work just fine.
|
Opteron 62xx and 63xx CPUs work just fine.
|
||||||
|
|
||||||
Board status (compatibility) {#boardstatus}
|
Board status (compatibility) {#boardstatus}
|
||||||
============================
|
---------------------
|
||||||
|
|
||||||
See <https://raptorengineeringinc.com/coreboot/kgpe-d16-status.php>.
|
See <https://raptorengineeringinc.com/coreboot/kgpe-d16-status.php>.
|
||||||
|
|
||||||
Form factor {#formfactor}
|
Form factor {#formfactor}
|
||||||
===========
|
----------------------
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
identical, but the position of the screws are different.
|
identical, but the position of the screws are different.
|
||||||
|
|
||||||
IPMI iKVM module add-on {#ipmi}
|
IPMI iKVM module add-on {#ipmi}
|
||||||
=======================
|
--------------------------
|
||||||
|
|
||||||
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
|
||||||
out-of-band management chip, similar to the [Intel Management
|
out-of-band management chip, similar to the [Intel Management
|
||||||
Engine](../../faq.md#intelme). Fortunately, the firmware is
|
Engine](../../faq.md#intelme). Fortunately, the firmware is
|
||||||
unsigned (possibly to replace) and physically separate from the
|
unsigned (possibly to replace) and physically separate from the
|
||||||
mainboard since it's on the add-on module, which you don't have to
|
motherboard since it's on the add-on module, which you don't have to
|
||||||
install.
|
install.
|
||||||
|
|
||||||
Flash chips {#flashchips}
|
Flash chips {#flashchips}
|
||||||
===========
|
--------------------------
|
||||||
|
|
||||||
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
|
||||||
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:
|
||||||
|
@ -72,13 +80,13 @@ This guide shows how to flash the chip:\
|
||||||
[25xx NOR flashing guide](../install/spi.md)
|
[25xx NOR flashing guide](../install/spi.md)
|
||||||
|
|
||||||
Native graphics initialization {#graphics}
|
Native graphics initialization {#graphics}
|
||||||
==============================
|
----------------------------------
|
||||||
|
|
||||||
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
|
||||||
framebuffer display (if it has KMS - kernel mode setting).
|
framebuffer display (if it has KMS - kernel mode setting).
|
||||||
|
|
||||||
Current issues {#issues}
|
Current issues {#issues}
|
||||||
==============
|
----------------------------------
|
||||||
|
|
||||||
- LRDIMM memory modules are currently incompatible
|
- LRDIMM memory modules are currently incompatible
|
||||||
(IT MAY WORK NOWADAYS, TODO TEST)
|
(IT MAY WORK NOWADAYS, TODO TEST)
|
||||||
|
|
1
site/docs/install/kgpe-d16.md.description
Normal file
1
site/docs/install/kgpe-d16.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KGPE-D16 motherboard.
|
|
@ -1,19 +1,33 @@
|
||||||
---
|
---
|
||||||
title: Flashing Libreboot on Dell Latitude laptops
|
title: Install Libreboot on Dell Latitude laptops
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on various models of
|
||||||
|
Dell Latitude laptop motherboard, namely Dell Latitude E4300, E6400, E6400 XFR,
|
||||||
|
E6400 ATG, E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330
|
||||||
|
and E6220; you must only install Libreboot on models with *Intel graphics*.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
|
In case any models are unlisted in the above paragraph, you should also check
|
||||||
|
the full list of supported Dell Latitude models on the [Libreboot hardware
|
||||||
|
compatibility](./#which-systems-are-supported-by-libreboot) page.
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
instructions on this page.
|
instructions on this page.
|
||||||
|
|
||||||
Disable security before flashing
|
Disable security before flashing
|
||||||
================================
|
--------------------------------
|
||||||
|
|
||||||
**[SAFETY WARNING: Always insert vendor files before flashing.](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
or look directly at [Injecting Vendor Files](ivy_has_common.md). If you flash
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
Libreboot without inserting vendor files, you will brick the machine; if you
|
there, before flashing. For posterity,
|
||||||
do, please follow the external flashing instructions linked below.**
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
Please also [disable /dev/mem protection](devmem.md), otherwise flashprog
|
Please also [disable /dev/mem protection](devmem.md), otherwise flashprog
|
||||||
and dell-flash-unlock won't work. You can re-enable the protections after
|
and dell-flash-unlock won't work. You can re-enable the protections after
|
||||||
|
@ -24,13 +38,13 @@ Note that Libreboot does not currently implement UEFI on x86 platforms, but
|
||||||
you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing.
|
you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing.
|
||||||
|
|
||||||
MAC address
|
MAC address
|
||||||
===========
|
-----------
|
||||||
|
|
||||||
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.
|
||||||
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.
|
||||||
|
|
||||||
Thermal safety
|
Thermal safety
|
||||||
==============
|
--------------
|
||||||
|
|
||||||
**Thermal safety**: this machine shuts down very quickly, when the machine
|
**Thermal safety**: this machine shuts down very quickly, when the machine
|
||||||
exceeds 80c CPU temperature, which is far more conservative than on most
|
exceeds 80c CPU temperature, which is far more conservative than on most
|
||||||
|
@ -39,18 +53,16 @@ excellent. More info available [here](../install/dell_thermal.md). This is a
|
||||||
known bug, but otherwise the machine will be mostly stable.
|
known bug, but otherwise the machine will be mostly stable.
|
||||||
|
|
||||||
Machine-specific notes
|
Machine-specific notes
|
||||||
======================
|
----------------------
|
||||||
|
|
||||||
Latitude E6400
|
### Latitude E6400
|
||||||
--------------
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
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
|
||||||
make sure to run the inject script.
|
make sure to run the [inject script](ivy_has_common.md) prior to flashing.
|
||||||
|
|
||||||
E6400 nvidia issues
|
### E6400 nvidia issues
|
||||||
-------------------
|
|
||||||
|
|
||||||
See: <https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758>
|
See: <https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758>
|
||||||
|
|
||||||
|
@ -59,8 +71,7 @@ The `nv` drivers on BSD systems generally work, but can have severe performance
|
||||||
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
|
||||||
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.
|
||||||
|
|
||||||
dGPU variants
|
### dGPU variants
|
||||||
-------------
|
|
||||||
|
|
||||||
On everything except E6400, Libreboot only supports the variant with an Intel
|
On everything except E6400, Libreboot only supports the variant with an Intel
|
||||||
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
|
||||||
|
@ -68,7 +79,7 @@ graphics; even on E6400, this is good advice, due to issues with the Nvidia
|
||||||
GPU on E6400, documented later in this guide.
|
GPU on E6400, documented later in this guide.
|
||||||
|
|
||||||
Internal flashing
|
Internal flashing
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
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
|
||||||
run `flashprog` from there, for Libreboot installation. Certain other steps
|
run `flashprog` from there, for Libreboot installation. Certain other steps
|
||||||
|
@ -130,12 +141,11 @@ successful. If you don't see that, or you're unsure, please [contact the
|
||||||
Libreboot project via IRC](../../contact.md).
|
Libreboot project via IRC](../../contact.md).
|
||||||
|
|
||||||
External flashing
|
External flashing
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
General guidance
|
### General guidance
|
||||||
----------------
|
|
||||||
|
|
||||||
Machine-specific disassembly instructions not provided, but you can find
|
Machine-specific disassembly instructions are not provided, but you can find
|
||||||
the hardware maintenance manual for your Latitude module online. Just search
|
the hardware maintenance manual for your Latitude module online. Just search
|
||||||
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
|
||||||
to the PCH/southbridge.
|
to the PCH/southbridge.
|
||||||
|
@ -153,10 +163,9 @@ Please read the [external SPI flash guide](spi.md)
|
||||||
|
|
||||||
External flashing is usually not required, on these machines.
|
External flashing is usually not required, on these machines.
|
||||||
|
|
||||||
Chip size guidance
|
### Chip size guidance
|
||||||
------------------
|
|
||||||
|
|
||||||
SOme Dell Latitudes use a single flash chip, so you can
|
Some Dell Latitudes use a single flash chip, so you can
|
||||||
just use the ROM images as-is.
|
just use the ROM images as-is.
|
||||||
|
|
||||||
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
|
||||||
|
|
1
site/docs/install/latitude.md.description
Normal file
1
site/docs/install/latitude.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various Dell Latitude laptop models.
|
|
@ -4,7 +4,7 @@ x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Introduction (GM45+e1000)
|
Introduction (GM45+e1000)
|
||||||
=========================
|
-------------------------
|
||||||
|
|
||||||
This section is applicable to all libreboot-supported laptops with the
|
This section is applicable to all libreboot-supported laptops with the
|
||||||
mobile 4 series chipset (as shown in `$ lspci`)
|
mobile 4 series chipset (as shown in `$ lspci`)
|
||||||
|
@ -17,15 +17,11 @@ for the built-in gigabit ethernet controller is stored inside the flash chip,
|
||||||
along with libreboot and other configuration data. Therefore, installing
|
along with libreboot and other configuration data. Therefore, installing
|
||||||
libreboot will overwrite it.
|
libreboot will overwrite it.
|
||||||
|
|
||||||
Thus, for these laptops, prebuilt libreboot already contains a generic
|
Thus, for these laptops, prebuilt libreboot images already contain a generic
|
||||||
MAC address in the configuration section. This address is `00:f5:f0:40:71:fe
|
MAC address in the GbE region.
|
||||||
in builds before 2018-01-16 and `00:4c:69:62:72:65` (see the ascii character
|
|
||||||
set) afterwards.
|
|
||||||
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
|
||||||
to network problems if you have more than one libreboot computer on
|
to network problems if you have more than one libreboot computer on
|
||||||
the same layer2 network (e.g. on the same network switch). The switch
|
the same layer2 network (e.g. on the same network switch).
|
||||||
(postman) will simply not know who to deliver to as the MAC (house) addresses
|
|
||||||
will be the same.
|
|
||||||
|
|
||||||
To prevent these address clashes, you can either modify prebuilt libreboot
|
To prevent these address clashes, you can either modify prebuilt libreboot
|
||||||
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
|
||||||
|
@ -35,7 +31,7 @@ In either case, it is a good idea to write down the address that your
|
||||||
computer originally had.
|
computer originally had.
|
||||||
|
|
||||||
Obtaining the existing MAC address
|
Obtaining the existing MAC address
|
||||||
==================================
|
----------------------------------
|
||||||
|
|
||||||
The existing MAC address may be obtained by the following methods:
|
The existing MAC address may be obtained by the following methods:
|
||||||
|
|
||||||
|
@ -65,7 +61,7 @@ The existing MAC address may be obtained by the following methods:
|
||||||
updated.
|
updated.
|
||||||
|
|
||||||
Changing the MAC address in the operating system
|
Changing the MAC address in the operating system
|
||||||
================================================
|
------------------------------------------------
|
||||||
|
|
||||||
There are three portable ways of doing so:
|
There are three portable ways of doing so:
|
||||||
|
|
||||||
|
@ -90,19 +86,8 @@ init scripts or you can use your operating system's own networking
|
||||||
configuration. Refer to your operating system's documentation for
|
configuration. Refer to your operating system's documentation for
|
||||||
how to do this.
|
how to do this.
|
||||||
|
|
||||||
Changing the MAC address on X200/T400/T500/W500
|
Changing the MAC address (e.g. X230/T440p)
|
||||||
===============================================
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
On GM45 laptops with ICH9M southbridge and Intel PHY module, the MAC address
|
|
||||||
is hardcoded in boot flash, which means it can be changed if you re-flash.
|
|
||||||
|
|
||||||
See [ich9utils documentation](../install/ich9utils.md)
|
|
||||||
|
|
||||||
If *all* you want to do is change the MAC address, you might try `nvmutil`
|
|
||||||
instead. See notes below:
|
|
||||||
|
|
||||||
Changing the MAC address on ivybridge/sandybridge/haswell (e.g. X230/T440p)
|
|
||||||
=========================================================
|
|
||||||
|
|
||||||
See [nvmutil documentation](../install/nvmutil.md)
|
See [nvmutil documentation](../install/nvmutil.md)
|
||||||
|
|
||||||
|
@ -111,15 +96,6 @@ Sandybridge, Ivybridge and Haswell platforms, but it can be used on any
|
||||||
platform with a valid GbE region in flash, where an Intel Flash Descriptor
|
platform with a valid GbE region in flash, where an Intel Flash Descriptor
|
||||||
is used; this includes older GM45+ICH9M machines supported by Libreboot.
|
is used; this includes older GM45+ICH9M machines supported by Libreboot.
|
||||||
|
|
||||||
The `ich9utils` program is more useful in an lbmk context, because it
|
|
||||||
generates an entire Intel Flash Descriptor and GbE region from scratch;
|
|
||||||
coreboot has a similar method in its build system, using its own utility
|
|
||||||
called bincfg, but this tool is unused in lbmk.
|
|
||||||
|
|
||||||
No tool like ich9utils exists for these boards yet, but lbmk includes the IFD
|
|
||||||
and GbE files in-tree (Intel ME is handled by extracting from Lenovo updates,
|
|
||||||
which the build system automatically fetches from the internet).
|
|
||||||
|
|
||||||
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
|
||||||
sets the "hardcoded" MAC address, typically a globally assigned one set by
|
sets the "hardcoded" MAC address, typically a globally assigned one set by
|
||||||
the vendor.
|
the vendor, but you can use local addresses, and you can use randomised MACs.
|
||||||
|
|
1
site/docs/install/mac_address.md.description
Normal file
1
site/docs/install/mac_address.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Libreboot lets you modify the MAC address on various supported motherboards. This guide will teach you how to change your MAC address, by various means.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: MacBook2,1 and MacBook1,1
|
title: Install Libreboot on MacBook2,1 and MacBook1,1
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -20,19 +20,19 @@ x-toc-enable: true
|
||||||
| **Graphics** | Intel GMA 950 |
|
| **Graphics** | Intel GMA 950 |
|
||||||
| **Display** | 1280x800 TFT |
|
| **Display** | 1280x800 TFT |
|
||||||
| **Memory** | 512MB, 1GB (upgradable to 4GB with 3GB usable) |
|
| **Memory** | 512MB, 1GB (upgradable to 4GB with 3GB usable) |
|
||||||
| **Architecture** | x86_64 |
|
| **Architecture** | x86\_64 |
|
||||||
| **EC** | Proprietary |
|
| **EC** | Proprietary |
|
||||||
| **Original boot firmware** | Apple EFI |
|
| **Original boot firmware** | Apple EFI |
|
||||||
| **Intel ME/AMD PSP** | Not present. |
|
| **Intel ME/AMD PSP** | Not present. |
|
||||||
| **Flash chip** | SOIC-8 2MiB (Upgradable to 16MiB) |
|
| **Flash chip** | SOIC-8 2MiB (Upgradable to 16MiB) |
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -50,6 +50,15 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Open source BIOS/UEFI firmware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Apple MacBook 2,1 2005-2007 laptop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
The MacBook1,1 and MacBook2,1 are very similar to the
|
The MacBook1,1 and MacBook2,1 are very similar to the
|
||||||
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.
|
||||||
|
|
||||||
|
@ -63,21 +72,20 @@ uses Core Duo processors (supports 32-bit OS but not 64-bit), and it is
|
||||||
believed that this is the only difference.
|
believed that this is the only difference.
|
||||||
|
|
||||||
Compatibility
|
Compatibility
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
The following pages list many models of MacBook1,1 and MacBook2,1:
|
The following pages list many models of MacBook1,1 and MacBook2,1:
|
||||||
|
|
||||||
* <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1>
|
* <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1>
|
||||||
* <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1>
|
* <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1>
|
||||||
|
|
||||||
Models
|
### Models
|
||||||
------
|
|
||||||
|
|
||||||
Specifically (Order No. / Model No. / CPU) for the MacBook1,1:
|
Specifically (Order No. / Model No. / CPU) for the MacBook1,1:
|
||||||
|
|
||||||
* MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)*
|
* MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)*
|
||||||
* MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 *(tested - working)*
|
* MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 *(tested - working)*
|
||||||
* MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested)
|
* MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)*
|
||||||
|
|
||||||
For the MacBook2,1:
|
For the MacBook2,1:
|
||||||
|
|
||||||
|
@ -86,9 +94,11 @@ For the MacBook2,1:
|
||||||
* MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested -
|
* MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested -
|
||||||
working)*
|
working)*
|
||||||
* MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 *(tested -
|
* MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 *(tested -
|
||||||
|
working)*
|
||||||
* MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested -
|
* MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested -
|
||||||
working)*
|
working)*
|
||||||
* MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested - working)*
|
* MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested -
|
||||||
|
working)*
|
||||||
* MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested -
|
* MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested -
|
||||||
working)*
|
working)*
|
||||||
|
|
||||||
|
@ -99,20 +109,22 @@ then don't forget to [send a patch](../../git.md), confirming that it
|
||||||
actually works!
|
actually works!
|
||||||
|
|
||||||
Internal flashing
|
Internal flashing
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
MacBook2,1 can always be flashed internally, even if running Apple firmware:
|
MacBook2,1 can always be flashed internally, even if running Apple firmware:
|
||||||
|
|
||||||
sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w your.rom
|
sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w your.rom
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
The MacBook1,1 can't be flashed internally if running the Apple EFI firmware.
|
The MacBook1,1 can't be flashed internally if running the Apple EFI firmware.
|
||||||
You must flash externally.
|
You must flash externally.
|
||||||
|
|
||||||
External flashing
|
External flashing
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
MacBook1,1 requires external flashing, if running the default Apple firmware.
|
MacBook1,1 requires external flashing, if running the default Apple firmware.
|
||||||
MacBook2,1 can be flashed internally, regardless.
|
MacBook2,1 can be flashed internally, regardless.
|
||||||
|
@ -132,7 +144,7 @@ Refer to the following guide:\
|
||||||
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
|
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
|
||||||
|
|
||||||
OSes using Linux on Apple EFI firmware
|
OSes using Linux on Apple EFI firmware
|
||||||
======================================
|
--------------------------------------
|
||||||
|
|
||||||
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
|
||||||
on the MacBook:
|
on the MacBook:
|
||||||
|
@ -141,8 +153,7 @@ on the MacBook:
|
||||||
|
|
||||||
* Boot via a CD or DVD.
|
* Boot via a CD or DVD.
|
||||||
|
|
||||||
Boot via a CD or DVD
|
### Boot via a CD or DVD
|
||||||
--------------------
|
|
||||||
|
|
||||||
The Apple EFI firmware contains a PC BIOS emulation layer for booting
|
The Apple EFI firmware contains a PC BIOS emulation layer for booting
|
||||||
Microsoft Windows on CDs and DVDs. That emulation layer **only** works
|
Microsoft Windows on CDs and DVDs. That emulation layer **only** works
|
||||||
|
@ -172,8 +183,7 @@ should boot up properly automatically.
|
||||||
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
|
||||||
also won't be able to boot it up when using Libreboot.*
|
also won't be able to boot it up when using Libreboot.*
|
||||||
|
|
||||||
Boot via USB
|
### Boot via USB
|
||||||
------------
|
|
||||||
|
|
||||||
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
|
||||||
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.
|
||||||
|
@ -211,14 +221,14 @@ the CMOS/PRAM battery, wait a few minutes, and put it back in.
|
||||||
to reconfigure GRUB2 correctly, else your system won't boot.*
|
to reconfigure GRUB2 correctly, else your system won't boot.*
|
||||||
|
|
||||||
Coreboot wiki page
|
Coreboot wiki page
|
||||||
==================
|
------------------
|
||||||
|
|
||||||
The following page has some information:
|
The following page has some information:
|
||||||
|
|
||||||
* <https://www.coreboot.org/Board:apple/macbook21>
|
* <https://www.coreboot.org/Board:apple/macbook21>
|
||||||
|
|
||||||
Issues and solutions/workarounds
|
Issues and solutions/workarounds
|
||||||
================================
|
--------------------------------
|
||||||
|
|
||||||
There is one mouse button only, however multiple finger tapping
|
There is one mouse button only, however multiple finger tapping
|
||||||
works. The Apple logo on the
|
works. The Apple logo on the
|
||||||
|
@ -229,8 +239,7 @@ should [cover it up](http://cweiske.de/tagebuch/tuxbook.htm).
|
||||||
software. Webcams are a privacy and security risk; cover it up! Or
|
software. Webcams are a privacy and security risk; cover it up! Or
|
||||||
remove it.*
|
remove it.*
|
||||||
|
|
||||||
Make it overheat less
|
### Make it overheat less
|
||||||
---------------------
|
|
||||||
|
|
||||||
NOTE: on newer libreboot revisions, this section is less relevant, because C3
|
NOTE: on newer libreboot revisions, this section is less relevant, because C3
|
||||||
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
|
||||||
|
@ -270,8 +279,7 @@ PLATFORM_PROFILE_ON_BAT=low-power
|
||||||
|
|
||||||
The MacBook will still overheat, just less.
|
The MacBook will still overheat, just less.
|
||||||
|
|
||||||
Enable AltGr
|
### Enable AltGr
|
||||||
------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -295,12 +303,11 @@ line:
|
||||||
|
|
||||||
to the file /etc/vconsole.conf and then restart the computer.
|
to the file /etc/vconsole.conf and then restart the computer.
|
||||||
|
|
||||||
Make touchpad more responsive
|
### Make touchpad more responsive
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Linux kernels of version 3.15 or lower might make the touchpad
|
Linux kernels of version 3.15 or lower might make the touchpad
|
||||||
extremely sluggish. A user reported that they could get better
|
extremely sluggish. A user reported that they could get better
|
||||||
response from the touchpad with the following in their xorg.conf:
|
response from the touchpad with the following in their `xorg.conf`:
|
||||||
|
|
||||||
```
|
```
|
||||||
Section "InputClass"
|
Section "InputClass"
|
||||||
|
|
1
site/docs/install/macbook21.md.description
Normal file
1
site/docs/install/macbook21.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Apple MacBook 2,1 and 1,1 circa 2006.
|
|
@ -1,10 +1,11 @@
|
||||||
---
|
---
|
||||||
title: nvmutil manual
|
title: nvmutil usage instructions
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
With this software, you can change the MAC address inside GbE regions
|
With this software, you can change the MAC address inside GbE regions
|
||||||
on any system that uses an Intel Flash Descriptor.
|
on any system that uses an Intel Flash Descriptor. This software works well
|
||||||
|
on most/all of the major Linux or BSD operating systems.
|
||||||
|
|
||||||
This is the reference documentation for `nvmutil`, but an automated script
|
This is the reference documentation for `nvmutil`, but an automated script
|
||||||
using nvmutil is available for ivy/sandybridge and haswell hardware, when
|
using nvmutil is available for ivy/sandybridge and haswell hardware, when
|
||||||
|
@ -15,38 +16,71 @@ inserting vendor files, which you can use to change the MAC address. See:
|
||||||
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.
|
||||||
Continue reading...
|
Continue reading...
|
||||||
|
|
||||||
Introduction
|
Change the Intel GbE MAC address
|
||||||
============
|
--------------------------------
|
||||||
|
|
||||||
This is the manual for `nvmutil`, included in the Libreboot,
|
This is the manual for `nvmutil`, included within the [Libreboot build
|
||||||
build system (lbmk) under `util/nvmutil/`. This program lets you modify
|
system](../maintain/) (lbmk) under `util/nvmutil/`. This program lets you modify
|
||||||
the MAC address, correct/verify/invalidate checksums,
|
the MAC address, correct/verify/invalidate checksums, swap/copy and dump regions
|
||||||
swap/copy and dump regions on Intel PHY NVM images,
|
on Intel PHY NVM images, which are small binary configuration files that go in
|
||||||
which are small binary configuration files that go
|
flash, for Gigabit (ethernet) Intel NICs.
|
||||||
in flash, for Gigabit (ethernet) Intel NICs.
|
|
||||||
|
|
||||||
This software is largely targeted at coreboot users,
|
**Please [install build dependencies](../build/) before you do this.**
|
||||||
but it can be used on most modern Intel systems, or
|
|
||||||
most systems from about 2008/2009 onwards.
|
|
||||||
|
|
||||||
NOTE: Libreboot X200/X200T/X200S/T400/T400S/T500/W500/R400
|
This software is largely targeted at coreboot users, but it can be used on most
|
||||||
users should know that this software does *not*
|
modern Intel systems, or most systems from about 2008/2009 onwards, regardless
|
||||||
replace `ich9gen`, because that program generates entire
|
of which boot firmware they have.
|
||||||
ICH9M IFD+GbE regions, in addition to letting you set the
|
|
||||||
MAC address. *This* program, `nvmutil`, can *also* set
|
|
||||||
the MAC address on those machines, but it operates on a
|
|
||||||
single GbE dump that is already created.
|
|
||||||
|
|
||||||
This program is operated on dumps of the GbE NVM image,
|
This program is operated on dumps of the GbE NVM image, which normally goes in
|
||||||
which normally goes in the boot flash (alongside BIOS/UEFI
|
the boot flash (alongside BIOS/UEFI or coreboot, IFD and other regions in
|
||||||
or coreboot, IFD and other regions in the flash). The first
|
the flash). The first half of this README is dedicated to precisely this,
|
||||||
half of this README is dedicated to precisely this, telling
|
telling you how to dump or otherwise acquire that file; the second half of this
|
||||||
you how to dump or otherwise acquire that file; the second
|
README then tells you how to operate on it, using `nvmutil`.
|
||||||
half of this README then tells you how to operate on it,
|
|
||||||
using `nvmutil`.
|
Automatic MAC address changer
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
**Please [install build dependencies](../build/) before you do this.**
|
||||||
|
|
||||||
|
**WARNING: Older versions of nvmutil used `?` for random characters. Newer
|
||||||
|
versions use `x` instead. If you have an older version, use `?` instead,
|
||||||
|
when generating random characters in MAC addresses.**
|
||||||
|
|
||||||
|
Instead of running nvmutil manually, like below, you can
|
||||||
|
also use the inject command, like so (examples):
|
||||||
|
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:11:22
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:xx:16:0x:1x:22
|
||||||
|
./mk inject libreboot-RELEASE_targetname.tar.xz setmac restore
|
||||||
|
|
||||||
|
This writes the MAC address on the GbE region of the image. You must do this
|
||||||
|
on the tarball, from the ROM image release archives, and then extract the
|
||||||
|
archive.
|
||||||
|
|
||||||
|
These same commands also [download/insert certain vendor files](ivy_has_common.md)
|
||||||
|
if needed, on the given board.
|
||||||
|
|
||||||
|
Without argument after the tarball, it behaves the same as `setmac`. If `setmac`
|
||||||
|
is provided without argument, or no argument is given, the MAC address is
|
||||||
|
randomised. Otherwise, you can specify an arbitrary address.
|
||||||
|
|
||||||
|
The `x` character is random, and you can specify that any of them be random,
|
||||||
|
while setting others (or all of them) arbitrarily. On the corresponding nibble,
|
||||||
|
the bit for unicast/multicast and global/local are set accordingly, so that
|
||||||
|
randomly generated addresses are *always* unicast and *local*, unless the
|
||||||
|
corresponding nibble is set arbitrarily; if the latter, then an error is thrown
|
||||||
|
if the arbitrary nibble corresponds to a multicast MAC address (and when errors
|
||||||
|
are thrown, the file shall remain unchanged). More information about error
|
||||||
|
handling is provided, later in this document.
|
||||||
|
|
||||||
|
The `restore` option restores the original one. The command works by using a
|
||||||
|
reference GbE image file present in Libreboot's build system, for the given
|
||||||
|
motherboard.
|
||||||
|
|
||||||
How to download newer versions
|
How to download newer versions
|
||||||
==============================
|
------------------------------
|
||||||
|
|
||||||
Simply pull down the latest changes in `lbmk.git`. The `nvmutil`
|
Simply pull down the latest changes in `lbmk.git`. The `nvmutil`
|
||||||
software is now part of lbmk, since 17 November 2022.
|
software is now part of lbmk, since 17 November 2022.
|
||||||
|
@ -56,7 +90,7 @@ More info about git:
|
||||||
* <https://git-scm.com/>
|
* <https://git-scm.com/>
|
||||||
|
|
||||||
Context
|
Context
|
||||||
=======
|
-------
|
||||||
|
|
||||||
On many Intel systems with an IFD (Intel Flash Descriptor), the
|
On many Intel systems with an IFD (Intel Flash Descriptor), the
|
||||||
Intel PHY (Gigabit Ethernet) stores its configuration, binary
|
Intel PHY (Gigabit Ethernet) stores its configuration, binary
|
||||||
|
@ -82,13 +116,25 @@ fact work nicely, but software such as Linux will check
|
||||||
that this is correct. If the checksum is invalid, your
|
that this is correct. If the checksum is invalid, your
|
||||||
kernel will refuse to make use of the NIC.
|
kernel will refuse to make use of the NIC.
|
||||||
|
|
||||||
This NVM section is the first 128 bytes of a 4KB region in flash.
|
This NVM section is the first 128 bytes of a *block size* KB region in flash.
|
||||||
This 4KB region is then repeated, to make an 8KB region in
|
This *block size* KB region is then repeated, to make an *block size multipled
|
||||||
|
by two* KB region in
|
||||||
flash, known as the *GbE region*. In `nvmutil`, the first part
|
flash, known as the *GbE region*. In `nvmutil`, the first part
|
||||||
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*.
|
||||||
|
|
||||||
Known compatible PHYs
|
The block size can be 4KB, 8KB or 64KB, meaning that GbE files can
|
||||||
---------------------
|
be 8KB, 16KB or 128KB; the first half is part 0 and the second half is part 1.
|
||||||
|
The first 4KB of each part is what we are concerned with; and in each 4KB part
|
||||||
|
is the 128-byte NVM area at the very start, containing our configuration.
|
||||||
|
|
||||||
|
**NOTE: Support for 16KB and 128KB files was only added *after* the
|
||||||
|
Libreboot 20241206 release. It will be available in all releases after that,
|
||||||
|
or you can simply compile nvmutil from the Libreboot Git repository lbmk,
|
||||||
|
from directory `util/nvmutil/` - on the older releases, and older versions of
|
||||||
|
nvmutil, only 8KB GbE files are supported, but we mostly only use 8KB files
|
||||||
|
anyway (you're very unlikely to encounter 16KB or 128KB files).**
|
||||||
|
|
||||||
|
### Known compatible PHYs
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -101,7 +147,7 @@ files; it is assumed that intel would later change the
|
||||||
file size and/or checksum value and/or checksum location.
|
file size and/or checksum value and/or checksum location.
|
||||||
|
|
||||||
How to obtain the GbE file
|
How to obtain the GbE file
|
||||||
==========================
|
--------------------------
|
||||||
|
|
||||||
The chip containing your BIOS/UEFI firmware (or coreboot) has
|
The chip containing your BIOS/UEFI firmware (or coreboot) has
|
||||||
it, if you have an Intel PHY for gigabit ethernet.
|
it, if you have an Intel PHY for gigabit ethernet.
|
||||||
|
@ -111,11 +157,12 @@ containing your NIC's configuration. This is the part that
|
||||||
many people will struggle with, so we will dedicated an
|
many people will struggle with, so we will dedicated an
|
||||||
entire next section to it:
|
entire next section to it:
|
||||||
|
|
||||||
Use flashprog
|
### Use flashprog
|
||||||
------------
|
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
If you wish to operate on the GbE section that's already
|
If you wish to operate on the GbE section that's already
|
||||||
flashed, you should *dump* the current full ROM image.
|
flashed, you should *dump* the current full ROM image.
|
||||||
|
@ -138,7 +185,16 @@ a single-flash setup. In that case, it's recommended to dump
|
||||||
both chips, as `spi1.rom` and `spi2.rom`; you can then cat
|
both chips, as `spi1.rom` and `spi2.rom`; you can then cat
|
||||||
them together:
|
them together:
|
||||||
|
|
||||||
cat spi1.rom spi2.rom > rom.bin
|
cat spi1.rom spi2.rom > rom.bin # WARNING: see note below
|
||||||
|
|
||||||
|
**WARNING: After concatenating the files, please ensure that you did so in
|
||||||
|
the correct order. In `hexdump -C rom.bin` you can check for the Intel Flash
|
||||||
|
Descriptor near the start of the file, for the bytes `5a a5 f0 0f`. You may
|
||||||
|
alternatively attempt extraction with `ifdtool -x rom.bin`, adding
|
||||||
|
the `--platform OPTION` option if needed, based on output from `--help` if
|
||||||
|
you need to (it lists platform strings for certain newer Intel platforms). If
|
||||||
|
ifdtool extraction fails, then that is another indication that you did not
|
||||||
|
cat the files correctly.**
|
||||||
|
|
||||||
If your GbE region is locked (per IFD settings), you can dump
|
If your GbE region is locked (per IFD settings), you can dump
|
||||||
and flash it using external flashing equipment. The Libreboot
|
and flash it using external flashing equipment. The Libreboot
|
||||||
|
@ -152,8 +208,7 @@ option should be changed accordingly. Read flashprog
|
||||||
documentation, and make sure you have everything
|
documentation, and make sure you have everything
|
||||||
properly configured.
|
properly configured.
|
||||||
|
|
||||||
Use ifdtool
|
### Use ifdtool
|
||||||
-----------
|
|
||||||
|
|
||||||
NOTE: This has only been tested on systems that use IFDv1
|
NOTE: This has only been tested on systems that use IFDv1
|
||||||
(Intel Flash Descriptor, version 1). This distinction, between
|
(Intel Flash Descriptor, version 1). This distinction, between
|
||||||
|
@ -170,12 +225,24 @@ with `make`, to get an ifdtool binary.
|
||||||
|
|
||||||
To make internal flashing possible later on, you might do:
|
To make internal flashing possible later on, you might do:
|
||||||
|
|
||||||
ifdtool --unlock rom.bin
|
ifdtool --unlock rom.bin # READ THE WARNING BELOW FIRST
|
||||||
|
|
||||||
|
**WARNING: On ThinkPad T480/T480s and OptiPlex 3050 Micro, do this instead:**
|
||||||
|
|
||||||
|
ifdtool --platform sklkbl --unlock rom.bin
|
||||||
|
|
||||||
Running this command will create a modified image,
|
Running this command will create a modified image,
|
||||||
named `rom.bin.new`. This file will have all regions set
|
named `rom.bin.new`. This file will have all regions set
|
||||||
to read-write, per configuration in the Intel Flash Descriptor.
|
to read-write, per configuration in the Intel Flash Descriptor.
|
||||||
|
|
||||||
|
Note: if you want the original image to be modified, without needing to
|
||||||
|
keep track of `rom.bin.new` as mentioned above, use the -O switch. For example,
|
||||||
|
repeating the above command:
|
||||||
|
|
||||||
|
ifdtool --unlock rom.bin -O rom.bin
|
||||||
|
|
||||||
|
(add the `--platform` option if you need to)
|
||||||
|
|
||||||
In addition to unlocked regions, you may wish to *neuter* the
|
In addition to unlocked regions, you may wish to *neuter* the
|
||||||
Intel Management Engine, removing all the nasty spying features
|
Intel Management Engine, removing all the nasty spying features
|
||||||
from it, using `me_cleaner`. See:
|
from it, using `me_cleaner`. See:
|
||||||
|
@ -188,7 +255,7 @@ article, so you should read their documentation.
|
||||||
|
|
||||||
Now run this:
|
Now run this:
|
||||||
|
|
||||||
ifdtool -x rom.bin
|
ifdtool -x rom.bin # For T480/3050micro, add: --platform sklkbl
|
||||||
|
|
||||||
Several files will be created, and the one you need to
|
Several files will be created, and the one you need to
|
||||||
operate on is named `flashregion_3_gbe.bin` so please
|
operate on is named `flashregion_3_gbe.bin` so please
|
||||||
|
@ -198,7 +265,7 @@ Read the notes below about how to use the `nvmutil` program,
|
||||||
operating on this file. When you're done, you can insert the
|
operating on this file. When you're done, you can insert the
|
||||||
modified GbE file back into your ROM image, like so:
|
modified GbE file back into your ROM image, like so:
|
||||||
|
|
||||||
ifdtool -i gbe:flashregion_3_gbe.bin rom.bin
|
ifdtool -i gbe:flashregion_3_gbe.bin rom.bin # For T480/3050micro, add: --platform sklkbl
|
||||||
|
|
||||||
This will create the file `rom.bin.new`, which contains
|
This will create the file `rom.bin.new`, which contains
|
||||||
your modified GbE section with the NVM images inside; this
|
your modified GbE section with the NVM images inside; this
|
||||||
|
@ -215,6 +282,16 @@ region, like so:
|
||||||
|
|
||||||
flashprog -p internal --ifd -i gbe -w rom.bin.new
|
flashprog -p internal --ifd -i gbe -w rom.bin.new
|
||||||
|
|
||||||
|
**WARNING: If using `--ifd` in flashprog, note that flashprog probably doesn't
|
||||||
|
have anything similar to the `--platform` option in ifdtool. Therefore, you
|
||||||
|
way wish to specify the regions manually. You can do this quite simply, by:**
|
||||||
|
|
||||||
|
ifdtool -f layout.txt rom.bin # For T480/3050micro, add: --platform sklkbl
|
||||||
|
|
||||||
|
and instead of `--ifd` in flashprog, use:
|
||||||
|
|
||||||
|
flashprog -p internal -l layout.txt -i gbe -w rom.bin.new
|
||||||
|
|
||||||
If you're running flashprog from host CPU on the target
|
If you're running flashprog from host CPU on the target
|
||||||
system, and it's dual flash, you can just flash the
|
system, and it's dual flash, you can just flash the
|
||||||
concatenated image, which you created earlier by running
|
concatenated image, which you created earlier by running
|
||||||
|
@ -227,8 +304,11 @@ the `-p internal` parameter to something else. In this
|
||||||
situation, you should re-split the file accordingly, if
|
situation, you should re-split the file accordingly, if
|
||||||
you have a dual-IC flash set, like so:
|
you have a dual-IC flash set, like so:
|
||||||
|
|
||||||
dd if=rom.bin.new of=spi2.rom bs=1M skip=8
|
dd if=rom.bin.new of=spi2.rom bs=1M skip=8 # WARNING: see note below
|
||||||
dd if=rom.bin.new of=spi1.rom bs=1M count=8
|
dd if=rom.bin.new of=spi1.rom bs=1M count=8 # WARNING: see note below
|
||||||
|
|
||||||
|
**WARNING: The commands above assume SPI1 is 8MB and SPI2 is 4MB, making 12MB
|
||||||
|
total. Please adapt accordingly, for your own configuration.**
|
||||||
|
|
||||||
These files would then be flashed externally, separately,
|
These files would then be flashed externally, separately,
|
||||||
using an external programmer.
|
using an external programmer.
|
||||||
|
@ -241,7 +321,7 @@ SPI1. You should adjust the above parameters, according
|
||||||
to your configuration.
|
to your configuration.
|
||||||
|
|
||||||
How to compile source code
|
How to compile source code
|
||||||
==========================
|
--------------------------
|
||||||
|
|
||||||
The nvmutil source code is located under `util/nvmutil/` in the
|
The nvmutil source code is located under `util/nvmutil/` in the
|
||||||
lbmk repository. A makefile is included there, for you to build an
|
lbmk repository. A makefile is included there, for you to build an
|
||||||
|
@ -266,8 +346,7 @@ The `nvmutil` software has been build-tested on `Clang`, `GCC`
|
||||||
and `tcc`. Only standard library functions (plus `err.h`) are
|
and `tcc`. Only standard library functions (plus `err.h`) are
|
||||||
used, so you don't need any extra libraries.
|
used, so you don't need any extra libraries.
|
||||||
|
|
||||||
How to compile it
|
### How to compile nvmutil
|
||||||
-----------------
|
|
||||||
|
|
||||||
First, ensure that the current working directory is your
|
First, ensure that the current working directory is your
|
||||||
copy of the nvmutil source code!
|
copy of the nvmutil source code!
|
||||||
|
@ -283,7 +362,7 @@ whatever is in your `$PATH` for userspace programs).
|
||||||
TODO: Add `make install` to the Makefile, portably.
|
TODO: Add `make install` to the Makefile, portably.
|
||||||
|
|
||||||
How to use nvmutil
|
How to use nvmutil
|
||||||
==================
|
------------------
|
||||||
|
|
||||||
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
|
||||||
commands on that file. This section will tell you how to
|
commands on that file. This section will tell you how to
|
||||||
|
@ -295,8 +374,7 @@ done that, you could still run it in cwd for instance:
|
||||||
|
|
||||||
./nvm bla bla bla
|
./nvm bla bla bla
|
||||||
|
|
||||||
Exit status
|
### Exit status
|
||||||
-----------
|
|
||||||
|
|
||||||
The `nvmutil` program uses `errno` extensively. The best error
|
The `nvmutil` program uses `errno` extensively. The best error
|
||||||
handling is done this way, the Unix way. Error handling is extremely
|
handling is done this way, the Unix way. Error handling is extremely
|
||||||
|
@ -317,13 +395,12 @@ command only requires read access on files. Where sufficient permission
|
||||||
is not given (read and/or write), nvmutil will exit with non-zero status.
|
is not given (read and/or write), nvmutil will exit with non-zero status.
|
||||||
|
|
||||||
Non-zero status will also be returned, if the target file is *not*
|
Non-zero status will also be returned, if the target file is *not*
|
||||||
of size *8KB*.
|
of size *8KB*, *16KB* or *128KB*.
|
||||||
|
|
||||||
Additional rules regarding exit status shall apply, depending on
|
Additional rules regarding exit status shall apply, depending on
|
||||||
what command you use. Commands are documented in the following sections:
|
what command you use. Commands are documented in the following sections:
|
||||||
|
|
||||||
Change MAC address
|
### Change MAC address
|
||||||
------------------
|
|
||||||
|
|
||||||
The `nvm` program lets you change the MAC address. It sets
|
The `nvm` program lets you change the MAC address. It sets
|
||||||
a valid checksum, after changing the MAC address. This program
|
a valid checksum, after changing the MAC address. This program
|
||||||
|
@ -337,7 +414,7 @@ The following rules are enforced in code:
|
||||||
* User cannot specify multicast addresses
|
* User cannot specify multicast addresses
|
||||||
* User cannot specify `00:00:00:00:00:00`
|
* User cannot specify `00:00:00:00:00:00`
|
||||||
* When generating random addresses, if the right
|
* When generating random addresses, if the right
|
||||||
most nibble of the left-most byte is `?` (random),
|
most nibble of the left-most byte is `x` (random),
|
||||||
nvmutil will (in code) force the generated MAC
|
nvmutil will (in code) force the generated MAC
|
||||||
address to be local (not global), and will prevent
|
address to be local (not global), and will prevent
|
||||||
a multicast address from being generated.
|
a multicast address from being generated.
|
||||||
|
@ -360,20 +437,20 @@ How to use (the MAC address in just an example):
|
||||||
|
|
||||||
You can also set random MAC addresses:
|
You can also set random MAC addresses:
|
||||||
|
|
||||||
nvm gbe.bin setmac ??:??:??:??:??:??
|
nvm gbe.bin setmac xx:xx:xx:xx:xx:xx
|
||||||
|
|
||||||
In this example, every character is random. However, you
|
In this example, every character is random. However, you
|
||||||
can mix and match random characters with static ones. For
|
can mix and match random characters with static ones. For
|
||||||
example:
|
example:
|
||||||
|
|
||||||
nvm gbe.bin setmac 00:1f:16:??:??:??
|
nvm gbe.bin setmac 00:1f:16:xx:xx:xx
|
||||||
|
|
||||||
You can also pass it without a MAC address:
|
You can also pass it without a MAC address:
|
||||||
|
|
||||||
nvm gbe.bin setmac
|
nvm gbe.bin setmac
|
||||||
|
|
||||||
If you only type `setmac` without specifying a MAC address,
|
If you only type `setmac` without specifying a MAC address,
|
||||||
it will do the same thing as `setmac ??:??:??:??:??:??`.
|
it will do the same thing as `setmac xx:xx:xx:xx:xx:xx`.
|
||||||
|
|
||||||
This will set the last three bytes randomly, while the
|
This will set the last three bytes randomly, while the
|
||||||
MAC address would begin with `00:1f:16`.
|
MAC address would begin with `00:1f:16`.
|
||||||
|
@ -388,8 +465,7 @@ corrected if you use the `setchecksum` command
|
||||||
in `nvmutil`. It is common for vendor gbe files to contain
|
in `nvmutil`. It is common for vendor gbe files to contain
|
||||||
one valid part and one invalid part, per checksum rules.
|
one valid part and one invalid part, per checksum rules.
|
||||||
|
|
||||||
Verify checksums (and show MAC addresses)
|
### Verify checksums (and show MAC addresses)
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
This command *only* requires *read* access on files.
|
This command *only* requires *read* access on files.
|
||||||
|
|
||||||
|
@ -405,13 +481,12 @@ NOTE: This will exit with zero status if at least one part
|
||||||
contains a valid checksum. If both parts are invalid, nvmutil
|
contains a valid checksum. If both parts are invalid, nvmutil
|
||||||
will exit with non-zero status.
|
will exit with non-zero status.
|
||||||
|
|
||||||
Copy part
|
### Copy part
|
||||||
---------
|
|
||||||
|
|
||||||
This command requires read *and* write access on files.
|
This command requires read *and* write access on files.
|
||||||
|
|
||||||
The `nvm` program can copy one NVM part to another. It copies
|
The `nvm` program can copy one NVM part to another. It copies
|
||||||
the *entire* 4KB part, within the 8KB file.
|
the *entire* *block size* KB part, within the *two blocks* KB file.
|
||||||
|
|
||||||
Overwrite part 0 with the contents of part 1:
|
Overwrite part 0 with the contents of part 1:
|
||||||
|
|
||||||
|
@ -426,12 +501,11 @@ will be performed, and nvmutil will exit with non-zero status.
|
||||||
Otherwise, it will (if all other conditions are met) exit with
|
Otherwise, it will (if all other conditions are met) exit with
|
||||||
zero status.
|
zero status.
|
||||||
|
|
||||||
Swap parts
|
### Swap parts
|
||||||
----------
|
|
||||||
|
|
||||||
This command requires read *and* write access on files.
|
This command requires read *and* write access on files.
|
||||||
|
|
||||||
The `nvm` program can swap both 4KB parts in the GbE
|
The `nvm` program can swap both *block size* KB parts in the GbE
|
||||||
file. It does this, via simple XOR swaps.
|
file. It does this, via simple XOR swaps.
|
||||||
|
|
||||||
How to use:
|
How to use:
|
||||||
|
@ -446,8 +520,7 @@ If *at least one* part is valid, nvmutil will return
|
||||||
with zero exit status. If both parts are invalid, it will
|
with zero exit status. If both parts are invalid, it will
|
||||||
return non-zero.
|
return non-zero.
|
||||||
|
|
||||||
Set valid checksum
|
### Set valid checksum
|
||||||
------------------
|
|
||||||
|
|
||||||
This command requires read *and* write access on files.
|
This command requires read *and* write access on files.
|
||||||
|
|
||||||
|
@ -467,8 +540,7 @@ set the checksum. There is no feasible way to guard against
|
||||||
use on the wrong file, unlike with the other commands. Please
|
use on the wrong file, unlike with the other commands. Please
|
||||||
make SURE you're running this on the correct file!*
|
make SURE you're running this on the correct file!*
|
||||||
|
|
||||||
Set invalid checksum
|
### Set invalid checksum
|
||||||
--------------------
|
|
||||||
|
|
||||||
This command requires read *and* write access on files.
|
This command requires read *and* write access on files.
|
||||||
|
|
||||||
|
@ -498,7 +570,7 @@ Intel gigabit NICs that don't have a valid checksum. This
|
||||||
is software-defined, and not enforced by the hardware.
|
is software-defined, and not enforced by the hardware.
|
||||||
|
|
||||||
History
|
History
|
||||||
=======
|
-------
|
||||||
|
|
||||||
A historical change log
|
A historical change log
|
||||||
is included at [docs/install/nvmutilimport.md](nvmutilimport.md),
|
is included at [docs/install/nvmutilimport.md](nvmutilimport.md),
|
||||||
|
@ -526,33 +598,13 @@ it was part of osboot, is still available (for reference) here:
|
||||||
|
|
||||||
* <https://notabug.org/osboot/nvmutil/>
|
* <https://notabug.org/osboot/nvmutil/>
|
||||||
|
|
||||||
LICENSE
|
Please use the latest nvmutil version *from lbmk*. The above information is
|
||||||
=======
|
provided only for reference; it may be useful for future auditing.
|
||||||
|
|
||||||
This page is released under different copyright terms than most other pages
|
TODO
|
||||||
on this website.
|
----
|
||||||
|
|
||||||
The `nvmutil` software and documentation are released under the following
|
|
||||||
terms:
|
|
||||||
|
|
||||||
Copyright 2022 Leah Rowe
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and associated documentation files (the
|
|
||||||
"Software"), to deal in the Software without restriction, including
|
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
distribute, sublicense, and/or sell copies of the Software, and to
|
|
||||||
permit persons to whom the Software is furnished to do so, subject to
|
|
||||||
the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included
|
|
||||||
in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
|
* Adapt this into a manpage (useful for Linux package repositories / BSD ports)
|
||||||
|
* Send nvmutil upstream to coreboot, for inclusion under `util/`
|
||||||
|
* In addition to the manpage, when sending to coreboot, also adapt this page
|
||||||
|
for inclusion into doc.coreboot.org
|
||||||
|
|
1
site/docs/install/nvmutil.md.description
Normal file
1
site/docs/install/nvmutil.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Instructions pertaining to nvmutil, which is software that can modify the MAC address and other information inside Intel GbE NVM images.
|
|
@ -1,12 +1,9 @@
|
||||||
nvmutil assimilation
|
nvmutil import notes
|
||||||
====================
|
--------------------
|
||||||
|
|
||||||
Detailed revision history can be found in the Git repository; for code,
|
Detailed revision history can be found in the Git repository; for code,
|
||||||
look at `lbmk.git` and for documentation, look at `lbwww.git`.
|
look at `lbmk.git` and for documentation, look at `lbwww.git`.
|
||||||
|
|
||||||
Assimilation by Libreboot
|
|
||||||
=========================
|
|
||||||
|
|
||||||
With no additional changes to nvmutil, the project became part of lbmk,
|
With no additional changes to nvmutil, the project became part of lbmk,
|
||||||
which is the Libreboot build system. Please refer to Libreboot's imported
|
which is the Libreboot build system. Please refer to Libreboot's imported
|
||||||
version of the nvmutil documentation: [nvmutil.md](nvmutil.md)
|
version of the nvmutil documentation: [nvmutil.md](nvmutil.md)
|
||||||
|
@ -22,8 +19,10 @@ shall be preserved on notabug. See:
|
||||||
|
|
||||||
<https://notabug.org/osboot/nvmutil>
|
<https://notabug.org/osboot/nvmutil>
|
||||||
|
|
||||||
nvmutil 20221106
|
Version history (osboot)
|
||||||
================
|
------------------------
|
||||||
|
|
||||||
|
### nvmutil 20221106
|
||||||
|
|
||||||
Very minor bugfix release:
|
Very minor bugfix release:
|
||||||
|
|
||||||
|
@ -33,8 +32,7 @@ Very minor bugfix release:
|
||||||
* Documentation inaccuracies fixed (pertaining to nvmutil exit statuses)
|
* Documentation inaccuracies fixed (pertaining to nvmutil exit statuses)
|
||||||
* Documentation generally tidied up a bit
|
* Documentation generally tidied up a bit
|
||||||
|
|
||||||
nvmutil 20221103
|
### nvmutil 20221103
|
||||||
================
|
|
||||||
|
|
||||||
Not much has changed, as this just fixes minor bugs and behavioural
|
Not much has changed, as this just fixes minor bugs and behavioural
|
||||||
quirks seen in the previous release:
|
quirks seen in the previous release:
|
||||||
|
@ -49,8 +47,7 @@ quirks seen in the previous release:
|
||||||
fully readable. Previously, nvmutil would exit non-zero if one or both
|
fully readable. Previously, nvmutil would exit non-zero if one or both
|
||||||
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
|
||||||
|
|
||||||
nvmutil 20220828
|
### nvmutil 20220828
|
||||||
================
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -73,8 +70,7 @@ No new features have been added. This is a code cleanup and bugfix release.
|
||||||
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
|
||||||
machine, where a 0.16% binary size increase was observed.
|
machine, where a 0.16% binary size increase was observed.
|
||||||
|
|
||||||
nvmutil 20220815
|
### nvmutil 20220815
|
||||||
================
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -105,8 +101,7 @@ No new features have been added. This is a code cleanup and bugfix release.
|
||||||
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
|
||||||
is multicast
|
is multicast
|
||||||
|
|
||||||
nvmutil 20220810
|
### nvmutil 20220810
|
||||||
================
|
|
||||||
|
|
||||||
* 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),
|
||||||
due to code optimizations, *while* adding new checks and new features.
|
due to code optimizations, *while* adding new checks and new features.
|
||||||
|
@ -130,8 +125,7 @@ nvmutil 20220810
|
||||||
* The `setmac` command can now be used without specifying a MAC address,
|
* The `setmac` command can now be used without specifying a MAC address,
|
||||||
which will cause the same behaviour as `setmac ??:??:??:??:??:??`
|
which will cause the same behaviour as `setmac ??:??:??:??:??:??`
|
||||||
|
|
||||||
nvmutil 20220808
|
### nvmutil 20220808
|
||||||
================
|
|
||||||
|
|
||||||
Released on 8 August 2022. Changes:
|
Released on 8 August 2022. Changes:
|
||||||
|
|
||||||
|
@ -173,8 +167,7 @@ Released on 8 August 2022. Changes:
|
||||||
reduction; the other 2/3 of that reduction is due to increased
|
reduction; the other 2/3 of that reduction is due to increased
|
||||||
code efficiency in general.
|
code efficiency in general.
|
||||||
|
|
||||||
Regarding code size reduction
|
#### Regarding code size reduction
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
My test setup is an x86\_64 machine with `tcc` used
|
My test setup is an x86\_64 machine with `tcc` used
|
||||||
as the compiler; the libc doesn't really matter, if
|
as the compiler; the libc doesn't really matter, if
|
||||||
|
@ -215,8 +208,7 @@ binary sizes are much larger with those compilers, even with
|
||||||
optimization flags; despite this, the Makefile in nvmutil
|
optimization flags; despite this, the Makefile in nvmutil
|
||||||
assumes GCC/Clang and sets `CFLAGS` to `-Os`.
|
assumes GCC/Clang and sets `CFLAGS` to `-Os`.
|
||||||
|
|
||||||
nvmutil 20220802
|
### nvmutil 20220802
|
||||||
================
|
|
||||||
|
|
||||||
Released on 2 August 2022. Changes:
|
Released on 2 August 2022. Changes:
|
||||||
|
|
||||||
|
@ -236,8 +228,7 @@ Released on 2 August 2022. Changes:
|
||||||
* More human-friendly messages and help text
|
* More human-friendly messages and help text
|
||||||
* help/version commands actually listed in help output
|
* help/version commands actually listed in help output
|
||||||
|
|
||||||
nvmutil 20220731
|
### nvmutil 20220731
|
||||||
================
|
|
||||||
|
|
||||||
Released on 31 July 2022. Changes:
|
Released on 31 July 2022. Changes:
|
||||||
|
|
||||||
|
@ -250,8 +241,7 @@ Released on 31 July 2022. Changes:
|
||||||
|
|
||||||
That's it. Bug fixes and safety features added. Enjoy!
|
That's it. Bug fixes and safety features added. Enjoy!
|
||||||
|
|
||||||
nvmutil 20220728
|
### nvmutil 20220728
|
||||||
================
|
|
||||||
|
|
||||||
Initial release. It is functionally equivalent to the
|
Initial release. It is functionally equivalent to the
|
||||||
older `nvmutils`, developed for the osboot project. This
|
older `nvmutils`, developed for the osboot project. This
|
||||||
|
|
1
site/docs/install/nvmutilimport.md.description
Normal file
1
site/docs/install/nvmutilimport.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Historical information pertaining to nvmutil which can modify MAC addresses on Intel GbE NVM images.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: Sony PlayStation (PS1/PSX)
|
title: Install Libreboot Open BIOS on Sony PlayStation (PS1/PSX)
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
The PlayStation is a computer like any other. It ought to run all Free Software
|
The PlayStation is a computer like any other. It ought to run
|
||||||
if you want it to, and you can!
|
all [Free Software](https://writefreesoftware.org/learn) if you want it to, and
|
||||||
|
you can! In this document, you will learn how to replace the Sony BIOS on your
|
||||||
|
PlayStation, with a fully Open Source one instead.
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -27,21 +29,32 @@ if you want it to, and you can!
|
||||||
| **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) |
|
| **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) |
|
||||||
| **Flash chip** | 512KB Mask ROM |
|
| **Flash chip** | 512KB Mask ROM |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source playstation (PS1/PSX) BIOS
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
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
|
||||||
can learn more about here:
|
can learn more about here:
|
||||||
|
|
||||||
<https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios>
|
<https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios>
|
||||||
|
|
||||||
Build from source
|
### Download pre-built BIOS
|
||||||
-----------------
|
|
||||||
|
|
||||||
Pre-compiled builds will be in the next Libreboot release, after
|
Get it here:
|
||||||
version 20240612. For now, you must compile it from source, but the Libreboot
|
|
||||||
build system provides automation for this. Please use the latest lbmk
|
<https://www.mirrorservice.org/sites/libreboot.org/release/stable/20241206/roms/playstation/>
|
||||||
revision [from Git](../../git.md).
|
|
||||||
|
Other mirrors are available, at the [Canoeboot download](../../download.md)
|
||||||
|
page; look in the `roms/playstation/` directory for a given Libreboot release.
|
||||||
|
This is built from the available sources in Libreboot releases, based on the
|
||||||
|
information written below.
|
||||||
|
|
||||||
|
You can use this in a PlayStation emulator or on real hardware - the rest of
|
||||||
|
this page will tell you how to use it.
|
||||||
|
|
||||||
|
### Build from source
|
||||||
|
|
||||||
|
OPTIONAL: You could alternatively use the pre-built version (see above).
|
||||||
|
|
||||||
First, please make sure you have build dependencies. The build logic in lbmk
|
First, please make sure you have build dependencies. The build logic in lbmk
|
||||||
has been tested on Debian 12 (x86\_64) and you can do this for example, as root:
|
has been tested on Debian 12 (x86\_64) and you can do this for example, as root:
|
||||||
|
@ -67,7 +80,7 @@ This commonly only builds the BIOS part. If you want to build all of PCSX-Redux,
|
||||||
you can, but lbmk does not provide automation for this.
|
you can, but lbmk does not provide automation for this.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
============
|
------------
|
||||||
|
|
||||||
If all went well, you should see `openbios.bin` located
|
If all went well, you should see `openbios.bin` located
|
||||||
under the `bin/playstation/` (within lbmk). Alternatively, you may be using
|
under the `bin/playstation/` (within lbmk). Alternatively, you may be using
|
||||||
|
@ -75,8 +88,7 @@ a release *after* Libreboot 20240612 that has it pre-built. Either way is fine.
|
||||||
|
|
||||||
The `openbios.bin` file is your new BIOS build.
|
The `openbios.bin` file is your new BIOS build.
|
||||||
|
|
||||||
Emulators
|
### Emulators
|
||||||
---------
|
|
||||||
|
|
||||||
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.
|
||||||
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
|
||||||
|
@ -91,8 +103,7 @@ provided with your chosen PlayStation emulator. You can even freely
|
||||||
redistribute this BIOS, because it's free software (released under MIT license),
|
redistribute this BIOS, because it's free software (released under MIT license),
|
||||||
which is a major advantage over Sony's original BIOS.
|
which is a major advantage over Sony's original BIOS.
|
||||||
|
|
||||||
Hardware
|
### Hardware
|
||||||
--------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -116,7 +127,7 @@ BIOS much more polished, but a number of games have been tested and it's more
|
||||||
or less fully reliable in most cases.
|
or less fully reliable in most cases.
|
||||||
|
|
||||||
Game compatibility
|
Game compatibility
|
||||||
==================
|
------------------
|
||||||
|
|
||||||
The upstream maintains a compatibility list, here:
|
The upstream maintains a compatibility list, here:
|
||||||
|
|
||||||
|
@ -126,7 +137,7 @@ NOTE: Google Docs, but an option exists on there to export it for LibreOffice
|
||||||
Calc. The list is provided as a spreadsheet.
|
Calc. The list is provided as a spreadsheet.
|
||||||
|
|
||||||
Remarks about hardware
|
Remarks about hardware
|
||||||
====================
|
----------------------
|
||||||
|
|
||||||
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,
|
||||||
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,
|
||||||
|
@ -146,10 +157,28 @@ We do not yet provide instructions for how to install this on real hardware, in
|
||||||
the Libreboot project, but this can be done at a future date.
|
the Libreboot project, but this can be done at a future date.
|
||||||
|
|
||||||
Other mods (hardware)
|
Other mods (hardware)
|
||||||
===============
|
---------------------
|
||||||
|
|
||||||
Video timings
|
### Modchip (mayumi v4) example
|
||||||
-------------
|
|
||||||
|
Click the photo for full size. It shows a Mayumi v4 modchip and Dual Frequency
|
||||||
|
Oscillator mod installed (blue board is the modchip and the black board is
|
||||||
|
the DFO mod). Mods installed by Leah Rowe, as a proof of concept:
|
||||||
|
|
||||||
|
<img tabindex=1 alt="Sony PlayStation (PSOne) console" class="p" src="https://av.libreboot.org/playstation/mayumi.jpg" /><span class="f"><img src="https://av.libreboot.org/playstation/mayumi.jpg" /></span>
|
||||||
|
|
||||||
|
The modchip disables the copy protection and region restrictions. A modchip is
|
||||||
|
still advised, even if using an Open BIOS. The Open BIOS could be modified to
|
||||||
|
send commands that disable the wobble check, thus invalidating the need for
|
||||||
|
a modchip, but even then there are still caveats. Please read:
|
||||||
|
|
||||||
|
<https://psx-spx.consoledev.net/cdromdrive/#cdrom-secret-unlock-commands>
|
||||||
|
|
||||||
|
The most technically correct solution, regardless of which BIOS you have, to
|
||||||
|
also install the modchip and DFO board, as shown. More info is written about
|
||||||
|
these in the next sections below:
|
||||||
|
|
||||||
|
### Video timings
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -199,8 +228,7 @@ By fixing the timings in this way, your region-free console will also have
|
||||||
correct timings, thus maximum game compatibility, and colours will always be
|
correct timings, thus maximum game compatibility, and colours will always be
|
||||||
correct no matter what video cable you're using.
|
correct no matter what video cable you're using.
|
||||||
|
|
||||||
Modchips
|
### Modchips
|
||||||
--------
|
|
||||||
|
|
||||||
If using hardware, you will probably still want a modchip. Many proprietary
|
If using hardware, you will probably still want a modchip. Many proprietary
|
||||||
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
|
||||||
|
@ -228,8 +256,7 @@ not yet been confirmed by the Libreboot project.
|
||||||
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.
|
||||||
Give it a try!
|
Give it a try!
|
||||||
|
|
||||||
Boot games on SD cards
|
### Boot games on SD cards
|
||||||
-----------------------
|
|
||||||
|
|
||||||
The [PicoStation](https://github.com/paulocode/picostation) project provides
|
The [PicoStation](https://github.com/paulocode/picostation) project provides
|
||||||
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
|
||||||
|
@ -240,8 +267,7 @@ real playstation (the picostation replaces your CD drive).
|
||||||
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
|
||||||
your CD drive has worn out and no longer reads discs properly.
|
your CD drive has worn out and no longer reads discs properly.
|
||||||
|
|
||||||
Final remarks
|
### Final remarks
|
||||||
-------------
|
|
||||||
|
|
||||||
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
|
||||||
turn your 90s PlayStation into a very hackable machine. There is
|
turn your 90s PlayStation into a very hackable machine. There is
|
||||||
|
@ -253,7 +279,7 @@ simply computers, fully reprogrammable and as such, Libreboot is happy to provid
|
||||||
this support, for the Sony PlayStation
|
this support, for the Sony PlayStation
|
||||||
|
|
||||||
Credit
|
Credit
|
||||||
======
|
------
|
||||||
|
|
||||||
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
|
||||||
the Sony PS1 BIOS.
|
the Sony PS1 BIOS.
|
||||||
|
|
1
site/docs/install/playstation.md.description
Normal file
1
site/docs/install/playstation.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Install free/opensource BIOS boot firmware on your Sony PlayStation (PS1/PSX), optionally compiling it with GNU GCC. This uses PCSX-Redux Open BIOS.
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
title: Flashing the ThinkPad R400
|
title: Install Libreboot on Lenovo ThinkPad R400
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -28,12 +28,12 @@ x-toc-enable: true
|
||||||
| **Flash chip** | SOIC-8/SOIC-16 4MiB/8MiB (Upgradable to 16MiB) |
|
| **Flash chip** | SOIC-8/SOIC-16 4MiB/8MiB (Upgradable to 16MiB) |
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|
@ -52,16 +52,13 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Dell Latitude E6400
|
Open source BIOS/UEFI firmware
|
||||||
===================
|
-------------------------
|
||||||
|
|
||||||
**If you haven't bought an R400 yet: the [Dell Latitude
|
This document will teach you how to install Libreboot, on your
|
||||||
E6400](../install/latitude.md) is much easier to flash; no disassembly required,
|
Lenovo ThinkPad R400 laptop motherboard.
|
||||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
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
|
||||||
about [CPU
|
about [CPU
|
||||||
|
@ -74,17 +71,26 @@ the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16.
|
||||||
|
|
||||||
*The R400 laptops come with the ME (and sometimes AMT in addition)
|
*The R400 laptops come with the ME (and sometimes AMT in addition)
|
||||||
before flashing libreboot. libreboot disables and removes it by using a
|
before flashing libreboot. libreboot disables and removes it by using a
|
||||||
modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
|
modified descriptor.*
|
||||||
(contains notes, plus instructions)
|
|
||||||
|
|
||||||
Flashing instructions can be found at
|
Flashing instructions can be found at
|
||||||
[../install/\#flashprog](../install/#flashprog)
|
[../install/\#flashprog](../install/#flashprog)
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
|
Dell Latitude E6400
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
**If you haven't bought an R400 yet: the [Dell Latitude
|
||||||
|
E6400](../install/latitude.md) is much easier to flash; no disassembly required,
|
||||||
|
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||||
|
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||||
|
|
||||||
EC update {#ecupdate}
|
EC update {#ecupdate}
|
||||||
=========
|
--------------------
|
||||||
|
|
||||||
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
|
||||||
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
|
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
|
||||||
|
@ -109,7 +115,7 @@ TODO: put hardware register logs here like on the [X200](x200.md) and
|
||||||
[T400](t400.md) page.
|
[T400](t400.md) page.
|
||||||
|
|
||||||
Installation notes
|
Installation notes
|
||||||
==================
|
------------------
|
||||||
|
|
||||||
[External flashing](spi.md) required, if Lenovo BIOS is running.
|
[External flashing](spi.md) required, if Lenovo BIOS is running.
|
||||||
|
|
||||||
|
@ -129,15 +135,14 @@ ROM properly first. Although ROM images are provided pre-built in
|
||||||
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
|
||||||
you chose before flashing. (instructions referenced later in this guide)
|
you chose before flashing. (instructions referenced later in this guide)
|
||||||
|
|
||||||
Serial port {#serial_port}
|
### Serial port {#serial_port}
|
||||||
-----------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
use that instead.
|
use that instead.
|
||||||
|
|
||||||
A note about CPUs
|
A note about CPUs
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
[ThinkWiki](http://www.thinkwiki.org/wiki/Category:R400) has a list of
|
[ThinkWiki](http://www.thinkwiki.org/wiki/Category:R400) has a list of
|
||||||
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
|
||||||
|
@ -145,13 +150,12 @@ work in libreboot. The Core 2 Duo T9600 was confirmed to work, so the
|
||||||
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
|
||||||
575/585 are untested!*
|
575/585 are untested!*
|
||||||
|
|
||||||
Quad-core CPUs
|
### Quad-core CPUs
|
||||||
--------------
|
|
||||||
|
|
||||||
Incompatible. Do not use.
|
Incompatible. Do not use.
|
||||||
|
|
||||||
A note about GPUs
|
A note about GPUs
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
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
|
||||||
Intel GPU; this is referred to as "Dual Graphics" (previously
|
Intel GPU; this is referred to as "Dual Graphics" (previously
|
||||||
|
@ -165,32 +169,33 @@ Intel GPU is used and the ATI GPU is disabled, so native graphics
|
||||||
initialization works all the same.
|
initialization works all the same.
|
||||||
|
|
||||||
CPU paste required
|
CPU paste required
|
||||||
==================
|
------------------
|
||||||
|
|
||||||
See [\#paste](#paste).
|
See [\#paste](#paste).
|
||||||
|
|
||||||
Flash chip size {#flashchips}
|
Flash chip size {#flashchips}
|
||||||
===============
|
-----------------------------
|
||||||
|
|
||||||
Use this to find out:
|
Use this to find out:
|
||||||
|
|
||||||
flashprog -p internal
|
flashprog -p internal
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
MAC address {#macaddress}
|
MAC address {#macaddress}
|
||||||
===========
|
-------------------------
|
||||||
|
|
||||||
Refer to [mac\_address.md](../install/mac_address.md).
|
Refer to [mac\_address.md](../install/mac_address.md).
|
||||||
|
|
||||||
External flashing
|
External flashing
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
Disassembly
|
### Disassembly
|
||||||
-----------
|
|
||||||
|
|
||||||
Remove all screws:\
|
Remove all screws:\
|
||||||
\
|
\
|
||||||
|
@ -276,7 +281,7 @@ Read [this article](spi.md) to learn how you may flash the chip, which is near
|
||||||
to the RAM.
|
to the RAM.
|
||||||
|
|
||||||
Thermal paste (IMPORTANT)
|
Thermal paste (IMPORTANT)
|
||||||
=========================
|
-------------------------
|
||||||
|
|
||||||
Because part of this procedure involved removing the heatsink, you will
|
Because part of this procedure involved removing the heatsink, you will
|
||||||
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
|
||||||
|
@ -293,7 +298,7 @@ show how to properly apply the thermal paste. Other guides online detail
|
||||||
the proper application procedure.
|
the proper application procedure.
|
||||||
|
|
||||||
Memory
|
Memory
|
||||||
======
|
------
|
||||||
|
|
||||||
In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks
|
In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks
|
||||||
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).
|
||||||
|
|
1
site/docs/install/r400.md.description
Normal file
1
site/docs/install/r400.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ThinkPad R400 installation. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader.
|
|
@ -4,7 +4,7 @@ x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Need help?
|
Need help?
|
||||||
==========
|
----------
|
||||||
|
|
||||||
Help is available on [Libreboot IRC](../../contact.md) and other channels.
|
Help is available on [Libreboot IRC](../../contact.md) and other channels.
|
||||||
|
|
||||||
|
@ -16,14 +16,51 @@ if you want to send your machine in to have Libreboot installed for you.
|
||||||
Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
||||||
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
|
|
||||||
Introduction
|
Install open source BIOS/UEFI firmware
|
||||||
============
|
--------------------------------------
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
This guide is predominantly about *installing Libreboot* (flashing it) onto
|
||||||
|
your motherboard's main system flash. You can also adapt this guide for dumping,
|
||||||
|
erasing and verifying firmware images; this guide shows you how to use
|
||||||
|
the [flashprog](https://flashprog.org/) software with various external
|
||||||
|
25XX NOR flash programmers. This guide is written for *Linux* users, but BSD
|
||||||
|
operating systems are also compatible with flashprog; Windows might be feasible,
|
||||||
|
ditto Apple's MacOS, as flashprog can also run on those, but they are not
|
||||||
|
officially supported by Libreboot, and *we recommend* that you use Linux/BSD.
|
||||||
|
|
||||||
|
Although this documentation is written *for the Libreboot project*, it can be
|
||||||
|
used on any compatible 25xx NOR flash, on any number of devices, such as home
|
||||||
|
routers and even certain videogame systems. If you're a refurbisher, and not
|
||||||
|
a Libreboot-based one, but just a regular refurbisher e.g. on eBay, dealing
|
||||||
|
with proprietary UEFI firmware (and perhaps Windows installations), it may be
|
||||||
|
that on some of them, SMM-based flash writes are performed to store UEFI firmware
|
||||||
|
configurations (instead of the old NVRAM/CMOS memory); you could adapt this
|
||||||
|
guide (and read flashprog documentation) to erase/flash custom configurations,
|
||||||
|
for example when unlocking boot passwords on the computers that you sell. This
|
||||||
|
is the power of [Free Software](https://writefreesoftware.org/learn); flashprog
|
||||||
|
is a Free Software project. The use-case scenario of the humble eBay seller is
|
||||||
|
real; several of them have in fact used this guide in the past.
|
||||||
|
|
||||||
|
So keep that in mind; this is part of the Libreboot installation instructions,
|
||||||
|
but it can be used for *any* flashing operation on *any* 25xx NOR flash, with
|
||||||
|
all sorts of firmware; you could also use this to *reverse* a Libreboot
|
||||||
|
installation, re-flashing the original vendor firmware if you made a dump of it,
|
||||||
|
**and we definitely recommend backing that up prior to Libreboot installation**.
|
||||||
|
|
||||||
|
**Please ensure that your programmer's voltage matches that of the flash IC,
|
||||||
|
and read this guide carefully to account for proper electrical safety. In
|
||||||
|
general, these programmers operate at 3.3v, so you'll need a logic level
|
||||||
|
adapter and e.g. buck converter, if you're dealing with a 1.8V flash IC.**
|
||||||
|
|
||||||
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
This guide will teach you how to use various tools for externally reprogramming
|
This guide will teach you how to use various tools for externally reprogramming
|
||||||
a 25xx NOR flash via SPI protocol. This is the most common type of flash IC for
|
a 25xx NOR flash via SPI protocol. This is the most common type of flash IC for
|
||||||
|
@ -33,12 +70,12 @@ which uses LPC flash in a PLCC32 socket, which you can simply hot-swap after
|
||||||
booting the vendor firmware, and then flash internally. Simple!
|
booting the vendor firmware, and then flash internally. Simple!
|
||||||
|
|
||||||
We will be using
|
We will be using
|
||||||
the [flashprog](https://flashprog.org/Flashrom) software which is written to
|
the [flashprog](https://flashprog.org/) software which is written to
|
||||||
dump, erase and rewrite these flash chips.
|
dump, erase and rewrite these flash chips.
|
||||||
|
|
||||||
libreboot currently documents how to use these SPI programmers:
|
Libreboot currently documents how to use these SPI programmers:
|
||||||
|
|
||||||
* Raspberry Pi Pico
|
* Raspberry Pi Pico / Pico 2
|
||||||
* Raspberry Pi (RPi) single-board computers
|
* Raspberry Pi (RPi) single-board computers
|
||||||
* BeagleBone Black (BBB)
|
* BeagleBone Black (BBB)
|
||||||
* Libre Computer 'Le Potato'
|
* Libre Computer 'Le Potato'
|
||||||
|
@ -58,10 +95,24 @@ SPI flash, using an on-board SPI programmer (which all boards have). You do this
|
||||||
from Linux, with flashprog.
|
from Linux, with flashprog.
|
||||||
|
|
||||||
*This* guide that you're reading now is for using an *external* programmer. It
|
*This* guide that you're reading now is for using an *external* programmer. It
|
||||||
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 motherboard.
|
||||||
|
|
||||||
Raspberry Pi Pico
|
Raspberry Pi Pico
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
|
### Pico 1 (RP2040) supported
|
||||||
|
|
||||||
|
Pico 2 support was removed, due to stability issues. These are the RP2530
|
||||||
|
devices. Pico 1 dongles work just fine (RP2040).
|
||||||
|
|
||||||
|
**NOTE: RP2530 dongles removed in the Libreboot 25.04 testing release, but will
|
||||||
|
be re-added in future revisions. It was removed due to bugs, so Libreboot only
|
||||||
|
supports Pico1 (RP2040) for now, and the Pico2 images were also removed from the
|
||||||
|
December release of 2024, retroactively. Subsequent revisions will once again
|
||||||
|
re-add Pico 2 support, after it has been better tested.**
|
||||||
|
|
||||||
|
The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you
|
||||||
|
must take care to flash the correct image on either device.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -72,16 +123,19 @@ Additionally, all the software running on it is free, down to the full
|
||||||
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,
|
||||||
but that is not needed for following this guide.
|
but that is not needed for following this guide.
|
||||||
|
|
||||||
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
|
### Download serprog firmware pre-compiled
|
||||||
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
|
|
||||||
you need to add a logic level converter.
|
|
||||||
|
|
||||||
First, connect just the Pico to your computer with a micro-USB cable.
|
Download the pico serprog tarball from Libreboot releases. For example, the
|
||||||
Mount it like any other USB flash drive. If it isn't detected, you might need
|
Libreboot 20241206rev8 one would be
|
||||||
to press the BOOTSEL button while you plug it in (this forces it into the
|
named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under
|
||||||
bootloader mode).
|
the `roms/` directory in each release. With these binaries, you can easily
|
||||||
|
get started.
|
||||||
|
|
||||||
You can download the serprog firmware here:\
|
### Build serprog firmware from source (OPTIONAL)
|
||||||
|
|
||||||
|
**Pre-compiled binaries are also available, in Libreboot releases.**
|
||||||
|
|
||||||
|
You can alternatively download the serprog firmware here:\
|
||||||
<https://codeberg.org/libreboot/pico-serprog>\
|
<https://codeberg.org/libreboot/pico-serprog>\
|
||||||
or here:\
|
or here:\
|
||||||
<https://notabug.org/libreboot/pico-serprog>
|
<https://notabug.org/libreboot/pico-serprog>
|
||||||
|
@ -90,7 +144,7 @@ You can also find the source code for these, under `src/` in Libreboot release
|
||||||
archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading
|
archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading
|
||||||
using the build instructions below.
|
using the build instructions below.
|
||||||
|
|
||||||
Copy the file `rpi-pico-serprog.uf2` into your Pico. To build this firmware, you
|
Alternatively to the binaries, you
|
||||||
could build it yourself or you could also clone `lbmk.git` and [install build
|
could build it yourself or you could also clone `lbmk.git` and [install build
|
||||||
dependencies](../build/#first-install-build-dependencies), then inside lbmk,
|
dependencies](../build/#first-install-build-dependencies), then inside lbmk,
|
||||||
do:
|
do:
|
||||||
|
@ -98,8 +152,34 @@ do:
|
||||||
./mk -b pico-serprog
|
./mk -b pico-serprog
|
||||||
|
|
||||||
This will automatically build the rpi-pico firmware, and the file will be
|
This will automatically build the rpi-pico firmware, and the file will be
|
||||||
at `bin/serprog_rp2040/serprog_pico.uf2`
|
at `bin/serprog_pico/serprog_pico.uf2`
|
||||||
and `bin/serprog_rp2040/serprog_pico_w.uf2`.
|
and `bin/serprog_pico/serprog_pico_w.uf2`.
|
||||||
|
|
||||||
|
### Install the serprog firmware
|
||||||
|
|
||||||
|
First, connect just the Pico to your computer with a micro-USB cable.
|
||||||
|
Mount it like any other USB flash drive. If it isn't detected, you might need
|
||||||
|
to press the BOOTSEL button while you plug it in (this forces it into the
|
||||||
|
bootloader mode).
|
||||||
|
|
||||||
|
When you have the build, or if you're using a release build, copy the
|
||||||
|
file `.uf2` file into your Pico. You must make sure to build the correct
|
||||||
|
target, or otherwise copy the correct file, because many RP2040 and RP2530
|
||||||
|
devices exist and Libreboot provides images for **all of them** in the same
|
||||||
|
release tarball.
|
||||||
|
|
||||||
|
**NOTE: Other RP2040/2530 devices will also work. You just have to match
|
||||||
|
the right pins and use the correct firmware file!**
|
||||||
|
|
||||||
|
### Logic levels
|
||||||
|
|
||||||
|
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
|
||||||
|
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
|
||||||
|
the voltage of your programmer to the voltage of your chip; both the data lines
|
||||||
|
and power lines to the chip must match.**
|
||||||
|
|
||||||
|
### Wiring
|
||||||
|
|
||||||
Disconnect the Pico and proceed to wire it to your
|
Disconnect the Pico and proceed to wire it to your
|
||||||
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
|
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
|
||||||
|
@ -113,6 +193,8 @@ above](https://av.libreboot.org/rpi_pico/pinout_serprog.png)
|
||||||

|
chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Headers were manually soldered on the top side, and the plastic packaging
|
Headers were manually soldered on the top side, and the plastic packaging
|
||||||
was repurposed as an insulating base. These might be nice to have, but by no
|
was repurposed as an insulating base. These might be nice to have, but by no
|
||||||
means necessary. If your headers are on the other side, just keep in mind
|
means necessary. If your headers are on the other side, just keep in mind
|
||||||
|
@ -123,7 +205,7 @@ will appear:
|
||||||
|
|
||||||
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
|
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
|
||||||
|
|
||||||
Take note of the ttyACMx. Flashrom is now usable
|
Take note of the ttyACMx. Flashprog is now usable
|
||||||
(substitute ttyACMx with what you observed earlier).
|
(substitute ttyACMx with what you observed earlier).
|
||||||
|
|
||||||
flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
|
flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
|
||||||
|
@ -131,11 +213,13 @@ Take note of the ttyACMx. Flashrom is now usable
|
||||||
spispeed=32M usually works, but since it's not much faster it's probably
|
spispeed=32M usually works, but since it's not much faster it's probably
|
||||||
not worth it. The 12Mbps USB port is limiting the actual speed here.
|
not worth it. The 12Mbps USB port is limiting the actual speed here.
|
||||||
|
|
||||||
Do not use CH341A!
|
Higher speeds might work nicely, on Pico 2.
|
||||||
==================
|
|
||||||
|
Do not buy CH341A!
|
||||||
|
------------------
|
||||||
|
|
||||||
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
|
||||||
data lines. CH341A has 5V logic levels on data lines, which will damage your
|
data lines. CH341A can have 5V logic levels on data lines, which can damage your
|
||||||
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
|
||||||
that it's connected to.
|
that it's connected to.
|
||||||
|
|
||||||
|
@ -162,12 +246,12 @@ build up and possibly fire (and definitely damaged circuitry). On SOIC8, pin 3
|
||||||
is WP and 4 is GND, so a direct 3.3v connection there is quite hazardous for
|
is WP and 4 is GND, so a direct 3.3v connection there is quite hazardous for
|
||||||
that reason; all the more reason to use a pull-up resistor.**
|
that reason; all the more reason to use a pull-up resistor.**
|
||||||
|
|
||||||
The mainboard that you want to flash (if using e.g. pomona clip) will probably
|
The motherboard that you want to flash (if using e.g. pomona clip) will probably
|
||||||
have pull-up resistors on it already for WP/HOLD, so simply cutting WP/HOLD
|
have pull-up resistors on it already for WP/HOLD, so simply cutting WP/HOLD
|
||||||
on the CH341A would also be acceptable. The pull-up resistors that you
|
on the CH341A would also be acceptable. The pull-up resistors that you
|
||||||
place (in such a mod) on the CH341A are only useful if you also want to flash
|
place (in such a mod) on the CH341A are only useful if you also want to flash
|
||||||
chips in the ZIF socket. If pull-up resistors exist both on e.g. the laptop
|
chips in the ZIF socket. If pull-up resistors exist both on e.g. the laptop
|
||||||
mainboard and on the CH341A, it just means the equivalent series resistance
|
motherboard and on the CH341A, it just means the equivalent series resistance
|
||||||
will be of the two resistors (on each line) in parallel. If we assume that
|
will be of the two resistors (on each line) in parallel. If we assume that
|
||||||
a laptop is likely to have a resistor size of ~3.3k for pull-ups, then a value
|
a laptop is likely to have a resistor size of ~3.3k for pull-ups, then a value
|
||||||
of ~5.6k ohms on the CH341A side seems reasonable.
|
of ~5.6k ohms on the CH341A side seems reasonable.
|
||||||
|
@ -193,10 +277,71 @@ resistors) performed, on the black CH341A:\
|
||||||
<img tabindex=1 src="https://av.libreboot.org/ch341a/0001_th.jpg" /><span class="f"><img src="https://av.libreboot.org/ch341a/0001.jpg" /></span>
|
<img tabindex=1 src="https://av.libreboot.org/ch341a/0001_th.jpg" /><span class="f"><img src="https://av.libreboot.org/ch341a/0001.jpg" /></span>
|
||||||
|
|
||||||
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
|
||||||
still needs to have pull-up resistors placed for WP/HOLD.
|
still needs to have pull-up resistors placed for WP/HOLD. Some of them may have
|
||||||
|
switchable voltage instead, via a physical toggle on the board.
|
||||||
|
|
||||||
|
Disclaimer: A few (not many, but wily) people have criticised this section of the
|
||||||
|
documentation, due to a misconception about what it really means and also because
|
||||||
|
this section was previously very poorly written. So to be clear:
|
||||||
|
|
||||||
|
Yes, we are quite well aware that the CH341A can in fact operate at 3.3v,
|
||||||
|
even unmodified black models; the VCC line is 3.3v, and if when you either
|
||||||
|
directly wire VCC to WP/HOLD pins yourself, or a pull-up resistor on the
|
||||||
|
motherboard you're flashing pulls these high at 3.3v, then the logic levels
|
||||||
|
on the data lines do in fact switch to 3V *during an erase, read or write cycle*.
|
||||||
|
When no flashing operation is underway, the data lines are outputting at almost
|
||||||
|
negligable current, so the actual amount of heat generated will be negligable,
|
||||||
|
and therefore damage is unlikely. However, as stated above and as we will state
|
||||||
|
again:
|
||||||
|
|
||||||
|
* This is bad electrical design. The CH341A can switch flexibly between 3V
|
||||||
|
and 5V operation, but most flashes today are 1.8V or 3V anyway, and there are
|
||||||
|
all kinds of scenarios (such as over-current or surge event) where this 5V
|
||||||
|
idle logic level could still be applied. Modifying your CH341a to 3.3v
|
||||||
|
only, as defined in the datasheet (and by this page) is highly recommended.
|
||||||
|
* The drive level is extremely poor anyway, on CH341a, making ISP-based
|
||||||
|
flashing ill advisable in many cases, such as where the PCH (Intel platforms)
|
||||||
|
is partly active and the data lines have lower resistance, because some
|
||||||
|
boards have 0ohms or very low resistance on these lines.
|
||||||
|
* No pull-ups on the WP/hold lines, when flashing in the socket; they are high
|
||||||
|
via 0ohm trace to VCC, whereas you are advised to use a pull-up resistor to
|
||||||
|
mitigate over-current events.
|
||||||
|
* Crap LDO on the board, and no ESD/overcurrent protection; the CH341a probably
|
||||||
|
can't provide much current on the VCC line, especially for ISP-based flashing
|
||||||
|
where the flash shares a common power rail with many other components.
|
||||||
|
|
||||||
|
CH341a is cheap junk. Get yourself a Raspberry Pi Pico instead; it's about the
|
||||||
|
same price, but of much higher quality from an electrical design perspective,
|
||||||
|
supports much higher (12mA!) drive levels on data lines, can control multiple
|
||||||
|
chip selects at once; it's just better, in every way. And the Raspberry Pi is
|
||||||
|
completely reprogrammable, so you can use it for something else when you're
|
||||||
|
done, e.g. UART dongle, or if you're wily enough, [PlayStation 1 Optical Disc
|
||||||
|
Emulator](https://github.com/paulocode/picostation) - the Pico is simply a
|
||||||
|
highly versatile tool, much better value for money.
|
||||||
|
|
||||||
|
There is only one instance where the CH341a is *good*, and that is when you're
|
||||||
|
actually flashing a loose (not soldered) chip, in the ZIF socket on the CH341a
|
||||||
|
board. It's a DIP-8 socket, and you can also buy WSON-8 and SOIC-8 or SOIC-16
|
||||||
|
adapters for it; you can also plug a special adapter board into it that converts
|
||||||
|
the voltages (VCC and data lines) to 1.8V, for 1.8V flashes (you could also
|
||||||
|
use that same 1.8V adapter circuit in a breadboard wired to your Pico). On
|
||||||
|
socket-based flashing, *which is specifically what the CH341a was designed
|
||||||
|
for*, you don't have to worry about weak drive level because there is nothing
|
||||||
|
contending with it on the flash IC's data pins.
|
||||||
|
|
||||||
|
The *socket-based* flashing operation is what we recommend this programmer
|
||||||
|
for, *only if you already have one*. We still recommend fixing the issue with
|
||||||
|
the WP/HOLD pins as described above; if you're doing this, note that there are
|
||||||
|
also newer models that have a voltage switch and logic level shifter already
|
||||||
|
on the board, which can be very useful. *Clip-based* flashing (ISP / in-system
|
||||||
|
programming) is, specifically, what we advise against using the CH341a for.
|
||||||
|
|
||||||
|
Why pay $10 for a CH341a when you can pay $10 for a Raspberry Pi Pico which is
|
||||||
|
electrically and functionally superior in every way? And the Pico is completely
|
||||||
|
open source, right down to the boot rom.
|
||||||
|
|
||||||
Identify which flash type you have
|
Identify which flash type you have
|
||||||
==================================
|
----------------------------------
|
||||||
|
|
||||||
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).
|
||||||
|
|
||||||
|
@ -204,8 +349,7 @@ Use the following photos and then look at your board. When you've figured out
|
||||||
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
|
||||||
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.
|
||||||
|
|
||||||
SOIC8
|
### SOIC8
|
||||||
-----
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -220,8 +364,7 @@ SOIC8
|
||||||
| 7 | HOLD |
|
| 7 | HOLD |
|
||||||
| 8 | VCC |
|
| 8 | VCC |
|
||||||
|
|
||||||
SOIC16
|
### SOIC16
|
||||||
------
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -238,8 +381,7 @@ SOIC16
|
||||||
|
|
||||||
SOIC8 and SOIC16 are the most common types, but there are others:
|
SOIC8 and SOIC16 are the most common types, but there are others:
|
||||||
|
|
||||||
WSON8
|
### WSON8
|
||||||
-----
|
|
||||||
|
|
||||||
It will be like this on an X200S or X200 Tablet:\
|
It will be like this on an X200S or X200 Tablet:\
|
||||||
|
|
||||||
|
@ -250,15 +392,13 @@ On T400S, it is in this location near the RAM:\
|
||||||
\
|
\
|
||||||
NOTE: in this photo, the chip has been replaced with SOIC8.
|
NOTE: in this photo, the chip has been replaced with SOIC8.
|
||||||
|
|
||||||
DIP8
|
### DIP8
|
||||||
----
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Pinout is the same as SOIC8 above.
|
Pinout is the same as SOIC8 above.
|
||||||
|
|
||||||
Supply Voltage
|
### Supply Voltage
|
||||||
--------------
|
|
||||||
|
|
||||||
Historically, all boards that Libreboot supports happened to have SPI NOR chips
|
Historically, all boards that Libreboot supports happened to have SPI NOR chips
|
||||||
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
|
||||||
|
@ -271,18 +411,16 @@ connect it to the chip through an adapter or logic level converter, never
|
||||||
directly.
|
directly.
|
||||||
|
|
||||||
Software configuration
|
Software configuration
|
||||||
======================
|
----------------------
|
||||||
|
|
||||||
General/Le potato
|
### General/Le potato
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
SBC which is not listed in this guide.
|
SBC which is not listed in this guide.
|
||||||
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.
|
||||||
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)
|
||||||
|
|
||||||
BeagleBone Black (BBB)
|
### BeagleBone Black (BBB)
|
||||||
----------------------
|
|
||||||
|
|
||||||
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
|
||||||
your BBB. You will run `flashprog` from your BBB.
|
your BBB. You will run `flashprog` from your BBB.
|
||||||
|
@ -344,8 +482,7 @@ Note: flashprog can never write if the flash chip isn't found automatically.
|
||||||
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
|
||||||
chip, so the error is fine).
|
chip, so the error is fine).
|
||||||
|
|
||||||
Caution about BBB
|
### Caution about BBB
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
SPI flashing, and nowadays much better options exist. We used to mainly
|
SPI flashing, and nowadays much better options exist. We used to mainly
|
||||||
|
@ -354,8 +491,7 @@ Software on it, but nowadays there are superior options.
|
||||||
|
|
||||||
TODO: document other SPI flashers
|
TODO: document other SPI flashers
|
||||||
|
|
||||||
Rasberry Pi (RPi)
|
### Rasberry Pi (RPi)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -374,9 +510,9 @@ Under the Interface section, you can enable SPI.
|
||||||
|
|
||||||
The device for communicating via SPI as at `/dev/spidev0.0`
|
The device for communicating via SPI as at `/dev/spidev0.0`
|
||||||
|
|
||||||
RPi Drive Strength
|
### RPi Drive Strength
|
||||||
------------------
|
|
||||||
Flashrom on the RPi may not be able to detect the SPI flash chip on some
|
Flashprog on the RPi may not be able to detect the SPI flash chip on some
|
||||||
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
|
||||||
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
|
||||||
strength is essentially the maximum current the pin can output while also
|
strength is essentially the maximum current the pin can output while also
|
||||||
|
@ -432,8 +568,7 @@ See
|
||||||
<https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control>
|
<https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control>
|
||||||
for more information about the drive strength control on the Pi.
|
for more information about the drive strength control on the Pi.
|
||||||
|
|
||||||
Caution about RPi
|
### Caution about RPi
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -453,8 +588,7 @@ They then removed it, after a public backlash, via the following commits:
|
||||||
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555>
|
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555>
|
||||||
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6>
|
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6>
|
||||||
|
|
||||||
Libre firmware on RPi
|
### Libre firmware on RPi
|
||||||
---------------------
|
|
||||||
|
|
||||||
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
|
||||||
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:
|
||||||
|
@ -465,12 +599,11 @@ Website:
|
||||||
|
|
||||||
<https://librerpi.github.io/>
|
<https://librerpi.github.io/>
|
||||||
|
|
||||||
Install flashprog
|
### Install flashprog
|
||||||
----------------
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
Flashrom is the software that you will use, for dumping, erasing and rewriting
|
Flashprog is the software that you will use, for dumping, erasing and rewriting
|
||||||
the contents of your NOR flash.
|
the contents of your NOR flash.
|
||||||
|
|
||||||
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
|
||||||
|
@ -499,7 +632,7 @@ for use on x86-64 systems running Ubuntu 20.04, but it should work in Raspbian
|
||||||
on the Raspberry Pi.
|
on the Raspberry Pi.
|
||||||
|
|
||||||
Alternatively, you may download flashprog directly from upstream
|
Alternatively, you may download flashprog directly from upstream
|
||||||
at <https://flashprog.org/Flashrom>
|
at <https://flashprog.org/Flashprog>
|
||||||
|
|
||||||
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
|
||||||
use a special patched version of flashprog, which you can download here:
|
use a special patched version of flashprog, which you can download here:
|
||||||
|
@ -514,13 +647,12 @@ at `config/dependencies/` which you can install
|
||||||
using the `apt-get` software.
|
using the `apt-get` software.
|
||||||
|
|
||||||
How to use flashprog
|
How to use flashprog
|
||||||
===================
|
--------------------
|
||||||
|
|
||||||
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
|
||||||
types and how to wire them.
|
types and how to wire them.
|
||||||
|
|
||||||
Reading
|
### Reading
|
||||||
-------
|
|
||||||
|
|
||||||
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
|
||||||
current chip contents to a file.
|
current chip contents to a file.
|
||||||
|
@ -580,8 +712,7 @@ You can combine both flashes together with `cat` for example:
|
||||||
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
|
||||||
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.
|
||||||
|
|
||||||
Writing
|
### Writing
|
||||||
-------
|
|
||||||
|
|
||||||
Next, run this command (RPi):
|
Next, run this command (RPi):
|
||||||
|
|
||||||
|
@ -617,15 +748,13 @@ For example, to split a rom for the x230, t430, t530, or t440p run:
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
|
||||||
Hardware configuration
|
Hardware configuration
|
||||||
======================
|
----------------------
|
||||||
|
|
||||||
Refer to the above guidance about software configuration. The following advice
|
Refer to the above guidance about software configuration. The following advice
|
||||||
will teach you how to wire each type of flash chip.
|
will teach you how to wire each type of flash chip.
|
||||||
|
|
||||||
WARNINGS
|
### WARNINGS
|
||||||
--------
|
|
||||||
|
|
||||||
Do not connect the power source until your chip is otherwise properly
|
Do not connect the power source until your chip is otherwise properly
|
||||||
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.
|
||||||
|
@ -648,24 +777,22 @@ voltage range is between 2.7V and 3.6V, but 3.3V is the most ideal level).
|
||||||
|
|
||||||
DO NOT connect more than 1 DC power source to your flash chip either!
|
DO NOT connect more than 1 DC power source to your flash chip either!
|
||||||
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
|
||||||
your chip/mainboard.
|
your chip/motherboard.
|
||||||
|
|
||||||
MISO/MOSI/CS/CLK lines
|
### MISO/MOSI/CS/CLK lines
|
||||||
----------------------
|
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
connected via such resistors, directly to the Southbridge chipset.
|
connected via such resistors, directly to the Southbridge chipset.
|
||||||
|
|
||||||
ISP programming and VCC diode
|
### ISP programming and VCC diode
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
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
|
||||||
mounted to the mainboard of your computer that you wish to install libreboot
|
mounted to the motherboard of your computer that you wish to install libreboot
|
||||||
on.
|
on.
|
||||||
|
|
||||||
It may be beneficial to modify the mainboard so that the SPI flash is powered
|
It may be beneficial to modify the motherboard so that the SPI flash is powered
|
||||||
(on the VCC pin) through a diode, but please note: a diode will cause a voltage
|
(on the VCC pin) through a diode, but please note: a diode will cause a voltage
|
||||||
drop. The tolerated range for a chip expecting 3.3V VCC is usually around 2.7V
|
drop. The tolerated range for a chip expecting 3.3V VCC is usually around 2.7V
|
||||||
to 3.6V DC, and the drop may cause the voltage to fall outside that. If you do
|
to 3.6V DC, and the drop may cause the voltage to fall outside that. If you do
|
||||||
|
@ -685,7 +812,7 @@ other components on that board, which share the same power rail. Further,
|
||||||
ensure that the pull-up resistors for WP/HOLD are *only* connected to the side
|
ensure that the pull-up resistors for WP/HOLD are *only* connected to the side
|
||||||
of the diode that has continuity with the VCC pin (this is important because if
|
of the diode that has continuity with the VCC pin (this is important because if
|
||||||
they're not, they won't be held high while doing ISP flashing, even if they're
|
they're not, they won't be held high while doing ISP flashing, even if they're
|
||||||
still held high when the mainboard is fully powered on).
|
still held high when the motherboard is fully powered on).
|
||||||
|
|
||||||
Furthermore: ensure that the SPI flash is operating at the appropriate supply
|
Furthermore: ensure that the SPI flash is operating at the appropriate supply
|
||||||
voltage (2.7V to 3.6V for a 3.3V chip) when fully powered on, after installing
|
voltage (2.7V to 3.6V for a 3.3V chip) when fully powered on, after installing
|
||||||
|
@ -696,11 +823,10 @@ the SOIC8/WSON8 if it uses that, and replace with an IC socket (for SOIC8,
|
||||||
WSON8 or DIP8, whatever you want), because then you could easily just insert
|
WSON8 or DIP8, whatever you want), because then you could easily just insert
|
||||||
the flash into a breadboard when flashing.
|
the flash into a breadboard when flashing.
|
||||||
|
|
||||||
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 motherboards
|
||||||
supported by libreboot.
|
supported by libreboot.
|
||||||
|
|
||||||
GPIO pins on BeagleBone Black (BBB)
|
### GPIO pins on BeagleBone Black (BBB)
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
Use this image for reference when connecting the pomona to the BBB:
|
Use this image for reference when connecting the pomona to the BBB:
|
||||||
<https://beagleboard.org/Support/bone101#headers> (D0 = MISO or connects
|
<https://beagleboard.org/Support/bone101#headers> (D0 = MISO or connects
|
||||||
|
@ -709,8 +835,7 @@ to MISO).
|
||||||
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
|
||||||
chip for flashing.
|
chip for flashing.
|
||||||
|
|
||||||
GPIO pins on Raspberry Pi (RPi) 40 Pin
|
### GPIO pins on Raspberry Pi (RPi) 40 Pin
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
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.
|
||||||
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
|
||||||
|
@ -718,8 +843,7 @@ on the left.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
GPIO pins on Raspberry Pi (RPi) 26 Pin
|
### GPIO pins on Raspberry Pi (RPi) 26 Pin
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
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
|
||||||
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):
|
||||||
|
@ -728,8 +852,7 @@ B+ with 40 pins, start counting from the right and leave 14 pins):
|
||||||
|
|
||||||
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:
|
||||||
|
|
||||||
SOIC8/DIP8/WSON8 wiring diagram
|
### SOIC8/DIP8/WSON8 wiring diagram
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Refer to this diagram:
|
Refer to this diagram:
|
||||||
|
|
||||||
|
@ -751,13 +874,12 @@ use pull-up resistors on those (see notes below), and decoupling capacitor on
|
||||||
pin 8 (VCC).
|
pin 8 (VCC).
|
||||||
|
|
||||||
NOTE: On X60/T60 thinkpads, don't connect pin 8. Instead, plug in your the PSU
|
NOTE: On X60/T60 thinkpads, don't connect pin 8. Instead, plug in your the PSU
|
||||||
to the charging port on your mainboard, but do not power on the mainboard. This
|
to the charging port on your motherboard, but do not power on the motherboard. This
|
||||||
will provide a stable 3.3V voltage, with adequate current levels. On those
|
will provide a stable 3.3V voltage, with adequate current levels. On those
|
||||||
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
|
||||||
many other ICs that all draw quite a lot of current.
|
many other ICs that all draw quite a lot of current.
|
||||||
|
|
||||||
SOIC16 wiring diagram (Raspberry Pi)
|
### SOIC16 wiring diagram (Raspberry Pi)
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
RPi GPIO header:\
|
RPi GPIO header:\
|
||||||

|

|
||||||
|
@ -795,14 +917,13 @@ NOTE: pins 1 and 9 are WP/HOLD pins. If flashing a chip on a breadboard, please
|
||||||
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
|
||||||
pin 2 (VCC).
|
pin 2 (VCC).
|
||||||
|
|
||||||
Pull-up resistors and decoupling capacitors
|
### Pull-up resistors and decoupling capacitors
|
||||||
-------------------------------------------
|
|
||||||
|
|
||||||
**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
|
||||||
flashing a chip that is already soldered to a mainboard.**
|
flashing a chip that is already soldered to a motherboard.**
|
||||||
|
|
||||||
This section is only relevant if you're flashing a new chip that is not yet
|
This section is only relevant if you're flashing a new chip that is not yet
|
||||||
mounted to a mainboard. You need pull-up resistors on the WP and HOLD pins,
|
mounted to a motherboard. You need pull-up resistors on the WP and HOLD pins,
|
||||||
and decoupling capacitors on the VCC pin. If the chip is already mounted to a
|
and decoupling capacitors on the VCC pin. If the chip is already mounted to a
|
||||||
board, whether soldered or in a socket, these capacitors and resistors will
|
board, whether soldered or in a socket, these capacitors and resistors will
|
||||||
probably already exist on the board and you can just flash it without pulling
|
probably already exist on the board and you can just flash it without pulling
|
||||||
|
@ -819,11 +940,11 @@ The best way is as follows:
|
||||||
SOIC8/WSON8/DIP8: pin 3 and 7 must be held to a high logic state, which means
|
SOIC8/WSON8/DIP8: pin 3 and 7 must be held to a high logic state, which means
|
||||||
that each pin has its own pull-up resistor to VCC (from the voltage plane that
|
that each pin has its own pull-up resistor to VCC (from the voltage plane that
|
||||||
pin 8 connects to); anything from 1Kohm to 10Kohm will do. When you're flashing
|
pin 8 connects to); anything from 1Kohm to 10Kohm will do. When you're flashing
|
||||||
a chip that's already on a laptop/desktop/server mainboard, pin 3 and 7 are
|
a chip that's already on a laptop/desktop/server motherboard, pin 3 and 7 are
|
||||||
likely already held high, so you don't need to bother.
|
likely already held high, so you don't need to bother.
|
||||||
|
|
||||||
SOIC8/WSON8/DIP8: pin 8, which is VCC, will already have decoupling capacitors on it
|
SOIC8/WSON8/DIP8: pin 8, which is VCC, will already have decoupling capacitors on it
|
||||||
if the chip is on a mainboard, but lone chip flashing means that these capacitors
|
if the chip is on a motherboard, but lone chip flashing means that these capacitors
|
||||||
do not exist. A capacitor passes AC but blocks DC. Due to electromagnetic
|
do not exist. A capacitor passes AC but blocks DC. Due to electromagnetic
|
||||||
indunctance, and RF noise from high-speed switching ICs, a DC voltage line isn't
|
indunctance, and RF noise from high-speed switching ICs, a DC voltage line isn't
|
||||||
actually straight (when viewed on an oscilloscope), but actually has low voltage
|
actually straight (when viewed on an oscilloscope), but actually has low voltage
|
||||||
|
@ -844,12 +965,11 @@ WP/HOLD are not pin 3/7 like above, but instead pins 1 and 9, so wire your
|
||||||
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
|
||||||
capacitors up on that.
|
capacitors up on that.
|
||||||
|
|
||||||
SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard
|
### SOIC8/WSON8/DIP8/SOIC16 not mounted to a motherboard
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
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,
|
||||||
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
|
||||||
16MiB chip. For example, KGPE-D16 and KCMA-D8 mainboards in libreboot have
|
16MiB chip. For example, KGPE-D16 and KCMA-D8 motherboards in libreboot have
|
||||||
2MiB flash by default, but you can easily upgrade these. Another example is the
|
2MiB flash by default, but you can easily upgrade these. Another example is the
|
||||||
ThinkPad X200S, X200 Tablet and T400S, all of which have WSON8 where the best
|
ThinkPad X200S, X200 Tablet and T400S, all of which have WSON8 where the best
|
||||||
course of action is to replace it with a SOIC8 flash chip.
|
course of action is to replace it with a SOIC8 flash chip.
|
||||||
|
@ -886,7 +1006,7 @@ video, but for WSON8. Sometimes they are called DFN8 or QFN8 sockets. Get one
|
||||||
that is 1.27mm pitch.
|
that is 1.27mm pitch.
|
||||||
|
|
||||||
If you're flashing/dumping a lone WSON8, get a WSON8/QFN8/DFN8 socket (1.27mm
|
If you're flashing/dumping a lone WSON8, get a WSON8/QFN8/DFN8 socket (1.27mm
|
||||||
pitch) and mount it to a breadboard for flashing. If your mainboard's landing
|
pitch) and mount it to a breadboard for flashing. If your motherboard's landing
|
||||||
pads for the flash IC can take a SOIC8, we recommend that you use a SOIC8
|
pads for the flash IC can take a SOIC8, we recommend that you use a SOIC8
|
||||||
instead because a test clip is possible later on when you wish to re-flash it,
|
instead because a test clip is possible later on when you wish to re-flash it,
|
||||||
however you may be dealing with a board where replacing existing WSON8 with
|
however you may be dealing with a board where replacing existing WSON8 with
|
||||||
|
@ -917,8 +1037,7 @@ and good 60/40 or 63/37 leaded solder (don't use lead-free):
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
SOIC8/SOIC16 soldered to a mainboard
|
### SOIC8/SOIC16 soldered to a motherboard
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
This is an example of *in-system programming* or *ISP* for short.
|
This is an example of *in-system programming* or *ISP* for short.
|
||||||
|
|
||||||
|
@ -926,16 +1045,16 @@ SOIC8:\
|
||||||
Pomona 5250 is a SOIC8 test clip. There are others available, but this is the
|
Pomona 5250 is a SOIC8 test clip. There are others available, but this is the
|
||||||
best one. Use that. Use the SOIC8 diagram (see above) to wire up your Raspberry
|
best one. Use that. Use the SOIC8 diagram (see above) to wire up your Raspberry
|
||||||
Pi.
|
Pi.
|
||||||
Your mainboard likely already pulls WP/HOLD (pins 3 and 7) high, so don't
|
Your motherboard likely already pulls WP/HOLD (pins 3 and 7) high, so don't
|
||||||
connect these. VCC on SOIC8's pin 8 probably already has decoupling
|
connect these. VCC on SOIC8's pin 8 probably already has decoupling
|
||||||
capacitors on the mainboard, so just hook that up without using a capacitor.
|
capacitors on the motherboard, so just hook that up without using a capacitor.
|
||||||
|
|
||||||
SOIC16:\
|
SOIC16:\
|
||||||
Pomona 5252 is a SOIC16 test clip. There are others available, but this is the
|
Pomona 5252 is a SOIC16 test clip. There are others available, but this is the
|
||||||
best one. Use that. Use the SOIC16 diagram (see above) to wire up your Raspberry
|
best one. Use that. Use the SOIC16 diagram (see above) to wire up your Raspberry
|
||||||
Pi. WP/HOLD pins are pins 1 and 9, and likely already held high, so no pull-up
|
Pi. WP/HOLD pins are pins 1 and 9, and likely already held high, so no pull-up
|
||||||
resistors needed. You do not need a decoupling capacitor for pin 2 (VCC) either
|
resistors needed. You do not need a decoupling capacitor for pin 2 (VCC) either
|
||||||
because the mainboard will already have one.
|
because the motherboard will already have one.
|
||||||
|
|
||||||
Here is an example of a test clip connected for SOIC16:\
|
Here is an example of a test clip connected for SOIC16:\
|
||||||

|

|
||||||
|
@ -943,10 +1062,9 @@ Here is an example of a test clip connected for SOIC16:\
|
||||||
And here is an example photo for SOIC8:\
|
And here is an example photo for SOIC8:\
|
||||||

|

|
||||||
|
|
||||||
DIP8 soldered to the mainboard
|
### DIP8 soldered to the motherboard
|
||||||
------------------------------
|
|
||||||
|
|
||||||
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 motherboard. It is
|
||||||
usually mounted to a socket.
|
usually mounted to a socket.
|
||||||
|
|
||||||
The pins are large enough that you can just use test hooks to wire up your chip
|
The pins are large enough that you can just use test hooks to wire up your chip
|
||||||
|
@ -959,8 +1077,7 @@ directly soldered. It is almost always mounted in a socket.
|
||||||
|
|
||||||
Your DIP8 IC has the same pinout as a SOIC8 IC.
|
Your DIP8 IC has the same pinout as a SOIC8 IC.
|
||||||
|
|
||||||
Replace WSON8 IC with SOIC8
|
### Replace WSON8 IC with SOIC8
|
||||||
---------------------------
|
|
||||||
|
|
||||||
**NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress.
|
**NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress.
|
||||||
They look similar to SOIC8 clips, and they work similarly.**
|
They look similar to SOIC8 clips, and they work similarly.**
|
||||||
|
@ -1075,7 +1192,7 @@ evaporates quickly and it does not leave a corrosive residue.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
LICENSING
|
LICENSING
|
||||||
=========
|
---------
|
||||||
|
|
||||||
This page is released under different copyright terms than most other pages
|
This page is released under different copyright terms than most other pages
|
||||||
on this website.
|
on this website.
|
||||||
|
@ -1084,11 +1201,7 @@ This page and the photos on it are available under
|
||||||
[CC BY SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt)
|
[CC BY SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt)
|
||||||
Check the Git repository for history of who owns what part of the document.
|
Check the Git repository for history of who owns what part of the document.
|
||||||
|
|
||||||
Some of these resources originate from the *old* Libreboot git repository,
|
Photos showing a BeagleBone Black are under the normal GFDL
|
||||||
before Libreboot split into separate repositories that include its `lbmk`
|
|
||||||
repository.
|
|
||||||
|
|
||||||
Photos showing a BeagleBone Black are under the normal GNU Free Documentation
|
|
||||||
license like other pages and images on this website, or you can use them under
|
license like other pages and images on this website, or you can use them under
|
||||||
the CC-BY-SA 4.0 license if you wish (I, Leah Rowe, own all BBB photos shown
|
the CC-BY-SA 4.0 license if you wish (I, Leah Rowe, own all BBB photos shown
|
||||||
on this page, except for the one on the beaglebone website, and that one is
|
on this page, except for the one on the beaglebone website, and that one is
|
||||||
|
|
1
site/docs/install/spi.md.description
Normal file
1
site/docs/install/spi.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware by way of external flashing, using compatible 25xx NOR programmer (SPI flasher).
|
|
@ -4,7 +4,7 @@ x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
Need help?
|
Need help?
|
||||||
==========
|
----------
|
||||||
|
|
||||||
Help is available on [Libreboot IRC](../../contact.md) and other channels.
|
Help is available on [Libreboot IRC](../../contact.md) and other channels.
|
||||||
|
|
||||||
|
@ -16,18 +16,18 @@ if you want to send your machine in to have Libreboot installed for you.
|
||||||
Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
Leah Rowe, the founder and lead developer of Libreboot, also owns and
|
||||||
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
operates Minifree Ltd; sales provide funding for the Libreboot project.
|
||||||
|
|
||||||
Introduction
|
Install open source BIOS/UEFI firmware
|
||||||
============
|
------------
|
||||||
|
|
||||||
**[安装之前请先阅读这些指示](../../news/safety.md),否则你的机器可能会成砖:[安全措施](../../news/safety.md)**
|
**[安装之前请先阅读这些指示](ivy_has_common.md),否则你的机器可能会成砖:[安全措施](ivy_has_common.md)**
|
||||||
|
|
||||||
本指南将教你怎样使用各种工具,通过 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,你可以在供应商固件启动后,对其进行热切换,然后再内部刷入。十分简单!
|
||||||
|
|
||||||
我们会用到 [flashprog](https://flashprog.org/Flashrom) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。
|
我们会用到 [flashprog](https://flashprog.org/) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。
|
||||||
|
|
||||||
libreboot 目前记录了这些 SPI 编程器的使用方法:
|
libreboot 目前记录了这些 SPI 编程器的使用方法:
|
||||||
|
|
||||||
* Raspberry Pi Pico
|
* Raspberry Pi Pico / Pico 2
|
||||||
* 树莓派(Raspberry Pi,RPi)
|
* 树莓派(Raspberry Pi,RPi)
|
||||||
* BeagleBone Black(BBB)
|
* BeagleBone Black(BBB)
|
||||||
* Libre Computer 'Le Potato'
|
* Libre Computer 'Le Potato'
|
||||||
|
@ -41,7 +41,16 @@ libreboot 目前记录了这些 SPI 编程器的使用方法:
|
||||||
你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。
|
你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。
|
||||||
|
|
||||||
Raspberry Pi Pico
|
Raspberry Pi Pico
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
|
### RP2040/RP2530 both supported
|
||||||
|
|
||||||
|
**Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8
|
||||||
|
or higher. Releases before this only supported the original Pico, and other
|
||||||
|
RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.**
|
||||||
|
|
||||||
|
The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you
|
||||||
|
must take care to flash the correct image on either device.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -52,21 +61,26 @@ Additionally, all the software running on it is free, down to the full
|
||||||
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,
|
||||||
but that is not needed for following this guide.
|
but that is not needed for following this guide.
|
||||||
|
|
||||||
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
|
### Download serprog firmware pre-compiled
|
||||||
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
|
|
||||||
you need to add a logic level converter.
|
|
||||||
|
|
||||||
First, connect just the Pico to your computer with a micro-USB cable.
|
Download the pico serprog tarball from Libreboot releases. For example, the
|
||||||
Mount it like any other USB flash drive. If it isn't detected, you might need
|
Libreboot 20241206rev8 one would be
|
||||||
to press the BOOTSEL button while you plug it in (this forces it into the
|
named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under
|
||||||
bootloader mode).
|
the `roms/` directory in each release. With these binaries, you can easily
|
||||||
|
get started.
|
||||||
|
|
||||||
You can download the serprog firmware here:\
|
### Build serprog firmware from source
|
||||||
|
|
||||||
|
You can alternatively download the serprog firmware here:\
|
||||||
<https://codeberg.org/libreboot/pico-serprog>\
|
<https://codeberg.org/libreboot/pico-serprog>\
|
||||||
or here:\
|
or here:\
|
||||||
<https://notabug.org/libreboot/pico-serprog>
|
<https://notabug.org/libreboot/pico-serprog>
|
||||||
|
|
||||||
Copy the file `rpi-pico-serprog.uf2` into your Pico. To build this firmware, you
|
You can also find the source code for these, under `src/` in Libreboot release
|
||||||
|
archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading
|
||||||
|
using the build instructions below.
|
||||||
|
|
||||||
|
Alternatively to the binaries, you
|
||||||
could build it yourself or you could also clone `lbmk.git` and [install build
|
could build it yourself or you could also clone `lbmk.git` and [install build
|
||||||
dependencies](../build/#first-install-build-dependencies), then inside lbmk,
|
dependencies](../build/#first-install-build-dependencies), then inside lbmk,
|
||||||
do:
|
do:
|
||||||
|
@ -74,15 +88,48 @@ do:
|
||||||
./mk -b pico-serprog
|
./mk -b pico-serprog
|
||||||
|
|
||||||
This will automatically build the rpi-pico firmware, and the file will be
|
This will automatically build the rpi-pico firmware, and the file will be
|
||||||
at `bin/serprog_rp2040/serprog_pico.uf2`
|
at `bin/serprog_pico/serprog_pico.uf2`
|
||||||
and `bin/serprog_rp2040/serprog_pico_w.uf2`.
|
and `bin/serprog_pico/serprog_pico_w.uf2`.
|
||||||
|
|
||||||
|
### Install the serprog firmware
|
||||||
|
|
||||||
|
First, connect just the Pico to your computer with a micro-USB cable.
|
||||||
|
Mount it like any other USB flash drive. If it isn't detected, you might need
|
||||||
|
to press the BOOTSEL button while you plug it in (this forces it into the
|
||||||
|
bootloader mode).
|
||||||
|
|
||||||
|
When you have the build, or if you're using a release build, copy the
|
||||||
|
file `.uf2` file into your Pico. You must make sure to build the correct
|
||||||
|
target, or otherwise copy the correct file, because many RP2040 and RP2530
|
||||||
|
devices exist and Libreboot provides images for **all of them** in the same
|
||||||
|
release tarball.
|
||||||
|
|
||||||
|
**NOTE: Other RP2040/2530 devices will also work. You just have to match
|
||||||
|
the right pins and use the correct firmware file!**
|
||||||
|
|
||||||
|
### Logic levels
|
||||||
|
|
||||||
|
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
|
||||||
|
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
|
||||||
|
the voltage of your programmer to the voltage of your chip; both the data lines
|
||||||
|
and power lines to the chip must match.**
|
||||||
|
|
||||||
|
### Wiring
|
||||||
|
|
||||||
Disconnect the Pico and proceed to wire it to your
|
Disconnect the Pico and proceed to wire it to your
|
||||||
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
|
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
|
||||||
|
|
||||||

|
**NOTE: SCK and CLK mean the same thing. The diagram below says SCK, and other
|
||||||
|
parts of this guide say CLK. It's the same thing!**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Headers were manually soldered on the top side, and the plastic packaging
|
Headers were manually soldered on the top side, and the plastic packaging
|
||||||
was repurposed as an insulating base. These might be nice to have, but by no
|
was repurposed as an insulating base. These might be nice to have, but by no
|
||||||
|
@ -94,7 +141,7 @@ will appear:
|
||||||
|
|
||||||
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
|
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
|
||||||
|
|
||||||
Take note of the ttyACMx. Flashrom is now usable
|
Take note of the ttyACMx. Flashprog is now usable
|
||||||
(substitute ttyACMx with what you observed earlier).
|
(substitute ttyACMx with what you observed earlier).
|
||||||
|
|
||||||
flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
|
flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
|
||||||
|
@ -102,8 +149,10 @@ Take note of the ttyACMx. Flashrom is now usable
|
||||||
spispeed=32M usually works, but since it's not much faster it's probably
|
spispeed=32M usually works, but since it's not much faster it's probably
|
||||||
not worth it. The 12Mbps USB port is limiting the actual speed here.
|
not worth it. The 12Mbps USB port is limiting the actual speed here.
|
||||||
|
|
||||||
|
Higher speeds might work nicely, on Pico 2.
|
||||||
|
|
||||||
不要使用 CH341A!
|
不要使用 CH341A!
|
||||||
==================
|
----------------
|
||||||
|
|
||||||
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 和它连接的南桥,以及它连接的其它任何东西。
|
||||||
|
|
||||||
|
@ -134,26 +183,23 @@ libreboot 支持的机器,NOR flash 使用的是 3.3V DC 或 1.8V DC,这也
|
||||||
绿色版本(上面未展示)可能已经连接了 3.3v 逻辑电平,但仍然需要为 WP/HOLD 增加上拉电阻。
|
绿色版本(上面未展示)可能已经连接了 3.3v 逻辑电平,但仍然需要为 WP/HOLD 增加上拉电阻。
|
||||||
|
|
||||||
识别你的 flash 类型
|
识别你的 flash 类型
|
||||||
==================================
|
-------------------
|
||||||
|
|
||||||
每一个 flash,都会有一个点或者标记,表明这是第 1 引脚(如 WSON8 的第 1 焊盘)。
|
每一个 flash,都会有一个点或者标记,表明这是第 1 引脚(如 WSON8 的第 1 焊盘)。
|
||||||
|
|
||||||
参考下面的图片,再看看你的主板。搞清楚你的芯片类型之后,根据你了解的情况及本教程剩下的部分,来实现你的目标,即对你的引导 flash 进行读/写。
|
参考下面的图片,再看看你的主板。搞清楚你的芯片类型之后,根据你了解的情况及本教程剩下的部分,来实现你的目标,即对你的引导 flash 进行读/写。
|
||||||
|
|
||||||
SOIC8
|
### SOIC8
|
||||||
-----
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
SOIC16
|
### SOIC16
|
||||||
------
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
SOIC8 和 SOIC16 是最常见的类型,但也有其他的类型:
|
SOIC8 和 SOIC16 是最常见的类型,但也有其他的类型:
|
||||||
|
|
||||||
WSON8
|
### WSON8
|
||||||
-----
|
|
||||||
|
|
||||||
X200S 或 X200 Tablet 上是像这样的:\
|
X200S 或 X200 Tablet 上是像这样的:\
|
||||||

|

|
||||||
|
@ -162,28 +208,24 @@ T400S 上,是在 RAM 附近的这个位置:\
|
||||||
\
|
\
|
||||||
注意: 本照片中的芯片换成了 SOIC8
|
注意: 本照片中的芯片换成了 SOIC8
|
||||||
|
|
||||||
DIP8
|
### DIP8
|
||||||
----
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
电源电压
|
### 电源电压
|
||||||
--------------
|
|
||||||
|
|
||||||
之前,Libreboot 支持的所有主板,刚好都有在 3.3V DC 下工作的 SPI NOR 芯片。因为最近添加了额定 1.8V DC 芯片的 Chromebook,所以就不再是这么回事了。
|
之前,Libreboot 支持的所有主板,刚好都有在 3.3V DC 下工作的 SPI NOR 芯片。因为最近添加了额定 1.8V DC 芯片的 Chromebook,所以就不再是这么回事了。
|
||||||
|
|
||||||
检查主板上芯片的元件型号,再查找一下它的数据表。找出它需要的电源电压并记下来。如果它和你外部刷写硬件的输出电压不匹配,那你只能通过适配器或者逻辑电平转换器,把它连至芯片,而绝不能直接连接。
|
检查主板上芯片的元件型号,再查找一下它的数据表。找出它需要的电源电压并记下来。如果它和你外部刷写硬件的输出电压不匹配,那你只能通过适配器或者逻辑电平转换器,把它连至芯片,而绝不能直接连接。
|
||||||
|
|
||||||
软件配置
|
软件配置
|
||||||
======================
|
--------
|
||||||
|
|
||||||
通用/Le potato
|
### 通用/Le potato
|
||||||
-----------------
|
|
||||||
|
|
||||||
[通用指南](spi_generic.md)可以帮助你使用本指南未列出的 SBC(单板电脑)。不过,那份指南会使用 libre computer 'Le Potato' 作为参考板。如果你有那块板子,你应该参考 [通用指南](spi_generic.md)。
|
[通用指南](spi_generic.md)可以帮助你使用本指南未列出的 SBC(单板电脑)。不过,那份指南会使用 libre computer 'Le Potato' 作为参考板。如果你有那块板子,你应该参考 [通用指南](spi_generic.md)。
|
||||||
|
|
||||||
BeagleBone Black(BBB)
|
### BeagleBone Black(BBB)
|
||||||
----------------------
|
|
||||||
|
|
||||||
SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog`。
|
SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog`。
|
||||||
|
|
||||||
|
@ -240,15 +282,13 @@ Note: flashprog can never write if the flash chip isn't found automatically.
|
||||||
|
|
||||||
这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。
|
这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。
|
||||||
|
|
||||||
BBB 注意事项
|
### BBB 注意事项
|
||||||
-----------------
|
|
||||||
|
|
||||||
不建议使用 BeagleBone Black,因为拿它来进行 SPI 刷写,速度很慢而且不稳定,并且现在有更好的选择了。我们以前建议使用 BBB,因为它可以完全运行自由软件,但现在有了更佳的选择。
|
不建议使用 BeagleBone Black,因为拿它来进行 SPI 刷写,速度很慢而且不稳定,并且现在有更好的选择了。我们以前建议使用 BBB,因为它可以完全运行自由软件,但现在有了更佳的选择。
|
||||||
|
|
||||||
计划:讲解其他 SPI 刷写工具
|
计划:讲解其他 SPI 刷写工具
|
||||||
|
|
||||||
Rasberry Pi(RPi)
|
### Rasberry Pi(RPi)
|
||||||
-----------------
|
|
||||||
|
|
||||||
SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。
|
SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。
|
||||||
|
|
||||||
|
@ -265,8 +305,7 @@ SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。
|
||||||
|
|
||||||
用于 SPI 通讯的设备位于 `/dev/spidev0.0`。
|
用于 SPI 通讯的设备位于 `/dev/spidev0.0`。
|
||||||
|
|
||||||
RPi 驱动强度(Drive Strength)
|
### RPi 驱动强度(Drive Strength)
|
||||||
------------------
|
|
||||||
|
|
||||||
RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是,在保持高电平最低电压的同时,引脚最高能输出的电流。对树莓派而言,这个电压是 3.0 V。
|
RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是,在保持高电平最低电压的同时,引脚最高能输出的电流。对树莓派而言,这个电压是 3.0 V。
|
||||||
|
|
||||||
|
@ -296,8 +335,7 @@ RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已
|
||||||
|
|
||||||
见 <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> 了解树莓派上的驱动强度控制。
|
见 <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> 了解树莓派上的驱动强度控制。
|
||||||
|
|
||||||
RPi 注意事项
|
### RPi 注意事项
|
||||||
-----------------
|
|
||||||
|
|
||||||
基本上,Raspbian 项目,即现在的 Raspberry Pi OS,对其仓库进行了更新,增加了一个新的“受信任”仓库,这刚好是一个微软软件仓库。他们这么做,似乎是为了 VS Code,但问题在于,这可以让微软自由地控制他们喜欢的依赖(根据 apt-get 规则)。每当你更新,你都会对微软的服务器发送请求。不觉得这很奇怪吗?
|
基本上,Raspbian 项目,即现在的 Raspberry Pi OS,对其仓库进行了更新,增加了一个新的“受信任”仓库,这刚好是一个微软软件仓库。他们这么做,似乎是为了 VS Code,但问题在于,这可以让微软自由地控制他们喜欢的依赖(根据 apt-get 规则)。每当你更新,你都会对微软的服务器发送请求。不觉得这很奇怪吗?
|
||||||
|
|
||||||
|
@ -310,8 +348,7 @@ RPi 注意事项
|
||||||
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555>
|
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555>
|
||||||
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6>
|
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6>
|
||||||
|
|
||||||
RPi 的自由固件
|
### RPi 的自由固件
|
||||||
---------------------
|
|
||||||
|
|
||||||
旧款树莓派的引导固件可以替换成完全自由的固件。对有些用户而言,这额外的一步可能很有用。参见:
|
旧款树莓派的引导固件可以替换成完全自由的固件。对有些用户而言,这额外的一步可能很有用。参见:
|
||||||
|
|
||||||
|
@ -321,12 +358,11 @@ RPi 的自由固件
|
||||||
|
|
||||||
<https://librerpi.github.io/>
|
<https://librerpi.github.io/>
|
||||||
|
|
||||||
安装 flashprog
|
### 安装 flashprog
|
||||||
----------------
|
|
||||||
|
|
||||||
如果你在使用 BBB 或者 RPi,你需要在 SSH 进去之后再这么做。
|
如果你在使用 BBB 或者 RPi,你需要在 SSH 进去之后再这么做。
|
||||||
|
|
||||||
Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
|
Flashprog 是用来读出、擦除、重写 NOR flash 内容的软件。
|
||||||
|
|
||||||
使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行:
|
使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行:
|
||||||
|
|
||||||
|
@ -341,19 +377,18 @@ Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
|
||||||
|
|
||||||
接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。
|
接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。
|
||||||
|
|
||||||
或者,你可以直接从上游下载 flashprog,位于:<https://flashprog.org/Flashrom>
|
或者,你可以直接从上游下载 flashprog,位于:<https://flashprog.org/>
|
||||||
|
|
||||||
如果你是在 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。这会缓解稳定性问题。
|
||||||
|
|
||||||
如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。
|
如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。
|
||||||
|
|
||||||
如何使用 flashprog
|
如何使用 flashprog
|
||||||
===================
|
------------------
|
||||||
|
|
||||||
请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。
|
请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。
|
||||||
|
|
||||||
读出
|
### 读出
|
||||||
-------
|
|
||||||
|
|
||||||
刷入新的 ROM 镜像之前,强烈建议你将当前芯片的内容读出到一个文件。
|
刷入新的 ROM 镜像之前,强烈建议你将当前芯片的内容读出到一个文件。
|
||||||
|
|
||||||
|
@ -393,8 +428,7 @@ BBB 的话,这样:
|
||||||
|
|
||||||
注意,如果你要手动提取 blob,那你就需要这个组合而成的 rom。
|
注意,如果你要手动提取 blob,那你就需要这个组合而成的 rom。
|
||||||
|
|
||||||
写入
|
### 写入
|
||||||
-------
|
|
||||||
|
|
||||||
接下来,运行这个命令(RPi):
|
接下来,运行这个命令(RPi):
|
||||||
|
|
||||||
|
@ -427,12 +461,11 @@ Verifying flash... VERIFIED.
|
||||||
|
|
||||||
|
|
||||||
硬件配置
|
硬件配置
|
||||||
======================
|
--------
|
||||||
|
|
||||||
软件配置请参考上面的教程。下面的建议会教你如何为每种 flash 芯片接线。
|
软件配置请参考上面的教程。下面的建议会教你如何为每种 flash 芯片接线。
|
||||||
|
|
||||||
警告
|
### 警告
|
||||||
--------
|
|
||||||
|
|
||||||
在芯片还没有正确接好线时,先不要连接电源。例如,不要连接到接通电源的测试夹。
|
在芯片还没有正确接好线时,先不要连接电源。例如,不要连接到接通电源的测试夹。
|
||||||
|
|
||||||
|
@ -444,13 +477,11 @@ Verifying flash... VERIFIED.
|
||||||
|
|
||||||
也不要给你的 flash 芯片连接超过 1 个 DC 电源!那样混合电压的话,很容易损伤你的设备及芯片/主板。
|
也不要给你的 flash 芯片连接超过 1 个 DC 电源!那样混合电压的话,很容易损伤你的设备及芯片/主板。
|
||||||
|
|
||||||
MISO/MOSI/CS/CLK 接线
|
### MISO/MOSI/CS/CLK 接线
|
||||||
----------------------
|
|
||||||
|
|
||||||
在刷写这些芯片的时候,你可能也想增加 47 欧姆的串联电阻(不是加在 VCC 或 GND 线上)。这可以提供一些过流保护。在 Intel 平台上,SPI flash 直接连接到南桥芯片组时,通常会通过这样的电阻。
|
在刷写这些芯片的时候,你可能也想增加 47 欧姆的串联电阻(不是加在 VCC 或 GND 线上)。这可以提供一些过流保护。在 Intel 平台上,SPI flash 直接连接到南桥芯片组时,通常会通过这样的电阻。
|
||||||
|
|
||||||
ISP 编程及 VCC 二极管
|
### ISP 编程及 VCC 二极管
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
ISP 即系统内编程(in-system programming)。它指的是,一块芯片已经装在了你想安装 libreboot 的电脑的主板上,而你要对这块芯片进行刷写。
|
ISP 即系统内编程(in-system programming)。它指的是,一块芯片已经装在了你想安装 libreboot 的电脑的主板上,而你要对这块芯片进行刷写。
|
||||||
|
|
||||||
|
@ -466,22 +497,19 @@ ISP 即系统内编程(in-system programming)。它指的是,一块芯片
|
||||||
|
|
||||||
计划:在 libreboot.org 创建一个页面,讲怎么在 libreboot 支持的所有主板这么做。
|
计划:在 libreboot.org 创建一个页面,讲怎么在 libreboot 支持的所有主板这么做。
|
||||||
|
|
||||||
BeagleBone Black(BBB)上的 GPIO 引脚
|
### BeagleBone Black(BBB)上的 GPIO 引脚
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
把 pomona 夹子连接到 BBB 时,参考这张图片:<https://beagleboard.org/Support/bone101#headers> (D0 = MISO 或连接到 MISO)。
|
把 pomona 夹子连接到 BBB 时,参考这张图片:<https://beagleboard.org/Support/bone101#headers> (D0 = MISO 或连接到 MISO)。
|
||||||
|
|
||||||
如果你要用 *P9 排针*来连接芯片刷写的话,请看那个页面的那个部分。
|
如果你要用 *P9 排针*来连接芯片刷写的话,请看那个页面的那个部分。
|
||||||
|
|
||||||
40 引脚树莓派(RPi)的 GPIO 引脚
|
### 40 引脚树莓派(RPi)的 GPIO 引脚
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
下图展示了大多数现代树莓派及其衍生版的引脚分配。图中右边是 RPi 的引脚,左边是两个 SOIC 夹。
|
下图展示了大多数现代树莓派及其衍生版的引脚分配。图中右边是 RPi 的引脚,左边是两个 SOIC 夹。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
26 引脚树莓派(RPi)的 GPIO 引脚
|
### 26 引脚树莓派(RPi)的 GPIO 引脚
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
树莓派 B 款 26 GPIO 引脚图(对 40 引脚的 B+ 款而言,从右边开始数,剩下 14 个引脚):
|
树莓派 B 款 26 GPIO 引脚图(对 40 引脚的 B+ 款而言,从右边开始数,剩下 14 个引脚):
|
||||||
|
|
||||||
|
@ -489,8 +517,7 @@ BeagleBone Black(BBB)上的 GPIO 引脚
|
||||||
|
|
||||||
此处的信息,也请在阅读以下其他部分时参考:
|
此处的信息,也请在阅读以下其他部分时参考:
|
||||||
|
|
||||||
SOIC8/DIP8/WSON8 接线图
|
### SOIC8/DIP8/WSON8 接线图
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
参考此表:
|
参考此表:
|
||||||
|
|
||||||
|
@ -511,8 +538,7 @@ SOIC8/DIP8/WSON8 接线图
|
||||||
|
|
||||||
注意:在 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 都会分走很多电流。
|
||||||
|
|
||||||
SOIC16 接线图(树莓派)
|
### SOIC16 接线图(树莓派)
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
RPi GPIO 排针:\
|
RPi GPIO 排针:\
|
||||||

|

|
||||||
|
@ -548,8 +574,7 @@ BBB P9 排针:\
|
||||||
|
|
||||||
注意:第 1 和第 9 引脚是 WP/HOLD 引脚。在面包板上刷写芯片时,请对它们使用上拉电阻(见上面的注记),并在第 2 引脚(VCC)使用去耦电容。
|
注意:第 1 和第 9 引脚是 WP/HOLD 引脚。在面包板上刷写芯片时,请对它们使用上拉电阻(见上面的注记),并在第 2 引脚(VCC)使用去耦电容。
|
||||||
|
|
||||||
上拉电阻和去耦电容
|
### 上拉电阻和去耦电容
|
||||||
-------------------------------------------
|
|
||||||
|
|
||||||
**如果芯片是装在面包板上的,那请遵循这里的步骤。如果你要刷写的芯片已经焊接在了主板上,那请忽略这一部分。**
|
**如果芯片是装在面包板上的,那请遵循这里的步骤。如果你要刷写的芯片已经焊接在了主板上,那请忽略这一部分。**
|
||||||
|
|
||||||
|
@ -570,8 +595,7 @@ SOIC8/WSON8/DIP8:如果芯片在主板上,那第 8 引脚,即 VCC,就已
|
||||||
|
|
||||||
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 引脚,所以要把去耦电容接到那里。
|
||||||
|
|
||||||
SOIC8/WSON8/DIP8/SOIC16 未安装在主板上
|
### SOIC8/WSON8/DIP8/SOIC16 未安装在主板上
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
如果你的机器的 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 芯片。
|
||||||
|
|
||||||
|
@ -608,8 +632,7 @@ SOIC8/WSON8/DIP8/SOIC16 未安装在主板上
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
SOIC8/SOIC16 焊接在主板上
|
### SOIC8/SOIC16 焊接在主板上
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
这是*系统内编程*或 *ISP* 的一个简短例子。
|
这是*系统内编程*或 *ISP* 的一个简短例子。
|
||||||
|
|
||||||
|
@ -625,8 +648,7 @@ Pomona 5252 是一个 SOIC16 测试夹。也有其他的可以用,但这个是
|
||||||
SOIC8 例子的照片如下:\
|
SOIC8 例子的照片如下:\
|
||||||

|

|
||||||
|
|
||||||
DIP8 焊接在主板上
|
### DIP8 焊接在主板上
|
||||||
------------------------------
|
|
||||||
|
|
||||||
把 DIP8 直接焊接在主板上怪异至极。它通常是安装在芯片座上的。
|
把 DIP8 直接焊接在主板上怪异至极。它通常是安装在芯片座上的。
|
||||||
|
|
||||||
|
@ -636,8 +658,7 @@ DIP8 焊接在主板上
|
||||||
|
|
||||||
DIP8 IC 的引脚分配和 SOIC8 IC 一样。
|
DIP8 IC 的引脚分配和 SOIC8 IC 一样。
|
||||||
|
|
||||||
使用 SOIC8 替换 WSON8 IC
|
### 使用 SOIC8 替换 WSON8 IC
|
||||||
---------------------------
|
|
||||||
|
|
||||||
**NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress.
|
**NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress.
|
||||||
They look similar to SOIC8 clips, and they work similarly.**
|
They look similar to SOIC8 clips, and they work similarly.**
|
||||||
|
@ -703,7 +724,7 @@ WSON8 IC:\
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
许可证
|
许可证
|
||||||
=========
|
------
|
||||||
|
|
||||||
本页面发布所使用的版权条款,不同于本网站上大多数其他页面。
|
本页面发布所使用的版权条款,不同于本网站上大多数其他页面。
|
||||||
|
|
||||||
|
@ -711,6 +732,6 @@ WSON8 IC:\
|
||||||
|
|
||||||
部分这些资源源自于*旧的* Libreboot git 仓库,Libreboot 随后分离成了单独的仓库,包括 `lbmk` 仓库。
|
部分这些资源源自于*旧的* Libreboot git 仓库,Libreboot 随后分离成了单独的仓库,包括 `lbmk` 仓库。
|
||||||
|
|
||||||
展示了 BeagleBone Black 的照片,以 GNU Free Documentation License 许可,如同本网站的其他页面和图像。如果你想的话,你也可以在 CC-BY-SA 4.0 下使用它们(我,Leah Rowe,拥有本页展示的全部 BBB 照片的所有权,除了 beaglebone 网站上的那一张以外;而那一张只是在这里链接的,而不是托管在 av.libreboot.org 服务器的)。
|
展示了 BeagleBone Black 的照片,以 GFDL 许可,如同本网站的其他页面和图像。如果你想的话,你也可以在 CC-BY-SA 4.0 下使用它们(我,Leah Rowe,拥有本页展示的全部 BBB 照片的所有权,除了 beaglebone 网站上的那一张以外;而那一张只是在这里链接的,而不是托管在 av.libreboot.org 服务器的)。
|
||||||
|
|
||||||
本页面的该版本托管在 `lbwww` git 仓库,其图像托管在 `lbwww-img` 仓库(来自用户 libreboot)。
|
本页面的该版本托管在 `lbwww` git 仓库,其图像托管在 `lbwww-img` 仓库(来自用户 libreboot)。
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
---
|
---
|
||||||
title: Generic SPI Flashing Guide
|
title: Generic SPI Flashing Guide for Libreboot Installation
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
|
||||||
now, as of 27 January 2024, which is a fork of flashrom.
|
now, as of 27 January 2024, which is a fork of flashrom.
|
||||||
|
The reason why was explained, in
|
||||||
|
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
|
Background information
|
||||||
|
----------------------
|
||||||
|
|
||||||
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.
|
||||||
Some users might be daunted by the price of a raspberry pi.
|
Some users might be daunted by the price of a raspberry pi.
|
||||||
|
@ -25,7 +32,7 @@ All of this means that you should try to find a board that is *known* to support
|
||||||
It is *not* enough to know that the board itself supports SPI.
|
It is *not* enough to know that the board itself supports SPI.
|
||||||
|
|
||||||
Selecting an Operating System
|
Selecting an Operating System
|
||||||
=============================
|
-----------------------------
|
||||||
|
|
||||||
In theory, any linux based operating system will do.
|
In theory, any linux based operating system will do.
|
||||||
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.
|
||||||
|
@ -39,7 +46,7 @@ If your SBC supports [Raspbian](https://www.raspberrypi.com/software/) then usin
|
||||||
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.
|
||||||
|
|
||||||
Connecting to your Programmer
|
Connecting to your Programmer
|
||||||
=============================
|
-----------------------------
|
||||||
|
|
||||||
Many SBC operating systems enable ssh by default.
|
Many SBC operating systems enable ssh by default.
|
||||||
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.'
|
||||||
|
@ -57,10 +64,10 @@ SSH to your programmer using the default credentials as specified in your distro
|
||||||
The IP address is the one determined in the earlier step.
|
The IP address is the one determined in the earlier step.
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
`ssh root@192.168.0.167`
|
ssh root@192.168.0.167
|
||||||
|
|
||||||
Finding GPIO Pins
|
Finding GPIO Pins
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
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
|
||||||
determine the correct location of the SPI pins.
|
determine the correct location of the SPI pins.
|
||||||
|
@ -72,7 +79,7 @@ Match each of the categories in the 'signal' column with those in the 'pin' colu
|
||||||
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.
|
||||||
|
|
||||||
Enabling SPI
|
Enabling SPI
|
||||||
============
|
------------
|
||||||
|
|
||||||
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.
|
||||||
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.
|
||||||
|
@ -83,8 +90,8 @@ sudo ldto enable spicc spicc-spidev
|
||||||
sudo ldto merge spicc spicc-spidev
|
sudo ldto merge spicc spicc-spidev
|
||||||
```
|
```
|
||||||
|
|
||||||
Using Flashrom
|
Using flashprog
|
||||||
==============
|
--------------
|
||||||
|
|
||||||
Most linux distros will provide flashprog in their default repositories.
|
Most linux distros will provide flashprog in their default repositories.
|
||||||
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)
|
||||||
|
|
1
site/docs/install/spi_generic.md.description
Normal file
1
site/docs/install/spi_generic.md.description
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Learn how to flash Libreboot using Le Potato, which supports SPI flashing on NOR 25xx ICs.
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
title: Dell Precision T1650
|
title: Install Libreboot on Dell Precision T1650
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
|
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
|
||||||
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
|
||||||
|
there, before flashing. For posterity,
|
||||||
|
[here is the link again](ivy_has_common.md).**
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
|
@ -29,20 +31,20 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
W+: Works without blobs;
|
W+: Works without vendor firmware;
|
||||||
N: Doesn't work;
|
N: Doesn't work;
|
||||||
W*: Works with blobs;
|
W*: Works with vendor firmware;
|
||||||
U: Untested;
|
U: Untested;
|
||||||
P+: Partially works;
|
P+: Partially works;
|
||||||
P*: Partially works with blobs
|
P*: Partially works with vendor firmware
|
||||||
?: UNKNOWN AT THIS TIME
|
?: UNKNOWN AT THIS TIME
|
||||||
```
|
```
|
||||||
|
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|---------------------------------------------------|----|
|
|---------------------------------------------------|----|
|
||||||
| **Internal flashing with original boot firmware** | ? |
|
| **Internal flashing with original boot firmware** | W* |
|
||||||
| **Display (if Intel GPU)** | W+ |
|
| **Display (if Intel GPU)** | W+ |
|
||||||
| **Display (discrete CPU, SeaBIOS payload only)** | W* |
|
| **Display (discrete GPU, SeaBIOS payload only)** | W* |
|
||||||
| **Audio** | W+ |
|
| **Audio** | W+ |
|
||||||
| **RAM Init** | W+ |
|
| **RAM Init** | W+ |
|
||||||
|
|
||||||
|
@ -52,8 +54,14 @@ P*: Partially works with blobs
|
||||||
| **SeaBIOS** | Works |
|
| **SeaBIOS** | Works |
|
||||||
| **SeaBIOS with GRUB** | Works |
|
| **SeaBIOS with GRUB** | Works |
|
||||||
</div>
|
</div>
|
||||||
Introduction
|
|
||||||
============
|
Open source BIOS/UEFI firmware
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This document will teach you how to install Libreboot, on your
|
||||||
|
Dell Precision T1650 desktop motherboard.
|
||||||
|
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
|
||||||
|
that replaces proprietary BIOS/UEFI firmware.
|
||||||
|
|
||||||
**Unavailable in Libreboot 20230625 or earlier. You must [compile from
|
**Unavailable in Libreboot 20230625 or earlier. You must [compile from
|
||||||
source](../build/), or use at least Libreboot 20231021.**
|
source](../build/), or use at least Libreboot 20231021.**
|
||||||
|
@ -65,18 +73,19 @@ This is similar code-wise to [Dell
|
||||||
OptiPlex 9010](https://doc.coreboot.org/mainboard/dell/optiplex_9010.html)
|
OptiPlex 9010](https://doc.coreboot.org/mainboard/dell/optiplex_9010.html)
|
||||||
which coreboot supports.
|
which coreboot supports.
|
||||||
|
|
||||||
Build ROM image from source
|
### Build ROM image from source
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The build target, when building from source, is thus:
|
The build target, when building from source, is thus:
|
||||||
|
|
||||||
./mk -b coreboot t1650_12mb
|
./mk -b coreboot t1650_12mb
|
||||||
|
|
||||||
Installation
|
Alternatively, you can use release images, but please ensure that you've
|
||||||
============
|
inserted vendor files prior to flashing; see notes.
|
||||||
|
|
||||||
Insert binary files
|
Install Libreboot
|
||||||
-------------------
|
-----------------
|
||||||
|
|
||||||
|
### Insert vendor files
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
@ -86,15 +95,13 @@ Libreboot's build system automatically downloads and processes these files if
|
||||||
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
|
||||||
if you're using a release image.
|
if you're using a release image.
|
||||||
|
|
||||||
Set MAC address
|
### Set MAC address
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
||||||
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.md).
|
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
|
||||||
|
|
||||||
WARNING about CPU/GPU compatibility
|
### WARNING about CPU/GPU compatibility
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
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,
|
||||||
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
|
||||||
|
@ -127,14 +134,27 @@ way (SeaBIOS first) because Libreboot's configuration does not tell *coreboot*
|
||||||
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
|
||||||
whenever possible.
|
whenever possible.
|
||||||
|
|
||||||
Flash a ROM image (software)
|
### Flash a ROM image (software)
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
||||||
turned on, [internal flashing](../install/) is possible.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
|
||||||
Flash a ROM image (hardware)
|
Internal flashing is *also* possible from the factory BIOS, if you set the
|
||||||
-----------------
|
service mode jumper. This shorts `HDA_SDO` (Soft Descriptor Override), which
|
||||||
|
disables the ME after early bringup and disables IFD-based flash protections.
|
||||||
|
|
||||||
|
Observe, below the PCI slots:
|
||||||
|
|
||||||
|
<img tabindex=1 style="max-width:35%;" src="https://av.libreboot.org/t1650/t1650_motherboard.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_motherboard.jpg" /></span>
|
||||||
|
|
||||||
|
Here is a close-up:
|
||||||
|
|
||||||
|
<img tabindex=1 style="max-width:35%;" src="https://av.libreboot.org/t1650/t1650_service_mode.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_service_mode.jpg" /></span>
|
||||||
|
|
||||||
|
Simply short those pins, on the header, using a jumper. When you do this, all
|
||||||
|
flash protections will be disabled.
|
||||||
|
|
||||||
|
### Flash a ROM image (hardware)
|
||||||
|
|
||||||
**REMOVE all power sources and connectors from the machine, before doing this.
|
**REMOVE all power sources and connectors from the machine, before doing this.
|
||||||
This is to prevent short circuiting and power surges while flashing.**
|
This is to prevent short circuiting and power surges while flashing.**
|
||||||
|
@ -183,4 +203,4 @@ flashing instructions [in Chinese](../install/spi.zh-cn.md):
|
||||||
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
|
||||||
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.
|
||||||
|
|
||||||
Enjoy!
|
Enjoy your Libreboot machine!
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue