parent
6a52fb9f57
commit
b1d84fda49
4
site.cfg
4
site.cfg
|
@ -1,5 +1,5 @@
|
|||
TITLE="-T Censored-libreboot"
|
||||
DOMAIN="https://censored.libreboot.org/"
|
||||
TITLE="-T nonGeNUine Boot"
|
||||
DOMAIN="https://notgnuboot.vimuser.org/"
|
||||
BLOGDIR="news/" # leave as empty string if you want the blog to be the homepage
|
||||
CSS="--css /global.css"
|
||||
LAZY="y"
|
||||
|
|
|
@ -1,136 +0,0 @@
|
|||
---
|
||||
title: How is Censored Libreboot implemented (ie. censored)?
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
For more context, please read the [Censored Libreboot c20230710 release
|
||||
announcement](https://libreboot.org/news/censored-libreboot20230710.html)
|
||||
|
||||
*Censored Libreboot* is a glimpse of the state Libreboot would
|
||||
be in, if it had never adopted the
|
||||
[Binary Blob Reduction Policy](https://libreboot.org/news/policy.html). In
|
||||
order to do this, many pages, and sources of information, were removed or
|
||||
heavily re-worded (censored) in this version, compared to regular Libreboot. The
|
||||
censored information/code would have never been permitted, under Libreboot's
|
||||
previous [Binary Blob Extermination Policy](https://web.archive.org/web/20221107235850/https://libreboot.org/news/policy.html)
|
||||
|
||||
Support for many mainboards has been removed, in this censored version. The
|
||||
website that you're reading
|
||||
is based on the regular Libreboot website at the time of the
|
||||
[Libreboot 20230625 release](https://libreboot.org/news/libreboot20230625.html).
|
||||
|
||||
Changes made in *Censored Libreboot*
|
||||
====================================
|
||||
|
||||
Almost all of the website changes can be seen here, in this diff:
|
||||
<https://codeberg.org/libreboot/lbwww/commit/23bf3b4c3d9473fd3fa6ee80907076667ea28ae7?style=split&whitespace=show-all>
|
||||
|
||||
The changes are so vast (about 8000 lines of text removed), that not all of them
|
||||
show by default in the above link, but you can click "Show More" at the bottom
|
||||
of that page. Codeberg is Libreboot's hosting provider for Git repositories, and
|
||||
the website is hosted in Git.
|
||||
|
||||
For a list of code changes, you can refer to the [Censored Libreboot c20230710
|
||||
release announcement](https://libreboot.org/news/censored-libreboot20230710.html)
|
||||
|
||||
The above link, and this page, demonstrate the *damage* that could be done to
|
||||
Libreboot, in the name of cult-like ideological purity. Libreboot's policy is
|
||||
simply to help as many people as possible install coreboot, with as few (or no)
|
||||
binary blobs as possible.
|
||||
|
||||
Deleted web pages, in *Censored Libreboot*:
|
||||
-------------------------------------------
|
||||
|
||||
All of these pages, which exist in the regular Libreboot website,
|
||||
do not exist in the *censored* Libreboot website:
|
||||
|
||||
* <https://libreboot.org/docs/hardware/hp2560p.html>
|
||||
* <https://libreboot.org/docs/hardware/hp2570p.html>
|
||||
* <https://libreboot.org/docs/hardware/hp8200sff.html>
|
||||
* <https://libreboot.org/docs/hardware/hp8300usdt.html>
|
||||
* <https://libreboot.org/docs/hardware/hp9470m.html>
|
||||
* <https://libreboot.org/docs/install/ivy_has_common.html>
|
||||
* <https://libreboot.org/docs/install/ivy_has_common.uk.html>
|
||||
* <https://libreboot.org/docs/install/ivy_internal.html>
|
||||
* <https://libreboot.org/docs/install/nvmutilimport.html>
|
||||
* <https://libreboot.org/docs/install/t420_external.html>
|
||||
* <https://libreboot.org/docs/install/t440p_external.html>
|
||||
* <https://libreboot.org/docs/install/x220_external.html>
|
||||
* <https://libreboot.org/docs/install/x230_external.html>
|
||||
* <https://libreboot.org/docs/linux/zfsbootmenu.html>
|
||||
* <https://libreboot.org/docs/maintain/porting.html>
|
||||
* <https://libreboot.org/docs/maintain/porting.uk.html>
|
||||
* <https://libreboot.org/freedom-status.html>
|
||||
* <https://libreboot.org/freedom-status.uk.html>
|
||||
* <https://libreboot.org/news/e6400nvidia.html>
|
||||
* <https://libreboot.org/news/freedom.html>
|
||||
* <https://libreboot.org/news/gm45microcode.html>
|
||||
* <https://libreboot.org/news/hp8200sff.html>
|
||||
* <https://libreboot.org/news/hp8200sff.uk.html>
|
||||
* <https://libreboot.org/news/hp_elitebooks.html>
|
||||
* <https://libreboot.org/news/libreboot20221214.html>
|
||||
* <https://libreboot.org/news/libreboot20230319.html>
|
||||
* <https://libreboot.org/news/libreboot20230413.html>
|
||||
* <https://libreboot.org/news/libreboot20230423.html>
|
||||
* <https://libreboot.org/news/libreboot20230625.html>
|
||||
* <https://libreboot.org/news/microcode.html>
|
||||
* <https://libreboot.org/news/policy.de.html>
|
||||
* <https://libreboot.org/news/policy.html>
|
||||
* <https://libreboot.org/news/policy.uk.html>
|
||||
* <https://libreboot.org/news/safety.html>
|
||||
|
||||
Heavily modified pages (not deleted)
|
||||
------------------------------------
|
||||
|
||||
These pages have been modified heavily (a few of these aren't pages, but are
|
||||
instead files like pandoc templates, used by Libreboot's static site
|
||||
generator, namely the [Untitled Static Site Generator](https://untitled.vimuser.org)):
|
||||
|
||||
* [/contrib.md](/contrib.html) (censored version), versus original: <https://libreboot.org/contrib.html>
|
||||
* [/contrib.uk.md](/contrib.uk.html) (censored version), versus original: <https://libreboot.org/contrib.uk.html>
|
||||
* [/docs/bsd/index.md](/docs/bsd/index.html) (censored version), versus original: <https://libreboot.org/docs/bsd/index.html>
|
||||
* [/docs/build/index.md](/docs/build/index.html) (censored version), versus original: <https://libreboot.org/docs/build/index.html>
|
||||
* [/docs/build/index.uk.md](/docs/build/index.uk.html) (censored version), versus original: <https://libreboot.org/docs/build/index.uk.html>
|
||||
* [/docs/hardware/e6400.md](/docs/hardware/e6400.html) (censored version), versus original: <https://libreboot.org/docs/hardware/e6400.html>
|
||||
* [/docs/hardware/ga-g41m-es2l.md](/docs/hardware/ga-g41m-es2l.html) (censored version), versus original: <https://libreboot.org/docs/hardware/ga-g41m-es2l.html>
|
||||
* [/docs/hardware/index.md](/docs/hardware/index.html) (censored version), versus original: <https://libreboot.org/docs/hardware/index.html>
|
||||
* [/docs/hardware/kgpe-d16.md](/docs/hardware/kgpe-d16.html) (censored version), versus original: <https://libreboot.org/docs/hardware/kgpe-d16.html>
|
||||
* [/docs/hardware/mac\_address.md](/docs/hardware/mac_address.html) (censored version), versus original: <https://libreboot.org/docs/hardware/mac_address.html>
|
||||
* [/docs/install/chromebooks.md](/docs/install/chromebooks.html) (censored version), versus original: <https://libreboot.org/docs/install/chromebooks.html>
|
||||
* [/docs/install/e6400.md](/docs/install/e6400.html) (censored version), versus original: <https://libreboot.org/docs/install/e6400.html>
|
||||
* [/docs/install/index.md](/docs/install/index.html) (censored version), versus original: <https://libreboot.org/docs/install/index.html>
|
||||
* [/docs/install/kgpe-d16.md](/docs/install/kgpe-d16.html) (censored version), versus original: <https://libreboot.org/docs/install/kgpe-d16.html>
|
||||
* [/docs/install/nvmutil.md](/docs/install/nvmutil.html) (censored version), versus original: <https://libreboot.org/docs/install/nvmutil.html>
|
||||
* [/docs/install/spi.md](/docs/install/spi.html) (censored version), versus original: <https://libreboot.org/docs/install/spi.html>
|
||||
* [/docs/install/spi\_generic.md](/docs/install/spi_generic.html) (censored version), versus original: <https://libreboot.org/docs/install/spi_generic.html>
|
||||
* [/docs/linux/index.md](/docs/linux/index.html) (censored version), versus original: <https://libreboot.org/docs/linux/index.html>
|
||||
* [/docs/maintain/index.md](/docs/maintain/index.html) (censored version), versus original: <https://libreboot.org/docs/maintain/index.html>
|
||||
* [/docs/maintain/testing.md](/docs/maintain/testing.html) (censored version), versus original: <https://libreboot.org/docs/maintain/testing.html>
|
||||
* [/docs/uboot/index.md](/docs/uboot/index.html) (censored version), versus original: <https://libreboot.org/docs/uboot/index.html>
|
||||
* [/docs/uboot/uboot-archlinux.md](/docs/uboot/uboot-archlinux.html) (censored version), versus original: <https://libreboot.org/docs/uboot/uboot-archlinux.html>
|
||||
* [/download.md](/download.html) (censored version), versus original: <https://libreboot.org/download.html>
|
||||
* [/download.uk.md](/download.uk.html) (censored version), versus original: <https://libreboot.org/download.uk.html>
|
||||
* [/faq.md](/faq.html) (censored version), versus original: <https://libreboot.org/faq.html>
|
||||
* [/faq.uk.md](/faq.uk.html) (censored version), versus original: <https://libreboot.org/faq.uk.html>
|
||||
* [/footer.de.include](/footer.de.include) (censored version), versus original: <https://libreboot.org/footer.de.include>
|
||||
* [/footer.include](/footer.include) (censored version), versus original: <https://libreboot.org/footer.include>
|
||||
* [/footer.uk.include](/footer.uk.include) (censored version), versus original: <https://libreboot.org/footer.uk.include>
|
||||
* [/footer.zh-cn.include](/footer.zh-cn.include) (censored version), versus original: <https://libreboot.org/footer.zh-cn.include>
|
||||
* [/index.de.md](/index.de.html) (censored version), versus original: <https://libreboot.org/index.de.html>
|
||||
* [/index.fr.md](/index.fr.html) (censored version), versus original: <https://libreboot.org/index.fr.html>
|
||||
* [/index.md](/index.html) (censored version), versus original: <https://libreboot.org/index.html>
|
||||
* [/index.uk.md](/index.uk.html) (censored version), versus original: <https://libreboot.org/index.uk.html>
|
||||
* [/index.zh-cn.md](/index.zh-cn.html) (censored version), versus original: <https://libreboot.org/index.zh-cn.html>
|
||||
* [/news/MANIFEST](/news/MANIFEST) (censored version), versus original: <https://libreboot.org/news/MANIFEST>
|
||||
* [/news/audit.md](/news/audit.html) (censored version), versus original: <https://libreboot.org/news/audit.html>
|
||||
* [/news/e6400.md](/news/e6400.html) (censored version), versus original: <https://libreboot.org/news/e6400.html>
|
||||
* [/news/e6400.uk.md](/news/e6400.uk.html) (censored version), versus original: <https://libreboot.org/news/e6400.uk.html>
|
||||
* [/news/usa-libre-part2.md](/news/usa-libre-part2.html) (censored version), versus original: <https://libreboot.org/news/usa-libre-part2.html>
|
||||
* [/template.de.include](/template.de.include) (censored version), versus original: <https://libreboot.org/template.de.include>
|
||||
* [/template.include](/template.include) (censored version), versus original: <https://libreboot.org/template.include>
|
||||
* [/template.uk.include](/template.uk.include) (censored version), versus original: <https://libreboot.org/template.uk.include>
|
||||
* [/template.zh-cn.include](/template.zh-cn.include) (censored version), versus original: <https://libreboot.org/template.zh-cn.include>
|
||||
|
|
@ -3,70 +3,4 @@ title: Kontakt
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
**TODO: mailing lists, mastodon server and peertube account.**
|
||||
|
||||
User support
|
||||
============
|
||||
|
||||
IRC oder Reddit werden bevorzugt, sofern Du eine Support Anfrage hast (IRC empfohlen).
|
||||
Für Informationen bzgl. IRC and Reddit siehe unten.
|
||||
|
||||
Entwicklungs Diskussion
|
||||
======================
|
||||
|
||||
Eine Mailing Liste ist für die Zukunft in Planung. Bis dahin, siehe unter
|
||||
[der Git Seite](git.md) für Informationen wie Du dich an der Entwicklung beteiligen kannst.
|
||||
|
||||
Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests).
|
||||
|
||||
IRC Chatraum
|
||||
============
|
||||
|
||||
IRC ist hauptsächlich der Weg um Kontakt Libreboot Projekt aufzunehmen. `#libreboot` auf Libera
|
||||
IRC.
|
||||
|
||||
Webchat:
|
||||
<https://web.libera.chat/#libreboot>
|
||||
|
||||
Libera ist eines der grössten IRC Netzwerke, welches für Libre Software Projekte verwendet wird.
|
||||
Mehr Infos gibt es hier: <https://libera.chat/>
|
||||
|
||||
Wenn Du dich mit deinem bevorzugten IRC Klienten verbinden möchtest (z.B. weechat or irssi),
|
||||
anbei die Verbindungsdetails:
|
||||
|
||||
* Server: `irc.libera.chat`
|
||||
* Channel: `#libreboot`
|
||||
* Port (TLS): `6697`
|
||||
* Port (non-TLS): `6667`
|
||||
|
||||
Wir empfehlen, dass Du Port `6697` mit aktivierter TLS Verschlüsselung verwendest.
|
||||
|
||||
Es wird empfohlen SASL für die Authentifizierung zu verwenden. Diese Seiten auf der Libera
|
||||
Website erläutern wie dies funktioniert:
|
||||
|
||||
* WeeChat SASL Anleitung: <https://libera.chat/guides/weechat>
|
||||
* Irssi SASL Anleitung: <https://libera.chat/guides/irssi>
|
||||
* HexChat SASL Anleitung: <https://libera.chat/guides/hexchat>
|
||||
|
||||
Grundsätzlich solltest Du die Dokumentation der von Dir verwendeten IRC Software konsultieren.
|
||||
|
||||
Soziale Medien
|
||||
============
|
||||
|
||||
Libreboot existiert offiziell an vielen Orten.
|
||||
|
||||
Mastodon
|
||||
--------
|
||||
|
||||
Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon:
|
||||
|
||||
* <https://mas.to/@libreleah>
|
||||
|
||||
Leah kann zudem unter dieser eMail kontaktiert werden:
|
||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||
|
||||
Reddit
|
||||
------
|
||||
|
||||
Hauptsächlich verwendet als Support Kanal und für Veröffentlichung von Neuigkeiten:
|
||||
<https://www.reddit.com/r/libreboot/>
|
||||
Nein.
|
||||
|
|
|
@ -3,70 +3,4 @@ title: Contact
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
**TODO: mailing lists, mastodon server and peertube account.**
|
||||
|
||||
User support
|
||||
============
|
||||
|
||||
IRC or Reddit are recommended, if you wish to ask for support (IRC recommended).
|
||||
See below for information about IRC and Reddit.
|
||||
|
||||
Development discussion
|
||||
======================
|
||||
|
||||
Mailing lists are planned for the future. For now, see notes
|
||||
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).
|
||||
|
||||
IRC chatroom
|
||||
============
|
||||
|
||||
IRC is the main way to contact the libreboot project. `#libreboot` on Libera
|
||||
IRC.
|
||||
|
||||
Webchat:
|
||||
<https://web.libera.chat/#libreboot>
|
||||
|
||||
Libera is one of the largest IRC networks, used for Libre Software projects.
|
||||
Find more about them here: <https://libera.chat/>
|
||||
|
||||
If you wish to connect using your preferred client (such as weechat or irssi),
|
||||
the connection info is as follows:
|
||||
|
||||
* Server: `irc.libera.chat`
|
||||
* Channel: `#libreboot`
|
||||
* Port (TLS): `6697`
|
||||
* Port (non-TLS): `6667`
|
||||
|
||||
We recommend that you use port `6697` with TLS encryption enabled.
|
||||
|
||||
It is recommend that you use SASL for authentication. These pages on the Libera
|
||||
website tells you how:
|
||||
|
||||
* WeeChat SASL guide: <https://libera.chat/guides/weechat>
|
||||
* Irssi SASL guide: <https://libera.chat/guides/irssi>
|
||||
* HexChat SASL guide: <https://libera.chat/guides/hexchat>
|
||||
|
||||
In general, you should check the documentation provided by your IRC software.
|
||||
|
||||
Social media
|
||||
============
|
||||
|
||||
libreboot exists officially on many places.
|
||||
|
||||
Mastodon
|
||||
--------
|
||||
|
||||
The founder and lead developer, Leah Rowe, is on Mastodon:
|
||||
|
||||
* <https://mas.to/@libreleah>
|
||||
|
||||
Leah can also be contacted by this email address:
|
||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||
|
||||
Reddit
|
||||
------
|
||||
|
||||
Mostly used as a support channel, and also for news announcements:
|
||||
<https://www.reddit.com/r/libreboot/>
|
||||
No.
|
||||
|
|
|
@ -3,70 +3,4 @@ title: Зв'язок
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
**TODO: списки розсилки, сервер mastodon та обліковий запис peertube.**
|
||||
|
||||
Підтримка користувачів
|
||||
============
|
||||
|
||||
IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC).
|
||||
Дивіться інформацію нижче щодо IRC та Reddit.
|
||||
|
||||
Обговорення розробки
|
||||
======================
|
||||
|
||||
Списки розсилки плануються на майбутнє. Зараз, подивіться нотатки
|
||||
на [сторінці Git](git.md) для інформації щодо допомоги з розробкою.
|
||||
|
||||
На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и).
|
||||
|
||||
Кімната IRC
|
||||
============
|
||||
|
||||
IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera
|
||||
IRC.
|
||||
|
||||
Веб-версія:
|
||||
<https://web.libera.chat/#libreboot>
|
||||
|
||||
Libera є однією з найбільших мереж IRC, використовуємих для проектів вільного програмного
|
||||
забезпечення. Знайти про них більше можна тут: <https://libera.chat/>
|
||||
|
||||
Якщо ви бажаєте під'єднатися за допомогою вашого улюбленного клієнта (такого як weechat або irssi),
|
||||
інформація для під'єднання наступна:
|
||||
|
||||
* Сервер: `irc.libera.chat`
|
||||
* Канал: `#libreboot`
|
||||
* Порт (TLS): `6697`
|
||||
* Порт (не TLS): `6667`
|
||||
|
||||
Ми радимо вам використовувати порт `6697` з увімкненим TLS шифруванням.
|
||||
|
||||
Рекомендовано використовувати SASL для аутентифікації. Ці сторінки на веб-сайті Libera
|
||||
пояснять вам як:
|
||||
|
||||
* Керівництво WeeChat SASL: <https://libera.chat/guides/weechat>
|
||||
* Керівництво Irssi SASL: <https://libera.chat/guides/irssi>
|
||||
* Керівництво HexChat SASL: <https://libera.chat/guides/hexchat>
|
||||
|
||||
Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC.
|
||||
|
||||
Соціальні мережі
|
||||
============
|
||||
|
||||
Libreboot офіційно існує в багатьох місцях.
|
||||
|
||||
Mastodon
|
||||
--------------------
|
||||
|
||||
Засновник та головний розробник, Лія Роу, є в Mastodon:
|
||||
|
||||
* <https://mas.to/@libreleah>
|
||||
|
||||
Також можливо зв'язатися з Лією за ії електронною адресою:
|
||||
[leah@libreboot.org](mailto:leah@libreboot.org)
|
||||
|
||||
Reddit
|
||||
------
|
||||
|
||||
Найбільше використовується як канал підтримки, та також для оголошення новин:
|
||||
<https://www.reddit.com/r/libreboot/>
|
||||
немає
|
||||
|
|
449
site/contrib.md
449
site/contrib.md
|
@ -3,451 +3,8 @@ title: Project contributors
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
This list does not necessarily reflect who is currently working on the project,
|
||||
but it lists some people who have contributed to the project in meaningful ways.
|
||||
Leah Rowe made this website for fun, based on Libreboot.
|
||||
|
||||
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
|
||||
entry)
|
||||
It is only a proof of concept. You should otherwise use Libreboot:
|
||||
|
||||
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.
|
||||
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).
|
||||
|
||||
Leah Rowe
|
||||
---------
|
||||
|
||||
**Founder of the Libreboot project, and currently the lead developer.** Leah
|
||||
works on all aspects of libreboot, such as:
|
||||
|
||||
* General management. Leah handles all outside contributions to libreboot,
|
||||
reviews pull requests, deals with bug reports, delegates tasks when necessary
|
||||
or desirable. Leah controls the libreboot.org server infrastructure, hosted
|
||||
in her lab.
|
||||
* Leah has the final say on all decisions, taking input via discussion with
|
||||
members of the public, mostly on IRC. Leah oversees releases of libreboot,
|
||||
and generally keeps the project going. Without Leah, there would be no Libreboot!
|
||||
* The build system (lbmk, short for libreboot Make). This is the automated build
|
||||
system that sits at the heart of libreboot; it downloads, patches, configures
|
||||
and compiles the relevant components like coreboot, GRUB and generates
|
||||
the libreboot ROM images that you can find in release archives.
|
||||
* Upstream work on coreboot, when necessary (and other projects that libreboot
|
||||
uses). This means also working with people from outside of the libreboot
|
||||
project, to get patches merged (among other things) on the upstream projects
|
||||
that libreboot uses
|
||||
* Providing user support on IRC
|
||||
|
||||
Caleb La Grange
|
||||
---------------
|
||||
|
||||
**Secondary developer, number two to Leah.** Caleb is a full time libreboot developer
|
||||
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: binary blob management, 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
|
||||
=================
|
||||
|
||||
Coreboot project
|
||||
----------------
|
||||
|
||||
Without coreboot, the libreboot project simply would not be possible.
|
||||
|
||||
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
|
||||
provide hardware initialization.
|
||||
|
||||
GRUB
|
||||
--------
|
||||
|
||||
GRUB is the bootloader used by libreboot. It goes without saying that the GRUB
|
||||
developers enable libreboot, through their work.
|
||||
|
||||
SeaBIOS
|
||||
-------
|
||||
|
||||
The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a
|
||||
legacy x86 BIOS implementation.
|
||||
|
||||
U-Boot
|
||||
------
|
||||
|
||||
Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks.
|
||||
|
||||
Contributors in alphabetical order
|
||||
==================================
|
||||
|
||||
Alper Nebi Yasak
|
||||
----------------
|
||||
|
||||
Contributed the build system integration and documentation for using
|
||||
U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks
|
||||
based on that.
|
||||
|
||||
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.
|
||||
|
||||
Alyssa Rosenzweig
|
||||
-----------------
|
||||
|
||||
Switched the website to use markdown in lieu of handwritten HTML and custom
|
||||
PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).**
|
||||
|
||||
Alyssa wrote the original static site generator (shell scripts converting
|
||||
markdown to html, via pandoc) for libreboot.org. This static site generator has
|
||||
now been heavily modified and forked into a formal project, by Leah Rowe:
|
||||
|
||||
<https://untitled.vimuser.org/> (untitled is Leah's work, not Alyssa's, but it's based on
|
||||
Alyssa's original work on the static site generator that Libreboot used to use;
|
||||
the Libreboot website is now built with Untitled)
|
||||
|
||||
Andrew Robbins
|
||||
--------------
|
||||
|
||||
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,
|
||||
until his departure in March 2021.
|
||||
|
||||
I, Leah Rowe, am very grateful to Andrew Robbins for his numerous contributions
|
||||
over the years.
|
||||
|
||||
Arthur Heymans
|
||||
--------------
|
||||
|
||||
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
|
||||
before Arthur's contribution. Arthur also fixed VRAM size on i945 on
|
||||
GM45 systems, allowing maximum VRAM allocation for the onboard GPUs on
|
||||
these systems, another longstanding issue in libreboot.
|
||||
|
||||
Arthur also did work on the Libreboot build system, when he was a member of the
|
||||
project. He still works on coreboot, to this day, and Libreboot greatly
|
||||
benefits from his work. His contributions to the coreboot project, and Libreboot,
|
||||
are invaluable.
|
||||
|
||||
Damien Zammit
|
||||
-------------
|
||||
|
||||
Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated
|
||||
in libreboot. Also works on other hardware for the benefit of the
|
||||
libreboot project.
|
||||
|
||||
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
|
||||
Damien's upstream work on coreboot.
|
||||
|
||||
Denis Carikli
|
||||
-------------
|
||||
|
||||
Based on the work done by Peter Stuge, Vladimir Serbinenko and others in
|
||||
the coreboot project, got native graphics initialization to work on the
|
||||
ThinkPad X60, allowing it to be supported in libreboot. Denis gave
|
||||
a lot of advice and helped found the libreboot project.
|
||||
|
||||
Denis was a mentor to Leah Rowe in the early days, when she founded the
|
||||
Libreboot project. A lot of the decisions taken, especially with the
|
||||
Libreboot build system (lbmk), were inspired from talks with Denis.
|
||||
|
||||
Denis taught Leah about registers used by Intel GPUs for backlight control. In
|
||||
the early days, the ThinkPad X60 and T60 laptops in Libreboot did not have
|
||||
backlight control working, so the brightness was always 100%. With Denis's help,
|
||||
Leah was able to get backlight controls working by reverse engineering the
|
||||
correct values to write in those registers. Based on this, a simple fix was
|
||||
written in coreboot; however, the fix just wrote directly to the register and
|
||||
didn't work with ACPI based brightness controls. Others in coreboot later
|
||||
improved it, making ACPI-based backlight controls work properly, based on this
|
||||
earlier work.
|
||||
|
||||
Ferass El Hafidi
|
||||
--------
|
||||
|
||||
Added cstate 3 support on macbook21, enabling higher battery life and cooler
|
||||
CPU temperatures on idle usage.
|
||||
|
||||
Also has a series of extensive improvements to the entire Libreboot system;
|
||||
for example, Ferass made the entire build system use POSIX `sh`, removing
|
||||
bashisms that previously plagued it.
|
||||
|
||||
This is IRC nick `f_` on Libreboot IRC. Cool guy!
|
||||
|
||||
Jeroen Quint
|
||||
------------
|
||||
|
||||
Contributed several fixes to the libreboot documentation, relating to
|
||||
installing on Arch-based systems with full disk encryption on libreboot
|
||||
systems.
|
||||
|
||||
Joshua Gay
|
||||
----------
|
||||
|
||||
Joshua is former FSF staff.
|
||||
|
||||
Joshua helped with the early founding of the Libreboot project, in his capacity
|
||||
(at that time) as the FSF's licensing and compliance manager. It was his job to
|
||||
review products sent into to the FSF for review; the FSF has a certification
|
||||
program called *Respects Your Freedom* (RYF) where the FSF will promote your
|
||||
company's products if it comes with all Free Software.
|
||||
|
||||
I, Leah Rowe, was initially just selling ThinkPad X60 laptops with regular
|
||||
coreboot on them, and this included CPU microcode updates. At the time, I didn't
|
||||
think much of that. Joshua contacted me, in his capacity at the FSF, and asked
|
||||
if I would be interested in the FSF's RYF program; I was very surprised that the
|
||||
FSF would take me seriously, and I said yes. This is what started the early
|
||||
work on Libreboot. Joshua showed me all the problems my products had, and from
|
||||
that, the solution was clear:
|
||||
|
||||
A project needed to exist, providing a fully free version of coreboot, without
|
||||
any binary blobs. At the time (and this is still true today), coreboot was not
|
||||
entirely libre software and shipped with binary blobs by default. In particular,
|
||||
CPU microcode updates were included by default, on all x86 machines. Working
|
||||
with Joshua who reviewed my work, I created a fully free version of coreboot.
|
||||
At first, it wasn't called Libreboot, and the work was purely intended for my
|
||||
company (at that time called Gluglug) to be promoted by the FSF.
|
||||
|
||||
Joshua used his media connections at the FSF to heavily promote my work, and
|
||||
on December 13th, 2013, the Libreboot project was born (but not called that).
|
||||
Joshua made sure that everyone knew what I was doing!
|
||||
|
||||
A few months later, the name *Libreboot* was coined, and the domain name
|
||||
*libreboot.org* was registered. At that point, the Libreboot project (in early
|
||||
2014) was officially born. Once again, Joshua provided every bit of help he
|
||||
could, heavily promoting the project and he even wrote this article on the FSF
|
||||
website, announcing it:
|
||||
|
||||
<https://web.archive.org/web/20171222063358/https://www.fsf.org/blogs/licensing/replace-your-proprietary-bios-with-libreboot>
|
||||
|
||||
Klemens Nanni
|
||||
-------------
|
||||
|
||||
Made many fixes and improvements to the GRUB configuration used in
|
||||
libreboot, and several tweaks to the build system.
|
||||
|
||||
Lisa Marie Maginnis
|
||||
-------------------
|
||||
|
||||
Lisa is a former sysadmin at the Free Software Foundation. In the early days of
|
||||
the project, she provided Leah with a lot of technical advice. She initially
|
||||
created Libreboot IRC channel, when Leah did not know how to
|
||||
use IRC, and also handed +F founder status to Leah for the channel. As an FSF
|
||||
sysadmin, it was Lisa's job to maintain a lot of the infrastructure used by
|
||||
Libreboot; at the time, mailing lists on the Savannah website were used by
|
||||
the Libreboot project. When Paul Kocialkowski was a member of the project in
|
||||
2016, she helped him get help from the FSF; he was the leader of the Replicant
|
||||
project at the time, which had funding from the FSF, and the FSF authorized him
|
||||
to use some of that funding for his work on Libreboot, thanks to Lisa's
|
||||
encouragement while she worked at the FSF.
|
||||
|
||||
Lisa also stepped in when Leah Rowe missed her LibrePlanet 2016 talk. Leah was
|
||||
scheduled to do a talk about Libreboot, but didn't show up in time. Lisa, along
|
||||
with Patrick McDermott (former Libreboot developer, who was present at that
|
||||
conference) did the talk in Leah's place. The talk was never recorded, but the
|
||||
Free Software Foundation has these photos of that talk on their LibrePlanet
|
||||
website (the woman with the blue hair is Lisa, and the long-haired dude with the
|
||||
moustache is Patrick):
|
||||
|
||||
<http://web.archive.org/web/20170319043913/https://media.libreplanet.org/u/libreplanet/m/session-02-c-mws-png-libreplanet-2016-sessions/>
|
||||
|
||||
<http://web.archive.org/web/20170319043915/https://media.libreplanet.org/u/libreplanet/m/session-02-c-wide-png-libreplanet-2016-sessions/>
|
||||
|
||||
Fun fact: Patrick is also the lead developer of ProteanOS, an FSF-endorsed
|
||||
embedded OS project: <http://proteanos.com/> (uses BusyBox and Linux-libre)
|
||||
|
||||
Leah Rowe ran *2* LibrePlanet workshops; one in 2015 and another in 2016, while
|
||||
visiting Boston, MA, USA on both occasions to attend these conferences. These
|
||||
workshops were for Libreboot installations. People came to both workshops, to
|
||||
have Libreboot installed onto their computers. As FSF sysadmin, at that time,
|
||||
Lisa provided all of the infrastructure and equipment used at those workshops.
|
||||
Without her help, those workshops would have not been possible.
|
||||
|
||||
When the ASUS KGPE-D16 mainboard (high-end server board) was ported to Libreboot,
|
||||
Leah, working with Timothy Pearson (the one who ported it), shared patches back
|
||||
and forth with Lisa around mid 2016, mostly raminit patches, to get the board
|
||||
running at the FSF offices. This work ultimately lead to a most wonderful
|
||||
achievement:
|
||||
|
||||
The FSF and GNU websites now run on
|
||||
Librebooted ASUS KGPE-D16 based servers, on a fully free GNU+Linux distro. This
|
||||
means that the FSF now has full software freedom for their hosting infrastructure.
|
||||
|
||||
The FSF also provides access to this infrastructure for many other projects
|
||||
(besides GNU projects); for example, Trisquel uses a D16 provided by the FSF
|
||||
for their development server used for building Trisquel releases and testing
|
||||
changes to the Trisquel GNU+Linux distribution. Trisquel is a fully free
|
||||
GNU+Linux distribution, heavily promoted by the FSF.
|
||||
|
||||
Lisa was a strong supporter of Libreboot in the very early days of the project,
|
||||
and her contributions were invaluable. I, Leah Rowe, owe her a debt of gratitude.
|
||||
|
||||
Marcus Moeller
|
||||
--------------
|
||||
|
||||
Made the libreboot logo.
|
||||
|
||||
Nicholas Chin
|
||||
-------------
|
||||
|
||||
[Ported Dell Latitude E6400 to Libreboot](news/e6400.md).
|
||||
|
||||
Patrick "P. J." McDermott
|
||||
---------------------------
|
||||
|
||||
Patrick also did a lot of research and wrote the libreboot FAQ section
|
||||
relating to the [Intel Management Engine](../faq.md#intelme), in addition
|
||||
to making several improvements to the build system in libreboot. **Former
|
||||
libreboot project maintainer.**
|
||||
|
||||
In 2016, Leah Rowe ran a Libreboot installation workshop at the FSF's
|
||||
LibrePlanet conference. Working alongside Leah, Patrick helped run the workshop
|
||||
and assisted with installing Libreboot onto people's machines.
|
||||
|
||||
Paul Kocialkowski
|
||||
-----------------
|
||||
|
||||
Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to
|
||||
libreboot. Also one of the main [Replicant](http://www.replicant.us/)
|
||||
developers.
|
||||
|
||||
Paul Menzel
|
||||
-----------
|
||||
|
||||
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
|
||||
working and video generally to become unstable. The issue was that coreboot,
|
||||
when initializing the Intel video chipset, was mapping *GTT Stolen Memory* in
|
||||
the wrong place, because the code was based on kernel code and the Linux kernel
|
||||
had the same bug. When Linux fixed it, it exposed the same bug in coreboot.
|
||||
|
||||
Paul worked with Libreboot on
|
||||
this, sending patches to test periodically until the bug was fixed
|
||||
in coreboot, and then helped her integrate the fix in libreboot.
|
||||
|
||||
Peter Stuge
|
||||
-----------
|
||||
|
||||
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
|
||||
in those days, and a major developer in the *libusb* project (which flashrom
|
||||
makes heavy use of).
|
||||
|
||||
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
|
||||
workaround to flash Libreboot without using external hardware; on this machine,
|
||||
with Lenovo BIOS present, it's possible to flash everything except the main
|
||||
bootblock, but Intel platforms have 2 bootblocks, and you specify which one is
|
||||
to be used by setting the TS bit. You then boot with only one bootblock flashed
|
||||
(by the coreboot project's bootblock on that machine), and afterwards you reset
|
||||
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
|
||||
responsive.
|
||||
|
||||
Steve Shenton
|
||||
-------------
|
||||
|
||||
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
|
||||
bitfields in C) this descriptor region. With some clever tricks, he was able to
|
||||
discover the existence of a bit in the descriptor for *disabling* the Intel ME
|
||||
(management engine) on those platforms.
|
||||
|
||||
His initial proof of concept only defined the descriptor, and would do this:
|
||||
|
||||
* Read the default descriptor and GbE regions from a Lenovo X200 ROM (default
|
||||
firmware, not coreboot)
|
||||
* Disable the ME, by setting 2 bits in the descriptor
|
||||
* Disable the ME region
|
||||
* Move descriptor+GbE (12KiB in total) next to each other
|
||||
* Allocate the remaining flash space to the BIOS region
|
||||
* Generated the 12KiB descriptor+GbE region, based on this, to insert into a
|
||||
coreboot ROM image.
|
||||
|
||||
In the early days, before Libreboot supported GM45+ICH9M platforms such as
|
||||
ThinkPad X200/T400, you could use those machines but to avoid the Intel ME you
|
||||
had to flash it without a descriptor region. This worked fine in those days,
|
||||
because the ME only handled TPM and AMT on those machines, and the system would
|
||||
work normally, but that Intel Flash Descriptor also handles the Intel GbE NVM
|
||||
region in flash, which is used for the Intel Gigabit Ethernet interface.
|
||||
|
||||
So you either had Intel ME, or no ethernet support. Steve figured out how to
|
||||
disable the Intel ME via 2 toggle bits in the descriptor, and also how to
|
||||
remove the Intel ME region from flash.
|
||||
|
||||
Based on his research, I, Leah Rowe, working alongside Steve, also reverse
|
||||
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
|
||||
GbE NIC, if present.
|
||||
|
||||
Based on this, I was able to take Steve's initial proof of concept and write
|
||||
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,
|
||||
the `ich9gen` tool, that Libreboot uses to provide ROM images for GM45+ICH9M
|
||||
platforms (such as ThinkPad X200/T400/T500/W500), with a fully functional
|
||||
descriptor and functional Gigabit Ethernet, but *without* needing Intel
|
||||
Management Engine (ME) firmware, thus making those machines *libre* (the ME
|
||||
is fully disabled, when you use a descriptor+gbe image generated by `ich9gen`).
|
||||
|
||||
With *my* `ich9gen` tool (Steve's tool was called `ich9deblob`), you didn't
|
||||
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.
|
||||
|
||||
After that, Swift Geek slowly became more involved until he became a full time
|
||||
developer. Swift Geeks contributions were never really in the form of *code*,
|
||||
but what he lacked in code, he made up for in providing excellent support, both
|
||||
to users and other developers, helping others learn more about technology at a
|
||||
low level.
|
||||
|
||||
When Swift Geek was a member of the project, his role was largely providing
|
||||
user support (in the IRC channel), and conducting research. Swift Geek knows a
|
||||
lot about hardware. Swift Geek also did some upstream development on GRUB.
|
||||
|
||||
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
|
||||
some repair skills, to the point where she can now repair most faults on
|
||||
ThinkPad mainboards (while looking at the schematics and boardview).
|
||||
|
||||
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
|
||||
years.
|
||||
|
||||
Timothy Pearson
|
||||
---------------
|
||||
|
||||
Ported the ASUS KGPE-D16 board to coreboot for the company Raptor
|
||||
Engineering of which Timothy is the CEO.
|
||||
Timothy maintains this code in coreboot,
|
||||
helping the project with the libreboot integration for it. This person's
|
||||
contact details are on the raptor site.
|
||||
|
||||
Vladimir Serbinenko
|
||||
-------------------
|
||||
|
||||
Ported many of the thinkpads supported in libreboot, to coreboot, and
|
||||
made many fixes in coreboot which benefited the libreboot project.
|
||||
|
||||
Vladimir wrote a lot of the original video initialization code used by various
|
||||
Intel platforms in Libreboot, when flashing it (now rewritten
|
||||
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
|
||||
coreboot).
|
||||
<https://libreboot.org/>
|
||||
|
|
|
@ -1,449 +0,0 @@
|
|||
---
|
||||
title: Учасники проекту
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
У цьому списку не обов'язково вказується, хто зараз працює над проектом,
|
||||
але в ньому вказано людей, які зробили значний внесок у проект.
|
||||
|
||||
Якщо ми забули вас тут згадати, повідомте нам, і ми вас додамо. (або якщо
|
||||
ви не хочете, щоб вас згадували, повідомте нас, і ми видалимо ваш
|
||||
запис)
|
||||
|
||||
Інформацію про те, хто працює над libreboot і як працює проект, можна
|
||||
знайти на цій сторінці: [who.md](who.md)
|
||||
|
||||
Ви можете дізнатися історію проекту libreboot, просто прочитавши цю сторінку.
|
||||
Тут докладно розповідається про всі основні внески в проект і
|
||||
загалом про те, як створювався проект (і хто допоміг його створити).
|
||||
|
||||
Лія Роу
|
||||
---------
|
||||
|
||||
**Засновник проекту Libreboot, а зараз провідний розробник** Лія
|
||||
працює над усіма аспектами libreboot, такими як:
|
||||
|
||||
* Загальне керівництво. Лія обробляє всі зовнішні внески до libreboot,
|
||||
переглядає пул реквести, має справу із звітами про помилки, делегує завдання, коли це необхідно
|
||||
або бажано. Лія контролює серверну інфраструктуру libreboot.org, розміщену
|
||||
в її лабораторії.
|
||||
* Лія має останнє слово щодо всіх рішень, беручи внесок через обговорення з
|
||||
представниками громадськості, переважно на IRC. Лія контролює випуски libreboot
|
||||
і загалом підтримує проект. Без Лії не було би Libreboot!
|
||||
* Система збірки (lbmk, скорочення від libreboot Make). Це автоматизована
|
||||
система збирання, яка лежить в серці libreboot; він завантажує, патчить, налаштовує
|
||||
та компілює відповідні компоненти, такі як coreboot, GRUB, і генерує образи ROM
|
||||
libreboot, які ви можете знайти в архівах випусків.
|
||||
* Апстрім робота над coreboot, коли необхідно (та іншими проектами, які libreboot
|
||||
використовує). Це також означає роботу з людьми поза межами проекту libreboot,
|
||||
щоб об'єднати виправлення (між іншим) в апстрім проектах,
|
||||
які libreboot використовує
|
||||
* Надання підтримки користувачів на IRC
|
||||
|
||||
Калеб Ла Гранж
|
||||
---------------
|
||||
|
||||
**Вторинний розробник, номер два для Лії.** Калеб - розробник libreboot на повний робочий день
|
||||
з вузьким фокусом. Калеб зосереджується на кількох напрямках розвитку:
|
||||
|
||||
* Система побудови. Калеб відповідає за вдосконалення та виправлення системи побудови libreboot Make.
|
||||
Зокрема, управління бінарними блобами, автоматизація та відтворюваність.
|
||||
* Апаратна модифікація. Калеб має пристрасть до переробки апаратного забезпечення; паяння,
|
||||
розпаювання, та тестування libreboot на отриманому обладнанні.
|
||||
* Перенесення плати. Все, що підтримується в Coreboot, можна перенести на libreboot, Калеб
|
||||
перевірить і перенесе будь-яку плату, до якої зможе потрапити. Крім того, будь-хто може
|
||||
зв'язатись з Калебом, щоб створити образи libreboot для тестування на своїй платі.
|
||||
* Документація. Калеб активно веде документацію щодо зазначених вище сфер
|
||||
інтересу. Додатково, Калеб відповідає за посібники з розбирання з власними
|
||||
малюнками та діаграмами для кількох плат.
|
||||
* Підтримка користувачів. Калеб активний в irc і готовий допомогти будь-якому користувачеві, який зацікавлений в
|
||||
використанні libreboot або потребує допомоги.
|
||||
* Цілі проекту. Калеб співпрацює з Лією над визначенням цілей проекту.
|
||||
Лія має останнє слово в кожному рішенні.
|
||||
|
||||
Зовнішні проекти
|
||||
================
|
||||
|
||||
Проект Coreboot
|
||||
----------------
|
||||
|
||||
Без coreboot проект libreboot був би просто неможливий.
|
||||
|
||||
Людей і компаній, які працюють над coreboot, багато, і вони роблять
|
||||
проект libreboot таким, яким він є. Проект libreboot активно використовує coreboot
|
||||
для ініціалізації обладнання.
|
||||
|
||||
GRUB
|
||||
--------
|
||||
|
||||
GRUB - це завантажувач, який використовується libreboot. Само собою зрозуміло, що
|
||||
розробники GRUB стимулюють libreboot своєю роботою.
|
||||
|
||||
SeaBIOS
|
||||
-------
|
||||
|
||||
Прошивка libreboot надає SeaBIOS як опцію корисного навантаження. SeaBIOS забезпечує
|
||||
застарілу реалізацію BIOS x86.
|
||||
|
||||
U-Boot
|
||||
------
|
||||
|
||||
Libreboot використовує U-Boot як корисне навантаження coreboot на ноутбуках
|
||||
ARM Chromebook з підтримкою coreboot.
|
||||
|
||||
Внески в алфавітному порядку
|
||||
============================
|
||||
|
||||
Алісса Розенцвейг
|
||||
-----------------
|
||||
|
||||
Переключила веб-сайт на використання розмітки замість рукописного HTML та користувацького
|
||||
PHP. **Колишній супроводжувач проекту libreboot (системний адміністратор libreboot.org).**
|
||||
|
||||
Алісса написала оригінальний генератор статичних сайтів (скрипти `sh`, що перетворюють
|
||||
markdown в html, через pandoc) для libreboot.org. Цей генератор статичних сайтів
|
||||
був значно змінений і відгалужений Лією Роу у формальний проект:
|
||||
|
||||
<https://untitled.vimuser.org/> (untitled - це робота Лії, а не Алісси, але вона базується на
|
||||
оригінальній роботі Аліси над генератором статичних сайтів, який раніше використовував Libreboot;
|
||||
веб-сайт Libreboot тепер створено за допомогою Untitled)
|
||||
|
||||
Альпер Небі Ясак
|
||||
----------------
|
||||
|
||||
Надав інтеграцію системи збірки та документацію для використання
|
||||
U-Boot в якості корисного навантаження, та початкові порти Libreboot деяких ARM Chromebook
|
||||
виходячи з того.
|
||||
|
||||
Альпер також займається розробкою на U-Boot, напр. продовжив майже завершений
|
||||
порт плати `gru-kevin` і об'єднав його з апстрімом.
|
||||
|
||||
Артур Хейманс
|
||||
--------------
|
||||
|
||||
Об'єднав патч із coreboot у libreboot, дозволяючи режимам живлення C3 та C4
|
||||
правильно працювати на ноутбуках GM45. Це була давня проблема до внеску
|
||||
Артура. Артур також виправив розмір відеопам'яті на i945 на системах
|
||||
GM45, що дозволило максимально розподілити VRAM для вбудованих графічних процесорів
|
||||
у цих системах, ще одна давня проблема в libreboot.
|
||||
|
||||
Артур також працював над системою збірки Libreboot, коли він був учасником
|
||||
проекту. Він досі працює над coreboot, і Libreboot отримує велику
|
||||
користь від його роботи. Його внесок у проект coreboot і Libreboot
|
||||
неоціненний.
|
||||
|
||||
Володимир Сербіненко
|
||||
-------------------
|
||||
|
||||
Перенес багато thinkpad, які підтримуються в libreboot, на coreboot, а
|
||||
також зробив багато виправлень у coreboot, які принесли користь проекту libreboot.
|
||||
|
||||
Володимир написав багато вихідного коду ініціалізації відео, який використовується різними
|
||||
платформами Intel у Libreboot, під час прошивки (зараз переписаний
|
||||
іншими в Ada, для libgfxinit в coreboot, але спочатку він був написаний на
|
||||
C і включений безпосередньо в coreboot; libgfxinit є субмодуль третьої сторони).
|
||||
|
||||
Демієн Замміт
|
||||
-------------
|
||||
|
||||
Підтримує порт coreboot Gigabyte GA-G41M-ES2L, інтегрований у
|
||||
libreboot. Також працює над іншим апаратним забезпеченням на користь
|
||||
проекту libreboot.
|
||||
|
||||
Демієн не працював безпосередньо над самим Libreboot, але він багато працював з
|
||||
Лією Роу, інтегруючи патчі та нові порти плати в Libreboot на основі
|
||||
попередньої роботи Демієна над coreboot.
|
||||
|
||||
Денис Каріклі
|
||||
-------------
|
||||
|
||||
На основі роботи, виконаної Пітером Стюджем, Володимиром Сербіненко та іншими
|
||||
в проекті coreboot, вдалось налагодити нативну ініціалізацію графіки для роботи
|
||||
на ThinkPad X60, що дозволяє підтримувати її в libreboot. Денис дав
|
||||
багато порад і допоміг створити проект libreboot.
|
||||
|
||||
Денис був наставником Лії Роу в ранні дні, коли вона заснувала проект
|
||||
Libreboot. Багато прийнятих рішень, особливо щодо системи збірки
|
||||
Libreboot (lbmk), були натхненні розмовами з Денисом.
|
||||
|
||||
Денис навчив Лію про регістри, які використовуються графічним процесором Intel для керування підсвічуванням.
|
||||
В ранні дні, ноутбуки ThinkPad X60 та T60 в Libreboot не мали працюючого
|
||||
контроля підсвічуванням, тому яскравість завжди була 100%. За допомогою Дениса,
|
||||
Лія змогла налаштувати керування підсвічуванням шляхом зворотньої розробки
|
||||
правильних значень для запису в ці регістри. На основі цього в coreboot
|
||||
було написано просте виправлення; однак виправлення перезаписувало безпосередньо регістр
|
||||
і не працювало з елементами керування яскравістю на основі ACPI. Інші в coreboot
|
||||
пізніше вдосконалили його, змусивши елементи керування підсвічуванням на основі ACPI працювати належним чином, на основі цієї
|
||||
попередньої роботи.
|
||||
|
||||
Джерун Квінт
|
||||
------------
|
||||
|
||||
Додав кілька виправлень до документації libreboot, пов'язаної зі
|
||||
встановленням Arch з повним дисковим шифруванням у системах libreboot.
|
||||
|
||||
Джошуа Гей
|
||||
----------
|
||||
|
||||
Джошуа колишній співробітник FSF.
|
||||
|
||||
Джошуа допоміг із раннім заснуванням проекту Libreboot, будучи
|
||||
(на той час) менеджером з ліцензування та відповідності FSF. Його роботою було
|
||||
переглядати продукти, надіслані до FSF для перевірки; FSF має програму
|
||||
сертифікації, під назвою *Поважає Вашу Свободу* (Respects Your Freedom), за якою FSF рекламуватиме
|
||||
продукти вашої компанії, якщо вони постачаються з усім вільним програмним
|
||||
забезпеченням.
|
||||
|
||||
Я, Лія Роу, спочатку просто продавала ноутбуки ThinkPad X60 із звичайним
|
||||
coreboot, і це включало оновлення мікрокоду ЦП. У той час
|
||||
я не дуже про це думала. Джошуа зв'язався зі мною, в своїх повноваженнях FSF, і спитав,
|
||||
чи зацікавить мене програма RYF FSF; Я була дуже здивована, що FSF
|
||||
сприйме мене серйозно, і я сказала так. Саме з цього почалася рання робота
|
||||
над Libreboot. Джошуа показав мені всі проблеми з моїми продуктами, і з
|
||||
цього, рішення було очевидним:
|
||||
|
||||
Необхідно, щоб існував проект із повністю вільною версією coreboot без будь-яких
|
||||
бінарних блобів. У той час (і це актуально й сьогодні) coreboot не був
|
||||
повністю вільним програмним забезпеченням і за замовчуванням постачався з двійковими блобами. Зокрема,
|
||||
оновлення мікрокоду ЦП включено за замовчуванням на всіх машинах x86. Працюючи
|
||||
з Джошуа, я створила повністю вільну версію coreboot.
|
||||
Спочатку він не називався Libreboot, і робота була призначена виключно для моєї
|
||||
компанії (на той час вона називалася Gluglug), яку просувала FSF.
|
||||
|
||||
Джошуа використовував свої медійні зв'язки в FSF, щоб активно рекламувати мою роботу, і
|
||||
13 грудня 2013 року народився проект Libreboot (але не названий так).
|
||||
Джошуа переконався, щоб всі знали, що я роблю!
|
||||
|
||||
Через кілька місяців було створено назву *Libreboot* і зареєстровано доменне ім'я
|
||||
*libreboot.org*. У цей момент офіційно народився проект Libreboot (на початку
|
||||
2014 року). Знову Джошуа надав всю можливу допомогу,
|
||||
активно просуваючи проект, і навіть написав цю статтю на веб-сайті FSF
|
||||
оголосивши про це:
|
||||
|
||||
<https://web.archive.org/web/20171222063358/https://www.fsf.org/blogs/licensing/replace-your-proprietary-bios-with-libreboot>
|
||||
|
||||
Ендрю Роббінс
|
||||
--------------
|
||||
|
||||
Працював над великими частинами старої системи збірки Libreboot і пов'язаною документацією.
|
||||
Ендрю приєднався до проекту Libreboot як штатний розробник у червні 2017,
|
||||
до моменту свого відходу в березні 2021 року.
|
||||
|
||||
Я, Лія Роу, дуже вдячна Ендрю Роббінсу за його численні внески
|
||||
протягом багатьох років.
|
||||
|
||||
Клеменс Нанні
|
||||
-------------
|
||||
|
||||
Внесено багато виправлень і покращень у конфігурацію GRUB, яка використовується в
|
||||
libreboot, а також кілька змін у системі збірки.
|
||||
|
||||
Ліза Марі Магінніс
|
||||
-------------------
|
||||
|
||||
Ліза - колишній системний адміністратор Free Software Foundation. На перших днях
|
||||
проекту вона давала Лії багато технічних порад. Спочатку вона створила
|
||||
IRC-канал Libreboot, коли Лія не знала, як користуватися
|
||||
IRC, а також передала +F статус засновника для каналу. Як системний
|
||||
адміністратор FSF, роботою Лізи було підтримувати велику частину інфраструктури,
|
||||
яку використовує Libreboot; на той час списки розсилки на веб-сайті Savannah
|
||||
використовувалися проектом Libreboot. Коли Пол Коціалковскі був
|
||||
учасником проекту в 2016 році, вона допомогла йому отримати допомогу від FSF; на той час він був
|
||||
керівником проекту Replicant, який фінансував FSF, і FSF дозволив
|
||||
йому використати частину цього фінансування для його роботи над Libreboot, завдяки Лізи
|
||||
підтримці, коли вона працювала у FSF.
|
||||
|
||||
Ліза також втрутилася, коли Лія Роу пропустила виступ на LibrePlanet 2016. Лія мала
|
||||
виступити з доповіддю про Libreboot, але не з'явилася вчасно. Ліза разом
|
||||
із Патріком Макдермоттом (колишнім розробником Libreboot, який був присутній
|
||||
на тій конференції) виступили замість Лії. Розмова ніколи не була записана, але
|
||||
Фонд вільного програмного забезпечення має ці фотографії цієї розмови на веб-сайті LibrePlanet
|
||||
(жінка з блакитним волоссям - Ліза, а довговолосий хлопець із вусами -
|
||||
Патрік):
|
||||
|
||||
<http://web.archive.org/web/20170319043913/https://media.libreplanet.org/u/libreplanet/m/session-02-c-mws-png-libreplanet-2016-sessions/>
|
||||
|
||||
<http://web.archive.org/web/20170319043915/https://media.libreplanet.org/u/libreplanet/m/session-02-c-wide-png-libreplanet-2016-sessions/>
|
||||
|
||||
Цікавий факт: Патрік також є провідним розробником ProteanOS, проекту вбудованої
|
||||
ОС, схваленого FSF: <http://proteanos.com/> (використовує BusyBox і Linux-libre)
|
||||
|
||||
Лія Роу провела *2* семінари LibrePlanet; один у 2015 році та інший у 2016 році,
|
||||
відвідуючи Бостон, Массачусетс, США в обох випадках для участі в цих конференціях. Ці
|
||||
семінари стосувалися встановлення Libreboot. Люди приходили на обидва семінари, щоб
|
||||
встановити Libreboot на свої комп'ютери. Як системний адміністратор FSF, на той час,
|
||||
Ліза забезпечила всю інфраструктуру та обладнання, яке використовувалося на цих семінарах.
|
||||
Без її допомоги ці майстер-класи були б неможливими.
|
||||
|
||||
Коли материнська плата ASUS KGPE-D16 (серверна плата високого класу) була перенесена на Libreboot,
|
||||
Лія, працюючи з Тімоті Пірсоном (той, хто її переніс),
|
||||
приблизно в середині 2016 року поділилася з Лізою виправленнями, в основному виправленнями raminit, щоб отримати плату, яка працює в офісах FSF. Ця робота
|
||||
зрештою призвела до чудового досягнення:
|
||||
|
||||
Веб-сайти FSF і GNU тепер працюють на, з встановленим Libreboot,
|
||||
заснованих на ASUS KGPE-D16 серверах, на повністю вільному GNU+Linux дистрибутиві. Це
|
||||
означає, що FSF тепер має повну свободу програмного забезпечення для своєї
|
||||
інфраструктури хостингу.
|
||||
|
||||
FSF також надає доступ до цієї інфраструктури для багатьох інших проектів
|
||||
(крім проектів GNU); наприклад, Trisquel використовує D16, наданий FSF
|
||||
для свого сервера розробки, який використовується для створення випусків Trisquel і тестування
|
||||
змін у дистрибутиві Trisquel GNU+Linux. Trisquel - це повністю вільний
|
||||
GNU+Linux дистрибутив, активно просуваний FSF.
|
||||
|
||||
Ліза була сильною прихильницею Libreboot на перших днях проекту,
|
||||
і її внесок був неоціненним. Я, Лія Роу, у боргу перед нею.
|
||||
|
||||
Маркус Мьоллер
|
||||
--------------
|
||||
|
||||
Зробив логотип libreboot.
|
||||
|
||||
Nicholas Chin
|
||||
-------------
|
||||
|
||||
[Ported Dell Latitude E6400 to Libreboot](news/e6400.md).
|
||||
|
||||
Патрік "П. Дж." Макдермотт
|
||||
---------------------------
|
||||
|
||||
Патрік також провів багато досліджень і написав розділ поширених запитань libreboot,
|
||||
пов'язаний із [Intel Management Engine](../faq.md#intelme), а також зробив кілька покращень у
|
||||
системі збірки libreboot. **Колишній супроводжувач проекту
|
||||
libreboot.**
|
||||
|
||||
У 2016 році Лія Роу провела семінар зі встановлення Libreboot на конференції FSF
|
||||
LibrePlanet. Працюючи разом з Лією, Патрік допомагав вести семінар
|
||||
та допомагав установлювати Libreboot на комп'ютери людей.
|
||||
|
||||
Пітер Стюдж
|
||||
-----------
|
||||
|
||||
Допоміг написати [розділ поширених запитань про DMA](../faq.md#hddssd-firmware), та надав
|
||||
загальні поради на перших днях проекту. У той час Пітер був розробником coreboot
|
||||
і головним розробником проекту *libusb* (який flashrom
|
||||
активно використовує).
|
||||
|
||||
Пітер також написав утиліту *bucts*, яка використовується для встановлення біта Top Swap
|
||||
(TS) для керування резервним копіюванням (BUC) на ноутбуках i945, таких як ThinkPad X60/T60, яка є корисною для
|
||||
обхідного шляху для прошивки Libreboot без використання зовнішнього обладнання; на цій машині,
|
||||
з Lenovo BIOS, можна перепрошити все, крім головного завантажувального
|
||||
блоку, але платформи Intel мають 2 завантажувальні блоки, і ви вказуєте, який із них
|
||||
використовувати, встановленням біта TS. Потім ви завантажуєтеся лише з одним прошитим завантажувальним блоком
|
||||
(завантажувальним блоком проекту coreboot на цій машині), а потім скидаєте
|
||||
bucts перед повторною прошивкою ROM, щоб прошити основний завантажувальний блок. Libreboot
|
||||
розміщує копію його роботи, оскільки його веб-сайт, на якому розміщено bucts,
|
||||
більше не відповідає.
|
||||
|
||||
Пол Коціалковський
|
||||
-----------------
|
||||
|
||||
Переніс ноутбуки Chromebook на основі ARM (Rockchip RK3288 SoC) до
|
||||
libreboot. Також один із головних розробників [Replicant](http://www.replicant.us/).
|
||||
|
||||
Пол Менцель
|
||||
-----------
|
||||
|
||||
Дослідив та виправив помилку в coreboot на ThinkPad X60/T60, яку виявляло
|
||||
ядро Linux 3.12 і новіших версій, через яку прискорення 3D не
|
||||
працювало, а відео загалом ставало нестабільним. Проблема полягала в тому, що
|
||||
coreboot під час ініціалізації відеочіпсета Intel, відображав *GTT Stolen Memory* в
|
||||
не тому місці, оскільки код базувався на коді ядра, а в ядрі Linux
|
||||
була така сама помилка. Коли Linux це виправив, він виявив ту саму помилку в coreboot.
|
||||
|
||||
Пол працював над цим із Libreboot,
|
||||
періодично надсилаючи патчі для тестування, доки помилку не було виправлено
|
||||
в coreboot, а потім допоміг ій інтегрувати виправлення в libreboot.
|
||||
|
||||
Стів Шентон
|
||||
-------------
|
||||
|
||||
Стів виконав першу роботу зі зворотньої розробки Intel Flash Descriptor, який використовується
|
||||
на машинах ICH9M, таких як ThinkPad X200. Він створив структуру C, що визначає (використовуючи
|
||||
бітові поля в C) цю область дескриптора. За допомогою деяких хитрих трюків він зміг
|
||||
виявити існування біта в дескрипторі для *вимкнення* Intel ME
|
||||
(management engine) на цих платформах.
|
||||
|
||||
Його початкове підтвердження концепції визначило лише дескриптор, і зробило би це:
|
||||
|
||||
* Читання дескриптора за замовчуванням і регіонів GbE з ROM Lenovo X200 (прошивка
|
||||
за замовчуванням, не coreboot)
|
||||
* Вимкнення ME, встановивши 2 біти в дескрипторі
|
||||
* Вимкнення регіона ME
|
||||
* Переміщення дескриптора+GbE (загалом 12КБ) поруч
|
||||
* Виділення решти флеш-пам'яті для регіону BIOS
|
||||
* На основі цього створено 12КБ регіон дескриптор+область GBE для вставки
|
||||
в образ ROM coreboot.
|
||||
|
||||
У перші дні, до того, як Libreboot підтримував платформи GM45+ICH9M, такі як
|
||||
ThinkPad X200/T400, ви могли використовувати ці машини, але щоб уникнути
|
||||
Intel ME, вам доводилося виконувати прошивку без області дескриптора. У ті часи це працювало нормально,
|
||||
тому що ME обробляв лише TPM та AMT на цих машинах, і система
|
||||
працювала нормально, але Intel Flash Descriptor також обробляє область Intel GbE NVM
|
||||
у флеш-пам'яті, яка використовується для інтерфейсу Intel Gigabit Ethernet.
|
||||
|
||||
Отже, ви або мали Intel ME, або не підтримували ethernet. Стів зрозумів, як
|
||||
вимкнути Intel ME за допомогою 2 бітів перемикання в дескрипторі, а також як видалити область
|
||||
Intel ME з флеш-пам'яті.
|
||||
|
||||
Ґрунтуючись на його дослідженні, я, Лія Роу, працюючи разом зі Стівом, також виконала зворотню розробку
|
||||
області Intel GbE NVM (енергонезалежна пам'ять) у
|
||||
завантажувальній флеш-пам'яті. Цей регіон визначає параметри конфігурації для вбудованої мережевої карти Intel
|
||||
GbE, якщо присутня.
|
||||
|
||||
На основі цього я змогла взяти початкове підтвердження концепції та написати
|
||||
утиліту `ich9gen`, яка генерує Intel Flash Descriptor та регіон GbE NVM,
|
||||
з нуля, без визначення регіону Intel ME. Саме цей інструмент,
|
||||
інструмент `ich9gen`, використовує Libreboot для надання образів ROM для GM45+ICH9M
|
||||
платформ (таких як ThinkPad X200/T400/T500/W500), із повнофункціональним
|
||||
дескриптором та функціональним Gigabit Ethernet, але *без* необхідності мікропрограми Intel
|
||||
Management Engine (ME), що робить ці машини *вільними* (ME
|
||||
повністю вимкнено, коли ви використовуєте образ дескриптора+gbe, створене `ich9gen`).
|
||||
|
||||
З *моїм* інструментом `ich9gen` (інструмент Стіва називався `ich9deblob`), вам більше
|
||||
не потрібен був дамп оригінальної мікропрограми Lenovo BIOS! Я не могла би написати цей інструмент
|
||||
без первинного підтвердження концепції Стіва. Я працювала з ним
|
||||
протягом багатьох місяців. Вся GM45+ICH9M підтримка (X200, T400 і так далі) в
|
||||
Libreboot стала можливою завдяки його роботі у 2014 році.
|
||||
|
||||
Тімоті Пірсон
|
||||
---------------
|
||||
|
||||
Перенес плату ASUS KGPE-D16 до coreboot для компанії Raptor
|
||||
Engineering, генеральним директором якої є Тімоті.
|
||||
Тімоті підтримує цей код у coreboot, допомогаючи проекту,
|
||||
з його інтеграцією з libreboot. Контактні
|
||||
дані цієї людини є на сайті raptor.
|
||||
|
||||
**Підтримку D16 було припинено 19 листопада 2022 року. Ви все ще можете використовувати
|
||||
старіші версії Libreboot, і старіші випуски.**
|
||||
|
||||
Swift Geek
|
||||
----------
|
||||
|
||||
Додав патч для ich9gen для створення дескрипторів розміром 16MiB.
|
||||
|
||||
Після цього Swift Geek повільно почав долучатися, поки не став розробником на повний
|
||||
робочий день. Внески Swift Geek насправді ніколи не були у формі *коду*,
|
||||
але те, що йому не вистачало в коді, він компенсував чудовою підтримкою як для користувачів,
|
||||
так і для інших розробників, допомагаючи іншим дізнатися більше про технології на
|
||||
низькому рівні.
|
||||
|
||||
Коли Swift Geek був учасником проекту, його роль здебільшого полягала в
|
||||
наданні підтримки користувачам (на каналі IRC) і проведенні досліджень. Swift Geek знає
|
||||
багато про апаратне забезпечення. Swift Geek також зробив деяку апстрім розробку GRUB.
|
||||
|
||||
Swift Geek неодноразово надавав технічні поради Лії Роу
|
||||
та допоміг їй покращити її навички паяння, а також навчив її
|
||||
деяким навичкам ремонту, до того моменту, коли вона тепер може виправляти більшість несправностей
|
||||
на материнських платах ThinkPad (під час перегляду схем та бордв'ю).
|
||||
|
||||
Swiftgeek залишив проект у березні 2021 року. Я, Лія Роу, бажаю його всього найкращого в його
|
||||
починаннях і дуже вдячна за його численні внески протягом багатьох
|
||||
років.
|
||||
|
||||
vitali64
|
||||
--------
|
||||
|
||||
Додав підтримку cstate 3 на macbook21, що забезпечує тривалий термін служби батареї
|
||||
та нижчу температуру процесора під час простою. vitali64 на irc
|
|
@ -8,8 +8,8 @@ Guide last updated on 16 November 2022.
|
|||
NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM
|
||||
chromebooks. For ARM targets, you should refer to u-boot documentation.
|
||||
|
||||
libreboot is capable of booting many BSD systems. This section mostly documents
|
||||
the peculiarities of libreboot as it pertains to BSD; you can otherwise refer to
|
||||
nonGeNUine Boot is capable of booting many BSD systems. This section mostly documents
|
||||
the peculiarities of nonGeNUine Boot 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
|
||||
|
@ -22,12 +22,12 @@ you read this article.
|
|||
Boot BSD, using SeaBIOS
|
||||
=======================
|
||||
|
||||
On x86 platforms, Libreboot provides the choice of GRUB and/or
|
||||
On x86 platforms, nonGeNUine Boot provides the choice of GRUB and/or
|
||||
SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is
|
||||
poorly maintained and unreliable for this use-case scenario; on BIOS systems,
|
||||
GRUB can chainload BSD bootloaders, but on bare metal (as coreboot payload),
|
||||
GRUB can only chainload other coreboot payloads or boot Linux/BSD kernels
|
||||
directly (but direct booting is only really reliable for Linux, in GRUB).
|
||||
GRUB can only chainload other coreboot payloads or boot GNU+Linux/BSD kernels
|
||||
directly (but direct booting is only really reliable for GNU+Linux, in GRUB).
|
||||
|
||||
It is recommended that you boot in text mode, with SeaBIOS. You can literally
|
||||
just follow the official installation guides for your BSD system, whether it
|
||||
|
@ -42,7 +42,7 @@ OpenBSD and corebootfb
|
|||
|
||||
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
|
||||
Libreboot ROM images, this would be SeaBIOS images with `corebootfb` in the
|
||||
nonGeNUine Boot ROM images, this would be SeaBIOS images with `corebootfb` in the
|
||||
file name.
|
||||
|
||||
Make sure to select MBR-style partitioning on the installer, and it will
|
||||
|
@ -55,12 +55,12 @@ FreeBSD and corebootfb
|
|||
----------------------
|
||||
|
||||
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 (gbmk ROM images with `txtmode` in the file name, not `corebootfb`).
|
||||
|
||||
Warnings for X11 users
|
||||
----------------------
|
||||
|
||||
One important peculiarity of most libreboot and libreboot systems is: VGA mode
|
||||
One important peculiarity of most nonGeNUine Boot systems is: VGA mode
|
||||
support exists, if booting with corebootfb (coreboot's own framebuffer) and
|
||||
the SeaVGABIOS option ROM used in the SeaBIOS payload; however, the ability
|
||||
to switch modes is not present, which means you can't switch to text mode
|
||||
|
@ -79,7 +79,7 @@ on most systems, but not on most coreboot systems with native video
|
|||
initialisation used, due to the quirks already described. If you see any
|
||||
documentation (in BSD land) pertaining to VESA modes, ignore it entirely;
|
||||
unless you're using the proprietary VGA ROM for your device, it won't work,
|
||||
and Libreboot doesn't distribute these (instead, coreboot's own video
|
||||
and nonGeNUine Boot doesn't distribute these (instead, coreboot's own video
|
||||
initialisation is used where possible, or a headless SeaBIOS payload setup
|
||||
is provided, where you would either run it headless or install a graphics
|
||||
card).
|
||||
|
@ -91,7 +91,7 @@ boot in text mode, you can't set VESA modes from BSD. However, you're in luck:
|
|||
At least OpenBSD and FreeBSD (possibly others) all have excellent KMS
|
||||
support nowadays; short for `Kernel Mode Setting`. This avoids the inefficiency
|
||||
of BIOS/UEFI methods, by having the kernel set modes directly. It is based on
|
||||
KMS drivers that the BSD projects ported over from the Linux kernel. With this,
|
||||
KMS drivers that the BSD projects ported over from the GNU+Linux kernel. With this,
|
||||
you can use X11/Wayland in FreeBSD (and just X11 in OpenBSD, for now).
|
||||
|
||||
For example: on FreeBSD, you can install `graphics/drm-kmod` as a package
|
||||
|
@ -117,7 +117,7 @@ ALWAYS READ THE MANUAL
|
|||
----------------------
|
||||
|
||||
All of the BSDs have *excellent* documentation; it's one of the defining
|
||||
characteristics, versus typical Linux distros.
|
||||
characteristics, versus typical GNU+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
|
||||
|
@ -131,27 +131,27 @@ 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
|
||||
present in older nonGeNUine Boot 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
|
||||
info is written on the [nonGeNUine Boot installation guide](../install/). ROM
|
||||
images with `seabios_grubfirst` in the filename will NOT be included in
|
||||
future Libreboot releases.
|
||||
future nonGeNUine Boot 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
|
||||
in nonGeNUine Boot 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.
|
||||
More robust ways to provide UEFI services in nonGeNUine Boot are to be investigated.
|
||||
Tianocore integration will not be provided officially, in any current or future
|
||||
releases of Libreboot.
|
||||
releases of nonGeNUine Boot.
|
||||
|
||||
Desktop users
|
||||
-------------
|
||||
|
||||
Desktop users on Libreboot should just install a graphics card,
|
||||
Desktop users on nonGeNUine Boot should just install a graphics card,
|
||||
and again boot with SeaBIOS in text mode; however, when you do this,
|
||||
SeaBIOS will execute the VGA option ROM on the card which will provide
|
||||
early video initialisation instead of coreboot's initialisation, and that
|
||||
|
@ -164,7 +164,7 @@ The reason to use KMS is because it's more efficient. The INT10H service can
|
|||
only be called in Real Mode or Virtual 8086 mode; v8086 is unavailable in
|
||||
long mode (x86\_64) and switching into Real Mode just to set VGA modes is
|
||||
extremely expensive computationally speaking. This is why modern kernels
|
||||
(Linux and BSD one) do mode setting themselves.
|
||||
(GNU+Linux and BSD one) do mode setting themselves.
|
||||
|
||||
You can learn more about INT10H text/VGA modes here:
|
||||
|
||||
|
|
|
@ -3,25 +3,25 @@ title: Build from source
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
libreboot's build system is named `lbmk`, short for `Libreboot Make`, and this
|
||||
nonGeNUine Boot's build system is named `gbmk`, short for **G**nu**B**oot**M**a**K**e, and this
|
||||
document describes how to use it. With this guide, you can know how to compile
|
||||
libreboot from the available source code.
|
||||
This version, if hosted live on libreboot.org, assumes that you are using
|
||||
the `lbmk` git repository, which
|
||||
nonGeNUine Boot from the available source code.
|
||||
This version, if hosted live on the website, assumes that you are using
|
||||
the `gbmk` git repository, which
|
||||
you can download using the instructions on [the code review page](../../git.md).
|
||||
|
||||
If you're using a release archive of libreboot, please refer to the
|
||||
documentation included with *that* release. libreboot releases are only intended
|
||||
If you're using a release archive of nonGeNUine Boot, please refer to the
|
||||
documentation included with *that* release. nonGeNUine Boot releases are only intended
|
||||
as *snapshots*, not for development. For proper development, you should always
|
||||
be working directly in the libreboot git repository.
|
||||
be working directly in the nonGeNUine Boot git repository.
|
||||
|
||||
The following document describes how `lbmk` works, and how you can make changes
|
||||
to it: [libreboot maintenance manual](../maintain/)
|
||||
The following document describes how `gbmk` works, and how you can make changes
|
||||
to it: [gbmk maintenance manual](../maintain/)
|
||||
|
||||
Git
|
||||
===
|
||||
|
||||
Libreboot's build system uses Git, extensively. You should perform the steps
|
||||
nonGeNUine Boot's build system uses Git, extensively. You should perform the steps
|
||||
below, *even if you're using a release archive*.
|
||||
|
||||
Before you use the build system, please know: the build system itself uses
|
||||
|
@ -41,28 +41,28 @@ You may also want to follow more of the steps here:
|
|||
Python
|
||||
======
|
||||
|
||||
Python2 is unused by lbmk or anything that it pulls down as modules. You
|
||||
Python2 is unused by gbmk or anything that it pulls down as modules. You
|
||||
should ensure that the `python` command runs python 3, on your system.
|
||||
|
||||
Make
|
||||
========
|
||||
|
||||
libreboot Make includes a file called `Makefile`. You can still use
|
||||
the `lbmk` build system directly, or you can use Make. The `Makefile`
|
||||
simply runs `lbmk` commands. However, using `lbmk` directly will offer you
|
||||
**G**nu**B**oot**M**a**K**e (gbmk) includes a file called `Makefile`. You can still use
|
||||
the `gbmk` build system directly, or you can use Make. The `Makefile`
|
||||
simply runs `gbmk` commands. However, using `gbmk` directly will offer you
|
||||
much more flexibility; for example, the Makefile currently cannot build single
|
||||
ROM images (it just builds all of them, for all boards).
|
||||
|
||||
You must ensure that all build dependencies are installed. If you're running
|
||||
Ubuntu or similar distribution (Debian, Arch, etc) you can do this:
|
||||
Trisquel 11, you can run this:
|
||||
|
||||
sudo make install-dependencies-ubuntu
|
||||
|
||||
One exists specifically for Debian:
|
||||
One exists specifically for Debian (may also work for trisquel):
|
||||
|
||||
sudo make install-dependencies-debian
|
||||
|
||||
Another exists for Arch:
|
||||
Another exists for Arch (may also work for parabola):
|
||||
|
||||
sudo make install-dependencies-arch
|
||||
|
||||
|
@ -71,7 +71,7 @@ Now, simply build the coreboot images like so:
|
|||
make
|
||||
|
||||
This single command will build ROM images for *every* board integrated in
|
||||
libreboot. If you only wish to build a limited set, you can use `lbmk` directly:
|
||||
nonGeNUine Boot. If you only wish to build a limited set, you can use `gbmk` directly:
|
||||
|
||||
./build boot roms x200_8mb
|
||||
|
||||
|
@ -82,7 +82,7 @@ You can specify more than one argument:
|
|||
ROM images appear under the newly created `bin/` directory in the build system.
|
||||
|
||||
For other commands, simply read the `Makefile` in your favourite text editor.
|
||||
The `Makefile` is simple, because it merely runs `lbmk` commands, so it's very
|
||||
The `Makefile` is simple, because it merely runs `gbmk` commands, so it's very
|
||||
easy to know what commands are available by simply reading it.
|
||||
|
||||
Standard `clean` command available (cleans all modules except `crossgcc`):
|
||||
|
@ -103,14 +103,14 @@ Build without using Make
|
|||
The `Makefile` is included just for *compatibility*, so that someone who
|
||||
instictively types `make` will get a result.
|
||||
|
||||
Actual development/testing is always done using `lbmk` directly, and this
|
||||
Actual development/testing is always done using `gbmk` directly, and this
|
||||
includes when building from source. Here are some instructions to get you
|
||||
started:
|
||||
|
||||
First, install build dependencies
|
||||
---------------------------------
|
||||
|
||||
libreboot includes a script that automatically installs apt-get dependencies
|
||||
nonGeNUine Boot includes a script that automatically installs apt-get dependencies
|
||||
in Ubuntu 20.04:
|
||||
|
||||
sudo ./build dependencies ubuntu2004
|
||||
|
@ -123,11 +123,14 @@ Separate scripts also exist:
|
|||
|
||||
sudo ./build dependencies void
|
||||
|
||||
Technically, any Linux distribution can be used to build libreboot.
|
||||
Technically, any GNU+Linux distribution can be used to build nonGeNUine Boot.
|
||||
However, you will have to write your own script for installing build
|
||||
dependencies.
|
||||
|
||||
libreboot Make (lbmk) automatically runs all necessary commands; for
|
||||
**G**nu**B**oot**M**a**K**e (gbmk)
|
||||
-------------------
|
||||
|
||||
**G**nu**B**oot**M**a**K**e (gbmk) automatically runs all necessary commands; for
|
||||
example, `./build payload grub` will automatically run `./build module grub`
|
||||
if the required utilities for GRUB are not built, to produce payloads.
|
||||
|
||||
|
@ -151,7 +154,7 @@ If you wish to build payloads, you can also do that. For example:
|
|||
Previous steps will be performed automatically. However, you can *still* run
|
||||
individual parts of the build system manually, if you choose. This may be
|
||||
beneficial when you're making changes, and you wish to test a specific part of
|
||||
lbmk.
|
||||
gbmk.
|
||||
|
||||
Therefore, if you only want to build ROM images, just do the above. Otherwise,
|
||||
please continue reading!
|
||||
|
@ -161,8 +164,8 @@ Second, download all of the required software components
|
|||
|
||||
If you didn't simply run `./build boot roms` (with or without extra
|
||||
arguments), you can still perform the rest of the build process manually. Read
|
||||
on! You can read about all available scripts in `lbmk` by reading
|
||||
the [libreboot maintenance manual](../maintain/); lbmk is designed to be modular
|
||||
on! You can read about all available scripts in `gbmk` by reading
|
||||
the [gbmk maintenance manual](../maintain/); gbmk is designed to be modular
|
||||
which means that each script *can* be used on its own (if that's not true, for
|
||||
any script, it's a bug that should be fixed).
|
||||
|
||||
|
@ -170,7 +173,7 @@ It's as simple as that:
|
|||
|
||||
./download all
|
||||
|
||||
The above command downloads all modules defined in the libreboot build system.
|
||||
The above command downloads all modules defined in the nonGeNUine Boot build system.
|
||||
However, you can download modules individually.
|
||||
|
||||
This command shows you the list of available modules:
|
||||
|
@ -200,7 +203,7 @@ Again, very simple:
|
|||
|
||||
./build module all
|
||||
|
||||
This builds every module defined in the libreboot build system, but you can
|
||||
This builds every module defined in the nonGeNUine Boot build system, but you can
|
||||
build modules individually.
|
||||
|
||||
The following command lists available modules:
|
||||
|
@ -247,7 +250,7 @@ Example of building specific payloads:
|
|||
|
||||
./build payload seabios
|
||||
|
||||
Each board has its own U-Boot build configuration in `lbmk` under
|
||||
Each board has its own U-Boot build configuration in `gbmk` under
|
||||
`resources/u-boot`. To build U-Boot payloads, you need to specify the
|
||||
target board and maybe a cross compiler for its CPU architecture. These
|
||||
are handled automatically when building ROM images, but for example:
|
||||
|
@ -267,7 +270,7 @@ Run this command:
|
|||
|
||||
./build boot roms
|
||||
|
||||
Each board has its own configuration in `lbmk` under `resources/coreboot/`
|
||||
Each board has its own configuration in `gbmk` under `resources/coreboot/`
|
||||
which specifies which payloads are supported.
|
||||
|
||||
By default, all ROM images are built, for all boards. If you wish to build just
|
||||
|
|
|
@ -3,25 +3,25 @@ title: Побудова з джерельного коду
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Система побудови libreboot, називається `lbmk`, скорочення від `Libreboot Make`, і цей
|
||||
Система побудови nonGeNUine Boot, називається `gbmk`, скорочення від **G**nu**B**oot**M**a**K**e, і цей
|
||||
документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати
|
||||
libreboot з доступного джерельного коду.
|
||||
Ця версія, якщо розміщена наживо на libreboot.org, передбачає, що ви використовуєте
|
||||
сховище git `lbmk`, яке
|
||||
nonGeNUine Boot з доступного джерельного коду.
|
||||
Ця версія, якщо розміщена наживо на nonGeNUine Boot, передбачає, що ви використовуєте
|
||||
сховище git `gbmk`, яке
|
||||
ви можете завантажити, використовуючи інструкції на [сторінці огляду коду](../../git.uk.md).
|
||||
|
||||
Якщо ви використовуєте архів випуску libreboot, будь ласка, зверніться до
|
||||
документації, включеної до *того* випуску. Випуски libreboot розраховані тільки,
|
||||
Якщо ви використовуєте архів випуску nonGeNUine Boot, будь ласка, зверніться до
|
||||
документації, включеної до *того* випуску. Випуски nonGeNUine Boot розраховані тільки,
|
||||
як *знімки*, не для розробки. Для належної розробки ви маєте завжди
|
||||
працювати безпосередньо в сховищі git libreboot.
|
||||
працювати безпосередньо в сховищі git nonGeNUine Boot.
|
||||
|
||||
Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни
|
||||
до нього: [керівництво обслуговування libreboot](../maintain/)
|
||||
Наступний документ описує те, як працює `gbmk`, і як ви можете робити зміни
|
||||
до нього: [керівництво обслуговування nonGeNUine Boot](../maintain/)
|
||||
|
||||
Git
|
||||
===
|
||||
|
||||
Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки
|
||||
Система побудови nonGeNUine Boot використовує Git, обширно. Ви маєте виконати кроки
|
||||
знизу, *навіть, якщо ви використовуєте архів випуску*.
|
||||
|
||||
Перед тим, як вам використовувати систему побудови, будь ласка, знайте: система побудови, сама по собі,
|
||||
|
@ -41,28 +41,28 @@ Git
|
|||
Python
|
||||
======
|
||||
|
||||
Python2 не використовується lbmk або будь-чим, що завантажується в якості модулів. Ви
|
||||
Python2 не використовується gbmk або будь-чим, що завантажується в якості модулів. Ви
|
||||
маєте переконатись, що команда `python` виконує python 3 на вашій системі.
|
||||
|
||||
Make
|
||||
========
|
||||
|
||||
libreboot Make включає файл, який названо `Makefile`. Ви досі можете
|
||||
використовувати систему побудови `lbmk` безпосередньо, або ви можете використовувати Make. `Makefile`
|
||||
просто виконує команди `lbmk`. Однак, використання `lbmk` безпосередньо запропонує вам
|
||||
**G**nu**B**oot**M**a**K**e включає файл, який названо `Makefile`. Ви досі можете
|
||||
використовувати систему побудови `gbmk` безпосередньо, або ви можете використовувати Make. `Makefile`
|
||||
просто виконує команди `gbmk`. Однак, використання `gbmk` безпосередньо запропонує вам
|
||||
набагато більше гнучкості; наприклад, Makefile наразі не може побудувати один
|
||||
образ ROM (він лише будує всі з них, для всіх плат).
|
||||
|
||||
Ви мусите переконатись, що всі залежності побудови встановлено. Якщо ви використовуєте
|
||||
Ubuntu або подібний дистрибутив (Debian, Arch і тому подібні), можете виконати це:
|
||||
Trisquel або подібний дистрибутив (Debian), можете виконати це:
|
||||
|
||||
sudo make install-dependencies-ubuntu
|
||||
|
||||
Існує конкретно для Debian:
|
||||
Існує конкретно для Debian/Trisquel:
|
||||
|
||||
sudo make install-dependencies-debian
|
||||
|
||||
Інша існує для Arch:
|
||||
Інша існує для Arch/Parabola:
|
||||
|
||||
sudo make install-dependencies-arch
|
||||
|
||||
|
@ -71,7 +71,7 @@ Ubuntu або подібний дистрибутив (Debian, Arch і тому
|
|||
make
|
||||
|
||||
Ця єдина команда побудує образи ROM для *кожної* плати, інтегрованої до
|
||||
libreboot. Якщо ви тільки хочете побудувати обмежену вибірку, можете використовувати `lbmk` безпосередньо:
|
||||
nonGeNUine Boot. Якщо ви тільки хочете побудувати обмежену вибірку, можете використовувати `gbmk` безпосередньо:
|
||||
|
||||
./build boot roms x200_8mb
|
||||
|
||||
|
@ -82,7 +82,7 @@ libreboot. Якщо ви тільки хочете побудувати обме
|
|||
Образи ROM з'явяться під щойно створеною директорією `bin/` в системі побудови.
|
||||
|
||||
Для інших команд просто прочитайте `Makefile` в своєму улюбленому текстовому редакторі.
|
||||
`Makefile` є простим, тому що він виконує виключно команди `lbmk`, таким чином дуже
|
||||
`Makefile` є простим, тому що він виконує виключно команди `gbmk`, таким чином дуже
|
||||
просто знати те, які команди є в доступності, просто читаючи його.
|
||||
|
||||
Стандартна команда `clean` доступна (чистить всі модулі, окрім `crossgcc`):
|
||||
|
@ -103,14 +103,14 @@ libreboot. Якщо ви тільки хочете побудувати обме
|
|||
`Makefile` включено лише для *сумісності*, щоб якщо хтось
|
||||
інстиктивно пише `make`, то було отримано результат.
|
||||
|
||||
Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також
|
||||
Фактична розробка/тестування завжди виконується безпосередньо за допомогою `gbmk`, і це також
|
||||
стосується збирання з джерельного коду. Ось кілька інструкцій, щоб
|
||||
почати:
|
||||
|
||||
Спочатку встановіть залежності побудови
|
||||
---------------------------------
|
||||
|
||||
libreboot включає сценарій, який автоматично встановлює apt-get залежності
|
||||
nonGeNUine Boot включає сценарій, який автоматично встановлює apt-get залежності
|
||||
в Ubuntu 20.04:
|
||||
|
||||
sudo ./build dependencies ubuntu2004
|
||||
|
@ -123,11 +123,11 @@ libreboot включає сценарій, який автоматично вс
|
|||
|
||||
sudo ./build dependencies void
|
||||
|
||||
Технічно, будь-який дистрибутив Linux може бути використано для побудови libreboot.
|
||||
Технічно, будь-який дистрибутив GNU+Linux може бути використано для побудови nonGeNUine Boot.
|
||||
Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей
|
||||
побудови.
|
||||
|
||||
libreboot Make (lbmk) автоматично виконує всі необхідні команди; наприклад,
|
||||
**G**nu**B**oot**M**a**K**e (gbmk) автоматично виконує всі необхідні команди; наприклад,
|
||||
`./build payload grub` автоматично виконає `./build module grub`,
|
||||
якщо затребувані утиліти для GRUB не збудовано, для виготовлення корисних навантажень.
|
||||
|
||||
|
@ -151,7 +151,7 @@ libreboot Make (lbmk) автоматично виконує всі необхі
|
|||
Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати
|
||||
окремі частини системи побудови власноруч, якщо виберете. Це може бути
|
||||
вигідно, коли ви робите зміни, та бажаєте протестувати конкретну частину
|
||||
lbmk.
|
||||
gbmk.
|
||||
|
||||
Отже, якщо ви лише хочете побудувати образи ROM, просто зробіть наведене вище. В іншому випадку,
|
||||
будь ласка, продовжіть читати!
|
||||
|
@ -161,8 +161,8 @@ lbmk.
|
|||
|
||||
Якщо ви не виконали просто `./build boot roms` (з або без надлишкових
|
||||
аргументів), ви все одно можете виконати залишок процесу побудови власноруч. Читайте
|
||||
далі! Ви можете прочитати про всі доступні сценарії в `lbmk`, читаючи
|
||||
[керівництво обслуговування libreboot](../maintain/); lbmk розроблено бути модулярним,
|
||||
далі! Ви можете прочитати про всі доступні сценарії в `gbmk`, читаючи
|
||||
[керівництво обслуговування nonGeNUine Boot](../maintain/); gbmk розроблено бути модулярним,
|
||||
що означає те, що кожен сценарій *може* бути використано самостійно (якщо це не є правдою, для
|
||||
будь-якого сценарія, це є помилкою, яка має бути виправлена).
|
||||
|
||||
|
@ -170,7 +170,7 @@ lbmk.
|
|||
|
||||
./download all
|
||||
|
||||
Вищезазначена команда завантажує всі модулі, які означено в системі побудови libreboot.
|
||||
Вищезазначена команда завантажує всі модулі, які означено в системі побудови nonGeNUine Boot.
|
||||
Однак, ви можете завантажити модулі індивідуально.
|
||||
|
||||
Ця команда показує вам список доступних модулів:
|
||||
|
@ -200,7 +200,7 @@ lbmk.
|
|||
|
||||
./build module all
|
||||
|
||||
Це будує кожен модуль, означений в системі побудови libreboot, але ви можете
|
||||
Це будує кожен модуль, означений в системі побудови nonGeNUine Boot, але ви можете
|
||||
будувати модулі індивідуально.
|
||||
|
||||
Наступна команда перелічує доступні модулі:
|
||||
|
@ -247,7 +247,7 @@ lbmk.
|
|||
|
||||
./build payload seabios
|
||||
|
||||
Кожна плата має свою власну конфігурацію побудови U-Boot в `lbmk` під
|
||||
Кожна плата має свою власну конфігурацію побудови U-Boot в `gbmk` під
|
||||
`resources/u-boot`. Для побудови корисних навантажень U-Boot, вам потрібно вказати
|
||||
цільову плату і мабуть крос-компілятор для її архітектури ЦП. Вони
|
||||
керуються автоматично під час побудови образів ROM, але для прикладу:
|
||||
|
@ -267,7 +267,7 @@ lbmk.
|
|||
|
||||
./build boot roms
|
||||
|
||||
Кожна плата має свою власну конфігурацію в `lbmk` під `resources/coreboot/`,
|
||||
Кожна плата має свою власну конфігурацію в `gbmk` під `resources/coreboot/`,
|
||||
яка вказує, які корисні навантаження підтримуються.
|
||||
|
||||
За замовчуванням, всі образи ROM будуються, для всіх плат. Якщо ви бажаєте побудувати лише
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Fully Encrypted Boot and Root Partitions with Libreboot
|
||||
# Fully Encrypted Boot and Root Partitions with nonGeNUine Boot
|
||||
|
||||
The following guide will explain how to create:
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Installing Linux
|
||||
title: Installing GNU+Linux
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
|
@ -9,17 +9,17 @@ This guide assumes that you are using the GRUB bootloader directly.
|
|||
If you're using SeaBIOS, it's quite intuitive and works similarly to other BIOS
|
||||
software; refer to the documentation on <https://seabios.org/SeaBIOS>.
|
||||
|
||||
This guide explains how to prepare a bootable USB for libreboot systems that
|
||||
can be used to install several Linux distributions. For this guide, you
|
||||
This guide explains how to prepare a bootable USB for nonGeNUine Boot systems that
|
||||
can be used to install several GNU+Linux distributions. For this guide, you
|
||||
will only need a USB flash drive and the `dd` utility (it's installed into all
|
||||
Linux distributions, by default).
|
||||
GNU+Linux distributions, by default).
|
||||
|
||||
These instructions are intended to be generic, applicable to just about any
|
||||
Linux distribution.
|
||||
GNU+Linux distribution.
|
||||
|
||||
## Prepare the USB Drive in Linux
|
||||
If you downloaded your ISO while on an existing Linux system, here is how
|
||||
to create the bootable Linux USB drive:
|
||||
## Prepare the USB Drive in GNU+Linux
|
||||
If you downloaded your ISO while on an existing GNU+Linux system, here is how
|
||||
to create the bootable GNU+Linux USB drive:
|
||||
|
||||
Connect the USB drive. Check `lsblk`, to confirm its device name
|
||||
(e.g., **/dev/sdX**):
|
||||
|
@ -32,7 +32,7 @@ it's not mounted:
|
|||
sudo umount /dev/sdb
|
||||
|
||||
Overwrite the drive, writing your distro ISO to it with `dd`. For example, if
|
||||
we are installing *Foobarbaz* Linux, and it's located in our Downloads
|
||||
we are installing *Foobarbaz* GNU+Linux, and it's located in our Downloads
|
||||
folder, this is the command we would run:
|
||||
|
||||
sudo dd if=~/Downloads/foobarbaz.iso of=/dev/sdb bs=8M; sync
|
||||
|
@ -44,17 +44,17 @@ That's it! You should now be able to boot the installer from your USB drive
|
|||
[This page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/)
|
||||
on the NetBSD website shows how to create a NetBSD bootable USB drive, from
|
||||
within NetBSD itself. You should the `dd` method documented there. This will
|
||||
work with any Linux ISO image.
|
||||
work with any GNU+Linux ISO image.
|
||||
|
||||
## Prepare the USB drive in FreeBSD
|
||||
[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on the
|
||||
FreeBSD website shows how to create a bootable USB drive for installing
|
||||
FreeBSD. Use the `dd` method documented. This will work with any Linux ISO
|
||||
FreeBSD. Use the `dd` method documented. This will work with any GNU+Linux ISO
|
||||
image.
|
||||
|
||||
## Prepare the USB drive in LibertyBSD or OpenBSD
|
||||
If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is how to
|
||||
create the bootable Linux USB drive:
|
||||
create the bootable GNU+Linux USB drive:
|
||||
|
||||
Connect the USB drive. Run `lsblk` to determine which drive it is:
|
||||
|
||||
|
@ -109,7 +109,7 @@ menu, converted from the usual ISOLINUX menu provided by that distro.
|
|||
|
||||
## Booting ISOLINUX Images (Manual Method)
|
||||
These are generic instructions. They may or may not be correct for your
|
||||
distribution. You must adapt them appropriately, for whatever Linux
|
||||
distribution. You must adapt them appropriately, for whatever GNU+Linux
|
||||
distribution it is that you are trying to install.
|
||||
|
||||
If the `ISOLINUX parser` or `Search for GRUB configuration` options won't work,
|
||||
|
@ -158,11 +158,11 @@ to distro. If you did all of that correctly, then it should now be booting your
|
|||
USB drive in the way that you specified.
|
||||
|
||||
## Troubleshooting
|
||||
Most of these issues occur when using libreboot with coreboot's `text-mode`
|
||||
Most of these issues occur when using nonGeNUine Boot with coreboot's `text-mode`
|
||||
with libgfxinit for video initialization. This mode is useful for text mode
|
||||
payloads, like `MemTest86+`, which expect `text-mode`, but for Linux
|
||||
payloads, like `MemTest86+`, which expect `text-mode`, but for GNU+Linux
|
||||
distributions it can be problematic when they are trying to switch to a
|
||||
framebuffer, because no mode switching support is present (Linux/BSD kernels
|
||||
framebuffer, because no mode switching support is present (GNU+Linux/BSD kernels
|
||||
do Kernel Mode Setting, so they are able to initialize a frame buffer in bare
|
||||
metal regardless of whatever coreboot is doing).
|
||||
|
|
@ -12,10 +12,10 @@ on *bare metal* as a native coreboot payload and does *not* use BIOS or UEFI
|
|||
services (but it *can* load and execute SeaBIOS, in addition to any other
|
||||
coreboot payload, by chainloading it).
|
||||
|
||||
In most circumstances, this guide will not benefit you. libreboot's default
|
||||
In most circumstances, this guide will not benefit you. nonGeNUine Boot's default
|
||||
GRUB configuration file contains scripting logic within it that intelligently
|
||||
searches for GRUB partitions installed onto a partition on your SSD, HDD or
|
||||
USB drive installed on your computer. If such a file is found, libreboot's
|
||||
USB drive installed on your computer. If such a file is found, nonGeNUine Boot's
|
||||
default GRUB configuration is configured to switch automatically to that
|
||||
configuration. While not perfect, the logic *does* work with most
|
||||
configurations.
|
||||
|
@ -30,31 +30,31 @@ a known state.
|
|||
Compile flashrom and cbfstool
|
||||
=============================
|
||||
|
||||
libreboot does not currently distribute utilities pre-compiled. It only
|
||||
nonGeNUine Boot does not currently distribute utilities pre-compiled. It only
|
||||
provides ROM images pre-compiled, where feasible. Therefore, you have to build
|
||||
the utilities from source.
|
||||
|
||||
As for the ROM, there are mainly three methods for obtaining a libreboot ROM
|
||||
As for the ROM, there are mainly three methods for obtaining a nonGeNUine Boot ROM
|
||||
image:
|
||||
|
||||
1. Dump the contents of the the main *boot flash* on your system, which already
|
||||
has libreboot installed (with GRUB as the default payload). Extract the
|
||||
has nonGeNUine Boot installed (with GRUB as the default payload). Extract the
|
||||
GRUB configuration from *that* ROM image.
|
||||
2. Extract it from a libreboot ROM image supplied by the libreboot project, on
|
||||
the libreboot website or mirrors of the libreboot website.
|
||||
3. Build the ROM yourself, using the libreboot build system. Instructions for
|
||||
2. Extract it from a nonGeNUine Boot ROM image supplied by the nonGeNUine Boot project, on
|
||||
the nonGeNUine Boot website or mirrors of the nonGeNUine Boot website.
|
||||
3. Build the ROM yourself, using the nonGeNUine Boot build system. Instructions for
|
||||
how to do this are covered in the following article:
|
||||
[How to build libreboot from source](../build/)
|
||||
[How to build nonGeNUine Boot from source](../build/)
|
||||
|
||||
In either case, you will use the `cbfstool` supplied in the libreboot build
|
||||
In either case, you will use the `cbfstool` supplied in the nonGeNUine Boot build
|
||||
system.
|
||||
This can be found under `coreboot/*/util/cbfstool/` as source code,
|
||||
where `*` can be any coreboot source code directory for a given mainboard.
|
||||
The directory named `default` should suffice.
|
||||
|
||||
Install the build dependencies. For Ubuntu 20.04 and similar, you can run
|
||||
the following command in the libreboot build system, from the root directory
|
||||
of the libreboot Git repository.
|
||||
the following command in the nonGeNUine Boot build system, from the root directory
|
||||
of the nonGeNUine Boot Git repository.
|
||||
|
||||
./build dependencies ubuntu2004
|
||||
|
||||
|
@ -73,10 +73,10 @@ For example: `coreboot/default/util/cbfstool/cbfstool`
|
|||
|
||||
The `cbfstool` utility is what you shall use. It is used to manipulate CBFS
|
||||
(coreboot file system) which is a file system contained within the coreboot
|
||||
ROM image; as a *coreboot distribution*, libreboot inherits this technology.
|
||||
ROM image; as a *coreboot distribution*, nonGeNUine Boot inherits this technology.
|
||||
|
||||
You will also want to build `flashrom` which libreboot recommends for reading
|
||||
from and/or writing to the boot flash. In the libreboot build system, you can
|
||||
You will also want to build `flashrom` which nonGeNUine Boot recommends for reading
|
||||
from and/or writing to the boot flash. In the nonGeNUine Boot build system, you can
|
||||
build it by running this command:
|
||||
|
||||
./build module flashrom
|
||||
|
@ -87,10 +87,10 @@ this.
|
|||
Dump the boot flash
|
||||
===================
|
||||
|
||||
If you wish to modify your *existing* libreboot ROM, which was installed on
|
||||
If you wish to modify your *existing* nonGeNUine Boot ROM, which was installed on
|
||||
your computer, you can use `flashrom` to acquire it.
|
||||
|
||||
Simply run the following, after using libreboot's build system to compile
|
||||
Simply run the following, after using nonGeNUine Boot's build system to compile
|
||||
flashrom:
|
||||
|
||||
sudo ./flashrom/flashrom -p internal -r dump.bin
|
||||
|
@ -107,7 +107,7 @@ flashed, versus the new ROM image.
|
|||
|
||||
The `internal` option assumes that internal read/write is possible; this is
|
||||
when you read from and/or write to the boot flash from an operating systems
|
||||
(usually Linux) that is *running on* the target system.
|
||||
(usually GNU+Linux) that is *running on* the target system.
|
||||
|
||||
In other cases, you may need to connect an SPI programmer externally (with the
|
||||
machine powered down) and read the contents of the boot flash.
|
||||
|
@ -117,7 +117,7 @@ machine powered down) and read the contents of the boot flash.
|
|||
Extract grub.cfg
|
||||
================
|
||||
|
||||
libreboot images that use the GRUB bootloader will have *two* configuration
|
||||
nonGeNUine Boot images that use the GRUB bootloader will have *two* configuration
|
||||
files in CBFS:
|
||||
|
||||
* `grub.cfg`
|
||||
|
@ -130,7 +130,7 @@ When that it done, copy the changes over to `grub.cfg
|
|||
|
||||
You can use the following commands to modify the contents of CBFS, where
|
||||
GRUB's configuration file is concerned (dump.bin is the ROM that you dumped,
|
||||
or it could refer to the libreboot ROM image that you compiled or otherwise
|
||||
or it could refer to the nonGeNUine Boot ROM image that you compiled or otherwise
|
||||
acquired).
|
||||
|
||||
Show the contents of CBFS, in your ROM:
|
||||
|
@ -160,7 +160,7 @@ Add your modified `grub.cfg` (substitute with `grubtest.cfg` as desired):
|
|||
Flash the modified ROM image
|
||||
============================
|
||||
|
||||
Your modified `dump.bin` or other modified libreboot ROM can then be re-flashed
|
||||
Your modified `dump.bin` or other modified nonGeNUine Boot ROM can then be re-flashed
|
||||
using:
|
||||
|
||||
sudo ./flashrom -p internal -w dump.bin
|
|
@ -5,21 +5,21 @@ x-toc-enable: true
|
|||
|
||||
This article only applies to those people who use the GRUB bootloader as
|
||||
their default payload (options besides GRUB are also available in
|
||||
libreboot). Whenever this article refers to GRUB, or configuration files
|
||||
nonGeNUine Boot). Whenever this article refers to GRUB, or configuration files
|
||||
used in GRUB, it is referring exclusively to those files hosted in CBFS
|
||||
(coreboot file system) in the libreboot ROM image. In this configuration,
|
||||
(coreboot file system) in the nonGeNUine Boot ROM image. In this configuration,
|
||||
GRUB is running on *bare metal* as a coreboot payload (instead of relying on
|
||||
BIOS or UEFI services, like it does on *most* x86 based configurations).
|
||||
|
||||
This guide deals with various ways in which you can harden your GRUB
|
||||
configuration, for security purposes. These steps are optional, but *strongly*
|
||||
recommended by the libreboot project.
|
||||
recommended by the nonGeNUine Boot project.
|
||||
|
||||
GRUB provides *many* advanced security features, which most people don't
|
||||
know about but are fully documented on the libreboot website. Read on!
|
||||
know about but are fully documented on the nonGeNUine Boot website. Read on!
|
||||
|
||||
This article doesn't cover how to dump your ROM, or flash a new one. Please
|
||||
read other sections in the libreboot documentation if you don't know how to do
|
||||
read other sections in the nonGeNUine Boot documentation if you don't know how to do
|
||||
that. As such, this is an *expert only* guide. There is a great possibility for
|
||||
bricking your system if you follow this guide incorrectly, or otherwise don't
|
||||
know what you're doing.
|
||||
|
@ -31,9 +31,9 @@ GRUB contains code, based on [GPG](https://gnupg.org/), that can verify
|
|||
PGP signatures on *any* type of file, on any storage medium supported by
|
||||
GRUB (it supports basically everything, including CBFS which is short
|
||||
for coreboot file system and it is what we will focus on in this article).
|
||||
We will be using this functionality to verify the signature of a Linux kernel,
|
||||
at boot time. In conjunction with reproducible builds (both libreboot and your
|
||||
Linux kernel), this can greatly improve system security; Debian is an excellent
|
||||
We will be using this functionality to verify the signature of a GNU+Linux kernel,
|
||||
at boot time. In conjunction with reproducible builds (both nonGeNUine Boot and your
|
||||
GNU+Linux kernel), this can greatly improve system security; Debian is an excellent
|
||||
example of a project striving towards this goal; see:
|
||||
<https://wiki.debian.org/ReproducibleBuilds>
|
||||
|
||||
|
@ -49,11 +49,11 @@ repository). More information about reproducible builds can be found here:
|
|||
|
||||
<https://reproducible-builds.org/>
|
||||
|
||||
Reproducibility is a key goal of the libreboot project, though it has not yet
|
||||
Reproducibility is a key goal of the nonGeNUine Boot project, though it has not yet
|
||||
achieved that goal. However, it is an important part of any secure system. We
|
||||
suggest that, when securing your libreboot system as instructed by this guide,
|
||||
you should also use a reproducible Linux distribution (because checking GPG
|
||||
signatures on a non-reproducible binary, such as a Linux kernel, is meaningless
|
||||
suggest that, when securing your nonGeNUine Boot system as instructed by this guide,
|
||||
you should also use a reproducible GNU+Linux distribution (because checking GPG
|
||||
signatures on a non-reproducible binary, such as a GNU+Linux kernel, is meaningless
|
||||
if that binary can be compromised as a result of literally not being able to
|
||||
verify that the source code *actually* corresponds to the provided binary,
|
||||
which is exactly what reproducible builds allow). If *someone else* compiles an
|
||||
|
@ -63,7 +63,7 @@ they gave you. Based on these facts, we can observe that checking GPG
|
|||
signatures will improve your *operational* security, but only in specific
|
||||
circumstances under *controlled conditions*.
|
||||
|
||||
This tutorial assumes you have a libreboot image (ROM) that you wish to modify,
|
||||
This tutorial assumes you have a nonGeNUine Boot image (ROM) that you wish to modify,
|
||||
which from now on we will refer to simply as *`my.rom`*. It should go without
|
||||
saying that this ROM uses the GRUB bootloader as payload. This page shows
|
||||
how to modify grubtest.cfg, which means that signing and password protection
|
||||
|
@ -72,13 +72,13 @@ incorrect configuration will be impossible. After you are satisfied with the
|
|||
new setup, you should transfer the new settings to grub.cfg to make your
|
||||
machine truly secure.
|
||||
|
||||
First, extract the old grubtest.cfg and remove it from the libreboot
|
||||
First, extract the old grubtest.cfg and remove it from the nonGeNUine Boot
|
||||
image:
|
||||
|
||||
cbfstool my.rom extract -n grubtest.cfg -f my.grubtest.cfg
|
||||
cbfstool my.rom remove -n grubtest.cfg
|
||||
|
||||
You can build `cbfstool` in the libreboot build system. Run this command:
|
||||
You can build `cbfstool` in the nonGeNUine Boot build system. Run this command:
|
||||
|
||||
./build module cbutils
|
||||
|
||||
|
@ -87,13 +87,16 @@ This assumes that you already downloaded coreboot:
|
|||
./download coreboot
|
||||
|
||||
This, in turn, assumes that you have installed the build dependencies for
|
||||
libreboot. On Ubuntu 20.04 and other apt-get distros, you can do this:
|
||||
nonGeNUine Boot. On Ubuntu 20.04 and other apt-get distros, you can do this:
|
||||
|
||||
./build dependencies ubuntu2004
|
||||
|
||||
NOTE: This script also works with *Trisquel 11*, which is based on
|
||||
Ubuntu 20.04.
|
||||
|
||||
The `cbfstool` executables will be under each coreboot directory, under
|
||||
each `coreboot/boardname/` directory for each board. Just pick one, presumably
|
||||
from the coreboot directory for your board. libreboot creates multiple coreboot
|
||||
from the coreboot directory for your board. nonGeNUine Boot creates multiple coreboot
|
||||
archives for different board revisions, on different boards.
|
||||
|
||||
References:
|
||||
|
@ -120,7 +123,7 @@ signatures in any other location (unless the software is modified accordingly).
|
|||
It's worth noting that this is not your LUKS password but, rather, a password
|
||||
that you must enter in order to use *restricted* functionality (such as the
|
||||
GRUB terminal for executing commands). This behaviour protects your system
|
||||
from an attacker simply booting a live USB key (e.g. live Linux
|
||||
from an attacker simply booting a live USB key (e.g. live GNU+Linux
|
||||
distribution) for the purpose of flashing modified boot firmware, which from
|
||||
your perspective is *compromised* boot firmware. *This should be different than
|
||||
your LUKS passphrase and user password.*
|
||||
|
@ -152,9 +155,9 @@ done using the `grub-mkpasswd-pbkdf2` utility. You can get it by
|
|||
installing GRUB version 2. Generate a key by giving it a password:
|
||||
|
||||
NOTE: This utility is included under the `grub/` directory, when you build
|
||||
GRUB using the libreboot build system. Run the following commands (assuming
|
||||
GRUB using the nonGeNUine Boot build system. Run the following commands (assuming
|
||||
you have the correct build dependencies installed) to build GRUB, from the
|
||||
libreboot Git repository:
|
||||
nonGeNUine Boot Git repository:
|
||||
|
||||
./download grub
|
||||
|
||||
|
@ -198,7 +201,7 @@ function try\_user\_config:
|
|||
function try_user_config {
|
||||
set root="${1}"
|
||||
for dir in boot grub grub2 boot/grub boot/grub2; do
|
||||
for name in '' autoboot_ libreboot_ coreboot_; do
|
||||
for name in '' autoboot_ nongenuineboot_ coreboot_; do
|
||||
if [ -f /"${dir}"/"${name}"grub.cfg ]; then
|
||||
#unset superusers
|
||||
configfile /"${dir}"/"${name}"grub.cfg
|
||||
|
@ -210,9 +213,9 @@ function try_user_config {
|
|||
|
||||
The `unset superusers` command disables password authentication, which will
|
||||
allow the attacker to boot an arbitrary operating system, regardless of
|
||||
signature checking. The default libreboot configuration is tweaked for *easy of
|
||||
signature checking. The default nonGeNUine Boot configuration is tweaked for *easy of
|
||||
use* by end users, and it is *not* done with security in mind (though security
|
||||
is preferred). Thus, libreboot is less restrictive by default. What you are
|
||||
is preferred). Thus, nonGeNUine Boot is less restrictive by default. What you are
|
||||
doing, per this article, is making your system *more secure* but at the expense
|
||||
of user-friendliness.
|
||||
|
||||
|
@ -244,13 +247,13 @@ Now that we have a key, we can sign some files with it. We must sign:
|
|||
but, afterwards, `grubtest.cfg` is not signed and it will not load.
|
||||
|
||||
Suppose that we have a pair of `my.kernel` and `my.initramfs` and an
|
||||
on-disk `libreboot_grub.cfg`. We will sign them by running the following
|
||||
on-disk `nongenuineboot_grub.cfg`. We will sign them by running the following
|
||||
commands:
|
||||
|
||||
```
|
||||
gpg --homedir keys --detach-sign my.initramfs
|
||||
gpg --homedir keys --detach-sign my.kernel
|
||||
gpg --homedir keys --detach-sign libreboot_grub.cfg
|
||||
gpg --homedir keys --detach-sign nongenuineboot_grub.cfg
|
||||
gpg --homedir keys --detach-sign my.grubtest.cfg
|
||||
```
|
||||
|
||||
|
@ -263,7 +266,7 @@ trust (cbfsdisk)/boot.key
|
|||
set check_signatures=enforce
|
||||
```
|
||||
|
||||
What remains now is to include the modifications into the libreboot image
|
||||
What remains now is to include the modifications into the nonGeNUine Boot image
|
||||
(ROM):
|
||||
|
||||
```
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Linux guides
|
||||
title: GNU+Linux guides
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
|
@ -11,7 +11,7 @@ If you're using SeaBIOS, the boot process will work similarly to traditional
|
|||
BIOS systems; refer to the SeaBIOS documentation
|
||||
on <https://seabios.org/SeaBIOS>
|
||||
|
||||
Linux is generally assumed, especially for Libreboot development, but Libreboot
|
||||
GNU+Linux is generally assumed, especially for nonGeNUine Boot development, but nonGeNUine Boot
|
||||
also works quite nicely with [BSD systems](../bsd/).
|
||||
|
||||
Useful links
|
||||
|
@ -19,30 +19,30 @@ Useful links
|
|||
|
||||
Refer to the following pages:
|
||||
|
||||
* [How to Prepare and Boot a USB Installer in libreboot Systems](grub_boot_installer.md)
|
||||
* [Modifying the GRUB Configuration in libreboot Systems](grub_cbfs.md)
|
||||
* [How to Prepare and Boot a USB Installer in nonGeNUine Boot Systems](grub_boot_installer.md)
|
||||
* [Modifying the GRUB Configuration in nonGeNUine Boot Systems](grub_cbfs.md)
|
||||
* [How to Harden Your GRUB Configuration, for Security](grub_hardening.md)
|
||||
|
||||
Encrypted (LUKS/dm-crypt) installations
|
||||
=======================================
|
||||
|
||||
A better solution for encryption would be a Linux payload in flash, handling the
|
||||
encryption, at least if you want to use Linux, because then it'll have
|
||||
A better solution for encryption would be a GNU+Linux payload in flash, handling the
|
||||
encryption, at least if you want to use GNU+Linux, because then it'll have
|
||||
perfect LUKS support.
|
||||
|
||||
GRUB otherwise has good filesystem support, so if you have a valid `grub.cfg`
|
||||
in `/boot/grub` on your installed system, Libreboot's GRUB configuration has
|
||||
in `/boot/grub` on your installed system, nonGeNUine Boot's GRUB configuration has
|
||||
logic in it that will try to automatically use whatever you have installed,
|
||||
by switching to it. In this way, most installations Just Work, so long as
|
||||
the `/boot` partition is accessible.
|
||||
|
||||
Full encryption for basic LUKS2 is supported in libreboot.
|
||||
Full encryption for basic LUKS2 is supported in nonGeNUine Boot.
|
||||
See [the guide](encryption.md) for more detail.
|
||||
|
||||
Rebooting system in case of freeze
|
||||
===================================
|
||||
|
||||
Linux kernel has a feature to do actions to the system any time, even
|
||||
GNU+Linux kernel has a feature to do actions to the system any time, even
|
||||
with it freezes, this is called a
|
||||
[Magic SysRq keys](https://en.wikipedia.org/wiki/Reisub). You can do these
|
||||
actions with Alt + Sysrq + Command. These are the actions:
|
||||
|
@ -66,7 +66,7 @@ This may also apply to CentOS or Redhat. Chroot guide can be found on
|
|||
linux16 issue
|
||||
-------------
|
||||
|
||||
Libreboot's default GRUB config sources fedora's grub config
|
||||
nonGeNUine Boot's default GRUB config sources fedora's grub config
|
||||
`grub.cfg` (in `/boot/grub2/grub.cfg`), fedora by default makes use of the
|
||||
`linux16` command, where it should be saying `linux`
|
||||
|
|
@ -7,12 +7,12 @@ TODO: this guide should be reviewed and updated. Some info might be out of
|
|||
date.
|
||||
|
||||
GNU GRUB already has excellent
|
||||
documentation, but there are aspects of libreboot that deserve special
|
||||
treatment. libreboot provides the option to boot GRUB directly, running on
|
||||
documentation, but there are aspects of nonGeNUine Boot that deserve special
|
||||
treatment. nonGeNUine Boot provides the option to boot GRUB directly, running on
|
||||
bare metal (instead of using BIOS or UEFI services).
|
||||
|
||||
[The Linux section](../linux/) also has libreboot-specific guides for
|
||||
dealing with Linux distributions when using GRUB directly, in this
|
||||
[The GNU+Linux section](../gnulinux/) also has nongenuineboot-specific guides for
|
||||
dealing with GNU+Linux distributions when using GRUB directly, in this
|
||||
setup. [A similar section exists for BSD operating systems](../bsd/)
|
||||
|
||||
GRUB keyboard layouts
|
||||
|
@ -33,20 +33,20 @@ files:
|
|||
When you build GRUB from source, you can use the `grub-mklayout` program to
|
||||
create a special keymap file for GRUB. [Learn how to build GRUB](../build/)
|
||||
|
||||
When you've built GRUB, using `lbmk` (libreboot build system), take your kepmap
|
||||
When you've built GRUB, using `gbmk` (nonGeNUine Boot build system), take your kepmap
|
||||
file (generated by ckbcomp) and run it through `grub-mklayout` like so:
|
||||
|
||||
cat frazerty | ./grub/grub-mklayout -o frazerty.gkb
|
||||
|
||||
Place the newly created `.gkb` file under `resources/grub/keymap` in lbmk. When
|
||||
you build libreboot, a ROM image with GRUB payload and your newly created
|
||||
Place the newly created `.gkb` file under `resources/grub/keymap` in gbmk. When
|
||||
you build nonGeNUine Boot, a ROM image with GRUB payload and your newly created
|
||||
keymap will be available under the `bin/` directory.
|
||||
[Learn how to build libreboot ROM images](../build/)
|
||||
[Learn how to build nonGeNUine Boot ROM images](../build/)
|
||||
|
||||
Many keymaps exist in the libreboot build system, but sometimes you must
|
||||
Many keymaps exist in the nonGeNUine Boot build system, but sometimes you must
|
||||
manually tweak the file created by `ckbcomp`, adjusting the scan codes in that
|
||||
file, before converting to a GRUB keymap file. Therefore, it would be unwise to
|
||||
automatically add all keymaps in GRUB.
|
||||
|
||||
If you've added a keymap to lbmk, and it works,
|
||||
If you've added a keymap to gbmk, and it works,
|
||||
[please submit a patch!](../../git.md)
|
||||
|
|
|
@ -4,8 +4,8 @@ x-toc-enable: true
|
|||
...
|
||||
|
||||
This is similar to Gigabyte GA-G41M-ES2L but uses an Intel NIC rather than
|
||||
Realtek. Some problems with Linux on this NIC, on this board, with Libreboot,
|
||||
were observed; see:
|
||||
Realtek. Some problems with GNU+Linux on this NIC, on this board, with nonGeNUine Boot,
|
||||
were observed; see (NOTE: Libreboot issue tracker, not nonGeNUine Boot):
|
||||
|
||||
<https://notabug.org/libreboot/lbmk/issues/125>
|
||||
|
||||
|
@ -14,7 +14,7 @@ That page (on notabug) has some notes about workarounds. It links to this:
|
|||
<https://superuser.com/questions/1104537/how-to-repair-the-checksum-of-the-non-volatile-memory-nvm-of-intel-ethernet-co/1106641#1106641>
|
||||
|
||||
This page has some guidance on how to either correct the checksum (in GbE
|
||||
config) or skip checksum validation in Linux, to get the onboard NIC working.
|
||||
config) or skip checksum validation in GNU+Linux, to get the onboard NIC working.
|
||||
Although it's talking about different hardware, the steps should be the same.
|
||||
|
||||
TODO: factory BIOS on this board works fine with the onboard NIC. study what
|
||||
|
|
|
@ -48,12 +48,12 @@ P*: Partially works with blobs
|
|||
</div>
|
||||
This is a desktop board using intel hardware (circa \~2009, ICH7
|
||||
southbridge, similar performance-wise to the ThinkPad X200. It can make
|
||||
for quite a nifty desktop. Powered by libreboot.
|
||||
for quite a nifty desktop. Powered by nonGeNUine Boot.
|
||||
|
||||
NOTE: D410PT is another name and it's the same board. Flash the exact same
|
||||
ROM and it should work.
|
||||
|
||||
NOTE: This board has a working framebuffer in Grub, but in Linux in
|
||||
NOTE: This board has a working framebuffer in Grub, but in GNU+Linux in
|
||||
native resolution the display is unusable due to some raminit issues.
|
||||
This board can however be used for building a headless server.
|
||||
|
||||
|
|
|
@ -3,9 +3,13 @@ title: Intel D945GCLF desktop board
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
**NOTE: This information was inherited when we forked Libreboot, but this
|
||||
mainboard had been removed at that time. Further testing is required, on
|
||||
this mainboard.**
|
||||
|
||||
<div class="specs">
|
||||
<center>
|
||||
<img tabindex=1 alt="D945GCLF" class="p" src="https://av.libreboot.org/d945gclf/d945gclf.jpg" /><span class="f"><img src="https://av.libreboot.org/d945gclf/d945gclf.jpg" /></span>
|
||||
<img tabindex=1 alt="D945GCLF" class="p" src="https://avgnu.vimuser.org/d945gclf/d945gclf.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/d945gclf/d945gclf.jpg" /></span>
|
||||
</center>
|
||||
|
||||
| ***Specifications*** | |
|
||||
|
@ -58,7 +62,7 @@ Introduction
|
|||
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
|
||||
2 thread to the OS. The flash chip is very small, 512KiB, so grub2 does
|
||||
not fit, which is why libreboot has to use seabios on this target. Full
|
||||
not fit, which is why nonGeNUine Boot has to use seabios on this target. Full
|
||||
disk encryption like on other supported targets will not be possible, so
|
||||
plan accordingly.
|
||||
|
||||
|
@ -79,21 +83,21 @@ that it should also work but this is untested.
|
|||
Remarks about vendor bios:
|
||||
--------------------------
|
||||
|
||||
- Without coreboot/libreboot this board is completely useless, since the
|
||||
- Without a coreboot firmware this board is completely useless, since the
|
||||
vendor bios is very bad. It cannot boot from any HDD whether it is
|
||||
connected to the SATA port or USB. With libreboot it works just
|
||||
connected to the SATA port or USB. With nonGeNUine Boot, it works just
|
||||
fine.
|
||||
|
||||
- The vendor bios write protects the flash so it requires external
|
||||
flashing to install libreboot on this device. Once libreboot is
|
||||
flashing to install nonGeNUine Boot on this device. Once nonGeNUine Boot is
|
||||
flashed there is no problem to update the firmware internally
|
||||
|
||||
Here is an image of the board:\
|
||||
![](https://av.libreboot.org/d945gclf/d945gclf.jpg)\
|
||||
![](https://avgnu.vimuser.org/d945gclf/d945gclf.jpg)\
|
||||
Here is an image of the D945GCLF2 board:\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141521.jpg){width="80%" height="80%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141521.jpg){width="80%" height="80%"}\
|
||||
And SPI SOIC8 flash chip\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"}
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"}
|
||||
|
||||
How to replace thermal paste and fan
|
||||
------------------------------------
|
||||
|
@ -101,24 +105,24 @@ How to replace thermal paste and fan
|
|||
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
|
||||
time trying to fix it, just buy one chinese same size fan\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141620.jpg){width="50%" height="50%"}
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141614.jpg){width="50%" height="50%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141620.jpg){width="50%" height="50%"}
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141614.jpg){width="50%" height="50%"}\
|
||||
Make sure that new one has same wiring\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_142618.jpg){width="50%" height="50%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_142618.jpg){width="50%" height="50%"}\
|
||||
This is a new one, with bearing and maintenable\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141738.jpg){width="50%" height="50%"}
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141814.jpg){width="50%" height="50%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141738.jpg){width="50%" height="50%"}
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141814.jpg){width="50%" height="50%"}\
|
||||
Now remove the both coolers rotating them a bit, slowly, then clean both
|
||||
silicons and both coolers (removing cmos battery first is recommended)\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141601.jpg){width="50%" height="50%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141601.jpg){width="50%" height="50%"}\
|
||||
Put a little bit of non conductive thermal paste on both silicons (only
|
||||
cpu silicon iis shown on that image)\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_142031.jpg){width="50%" height="50%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_142031.jpg){width="50%" height="50%"}\
|
||||
|
||||
Before assembling new fan, some need new longer screws, make sure having
|
||||
these (on the left is original one, too short for new fan)\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141659.jpg){width="50%" height="50%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141659.jpg){width="50%" height="50%"}\
|
||||
After that, assemble your new fan into CPU cooler\
|
||||
![](https://av.libreboot.org/d945gclf/20160923_141635.jpg){width="50%" height="50%"}\
|
||||
![](https://avgnu.vimuser.org/d945gclf/20160923_141635.jpg){width="50%" height="50%"}\
|
||||
Finally assemle both coolers on both chips, do not forget put in the CPU
|
||||
fan connector back, and you are done.
|
||||
|
|
|
@ -5,7 +5,7 @@ x-toc-enable: true
|
|||
|
||||
<div class="specs">
|
||||
<center>
|
||||
<img tabindex=1 alt="Dell Latitude E6400" class="p" src="https://av.libreboot.org/e6400/e6400-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400-seabios.jpg" /></span> <img tabindex=1 alt="Dell Latitude E6400 XFR" class="p" style="max-width:24em" src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /></span>
|
||||
<img tabindex=1 alt="Dell Latitude E6400" class="p" src="https://avgnu.vimuser.org/e6400/e6400-seabios.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/e6400/e6400-seabios.jpg" /></span> <img tabindex=1 alt="Dell Latitude E6400 XFR" class="p" style="max-width:24em" src="https://avgnu.vimuser.org/e6400/e6400xfr-seabios.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/e6400/e6400xfr-seabios.jpg" /></span>
|
||||
</center>
|
||||
|
||||
| ***Specifications*** | |
|
||||
|
@ -57,17 +57,17 @@ Introduction
|
|||
Known supported variants: E6400, E6400 XFR and E6400 ATG.
|
||||
|
||||
ONLY the Intel GPU variants are supported, at present. The Nvidia ones are
|
||||
not compatible, with this censored version of Libreboot.
|
||||
not compatible, with this version of nonGeNUine Boot.
|
||||
|
||||
**To install Libreboot, see: [E6400 installation
|
||||
**To install nonGeNUine Boot, see: [E6400 installation
|
||||
instructions](../install/e6400.md)**
|
||||
|
||||
ROM images for Dell Latitude E6400 are available for flashing in Libreboot
|
||||
ROM images for Dell Latitude E6400 are available for flashing in nonGeNUine Boot
|
||||
releases, or you can compile a ROM image for installation via
|
||||
lbmk, see: [build instructions](../build/)
|
||||
gbmk, see: [build instructions](../build/)
|
||||
|
||||
There are two possible flash chip sizes for the E6400: 4MiB (32Mbit) or 2+4MiB
|
||||
(16Mbit+32MBit). Libreboot presently supports the 4MiB version, and provides
|
||||
(16Mbit+32MBit). nonGeNUine Boot presently supports the 4MiB version, and provides
|
||||
8MiB images for those who upgrade their flash to 8MiB or 16MiB. There appears
|
||||
to be several possible mainboard PCBs for the E6400, which we believe mostly
|
||||
affects the GPU configuration and the number of available SPI flash footprints:
|
||||
|
@ -94,23 +94,23 @@ Intel GPU: Blob-free setup (no-ME possible)
|
|||
---------------
|
||||
|
||||
This is a GM45/PM45 platform, so completely libre initialisation in
|
||||
coreboot is possible, provided by default in Libreboot.
|
||||
coreboot is possible, provided by default in nonGeNUine Boot.
|
||||
|
||||
Intel GPU variants are GM45, and Nvidia ones are PM45.
|
||||
|
||||
Management Engine (ME) firmware removed
|
||||
-------------------------
|
||||
|
||||
This port in Libreboot makes use of `ich9gen` from ich9utils, which
|
||||
This port in nonGeNUine Boot makes use of `ich9gen` from ich9utils, which
|
||||
you can read about in the [ich9utils manual](../install/ich9utils.md) - this
|
||||
creates a no-ME setup. The Intel Management Engine firmware (ME) is completely
|
||||
removed, and the ME disabled, just like on ThinkPad X200, T400 and so on.
|
||||
|
||||
*The E6400 laptops may come with the ME (and sometimes AMT in addition) before
|
||||
flashing libreboot. Dell also sold configurations with the ME completely
|
||||
flashing nonGeNUine Boot. Dell also sold configurations with the ME completely
|
||||
disabled, identifiable by a yellow sticker reading "3 ME Disabled" inside the
|
||||
bottom panel. This config sets the MeDisable bit in the IFD and sets the ME
|
||||
region almost entirely to 1's, with the occasional 32-bit value (likely not
|
||||
executable). libreboot disables and removes it by using a modified descriptor:
|
||||
executable). nonGeNUine Boot disables and removes it by using a modified descriptor:
|
||||
see [../install/ich9utils.md](../install/ich9utils.md)*
|
||||
(contains notes, plus instructions)
|
||||
|
|
|
@ -49,40 +49,40 @@ P*: Partially works with blobs
|
|||
</div>
|
||||
This is a desktop board using intel hardware (circa \~2009, ICH7
|
||||
southbridge, similar performance-wise to the ThinkPad X200. It can make
|
||||
for quite a nifty desktop. Powered by libreboot.
|
||||
for quite a nifty desktop. Powered by nonGeNUine Boot.
|
||||
|
||||
In recent Libreboot releases, only SeaBIOS payload is provided in ROMs
|
||||
In recent nonGeNUine Boot releases, only SeaBIOS payload is provided in ROMs
|
||||
for this board. According to user reports, they work quite well. GRUB was
|
||||
always buggy on this board, so it was removed from lbmk.
|
||||
always buggy on this board, so it was removed from gbmk.
|
||||
|
||||
IDE on the board is untested, but it might be possible to use a SATA HDD
|
||||
using an IDE SATA adapter. The SATA ports do work, but it's IDE emulation. The
|
||||
emulation is slow in DMA mode sia SeaBIOS, so SeaBIOS is configured to use PIO
|
||||
mode on this board. This SeaBIOS configuration does not affect the Linux kernel.
|
||||
mode on this board. This SeaBIOS configuration does not affect the GNU+Linux kernel.
|
||||
|
||||
You need to set a custom MAC address in Linux for the NIC to work.
|
||||
You need to set a custom MAC address in GNU+Linux for the NIC to work.
|
||||
In /etc/network/interfaces on debian-based systems like Debian or
|
||||
Devuan, this would be in the entry for your NIC:\
|
||||
hwaddress ether macaddressgoeshere
|
||||
|
||||
Alternatively:
|
||||
|
||||
cbfstool libreboot.rom extract -n rt8168-macaddress -f rt8168-macaddress
|
||||
cbfstool nongenuineboot.rom extract -n rt8168-macaddress -f rt8168-macaddress
|
||||
|
||||
Modify the MAC address in the file `rt8168-macaddress` and then:
|
||||
|
||||
cbfstool libreboot.rom remove -n rt8168-macaddress
|
||||
cbfstool libreboot.rom add -f rt8168-macaddress -n rt8168-macaddress -t raw
|
||||
cbfstool nongenuineboot.rom remove -n rt8168-macaddress
|
||||
cbfstool nongenuineboot.rom add -f rt8168-macaddress -n rt8168-macaddress -t raw
|
||||
|
||||
Now you have a different MAC address hardcoded. In the above example, the ROM
|
||||
image is named `libreboot.rom` for your board. You can find cbfstool
|
||||
image is named `nongenuineboot.rom` for your board. You can find cbfstool
|
||||
under `coreboot/default/util/cbfstool/` after running the following command
|
||||
in the build system:
|
||||
|
||||
./build module cbutils
|
||||
|
||||
You can learn more about using the build system, lbmk, here:\
|
||||
[libreboot build instructions](../build/)
|
||||
You can learn more about using the build system, gbmk, here:\
|
||||
[nonGeNUine Boot build instructions](../build/)
|
||||
|
||||
Flashing instructions can be found at
|
||||
[../install/](../install/)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[ 0.000000] Initializing cgroup subsys cpuset
|
||||
[ 0.000000] Initializing cgroup subsys cpu
|
||||
[ 0.000000] Initializing cgroup subsys cpuacct
|
||||
[ 0.000000] Linux version 3.13.0-39-lowlatency (root@devel.trisquel.info) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #66+7.0trisquel2 SMP PREEMPT Wed Oct 29 17:10:10 UTC 2014 (Ubuntu 3.13.0-39.66+7.0trisquel2-lowlatency 3.13.11.8-gnu)
|
||||
[ 0.000000] GNU+Linux version 3.13.0-39-lowlatency (root@devel.trisquel.info) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #66+7.0trisquel2 SMP PREEMPT Wed Oct 29 17:10:10 UTC 2014 (Ubuntu 3.13.0-39.66+7.0trisquel2-lowlatency 3.13.11.8-gnu)
|
||||
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.13.0-39-lowlatency root=UUID=097336a2-7389-4897-a7e8-1f43e91aae96 ro nomdmonddf nomdmonisw nomdmonddf nomdmonisw
|
||||
[ 0.000000] KERNEL supported cpus:
|
||||
[ 0.000000] Intel GenuineIntel
|
||||
|
@ -411,7 +411,7 @@
|
|||
[ 0.069176] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
[ 0.069176] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
[ 0.071018] ACPI : EC: EC description table is found, configuring boot EC
|
||||
[ 0.075408] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
|
||||
[ 0.075408] [Firmware Bug]: ACPI: BIOS _OSI(GNU+Linux) query ignored
|
||||
[ 0.082370] ACPI: SSDT 00000000798d7c20 0002C8 (v01 PmRef Cpu0Ist 00003000 INTL 20050624)
|
||||
[ 0.083085] ACPI: Dynamic OEM Table Load:
|
||||
[ 0.083193] ACPI: SSDT (null) 0002C8 (v01 PmRef Cpu0Ist 00003000 INTL 20050624)
|
||||
|
@ -737,7 +737,7 @@
|
|||
[ 0.689861] ACPI: Battery Slot [BAT0] (battery absent)
|
||||
[ 0.689943] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
|
||||
[ 0.712208] 0000:00:03.3: ttyS4 at I/O 0x1830 (irq = 17, base_baud = 115200) is a 16550A
|
||||
[ 0.712544] Linux agpgart interface v0.103
|
||||
[ 0.712544] GNU+Linux agpgart interface v0.103
|
||||
[ 0.712661] agpgart-intel 0000:00:00.0: Intel GM45 Chipset
|
||||
[ 0.712794] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable
|
||||
[ 0.713914] agpgart-intel 0000:00:00.0: detected 32768K stolen memory
|
||||
|
@ -762,7 +762,7 @@
|
|||
[ 0.806198] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
|
||||
[ 0.806249] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.806309] usb usb1: Product: EHCI Host Controller
|
||||
[ 0.806356] usb usb1: Manufacturer: Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
[ 0.806356] usb usb1: Manufacturer: GNU+Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
[ 0.806406] usb usb1: SerialNumber: 0000:00:1a.7
|
||||
[ 0.806572] hub 1-0:1.0: USB hub found
|
||||
[ 0.806625] hub 1-0:1.0: 6 ports detected
|
||||
|
@ -775,7 +775,7 @@
|
|||
[ 0.817761] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
|
||||
[ 0.817811] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.817871] usb usb2: Product: EHCI Host Controller
|
||||
[ 0.817919] usb usb2: Manufacturer: Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
[ 0.817919] usb usb2: Manufacturer: GNU+Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
[ 0.817968] usb usb2: SerialNumber: 0000:00:1d.7
|
||||
[ 0.818141] hub 2-0:1.0: USB hub found
|
||||
[ 0.818192] hub 2-0:1.0: 6 ports detected
|
||||
|
@ -790,7 +790,7 @@
|
|||
[ 0.819539] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
|
||||
[ 0.819590] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.819651] usb usb3: Product: UHCI Host Controller
|
||||
[ 0.819698] usb usb3: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.819698] usb usb3: Manufacturer: GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.819748] usb usb3: SerialNumber: 0000:00:1a.0
|
||||
[ 0.819903] hub 3-0:1.0: USB hub found
|
||||
[ 0.819962] hub 3-0:1.0: 2 ports detected
|
||||
|
@ -800,7 +800,7 @@
|
|||
[ 0.820506] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
|
||||
[ 0.820557] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.820617] usb usb4: Product: UHCI Host Controller
|
||||
[ 0.820665] usb usb4: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.820665] usb usb4: Manufacturer: GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.820714] usb usb4: SerialNumber: 0000:00:1a.1
|
||||
[ 0.820868] hub 4-0:1.0: USB hub found
|
||||
[ 0.820930] hub 4-0:1.0: 2 ports detected
|
||||
|
@ -810,7 +810,7 @@
|
|||
[ 0.821465] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
|
||||
[ 0.821516] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.821577] usb usb5: Product: UHCI Host Controller
|
||||
[ 0.821624] usb usb5: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.821624] usb usb5: Manufacturer: GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.821674] usb usb5: SerialNumber: 0000:00:1a.2
|
||||
[ 0.821836] hub 5-0:1.0: USB hub found
|
||||
[ 0.821893] hub 5-0:1.0: 2 ports detected
|
||||
|
@ -820,7 +820,7 @@
|
|||
[ 0.822435] usb usb6: New USB device found, idVendor=1d6b, idProduct=0001
|
||||
[ 0.822486] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.822552] usb usb6: Product: UHCI Host Controller
|
||||
[ 0.822599] usb usb6: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.822599] usb usb6: Manufacturer: GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.822649] usb usb6: SerialNumber: 0000:00:1d.0
|
||||
[ 0.822816] hub 6-0:1.0: USB hub found
|
||||
[ 0.822867] hub 6-0:1.0: 2 ports detected
|
||||
|
@ -830,7 +830,7 @@
|
|||
[ 0.823398] usb usb7: New USB device found, idVendor=1d6b, idProduct=0001
|
||||
[ 0.823449] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.823509] usb usb7: Product: UHCI Host Controller
|
||||
[ 0.823557] usb usb7: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.823557] usb usb7: Manufacturer: GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.823607] usb usb7: SerialNumber: 0000:00:1d.1
|
||||
[ 0.823765] hub 7-0:1.0: USB hub found
|
||||
[ 0.823816] hub 7-0:1.0: 2 ports detected
|
||||
|
@ -840,7 +840,7 @@
|
|||
[ 0.824365] usb usb8: New USB device found, idVendor=1d6b, idProduct=0001
|
||||
[ 0.824415] usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1
|
||||
[ 0.824476] usb usb8: Product: UHCI Host Controller
|
||||
[ 0.824524] usb usb8: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.824524] usb usb8: Manufacturer: GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
[ 0.824573] usb usb8: SerialNumber: 0000:00:1d.2
|
||||
[ 0.824732] hub 8-0:1.0: USB hub found
|
||||
[ 0.824784] hub 8-0:1.0: 2 ports detected
|
||||
|
@ -878,7 +878,7 @@
|
|||
[ 0.872016] Freeing unused kernel memory: 764K (ffff880001741000 - ffff880001800000)
|
||||
[ 0.875110] Freeing unused kernel memory: 676K (ffff880001b57000 - ffff880001c00000)
|
||||
[ 0.894972] systemd-udevd[126]: starting version 204
|
||||
[ 0.928980] pps_core: LinuxPPS API ver. 1 registered
|
||||
[ 0.928980] pps_core: GNU+LinuxPPS API ver. 1 registered
|
||||
[ 0.930015] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
|
||||
[ 0.934247] PTP clock support registered
|
||||
[ 0.940925] [drm] Initialized drm 1.1.0 20060810
|
||||
|
@ -1021,7 +1021,7 @@
|
|||
[ 14.165173] kvm: disabled by bios
|
||||
[ 14.310307] mei_me 0000:00:03.0: irq 47 for MSI/MSI-X
|
||||
[ 14.401058] cfg80211: Calling CRDA to update world regulatory domain
|
||||
[ 14.440429] Intel(R) Wireless WiFi driver for Linux, in-tree:
|
||||
[ 14.440429] Intel(R) Wireless WiFi driver for GNU+Linux, in-tree:
|
||||
[ 14.440433] Copyright(c) 2003-2013 Intel Corporation
|
||||
[ 14.440762] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
|
||||
[ 14.440834] iwlwifi 0000:03:00.0: irq 48 for MSI/MSI-X
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
flashrom v0.9.6.1-r1563 on Linux 3.13.0-39-lowlatency (x86_64)
|
||||
flashrom v0.9.6.1-r1563 on GNU+Linux 3.13.0-39-lowlatency (x86_64)
|
||||
flashrom is free software, get the source code at http://www.flashrom.org
|
||||
|
||||
flashrom was built with libpci 3.1.9, GCC 4.7.1, little endian
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
flashrom v0.9.6.1-r1563 on Linux 3.13.0-39-lowlatency (x86_64)
|
||||
flashrom v0.9.6.1-r1563 on GNU+Linux 3.13.0-39-lowlatency (x86_64)
|
||||
flashrom is free software, get the source code at http://www.flashrom.org
|
||||
|
||||
flashrom was built with libpci 3.1.9, GCC 4.7.1, little endian
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
|
||||
Bus 002 Device 001: ID 1d6b:0002 GNU+Linux Foundation 2.0 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -8,10 +8,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0002 2.0 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
iProduct 2 EHCI Host Controller
|
||||
iSerial 1 0000:00:1d.7
|
||||
bNumConfigurations 1
|
||||
|
@ -67,7 +67,7 @@ Hub Descriptor:
|
|||
Device Status: 0x0001
|
||||
Self Powered
|
||||
|
||||
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
|
||||
Bus 008 Device 001: ID 1d6b:0001 GNU+Linux Foundation 1.1 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -76,10 +76,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0001 1.1 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iProduct 2 UHCI Host Controller
|
||||
iSerial 1 0000:00:1d.2
|
||||
bNumConfigurations 1
|
||||
|
@ -131,7 +131,7 @@ Hub Descriptor:
|
|||
Device Status: 0x0001
|
||||
Self Powered
|
||||
|
||||
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
|
||||
Bus 007 Device 001: ID 1d6b:0001 GNU+Linux Foundation 1.1 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -140,10 +140,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0001 1.1 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iProduct 2 UHCI Host Controller
|
||||
iSerial 1 0000:00:1d.1
|
||||
bNumConfigurations 1
|
||||
|
@ -195,7 +195,7 @@ Hub Descriptor:
|
|||
Device Status: 0x0001
|
||||
Self Powered
|
||||
|
||||
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
|
||||
Bus 006 Device 001: ID 1d6b:0001 GNU+Linux Foundation 1.1 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -204,10 +204,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0001 1.1 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iProduct 2 UHCI Host Controller
|
||||
iSerial 1 0000:00:1d.0
|
||||
bNumConfigurations 1
|
||||
|
@ -259,7 +259,7 @@ Hub Descriptor:
|
|||
Device Status: 0x0001
|
||||
Self Powered
|
||||
|
||||
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
|
||||
Bus 001 Device 001: ID 1d6b:0002 GNU+Linux Foundation 2.0 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -268,10 +268,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0002 2.0 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency ehci_hcd
|
||||
iProduct 2 EHCI Host Controller
|
||||
iSerial 1 0000:00:1a.7
|
||||
bNumConfigurations 1
|
||||
|
@ -327,7 +327,7 @@ Hub Descriptor:
|
|||
Device Status: 0x0001
|
||||
Self Powered
|
||||
|
||||
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
|
||||
Bus 005 Device 001: ID 1d6b:0001 GNU+Linux Foundation 1.1 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -336,10 +336,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0001 1.1 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iProduct 2 UHCI Host Controller
|
||||
iSerial 1 0000:00:1a.2
|
||||
bNumConfigurations 1
|
||||
|
@ -691,7 +691,7 @@ Device Descriptor:
|
|||
Device Status: 0x0001
|
||||
Self Powered
|
||||
|
||||
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
|
||||
Bus 004 Device 001: ID 1d6b:0001 GNU+Linux Foundation 1.1 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -700,10 +700,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0001 1.1 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iProduct 2 UHCI Host Controller
|
||||
iSerial 1 0000:00:1a.1
|
||||
bNumConfigurations 1
|
||||
|
@ -755,7 +755,7 @@ Hub Descriptor:
|
|||
Device Status: 0x0001
|
||||
Self Powered
|
||||
|
||||
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
|
||||
Bus 003 Device 001: ID 1d6b:0001 GNU+Linux Foundation 1.1 root hub
|
||||
Device Descriptor:
|
||||
bLength 18
|
||||
bDescriptorType 1
|
||||
|
@ -764,10 +764,10 @@ Device Descriptor:
|
|||
bDeviceSubClass 0 Unused
|
||||
bDeviceProtocol 0 Full speed (or root) hub
|
||||
bMaxPacketSize0 64
|
||||
idVendor 0x1d6b Linux Foundation
|
||||
idVendor 0x1d6b GNU+Linux Foundation
|
||||
idProduct 0x0001 1.1 root hub
|
||||
bcdDevice 3.13
|
||||
iManufacturer 3 Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iManufacturer 3 GNU+Linux 3.13.0-39-lowlatency uhci_hcd
|
||||
iProduct 2 UHCI Host Controller
|
||||
iSerial 1 0000:00:1a.0
|
||||
bNumConfigurations 1
|
||||
|
|
|
@ -47,7 +47,7 @@ P*: Partially works with blobs
|
|||
| **SeaBIOS** | Works |
|
||||
| **SeaBIOS with GRUB** | Works |
|
||||
</div>
|
||||
Information to be written soon, but this board is merged in libreboot.
|
||||
Information to be written soon, but this board is merged in nonGeNUine Boot.
|
||||
|
||||
This board is very similar to the [MacBook2,1](./macbook21.md).
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ title: Hardware compatibility list
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
This sections relates to known hardware compatibility in libreboot.
|
||||
This sections relates to known hardware compatibility in nonGeNUine Boot.
|
||||
|
||||
For installation instructions, refer to [../install/](../install/).
|
||||
|
||||
|
@ -12,12 +12,12 @@ because coreboot lacks native video initialization for the ATI GPUs on these
|
|||
machines.
|
||||
|
||||
(for later machines like T500, T400, ATI GPU doesn't matter, because it also
|
||||
has an Intel GPU, and libreboot uses the Intel one)
|
||||
has an Intel GPU, and nonGeNUine Boot uses the Intel one)
|
||||
|
||||
Supported hardware
|
||||
==================
|
||||
|
||||
libreboot currently supports the following systems in this release:
|
||||
nonGeNUine Boot currently supports the following systems:
|
||||
|
||||
### Servers (AMD, Intel, x86)
|
||||
|
||||
|
@ -34,7 +34,7 @@ libreboot currently supports the following systems in this release:
|
|||
|
||||
### Laptops (Intel, x86)
|
||||
|
||||
- **[Dell Latitute E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel
|
||||
- **[Dell Latitute E6400, E6400 XFR and E6400 ATG, with Intel
|
||||
GPU](e6400.md) (easy to flash, no disassembly, similar
|
||||
hardware to X200/T400)**
|
||||
- ThinkPad X60 / X60S / X60 Tablet
|
||||
|
@ -60,13 +60,13 @@ libreboot currently supports the following systems in this release:
|
|||
|
||||
## Removed boards
|
||||
|
||||
These boards were in Libreboot, but have been removed with the intention of
|
||||
These boards were in nonGeNUine Boot, but have been removed with the intention of
|
||||
re-adding them at a later date. They were removed due to issues. List:
|
||||
|
||||
- [ASUS Chromebook C201PA (veyron-speedy)](../install/c201.md)
|
||||
- [Intel D945GCLF](d945gclf.md) (removed from lbmk, TODO: re-add support)
|
||||
- [Intel D945GCLF](d945gclf.md) (removed from gbmk, TODO: re-add support)
|
||||
|
||||
TODO: More hardware is supported. See `resources/coreboot/` in lbmk. Update
|
||||
TODO: More hardware is supported. See `resources/coreboot/` in gbmk. Update
|
||||
the above list!
|
||||
|
||||
'Supported' means that the build scripts know how to build ROM images
|
||||
|
@ -79,7 +79,7 @@ EC update on i945 (X60, T60) and GM45 (X200, X301, T400, T500, R400, W500, R500)
|
|||
|
||||
It is recommended that you update to the latest EC firmware version. The
|
||||
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
|
||||
libreboot, so we don't actually provide that, but if you still have
|
||||
nonGeNUine Boot, so we don't actually provide that, but if you still have
|
||||
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
|
||||
will update both the BIOS and EC version. See:
|
||||
|
||||
|
@ -87,7 +87,7 @@ will update both the BIOS and EC version. See:
|
|||
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
|
||||
|
||||
NOTE: this can only be done when you are using Lenovo BIOS. How to
|
||||
update the EC firmware while running libreboot is unknown. libreboot
|
||||
update the EC firmware while running nonGeNUine Boot is unknown. nonGeNUine Boot
|
||||
only replaces the BIOS firmware, not EC.
|
||||
|
||||
Updated EC firmware has several advantages e.g. better battery
|
||||
|
@ -96,7 +96,7 @@ handling.
|
|||
How to find what EC version you have (i945/GM45)
|
||||
------------------------------------------------
|
||||
|
||||
In Linux, you can try this:
|
||||
In GNU+Linux, you can try this:
|
||||
|
||||
grep 'at EC' /proc/asound/cards
|
||||
|
||||
|
|
|
@ -16,9 +16,9 @@ CPU cores).
|
|||
|
||||
This is a desktop board using AMD hardware (Fam10h *and Fam15h* CPUs
|
||||
available). It can also be used for building a high-powered workstation.
|
||||
libreboot also supports it. The coreboot port was done by Timothy Pearson of
|
||||
Raptor Engineering Inc. and, working with them, merged into libreboot many
|
||||
years ago.
|
||||
nonGeNUine Boot also supports it. The coreboot port was done by Timothy Pearson of
|
||||
Raptor Engineering Inc. and, working with them, merged into *Libreboot* many
|
||||
years ago (and inherited by nonGeNUine Boot).
|
||||
|
||||
Note that not all boards are compatible. See [board status](#boardstatus)
|
||||
below to determine compatibility with your board.
|
||||
|
@ -26,8 +26,8 @@ below to determine compatibility with your board.
|
|||
Flashing instructions can be found at
|
||||
[../install/](../install/) - note that external
|
||||
flashing is required (e.g. RPi), if the proprietary (ASUS) firmware is
|
||||
currently installed. If you already have Libreboot or coreboot, by default
|
||||
it is possible to re-flash using software running in Linux on the kcma-d8,
|
||||
currently installed. If you already have nonGeNUine Boot or coreboot, by default
|
||||
it is possible to re-flash using software running in GNU+Linux on the kcma-d8,
|
||||
without using external hardware.
|
||||
|
||||
If you currently have the ASUS firmware, please ignore the above link and
|
||||
|
@ -42,11 +42,11 @@ chip and re-flash it using external hardware.
|
|||
It has a 25XX NOR flash (SPI protocol) in a P-DIP 8 socket, which looks like
|
||||
this:
|
||||
|
||||
![](https://av.libreboot.org/dip8/dip8.jpg)
|
||||
![](https://avgnu.vimuser.org/dip8/dip8.jpg)
|
||||
|
||||
The default chip is a 2MiB one, but we recommend upgrading it to a 16MiB chip.
|
||||
|
||||
NOTE: If you're already running libreboot, you probably don't
|
||||
NOTE: If you're already running nonGeNUine Boot, you probably don't
|
||||
need to re-flash externally. Refer instead to the generic instructions on
|
||||
this page: [../install/](../install/)
|
||||
|
||||
|
@ -56,9 +56,9 @@ Refer to the following guide:\
|
|||
PCI option ROMs
|
||||
===============
|
||||
|
||||
Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and
|
||||
Unlike Libreboot 20160907, nonGeNUine Boot in newer releases now supports finding and
|
||||
loading PCI option ROMs automatically, both in GRUB and SeaBIOS on this machine.
|
||||
This was inherited by libreboot, when the Libreboot project was forked.
|
||||
This was inherited by nonGeNUine Boot, when the Libreboot project was forked.
|
||||
|
||||
So for example, if you wish to use an add-on graphics card, you can! It's no
|
||||
problem, and should work just fine.
|
||||
|
@ -88,7 +88,7 @@ There are two ways to identify a supported KCMA-D8 board:
|
|||
Supported boards begin with a serial number of **B9S2xxxxxxxx** or above where
|
||||
the first character refers to the year of manufacture (A = 2010, B = 2011, etc.)
|
||||
and the following character the month in hexadecimal (1...9, A, B, C). Thus, any
|
||||
board produced September 2011 *or later* are compatible with libreboot. Boards
|
||||
board produced September 2011 *or later* are compatible with nonGeNUine Boot. Boards
|
||||
originally shipped with BIOS version **2001** or higher are also compatible.
|
||||
|
||||
For help locating these identifying markers, see [ASUS documentation for determining Opteron 4200 series compatibility](https://web.archive.org/web/20200710022605/https://dlcdnets.asus.com/pub/ASUS/mb/SocketC%281027%29/KCMA-D8/Manual&QVL/How_to_identify_MB_supporting_Opteron_4200_CPU.pdf)
|
||||
|
@ -119,8 +119,8 @@ Flash chips {#flashchips}
|
|||
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:
|
||||
4MiB, 8MiB or 16MiB. With at least 8MiB, you could feasibly fit a
|
||||
compressed linux+initramfs image (BusyBox+Linux system) into CBFS and
|
||||
boot that, loading it into memory (and nowadays there is LinuxBoot, for which
|
||||
compressed linux+initramfs image (BusyBox+GNU+Linux system) into CBFS and
|
||||
boot that, loading it into memory (and nowadays there is GNU+LinuxBoot, for which
|
||||
we would recommend a 16MiB boot flash)
|
||||
|
||||
*DO NOT hot-swap the chip with your bare hands. Use a P-DIP 8 chip
|
||||
|
@ -138,7 +138,7 @@ framebuffer display (if it has KMS - kernel mode setting).
|
|||
|
||||
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
|
||||
are what libreboot recommends; it has excellent support in Nouveau (free Linux
|
||||
are what nonGeNUine Boot recommends; it has excellent support in Nouveau (free GNU+Linux
|
||||
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
|
||||
because the Nouveau driver can't increase the GPU clock (it doesn't know how,
|
||||
|
@ -162,11 +162,11 @@ considerations:
|
|||
in order to install an operating system you will need a hard disk with
|
||||
a pre-installed OS or will have to plug in another HDD or CD/DVD
|
||||
reader in order to boot OS installation media.
|
||||
- SeaBIOS lacked serial console support out-of-the-box in release 20160907
|
||||
- SeaBIOS lacked serial console support out-of-the-box in Libreboot 20160907
|
||||
and as such a workaround using SGABIOS is necessary. You can find
|
||||
instructions on how to do this on the
|
||||
[Notabug issue tracker](http://web.archive.org/web/20210416011941/https://notabug.org/libreboot/libreboot/issues/736)
|
||||
TODO: test whether this is still the case in libreboot, which uses a newer
|
||||
TODO: test whether this is still the case in nonGeNUine Boot, which uses a newer
|
||||
version of coreboot nowadays)
|
||||
- SAS (via PIKE 2008 module) requires non-free option ROM (and
|
||||
SeaBIOS) to boot from it (theoretically possible to replace, but you
|
||||
|
@ -174,9 +174,9 @@ considerations:
|
|||
can be on a SAS drive. The linux kernel can use those SAS drives
|
||||
(via PIKE module) without an option ROM).
|
||||
NOTE: SeaBIOS can load PCI-E option ROMs, and by default it will do so in
|
||||
libreboot, so you could use it. However, you could *also* simply
|
||||
nonGeNUine Boot, so you could use it. However, you could *also* simply
|
||||
install 16MiB NOR flash with linuxboot payload in it, and use linuxboot
|
||||
which has the Linux kernel, which can use SAS drives without needing that
|
||||
which has the GNU+Linux kernel, which can use SAS drives without needing that
|
||||
option ROM; then it can kexec another linux kernel, which in turn also can
|
||||
can use those drives. Or just put a standard linux kernel and initramfs
|
||||
in cbfs and chainload that from GRUB, with the right parameters.
|
||||
|
@ -184,8 +184,8 @@ considerations:
|
|||
Since it's for remote out-of-band management, it's theoretically a
|
||||
backdoor similar to the Intel Management Engine. Fortunately, unlike
|
||||
the ME, this firmware is unsigned which means that a free
|
||||
replacement is theoretically possible. For now, the libreboot
|
||||
project recommends not installing the module. [This
|
||||
replacement is theoretically possible. For now, the nonGeNUine Boot
|
||||
project recommends not installing that module. [This
|
||||
project](https://github.com/facebook/openbmc) might be interesting
|
||||
to derive from, for those who want to work on a free replacement. In
|
||||
practise, out-of-band management isn't very useful anyway (or at
|
||||
|
|
|
@ -49,7 +49,7 @@ P*: Partially works with blobs
|
|||
</div>
|
||||
|
||||
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 nonGeNUine Boot.
|
||||
|
||||
Flashing instructions can be found at
|
||||
[../install/\#flashrom](../install/)
|
||||
|
@ -113,7 +113,7 @@ the same as the non-iKVM ones.
|
|||
|
||||
The SAS versions have a 4-port SAS controller and a four 7-pin SAS connectors
|
||||
instead of the PCI-E 8x slot which is present in all the other board configurations.
|
||||
Note: the SAS functionality is **not supported** by libreboot.
|
||||
Note: the SAS functionality is **not supported** by nonGeNUine Boot.
|
||||
|
||||
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).
|
||||
|
|
|
@ -8,9 +8,9 @@ Introduction
|
|||
|
||||
This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs
|
||||
available). It can also be used for building a high-powered workstation.
|
||||
Powered by libreboot. The coreboot port was done by Timothy Pearson of
|
||||
Powered by nonGeNUine Boot. The coreboot port was done by Timothy Pearson of
|
||||
Raptor Engineering Inc. and, working with them (and sponsoring the
|
||||
work), merged into libreboot.
|
||||
work), merged into Libreboot (and inherited by nonGeNUine Boot).
|
||||
|
||||
*Memory initialization is still problematic, for some modules. We
|
||||
recommend avoiding Kingston modules.*
|
||||
|
@ -19,8 +19,8 @@ recommend avoiding Kingston modules.*
|
|||
Flashing instructions can be found at
|
||||
[../install/\#flashrom](../install/#flashrom) - note that external
|
||||
flashing is required, if the proprietary (ASUS) firmware is
|
||||
currently installed. If you already have libreboot, by default it is
|
||||
possible to re-flash using software running in Linux on the
|
||||
currently installed. If you already have nonGeNUine Boot, by default it is
|
||||
possible to re-flash using software running in GNU+Linux on the
|
||||
KGPE-D16, without using external hardware.
|
||||
|
||||
CPU compatibility
|
||||
|
@ -56,10 +56,10 @@ Flash chips {#flashchips}
|
|||
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:
|
||||
4MiB, 8MiB or 16MiB. With at least 8MiB, you could feasibly fit a
|
||||
compressed linux+initramfs image (BusyBox+Linux system) into CBFS and
|
||||
compressed linux+initramfs image (BusyBox+GNU+Linux system) into CBFS and
|
||||
boot that, loading it into memory.
|
||||
|
||||
libreboot has configs for 2, 4, 8 and 16 MiB flash chip sizes (default
|
||||
nonGeNUine Boot has configs for 2, 4, 8 and 16 MiB flash chip sizes (default
|
||||
flash chip is 2MiB).
|
||||
|
||||
*DO NOT hot-swap the chip with your bare hands. Use a P-DIP 8 chip
|
||||
|
@ -84,7 +84,7 @@ Current issues {#issues}
|
|||
can put a kernel in CBFS or on SATA and boot from that, which
|
||||
can be on a SAS drive. The linux kernel can use those SAS drives
|
||||
(via PIKE module) without an option ROM).
|
||||
- SeaBIOS lacked serial console support out-of-the-box in release 20160907
|
||||
- SeaBIOS lacked serial console support out-of-the-box in Libreboot 20160907
|
||||
and as such a workaround using SGABIOS is necessary. You can find
|
||||
instructions on how to do this on the
|
||||
[Notabug issue tracker](http://web.archive.org/web/20210416011941/https://notabug.org/libreboot/libreboot/issues/736)
|
||||
|
@ -92,7 +92,7 @@ Current issues {#issues}
|
|||
Since it's for remote out-of-band management, it's theoretically a
|
||||
backdoor similar to the Intel Management Engine. Fortunately, unlike
|
||||
the ME, this firmware is unsigned which means that a free
|
||||
replacement is theoretically possible. For now, the libreboot
|
||||
replacement is theoretically possible. For now, the nonGeNUine Boot
|
||||
project recommends not installing the module. [This
|
||||
project](https://github.com/facebook/openbmc) might be interesting
|
||||
to derive from, for those who want to work on a free replacement. In
|
||||
|
@ -114,9 +114,9 @@ The information here is adapted, from the ASUS website.
|
|||
recommended - old. View errata datasheet here:
|
||||
<http://support.amd.com/TechDocs/41322_10h_Rev_Gd.pdf>)
|
||||
- AMD Opteron 6200 series (Fam15h, with full IOMMU support in
|
||||
libreboot.
|
||||
nonGeNUine Boot.
|
||||
- AMD Opteron 6300 series (Fam15h, with full IOMMU support in
|
||||
libreboot.
|
||||
nonGeNUine Boot.
|
||||
- 6.4 GT/s per link (triple link)
|
||||
|
||||
### Core logic
|
||||
|
@ -124,7 +124,7 @@ The information here is adapted, from the ASUS website.
|
|||
- AMD SR5690
|
||||
- AMD SP5100
|
||||
|
||||
### Memory compatibility (with libreboot)
|
||||
### Memory compatibility (with nonGeNUine Boot)
|
||||
|
||||
- *Total Slots:* 16 (4-channel per CPU, 8 DIMM per CPU), ECC
|
||||
- *Capacity:* Maximum up to 256GB RDIMM (Tested max 128GB)
|
||||
|
|
|
@ -6,7 +6,7 @@ x-toc-enable: true
|
|||
Introduction (GM45+e1000)
|
||||
=========================
|
||||
|
||||
This section is applicable to all libreboot-supported laptops with the
|
||||
This section is applicable to all supported laptops with the
|
||||
mobile 4 series chipset (as shown in `$ lspci`)
|
||||
that use the e1000 ethernet controller (e.g. T400, X200).
|
||||
The R500 is an exception to this as it does not use the built-in e1000.
|
||||
|
@ -14,20 +14,20 @@ The R500 is an exception to this as it does not use the built-in e1000.
|
|||
On all these laptops, the
|
||||
[MAC address](https://en.wikipedia.org/wiki/MAC_address)
|
||||
for the built-in gigabit ethernet controller is stored inside the flash chip,
|
||||
along with libreboot and other configuration data. Therefore, installing
|
||||
libreboot will overwrite it.
|
||||
along with nonGeNUine Boot and other configuration data. Therefore, installing
|
||||
nonGeNUine Boot will overwrite it.
|
||||
|
||||
Thus, for these laptops, prebuilt libreboot already contains a generic
|
||||
Thus, for these laptops, prebuilt nonGeNUine Boot already contains a generic
|
||||
MAC address in the configuration section. This address is `00:f5:f0:40:71:fe
|
||||
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
|
||||
to network problems if you have more than one libreboot computer on
|
||||
to network problems if you have more than one nonGeNUine Boot computer on
|
||||
the same layer2 network (e.g. on the same network switch). The 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 nonGeNUine Boot
|
||||
to use an address of your own choosing or you can change the address in your
|
||||
operating system's boot scripts.
|
||||
|
||||
|
@ -58,7 +58,7 @@ The existing MAC address may be obtained by the following methods:
|
|||
|
||||
2. Otherwise you can read the white label that is often found on the
|
||||
motherboard under the memory sticks:
|
||||
![](https://av.libreboot.org/t400/macaddress1.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/macaddress1.jpg)
|
||||
|
||||
3. The MAC address is usually listed on the laptop chassis as well. This one
|
||||
will be incorrect if the motherboard was changed and the stickers were not
|
||||
|
@ -103,6 +103,6 @@ instead. See notes below:
|
|||
|
||||
Also see [nvmutil documentation](../install/nvmutil.md)
|
||||
|
||||
The nvmutil utility is yet another utility provided by Libreboot, for
|
||||
The nvmutil utility is yet another utility provided by nonGeNUine Boot, for
|
||||
changing your MAC address. It is a standalone utility, that operates
|
||||
only on pre-assembled GbE files.
|
||||
|
|
|
@ -93,8 +93,8 @@ For the MacBook2,1:
|
|||
working)*
|
||||
|
||||
It's believed that all MacBook2,1 and MacBook1,1 models work fine with
|
||||
Libreboot. If there's a model not in the list or not confirmed working
|
||||
here and you happen to have that model and that model works with Libreboot
|
||||
nonGeNUine Boot. If there's a model not in the list or not confirmed working
|
||||
here and you happen to have that model and that model works with nonGeNUine Boot
|
||||
then don't forget to [send a patch](../../git.md), confirming that it
|
||||
actually works!
|
||||
|
||||
|
@ -113,14 +113,14 @@ External flashing
|
|||
|
||||
MacBook1,1 requires external flashing, if running the default Apple firmware.
|
||||
MacBook2,1 can be flashed internally, regardless.
|
||||
If running coreboot or libreboot you can already internally re-flash.
|
||||
If running nonGeNUine Boot you can already internally re-flash.
|
||||
|
||||
[This page shows disassembly
|
||||
guides](https://www.ifixit.com/Device/MacBook_Core_2_Duo)
|
||||
|
||||
Locate the flash. It'll be a SOIC8, which looks like this:
|
||||
|
||||
![](https://av.libreboot.org/chip/soic8.jpg)
|
||||
![](https://avgnu.vimuser.org/chip/soic8.jpg)
|
||||
|
||||
The chip is located under the motherboard. [How to remove the
|
||||
motherboard](https://www.ifixit.com/Guide/MacBook+Core+2+Duo+PRAM+Battery+Replacement/529).
|
||||
|
@ -128,10 +128,10 @@ motherboard](https://www.ifixit.com/Guide/MacBook+Core+2+Duo+PRAM+Battery+Replac
|
|||
Refer to the following guide:\
|
||||
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
|
||||
|
||||
OSes using Linux on Apple EFI firmware
|
||||
OSes using GNU+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 GNU+Linux as their kernel
|
||||
on the MacBook:
|
||||
|
||||
* Boot via USB ;
|
||||
|
@ -158,7 +158,7 @@ layer was made specifically for booting Microsoft Windows as part of
|
|||
BootCamp, a tool which allowed dual-booting Windows and OS X) ;
|
||||
|
||||
* Install it like you normally would (If there's an OS X installation then
|
||||
it's highly recommended to save all your data and wipe it. Libreboot isn't
|
||||
it's highly recommended to save all your data and wipe it. nonGeNUine Boot isn't
|
||||
able and will never be able to boot OS X) ;
|
||||
|
||||
* While rebooting, hold Alt/Control once again, and select the hard disk
|
||||
|
@ -167,7 +167,7 @@ should boot up properly automatically.
|
|||
|
||||
*If you installed your OS alongside OS X then you won't be able to boot
|
||||
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 nonGeNUine Boot.*
|
||||
|
||||
Boot via USB
|
||||
------------
|
||||
|
@ -191,20 +191,20 @@ should pop up, requesting you to choose which device to boot from ;
|
|||
* Select the USB icon ;
|
||||
|
||||
* Install it like you normally would (If there's an OS X installation then
|
||||
it's highly recommended to save all your data and wipe it. Libreboot isn't
|
||||
it's highly recommended to save all your data and wipe it. nonGeNUine Boot isn't
|
||||
able and will never be able to boot OS X) ;
|
||||
|
||||
* Reboot. It should boot up to your newly-installed system if you wiped OS X,
|
||||
else, hold Alt/Control and select the correct boot device ;
|
||||
|
||||
* Flash Libreboot. DO NOT REBOOT AGAIN BEFORE FLASHING. Sometimes the
|
||||
* Flash nonGeNUine Boot. DO NOT REBOOT AGAIN BEFORE FLASHING. Sometimes the
|
||||
firmware can get confused, because Apple never intended to boot other
|
||||
EFI OSes other than OS X, as such there's a chance that your MacBook can
|
||||
become [soft-bricked](https://apple.stackexchange.com/questions/408104/late-2006-macbook-doesnt-turn-on-fan-spinning-but-no-chime/409754).
|
||||
If that is the case then dissassemble it and remove
|
||||
the CMOS/PRAM battery, wait a few minutes, and put it back in.
|
||||
|
||||
*If you want to install Libreboot with the SeaBIOS payload then be sure
|
||||
*If you want to install nonGeNUine Boot with the SeaBIOS payload then be sure
|
||||
to reconfigure GRUB2 correctly, else your system won't boot.*
|
||||
|
||||
Coreboot wiki page
|
||||
|
@ -229,11 +229,12 @@ remove it.*
|
|||
Make it overheat less
|
||||
---------------------
|
||||
|
||||
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
|
||||
be retained.
|
||||
NOTE: in nonGeNUine Boot, this section is less relevant, because C3
|
||||
states are now; the issue pertained to much older releases of Libreboot,
|
||||
upon which nonGeNUine Boot is based. However, this section may still be useful,
|
||||
so it will be retained.
|
||||
|
||||
The MacBook2,1 overheats a lot with libreboot, we still don't know why but a simple workaround is to install macfanctld.
|
||||
The MacBook2,1 overheats a lot with nonGeNUine Boot, we still don't know why but a simple workaround is to install macfanctld.
|
||||
|
||||
Macfanctld is available on the default repos of many distributions.
|
||||
|
||||
|
@ -295,7 +296,7 @@ to the file /etc/vconsole.conf and then restart the computer.
|
|||
Make touchpad more responsive
|
||||
-----------------------------
|
||||
|
||||
Linux kernels of version 3.15 or lower might make the touchpad
|
||||
GNU+Linux kernels of version 3.15 or lower might make the touchpad
|
||||
extremely sluggish. A user reported that they could get better
|
||||
response from the touchpad with the following in their xorg.conf:
|
||||
|
||||
|
|
|
@ -55,8 +55,8 @@ Dell Latitude E6400
|
|||
===================
|
||||
|
||||
**If you haven't bought an R400 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Introduction
|
||||
|
@ -72,7 +72,7 @@ There are two possible flash chip sizes for the R400: 4MiB (32Mbit) or
|
|||
the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16.
|
||||
|
||||
*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 nonGeNUine Boot. nonGeNUine Boot disables and removes it by using a
|
||||
modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
|
||||
(contains notes, plus instructions)
|
||||
|
||||
|
@ -84,7 +84,7 @@ EC update {#ecupdate}
|
|||
|
||||
It is recommended that you update to the latest EC firmware version. The
|
||||
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
|
||||
libreboot, so we don't actually provide that, but if you still have
|
||||
nonGeNUine Boot, so we don't actually provide that, but if you still have
|
||||
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
|
||||
will update both the BIOS and EC version. See:
|
||||
|
||||
|
@ -92,7 +92,7 @@ will update both the BIOS and EC version. See:
|
|||
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
|
||||
|
||||
NOTE: this can only be done when you are using Lenovo BIOS. How to
|
||||
update the EC firmware while running libreboot is unknown. libreboot
|
||||
update the EC firmware while running nonGeNUine Boot is unknown. nonGeNUine Boot
|
||||
only replaces the BIOS firmware, not EC.
|
||||
|
||||
Updated EC firmware has several advantages e.g. bettery battery
|
||||
|
|
|
@ -54,8 +54,8 @@ Dell Latitude E6400
|
|||
===================
|
||||
|
||||
**If you haven't bought an R500 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Introduction
|
||||
|
@ -69,8 +69,8 @@ The chip is 4MiB NOR flash (SPI protocol) is SOIC8 form factory.
|
|||
Refer to the following guide:\
|
||||
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
|
||||
|
||||
Unlike other GM45+ICH9M thinkpads in libreboot, the R500 doesn't have an Intel
|
||||
PHY (for Gigabit Ethernet). However, libreboot still includes an Intel flash
|
||||
Unlike other GM45+ICH9M thinkpads in nonGeNUine Boot, the R500 doesn't have an Intel
|
||||
PHY (for Gigabit Ethernet). However, nonGeNUine Boot still includes an Intel flash
|
||||
descriptor, but with just the descriptor and BIOS region. The `ich9gen` program
|
||||
supports this fully.
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ x-toc-enable: true
|
|||
|
||||
<div class="specs">
|
||||
<center>
|
||||
<img tabindex=1 alt="ThinkPad T400" class="p" src="https://av.libreboot.org/t400/boot1.jpg" /><span class="f"><img src="https://av.libreboot.org/t400/boot1.jpg" /></span>
|
||||
<img tabindex=1 alt="ThinkPad T400" class="p" src="https://avgnu.vimuser.org/t400/boot1.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/t400/boot1.jpg" /></span>
|
||||
</center>
|
||||
|
||||
| ***Specifications*** | |
|
||||
|
@ -54,8 +54,8 @@ Dell Latitude E6400
|
|||
===================
|
||||
|
||||
**If you haven't bought an T400 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Introduction
|
||||
|
@ -71,7 +71,7 @@ There are two possible flash chip sizes for the T400: 4MiB (32Mbit) or
|
|||
the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16.
|
||||
|
||||
*The T400 laptops come with the ME (and sometimes AMT in addition)
|
||||
before flashing libreboot. libreboot disables and removes it by using a
|
||||
before flashing nonGeNUine Boot. nonGeNUine Boot disables and removes it by using a
|
||||
modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
|
||||
(contains notes, plus instructions)
|
||||
|
||||
|
@ -83,7 +83,7 @@ EC update {#ecupdate}
|
|||
|
||||
It is recommended that you update to the latest EC firmware version. The
|
||||
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
|
||||
libreboot, so we don't actually provide that, but if you still have
|
||||
nonGeNUine Boot, so we don't actually provide that, but if you still have
|
||||
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
|
||||
will update both the BIOS and EC version. See:
|
||||
|
||||
|
@ -91,7 +91,7 @@ will update both the BIOS and EC version. See:
|
|||
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
|
||||
|
||||
NOTE: this can only be done when you are using Lenovo BIOS. How to
|
||||
update the EC firmware while running libreboot is unknown. libreboot
|
||||
update the EC firmware while running nonGeNUine Boot is unknown. nonGeNUine Boot
|
||||
only replaces the BIOS firmware, not EC.
|
||||
|
||||
Updated EC firmware has several advantages e.g. bettery battery
|
||||
|
|
|
@ -5,7 +5,7 @@ x-toc-enable: true
|
|||
|
||||
<div class="specs">
|
||||
<center>
|
||||
<img tabindex=1 alt="ThinkPad T500" class="p" src="https://av.libreboot.org/t500/0062.jpg" /><span class="f"><img src="https://av.libreboot.org/t500/0062.jpg" /></span>
|
||||
<img tabindex=1 alt="ThinkPad T500" class="p" src="https://avgnu.vimuser.org/t500/0062.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/t500/0062.jpg" /></span>
|
||||
</center>
|
||||
|
||||
| ***Specifications*** | |
|
||||
|
@ -54,8 +54,8 @@ Dell Latitude E6400
|
|||
===================
|
||||
|
||||
**If you haven't bought an T500 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Introduction
|
||||
|
@ -73,7 +73,7 @@ There are two possible flash chip sizes for the T500: 4MiB (32Mbit) or
|
|||
the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16.
|
||||
|
||||
*The T500 laptops come with the ME (and sometimes AMT in addition)
|
||||
before flashing libreboot. libreboot disables and removes it by using a
|
||||
before flashing nonGeNUine Boot. nonGeNUine Boot disables and removes it by using a
|
||||
modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
|
||||
(contains notes, plus instructions)
|
||||
|
||||
|
@ -85,7 +85,7 @@ EC update {#ecupdate}
|
|||
|
||||
It is recommended that you update to the latest EC firmware version. The
|
||||
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
|
||||
libreboot, so we don't actually provide that, but if you still have
|
||||
nonGeNUine Boot, so we don't actually provide that, but if you still have
|
||||
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
|
||||
will update both the BIOS and EC version. See:
|
||||
|
||||
|
@ -93,7 +93,7 @@ will update both the BIOS and EC version. See:
|
|||
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
|
||||
|
||||
NOTE: this can only be done when you are using Lenovo BIOS. How to
|
||||
update the EC firmware while running libreboot is unknown. libreboot
|
||||
update the EC firmware while running nonGeNUine Boot is unknown. nonGeNUine Boot
|
||||
only replaces the BIOS firmware, not EC.
|
||||
|
||||
Updated EC firmware has several advantages e.g. bettery battery
|
||||
|
|
|
@ -5,7 +5,7 @@ x-toc-enable: true
|
|||
|
||||
<div class="specs">
|
||||
<center>
|
||||
<img tabindex=1 alt="ThinkPad X200" class="p" src="https://av.libreboot.org/x200/disassembly/0019.jpg" /><span class="f"><img src="https://av.libreboot.org/x200/disassembly/0019.jpg" /></span>
|
||||
<img tabindex=1 alt="ThinkPad X200" class="p" src="https://avgnu.vimuser.org/x200/disassembly/0019.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/x200/disassembly/0019.jpg" /></span>
|
||||
</center>
|
||||
|
||||
| ***Specifications*** | |
|
||||
|
@ -52,8 +52,8 @@ Dell Latitude E6400
|
|||
===================
|
||||
|
||||
**If you haven't bought an X200 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Introduction
|
||||
|
@ -63,7 +63,7 @@ It is believed that all X200 laptops are compatible. X200S and X200
|
|||
Tablet will also work, [depending on the configuration](#x200s).
|
||||
|
||||
It may be possible to put an X200 motherboard in an X201 chassis, though this
|
||||
is currently untested by the libreboot project. The same may also apply between
|
||||
is currently untested by the nonGeNUine Boot project. The same may also apply between
|
||||
X200S and X201S; again, this is untested. *It's most likely true.*
|
||||
|
||||
There are two possible flash chip sizes for the X200: 4MiB (32Mbit) or
|
||||
|
@ -71,7 +71,7 @@ There are two possible flash chip sizes for the X200: 4MiB (32Mbit) or
|
|||
the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16.
|
||||
|
||||
*The X200 laptops come with the ME (and sometimes AMT in addition)
|
||||
before flashing libreboot. libreboot disables and removes it by using a
|
||||
before flashing nonGeNUine Boot. nonGeNUine Boot disables and removes it by using a
|
||||
modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
|
||||
(contains notes, plus instructions)
|
||||
|
||||
|
@ -83,7 +83,7 @@ EC update {#ecupdate}
|
|||
|
||||
It is recommended that you update to the latest EC firmware version. The
|
||||
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
|
||||
libreboot, so we don't actually provide that, but if you still have
|
||||
nonGeNUine Boot, so we don't actually provide that, but if you still have
|
||||
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
|
||||
will update both the BIOS and EC version. See:
|
||||
|
||||
|
@ -93,7 +93,7 @@ will update both the BIOS and EC version. See:
|
|||
- [X200t BIOS Update](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814)
|
||||
|
||||
NOTE: this can only be done when you are using Lenovo BIOS. How to
|
||||
update the EC firmware while running libreboot is unknown. libreboot
|
||||
update the EC firmware while running nonGeNUine Boot is unknown. nonGeNUine Boot
|
||||
only replaces the BIOS firmware, not EC.
|
||||
|
||||
Updated EC firmware has several advantages e.g. better battery
|
||||
|
|
|
@ -5,7 +5,7 @@ x-toc-enable: true
|
|||
|
||||
<div class="specs">
|
||||
<center>
|
||||
<img tabindex=1 alt="ThinkPad X200" class="p" src="https://av.libreboot.org/x200/disassembly/0019.jpg" /><span class="f"><img src="https://av.libreboot.org/x200/disassembly/0019.jpg" /></span>
|
||||
<img tabindex=1 alt="ThinkPad X200" class="p" src="https://avgnu.vimuser.org/x200/disassembly/0019.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/x200/disassembly/0019.jpg" /></span>
|
||||
</center>
|
||||
|
||||
| ***Характеристики*** | |
|
||||
|
@ -56,7 +56,7 @@ P*: Частково працює з бінарними компонентами
|
|||
Tablet також працюватимуть, [залежно від конфігурації](#x200s).
|
||||
|
||||
Можливо, можна розмістити материнську плату X200 у шасі X201, хоча це
|
||||
наразі не перевірено проектом libreboot. Те ж саме може стосуватися
|
||||
наразі не перевірено проектом nonGeNUine Boot. Те ж саме може стосуватися
|
||||
X200S та X201S; знову ж таки, це неперевірено. *Швидше за все, це правда.*
|
||||
|
||||
Є два можливих розміра флеш-чіпа для X200: 4MБ (32 Мбіт) або
|
||||
|
@ -64,7 +64,7 @@ X200S та X201S; знову ж таки, це неперевірено. *Шви
|
|||
упором для рук: 4МБ це SOIC-8, 8МБ це SOIC-16.
|
||||
|
||||
*Ноутбуки X200 постачаються з ME (та іноді AMT додатково)
|
||||
перед перепрошивкою libreboot. libreboot вимикає та видаляє його за допомогою
|
||||
перед перепрошивкою nonGeNUine Boot. nonGeNUine Boot вимикає та видаляє його за допомогою
|
||||
модифікованого дескриптора: дивіться [../install/ich9utils.md](../install/ich9utils.md)*
|
||||
(містить примітки та інструкції)
|
||||
|
||||
|
@ -76,7 +76,7 @@ X200S та X201S; знову ж таки, це неперевірено. *Шви
|
|||
|
||||
Рекомендується оновити мікропрограму EC до останньої версії.
|
||||
[Прошивка EC](../../faq.md#ec-embedded-controller-firmware) є окремою від
|
||||
libreboot, тому ми її фактично не надаємо, але якщо у вас все ще є
|
||||
nonGeNUine Boot, тому ми її фактично не надаємо, але якщо у вас все ще є
|
||||
Lenovo BIOS, ви можете просто запустити утиліту оновлення BIOS Lenovo, яка
|
||||
оновить як BIOS, так і версію EC. Дивіться:
|
||||
|
||||
|
@ -86,7 +86,7 @@ Lenovo BIOS, ви можете просто запустити утиліту о
|
|||
- [Оновлення BIOS X200t](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814)
|
||||
|
||||
ПРИМІТКА: це можна зробити, лише якщо ви використовуєте Lenovo BIOS. Як
|
||||
оновити мікропрограму EC, користуючись libreboot, невідомо. libreboot
|
||||
оновити мікропрограму EC, користуючись nonGeNUine Boot, невідомо. nonGeNUine Boot
|
||||
тільки замінює прошивку BIOS, не EC.
|
||||
|
||||
Оновлена мікропрограма EC має декілька переваг, напр. краще поводження
|
||||
|
|
|
@ -2,28 +2,32 @@
|
|||
title: Documentation
|
||||
...
|
||||
|
||||
Always check [libreboot.org](https://libreboot.org/) for the latest updates to
|
||||
libreboot. News, including release announcements, can be found in
|
||||
Always check the nonGeNUine Boot website for the latest updates to
|
||||
nonGeNUine Boot. News, including release announcements, can be found in
|
||||
the [main news section](../news/).
|
||||
|
||||
[Answers to Frequently Asked Questions about libreboot](../faq.md).
|
||||
**nonGeNUine Boot was originally designated as GNU Boot unofficially, but
|
||||
re-branded to nonGeNUine Boot on [21
|
||||
July 2023](../news/nongenuineboot20230717.html#update-21-july-2023)**
|
||||
|
||||
Installing libreboot
|
||||
[Answers to Frequently Asked Questions about nonGeNUine Boot](../faq.md).
|
||||
|
||||
Installing nonGeNUine Boot
|
||||
====================
|
||||
|
||||
- [What systems can I use libreboot on?](hardware/)
|
||||
- [How to install libreboot](install/)
|
||||
- [What systems can I use nonGeNUine Boot on?](hardware/)
|
||||
- [How to install nonGeNUine Boot](install/)
|
||||
|
||||
Documentation related to operating systems
|
||||
============================
|
||||
|
||||
- [How to install BSD on an x86 host system](bsd/)
|
||||
- [Linux Guides](linux/)
|
||||
- [GNU+Linux Guides](gnulinux/)
|
||||
|
||||
Information for developers
|
||||
==========================
|
||||
|
||||
- [How to compile the libreboot source code](build/)
|
||||
- [How to compile the nonGeNUine Boot source code](build/)
|
||||
- [Build system developer documentation](maintain/)
|
||||
- [GRUB payload](grub/)
|
||||
- [U-Boot payload](uboot/)
|
||||
|
|
|
@ -2,28 +2,28 @@
|
|||
title: Документація
|
||||
...
|
||||
|
||||
Завжди перевіряйте [libreboot.org](https://libreboot.org/index.uk.html) для останніх оновлень
|
||||
libreboot. Новини, включаючи оголошення про випуски, може бути знайдено
|
||||
Завжди перевіряйте nonGeNUine Boot для останніх оновлень
|
||||
nonGeNUine Boot. Новини, включаючи оголошення про випуски, може бути знайдено
|
||||
в [основній секції новин](../news/).
|
||||
|
||||
[Відповіді на поширені запитання про libreboot](../faq.md).
|
||||
[Відповіді на поширені запитання про nonGeNUine Boot](../faq.md).
|
||||
|
||||
Встановлення libreboot
|
||||
====================
|
||||
Встановлення nonGeNUine Boot
|
||||
=====================
|
||||
|
||||
- [На яких системах я можу встановлювати libreboot?](hardware/)
|
||||
- [Як встановити libreboot](install/)
|
||||
- [На яких системах я можу встановлювати nonGeNUine Boot?](hardware/)
|
||||
- [Як встановити nonGeNUine Boot](install/)
|
||||
|
||||
Документація, яка має відношення до операційних систем
|
||||
============================
|
||||
|
||||
- [Як встановити BSD на x86 хостову систему](bsd/)
|
||||
- [Керівництва Linux](linux/)
|
||||
- [Керівництва GNU+Linux](gnulinux/)
|
||||
|
||||
Інформація для розробників
|
||||
==========================
|
||||
|
||||
- [Як зібрати джерельний код libreboot](build/)
|
||||
- [Як зібрати джерельний код nonGeNUine Boot](build/)
|
||||
- [Документація розробника системи побудови](maintain/)
|
||||
- [Корисне навантаження GRUB](grub/)
|
||||
- [Корисне навантаження U-Boot](uboot/)
|
||||
|
|
|
@ -6,7 +6,13 @@ x-toc-enable: true
|
|||
WARNING: This board is known to have non-functioning video init at the time
|
||||
of writing, 19 February 2023. It is as yet unsolved.
|
||||
|
||||
See: <https://notabug.org/libreboot/lbmk/issues/136>
|
||||
**NOTE: This information is inherited from Libreboot, and should probably
|
||||
be removed. It refers to older Libreboot releases, which supported this
|
||||
hardware in the configuration described, but nonGeNUine Boot has never supported
|
||||
this machine.**
|
||||
|
||||
See: <https://notabug.org/libreboot/lbmk/issues/136> (NOTE: Libreboot issue page,
|
||||
not nonGeNUine Boot)
|
||||
|
||||
Introduction
|
||||
===========
|
||||
|
@ -22,28 +28,15 @@ A special fork of flashrom, maintained by Google, is required for flashing.
|
|||
More information about this is present in the generic [chromebook flashing
|
||||
instructions](chromebooks.md).
|
||||
|
||||
Depthcharge payload (obsolete)
|
||||
------------------------------
|
||||
|
||||
This board was also supported in Libreboot 20160907, with the Depthcharge
|
||||
payload. Support was dropped in later releases, and then re-added in the
|
||||
December 2022 release but with *u-boot* payload (not *depthcharge*).
|
||||
|
||||
Refer to older versions of this page, in `lbwww.git`, if you wish to see
|
||||
instructions pertaining to Depthcharge:
|
||||
|
||||
* <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/install/c201.md>
|
||||
* <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/hardware/c201.md>
|
||||
|
||||
U-boot payload
|
||||
==============
|
||||
|
||||
U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi
|
||||
Yasak (`alpernebbi` on Libreboot IRC).
|
||||
Yasak on behalf of the Libreboot project, upon which nonGeNUine Boot is based.
|
||||
|
||||
Read the section pertaining to U-boot payload:
|
||||
|
||||
[u-boot payload documentation for Libreboot](../uboot/)
|
||||
[u-boot payload documentation for nonGeNUine Boot](../uboot/)
|
||||
|
||||
Internal flashing
|
||||
=================
|
||||
|
@ -53,7 +46,7 @@ If you're flashing good firmware, and the machine boots properly, you can
|
|||
do it in software, from the host CPU.
|
||||
|
||||
In the past, C201 was the only CrOS device so this page contained information
|
||||
about internal flashing. Libreboot now supports many more CrOS devices, so
|
||||
about internal flashing. nonGeNUine Boot now supports many more CrOS devices, so
|
||||
the information has moved.
|
||||
|
||||
See: [chromebook flashing instructions](chromebooks.md)
|
||||
|
@ -74,9 +67,9 @@ 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
|
||||
photos:
|
||||
|
||||
[![Screws](https://av.libreboot.org/c201/screws.jpg)](https://av.libreboot.org/c201/screws.jpg)
|
||||
[![Screws](https://avgnu.vimuser.org/c201/screws.jpg)](https://avgnu.vimuser.org/c201/screws.jpg)
|
||||
|
||||
[![WP screw](https://av.libreboot.org/c201/wp-screw.jpg)](https://av.libreboot.org/c201/wp-screw.jpg)
|
||||
[![WP screw](https://avgnu.vimuser.org/c201/wp-screw.jpg)](https://avgnu.vimuser.org/c201/wp-screw.jpg)
|
||||
|
||||
The write protect screw can be put back in place later, when the device
|
||||
is known to be in a working state.
|
||||
|
@ -88,10 +81,10 @@ If the machine is no longer booting, due to bad firmware, you can unbrick
|
|||
it externally. Refer to [external flash instructions](spi.md).
|
||||
|
||||
[![SPI flash
|
||||
layout](https://av.libreboot.org/c201/spi-flash-layout.jpg)](https://av.libreboot.org/c201/spi-flash-layout.jpg)
|
||||
layout](https://avgnu.vimuser.org/c201/spi-flash-layout.jpg)](https://avgnu.vimuser.org/c201/spi-flash-layout.jpg)
|
||||
|
||||
[![Battery
|
||||
connector](https://av.libreboot.org/c201/battery-connector.jpg)](https://av.libreboot.org/c201/battery-connector.jpg)
|
||||
connector](https://avgnu.vimuser.org/c201/battery-connector.jpg)](https://avgnu.vimuser.org/c201/battery-connector.jpg)
|
||||
|
||||
You do not need to correct the `WP#` pin because it is held high via pull-up
|
||||
resistor to 3.3v, when the write-protect screw is loosened (when tightened,
|
||||
|
|
|
@ -3,11 +3,6 @@ title: Chromebook flashing instructions
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
NOTE: daisy, peach and veyron boards were temporarily removed from
|
||||
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
|
||||
officially supports the `gru` chromebooks.
|
||||
|
||||
This page attempts to give a brief, general overview of how to flash
|
||||
custom firmware on ChromeOS devices. This guide usually refers to all of
|
||||
them as "Chromebook"s since it's the most common form factor.
|
||||
|
@ -47,7 +42,7 @@ Identify your device
|
|||
====================
|
||||
|
||||
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. nonGeNUine Boot ROM
|
||||
images also use these, you should only use the one corresponding to your
|
||||
device's. There are a number of ways to find it, some are:
|
||||
|
||||
|
@ -74,7 +69,7 @@ to flash firmware internally. To back up stock firmware you can run:
|
|||
Keep the resulting `depthcharge.rom` file safe and properly backed up on
|
||||
another device.
|
||||
|
||||
If you can already boot a conventional Linux distro on your Chromebook,
|
||||
If you can already boot a conventional GNU+Linux distro on your Chromebook,
|
||||
you may be able to use `flashrom -p linux_mtd` on that system instead.
|
||||
|
||||
Check external flashability
|
||||
|
@ -90,7 +85,7 @@ extra careful about that.
|
|||
On newer Chromebooks, there is a root-of-trust chip providing a
|
||||
[Closed Case Debugging](https://chromium.googlesource.com/chromiumos/platform/ec/+/cr50_stab/docs/case_closed_debugging_cr50.md)
|
||||
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 nonGeNUine Boot supports do not have this.
|
||||
|
||||
Disable write protection
|
||||
========================
|
||||
|
@ -102,7 +97,7 @@ owner. How to do so depends on the board, refer to the
|
|||
for more info. You will usually need to do this only once for the
|
||||
board's lifetime, unless you manually enable it again.
|
||||
|
||||
On most boards that Libreboot supports, write-protection is enforced by
|
||||
On most boards that nonGeNUine Boot supports, write-protection is enforced by
|
||||
a physical screw. When screwed in, it forms an electrical connection
|
||||
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
|
||||
|
@ -125,18 +120,18 @@ The *--wp* arguments are only available on the
|
|||
[ChromiumOS fork of flashrom](https://sites.google.com/a/chromium.org/dev/chromium-os/packages/cros-flashrom).
|
||||
If you are using another OS or an external flasher, you may need to
|
||||
compile and use that flashrom fork to disable write-protection. There is
|
||||
no `lbmk` support yet for automatically building it.
|
||||
no `gbmk` support yet for automatically building it.
|
||||
|
||||
Prepare the ROM image
|
||||
=====================
|
||||
|
||||
Libreboot ROM image layouts are currently incompatible with the regions
|
||||
nonGeNUine Boot ROM image layouts are currently incompatible with the regions
|
||||
that should be carried over from the stock firmware. However, the
|
||||
released images should still be somewhat usable, since the Chromebooks
|
||||
supported so far don't require any non-redistributable blobs to be
|
||||
injected by the end user.
|
||||
|
||||
Future Libreboot versions will likely require post-processing to
|
||||
Future nonGeNUine Boot versions will likely require post-processing to
|
||||
preserve irreplaceable data in the firmware image. For now, make sure to
|
||||
keep backups of the original firmware.
|
||||
|
||||
|
@ -156,10 +151,10 @@ documentation if your board supports it.
|
|||
|
||||
To flash the entire ROM image internally, run within ChromeOS:
|
||||
|
||||
sudo flashrom -p host -w libreboot.rom
|
||||
sudo flashrom -p host -v libreboot.rom
|
||||
sudo flashrom -p host -w nongenuineboot.rom
|
||||
sudo flashrom -p host -v nongenuineboot.rom
|
||||
|
||||
If you can already boot a conventional Linux distro on your Chromebook,
|
||||
If you can already boot a conventional GNU+Linux distro on your Chromebook,
|
||||
you may be able to use `flashrom -p linux_mtd` on that system instead.
|
||||
|
||||
Install an operating system (experimental research)
|
||||
|
@ -176,10 +171,12 @@ three general methods for installing that vary depending on the distribution:
|
|||
Successful installations:
|
||||
-------------------------
|
||||
|
||||
* [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md).
|
||||
* [ArchGNU+LinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md). (TODO: test Parabola)
|
||||
* [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md).
|
||||
* [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201).
|
||||
|
||||
**TODO: Test Debian instructions with Trisquel.**
|
||||
|
||||
Unsuccessful installations:
|
||||
---------------------------
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
title: D510MO flashing tutorial
|
||||
...
|
||||
|
||||
This guide is for those who want libreboot on their Intel D510MO
|
||||
This guide is for those who want nonGeNUine Boot on their Intel D510MO
|
||||
motherboard while they still have the original BIOS present.
|
||||
|
||||
NOTE: D410PT is another designation and it's the same board. Flash the same ROM.
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
title: Intel D945GCLF flashing tutorial
|
||||
...
|
||||
|
||||
NOTE: On newer Libreboot revisions, boot issues were reported so this board
|
||||
NOTE: On newer nonGeNUine Boot revisions, boot issues were reported so this board
|
||||
was temporarily removed. It will be re-added at a later date, after testing
|
||||
has been done.
|
||||
|
||||
This guide is for those who want libreboot on their Intel D945GCLF
|
||||
This guide is for those who want nonGeNUine Boot on their Intel D945GCLF
|
||||
motherboard while they still have the original BIOS present.
|
||||
|
||||
D945GCLF2D also reported working by a user.
|
||||
|
@ -20,4 +20,4 @@ Flashing instructions {#clip}
|
|||
Refer to [spi.md](spi.md) for how to re-flash externally.
|
||||
|
||||
Here is an image of the flash chip:\
|
||||
![](https://av.libreboot.org/d945gclf/d945gclf_spi.jpg)
|
||||
![](https://avgnu.vimuser.org/d945gclf/d945gclf_spi.jpg)
|
||||
|
|
|
@ -9,7 +9,7 @@ Introduction
|
|||
Initial flashing instructions for the E6400. DO NOT flash the Nvidia GPU
|
||||
variant. This page pertains only to the Intel GPU variant.
|
||||
|
||||
This guide is for those who want libreboot on their Latitude E6400 while
|
||||
This guide is for those who want nonGeNUine Boot on their Latitude E6400 while
|
||||
they still have the original Dell BIOS present. This guide can also be
|
||||
followed (adapted) if you brick your E6400, and you want to recover it.
|
||||
|
||||
|
@ -19,7 +19,7 @@ to that of ThinkPad X200, T400 etc where no-ME setup is possible.
|
|||
A note about GPUs
|
||||
-----------------
|
||||
|
||||
Models with Intel graphics are GM45, and fully supported in Libreboot
|
||||
Models with Intel graphics are GM45, and fully supported in nonGeNUine Boot
|
||||
with native initialisation; ROM images are available since.
|
||||
**The Intel video initialisation is libre, implemented with publicly available
|
||||
source code via libgfxinit, from the coreboot project.**
|
||||
|
@ -38,7 +38,7 @@ MAC address {#macaddress}
|
|||
===========
|
||||
|
||||
The MAC address is part of the ROM image that you're flashing. You can change
|
||||
it at any time, before or after you've flashed Libreboot; you can also change
|
||||
it at any time, before or after you've flashed nonGeNUine Boot; you can also change
|
||||
it in the *Dell* BIOS, if you really want to. This is for the onboard gigabit
|
||||
ethernet device.
|
||||
|
||||
|
@ -59,7 +59,7 @@ etc). You can *also* run ich9gen, if you wish:
|
|||
Intel GPU: libre video initialisation available
|
||||
===============================================
|
||||
|
||||
Libreboot uses coreboot's native `libgfxinit` on this platform, for
|
||||
nonGeNUine Boot uses coreboot's native `libgfxinit` on this platform, for
|
||||
variants with Intel graphics.
|
||||
|
||||
How to flash internally (no diassembly)
|
||||
|
@ -72,25 +72,25 @@ BSD *boots* and works properly on these machines, but take note:
|
|||
|
||||
Nicholas's [e6400-flash-unlock](https://browse.libreboot.org/lbmk.git/plain/util/e6400-flash-unlock/e6400_flash_unlock.c)
|
||||
utility has not yet been ported to BSD systems. The `flashrom` software is
|
||||
available on BSD systems. Libreboot's build system has not yet been ported to
|
||||
available on BSD systems. nonGeNUine Boot's build system has not yet been ported to
|
||||
the BSDs.
|
||||
|
||||
BSD users could run Linux from USB to run `flashrom` and `e6400-flash-unlock`.
|
||||
BSD users could run GNU+Linux from USB to run `flashrom` and `e6400-flash-unlock`.
|
||||
Virtualisation is available in BSDs, where it should be feasible to run the
|
||||
Libreboot build system, in Linux, under virtualisation.
|
||||
nonGeNUine Boot build system, in GNU+Linux, under virtualisation.
|
||||
|
||||
Flashing from Linux
|
||||
Flashing from GNU+Linux
|
||||
-------------------
|
||||
|
||||
MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this
|
||||
MAKE SURE you boot with this GNU+Linux kernel parameter: `iomem=relaxed` - this
|
||||
disables memory protections, permitting `/dev/mem` access needed by flashrom.
|
||||
The flash is memory mapped and flashrom accesses it via `/dev/mem`.
|
||||
|
||||
You can flash Libreboot directly from the vendor (Dell) BIOS, without taking
|
||||
the machine apart. It can be done entirely from Linux. It will probably also
|
||||
work on BSD systems, but it has only been testing on Linux thus far.
|
||||
You can flash nonGeNUine Boot directly from the vendor (Dell) BIOS, without taking
|
||||
the machine apart. It can be done entirely from GNU+Linux. It will probably also
|
||||
work on BSD systems, but it has only been testing on GNU+Linux thus far.
|
||||
|
||||
Check `util/e6400-flash-unlock` in the `lbmk.git` repository, or releases.
|
||||
Check `util/e6400-flash-unlock` in the `gbmk.git` repository, or releases.
|
||||
|
||||
Go in there:
|
||||
|
||||
|
@ -116,25 +116,25 @@ Protected Range registers.
|
|||
|
||||
When you flash it, you can use this command:
|
||||
|
||||
flashrom -p internal -w libreboot.rom
|
||||
flashrom -p internal -w nongenuineboot.rom
|
||||
|
||||
Where `libreboot.rom` is your E6400 ROM. *Make sure* it's the right one.
|
||||
Where `nongenuineboot.rom` is your E6400 ROM. *Make sure* it's the right one.
|
||||
If flashrom complains about multiple flash chips detected, just pick one of
|
||||
them (doesn't matter which one). On *most* Dell machines, the most correct
|
||||
would probably be this option in flashrom: `-c MX25L3205D/MX25L3208D`.
|
||||
|
||||
So:
|
||||
|
||||
flashrom -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D
|
||||
flashrom -p internal -w nongenuineboot.rom -c MX25L3205D/MX25L3208D
|
||||
|
||||
When you see flashrom say `VERIFIED` at the end, that means the flash was
|
||||
successful. If you don't see that, or you're unsure, please [contact the
|
||||
Libreboot project via IRC](../../contact.md).
|
||||
nonGeNUine Boot project via IRC](../../contact.md).
|
||||
|
||||
BACK UP THE FACTORY BIOS
|
||||
========================
|
||||
|
||||
The `-w` option flashes `libreboot.rom`. You may consider *backing up* the
|
||||
The `-w` option flashes `nongenuineboot.rom`. You may consider *backing up* the
|
||||
original Dell BIOS first, using the -r option:
|
||||
|
||||
flashrom -p internal -r backup.rom -c MX25L3205D/MX25L3208D
|
||||
|
|
|
@ -3,7 +3,7 @@ title: GA-G41M-ES2L flashing tutorial
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
This guide is for those who want libreboot on their Intel GA-G41M-ES2L
|
||||
This guide is for those who want nonGeNUine Boot on their Intel GA-G41M-ES2L
|
||||
motherboard while they still have the original BIOS present.
|
||||
|
||||
MAC ADDRESS
|
||||
|
@ -45,22 +45,22 @@ NOTE: You should use a resistor in series, between 1K to 10K ohms, for the 3.3v
|
|||
connection to the CS pin. This is to protect from over-current.
|
||||
|
||||
Here is an image of the flash chip:\
|
||||
![](https://av.libreboot.org/ga-g41m-es2l/ga-g41m-es2l.jpg)
|
||||
![](https://avgnu.vimuser.org/ga-g41m-es2l/ga-g41m-es2l.jpg)
|
||||
|
||||
Internal flashing is possible. Boot with the proprietary BIOS and
|
||||
Linux. There are 2 flash chips (one is backup).
|
||||
GNU+Linux. There are 2 flash chips (one is backup).
|
||||
|
||||
Flash the first chip:
|
||||
|
||||
./flashrom -p internal:dualbiosindex=0 -w libreboot.rom
|
||||
./flashrom -p internal:dualbiosindex=0 -w nongenuineboot.rom
|
||||
|
||||
Flash the second chip:
|
||||
|
||||
./flashrom -p internal:dualbiosindex=1 -w libreboot.rom
|
||||
./flashrom -p internal:dualbiosindex=1 -w nongenuineboot.rom
|
||||
|
||||
NOTE: you can still boot the system with just the main flash chip
|
||||
connected, after desoldering the backup chip. This has been tested while
|
||||
libreboot was already installed onto the main chip.
|
||||
nonGeNUine Boot was already installed onto the main chip.
|
||||
|
||||
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
|
||||
|
|
|
@ -6,25 +6,28 @@ x-toc-enable: true
|
|||
If all you want to do is change the MAC address, you might use `nvmutil`
|
||||
instead. See: [nvmutil documentation](../install/nvmutil.md).
|
||||
|
||||
Both this and nvmutil were *inherited* from Libreboot, upon which nonGeNUine Boot
|
||||
is based.
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
The `ich9utils` utility from Libreboot is used to manipulate Intel Flash
|
||||
The `ich9utils` utility from nonGeNUine Boot is used to manipulate Intel Flash
|
||||
Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically,
|
||||
the `ich9gen` utility can generate 12KiB descriptor+GbE files for inserting
|
||||
into the start of a ROM, where everything after that is the BIOS region. These
|
||||
are special descriptors with the Intel ME region disabled, and Intel ME itself
|
||||
fully disabled.
|
||||
|
||||
ich9utils is handled by the `lbmk` (libreboot-make) build system, but the code
|
||||
itself is hosted in a separate repository. You can check the Git repositories
|
||||
ich9utils is handled by the `gbmk` (non**G**eNUine**B**oot**M**a**K**e) build system, and the code
|
||||
itself is hosted in that same repository. You can check the Git repositories
|
||||
linked on [../../git.md](../../git.md) if you wish to download and use it.
|
||||
|
||||
It is very *uncommon*, on GM45/ICH9M systems, to have an Intel Flash Descriptor
|
||||
and GbE but *without* an Intel ME. On *most* of these systems (without libreboot,
|
||||
Libreboot or coreboot), there is either descriptor+GbE+ME+BIOS or just BIOS,
|
||||
and GbE but *without* an Intel ME. On *most* of these systems (without GNU
|
||||
Boot or coreboot), there is either descriptor+GbE+ME+BIOS or just BIOS,
|
||||
where on systems with just the BIOS region an Intel GbE NIC is not present.
|
||||
In libreboot (and Libreboot), we provide descriptor+GbE images with Intel ME
|
||||
In nonGeNUine Boot, we provide descriptor+GbE images with Intel ME
|
||||
disabled and not present in the ROM; this enables the Intel GbE NIC to be used,
|
||||
while not having an Intel ME present. A consequence of this is that the
|
||||
malicious features of ME (such as AMT) are not present, however the Intel ME
|
||||
|
@ -58,17 +61,17 @@ ich9utils
|
|||
=========
|
||||
|
||||
You can find `ich9utils` on the [Git page](../../git.md) or you can download
|
||||
`lbmk` from the same page and run the following command in there:
|
||||
`gbmk` from the same page and run the following command in there:
|
||||
|
||||
./build module ich9utils
|
||||
|
||||
You may also find it in the source code tar archives, on releases.
|
||||
|
||||
In `lbmk`, you can use the following command to generate descriptors:
|
||||
In `gbmk`, you can use the following command to generate descriptors:
|
||||
|
||||
./build descriptors ich9m
|
||||
|
||||
The libreboot build system will use the descriptors under `descriptors/ich9m`
|
||||
The nonGeNUine Boot build system will use the descriptors under `descriptors/ich9m`
|
||||
when building ROM images for these machines.
|
||||
|
||||
Alternatively, you can just clone `ich9utils` directly and run `make` in the
|
||||
|
@ -107,7 +110,7 @@ These files contain the descriptor+GbE region and are suitable for systems
|
|||
that have an Intel GbE NIC present. The flash regions (as defined by the
|
||||
Intel Flash Descriptor) are set *read-write* which means that you can also
|
||||
re-flash using `flashrom -p internal` in your operating system running on
|
||||
that machine. This is the default setup used when libreboot's build system
|
||||
that machine. This is the default setup used when nonGeNUine Boot's build system
|
||||
compiles ROM images.
|
||||
|
||||
Alternative versions of these files are also created, which have `ro` in the
|
||||
|
@ -120,27 +123,27 @@ The region setup created by these descriptors is as follows:
|
|||
|
||||
* First 4KiB of flash is: Intel Flash Descriptor
|
||||
* Next 8KiB after Descriptor: Intel GbE region
|
||||
* Rest of the flash, after GbE: BIOS region (BIOS region will have libreboot)
|
||||
* Rest of the flash, after GbE: BIOS region (BIOS region will have nonGeNUine Boot)
|
||||
|
||||
The GbE region contains configuration data for your Intel GbE NIC. You can
|
||||
find information about this in Intel datasheets, and it is very well described
|
||||
in the `ich9utils` source code.
|
||||
|
||||
Assuming that your libreboot image is named **libreboot.rom**, copy the
|
||||
file to where **libreboot.rom** is located and then insert the
|
||||
Assuming that your nonGeNUine Boot image is named **nongenuineboot.rom**, copy the
|
||||
file to where **nongenuineboot.rom** is located and then insert the
|
||||
descriptor+gbe file into the ROM image.
|
||||
|
||||
For 16MiB flash chips:
|
||||
|
||||
dd if=ich9fdgbe_16m.bin of=libreboot.rom bs=12k count=1 conv=notrunc
|
||||
dd if=ich9fdgbe_16m.bin of=nongenuineboot.rom bs=12k count=1 conv=notrunc
|
||||
|
||||
For 8MiB flash chips:
|
||||
|
||||
dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=12k count=1 conv=notrunc
|
||||
dd if=ich9fdgbe_8m.bin of=nongenuineboot.rom bs=12k count=1 conv=notrunc
|
||||
|
||||
For 4MiB flash chips:
|
||||
|
||||
dd if=ich9fdgbe_4m.bin of=libreboot.rom bs=12k count=1 conv=notrunc
|
||||
dd if=ich9fdgbe_4m.bin of=nongenuineboot.rom bs=12k count=1 conv=notrunc
|
||||
|
||||
If you wish to have read-only flash (write protected flash), substitute the
|
||||
above examples with descriptor+GbE images that have `ro` in the filename. RO
|
||||
|
@ -157,13 +160,13 @@ will just supply a descriptor-less setup. Those GbE-less descriptor images
|
|||
created by `ich9gen` are only 4KiB in size, and should *never be used* except
|
||||
for fun, like, basically shits and/or giggles.
|
||||
|
||||
For shits and giggles, R500 ROM images in libreboot use these no-GbE descriptor
|
||||
For shits and giggles, R500 ROM images in nonGeNUine Boot use these no-GbE descriptor
|
||||
images generated by ich9gen. However, a descriptorless setup would also work
|
||||
just fine. ThinkPad R500 doesn't have an Intel PHY in it, and it instead uses
|
||||
a Broadcom NIC for ethernet. In descriptorless mode, ICH9M works very similarly
|
||||
to older ICH7 chipsets.
|
||||
|
||||
Your libreboot.rom image is now ready to be flashed on the system. Refer
|
||||
Your nongenuineboot.rom image is now ready to be flashed on the system. Refer
|
||||
back to [../install/\#flashrom](../install/#flashrom) for how to flash
|
||||
it.
|
||||
|
||||
|
@ -179,8 +182,8 @@ Read on for more information. Use the `ro` files mentioned below, and your
|
|||
flash will be read-only in software (you can still externally re-flash and read
|
||||
the contents of flash).
|
||||
|
||||
For ease of use, libreboot provides ROMs that are read-write by default. In
|
||||
practise, you can boot a Linux kernel with access to lower memory disabled
|
||||
For ease of use, nonGeNUine Boot provides ROMs that are read-write by default. In
|
||||
practise, you can boot a GNU+Linux kernel with access to lower memory disabled
|
||||
which will make software re-flashing impossible (unless you reboot with such
|
||||
memory protections disabled, e.g. `iomem=relaxed` kernel parameter).
|
||||
|
||||
|
@ -226,16 +229,16 @@ appear, if no GbE region was detected inside the ROM image. This is
|
|||
usually the case, when a discrete NIC is used (eg Broadcom) instead of
|
||||
Intel. Only the Intel NICs need a GbE region in the flash chip.
|
||||
|
||||
Assuming that your libreboot image is named **libreboot.rom**, copy the
|
||||
**deblobbed\_descriptor.bin** file to where **libreboot.rom** is located
|
||||
Assuming that your nonGeNUine Boot image is named **nongenuineboot.rom**, copy the
|
||||
**deblobbed\_descriptor.bin** file to where **nongenuineboot.rom** is located
|
||||
and then run:
|
||||
|
||||
dd if=deblobbed_descriptor.bin of=libreboot.rom bs=12k count=1 conv=notrunc
|
||||
dd if=deblobbed_descriptor.bin of=nongenuineboot.rom bs=12k count=1 conv=notrunc
|
||||
|
||||
Alternatively, if you got a the **deblobbed\_4kdescriptor.bin** file (no
|
||||
GbE defined), do this:
|
||||
|
||||
dd if=deblobbed_4kdescriptor.bin of=libreboot.rom bs=4k count=1 conv=notrunc
|
||||
dd if=deblobbed_4kdescriptor.bin of=nongenuineboot.rom bs=4k count=1 conv=notrunc
|
||||
|
||||
(it's very unlikely that you would ever see this. Descriptor without GbE is
|
||||
very rare, probably non-existant, but theoretically possible and this functionality
|
||||
|
@ -258,7 +261,7 @@ build `ich9gen` executable will be able to re-create the very same 12KiB
|
|||
file from scratch, based on the C structs, this time **without** the
|
||||
need for a` factory.rom` dump!
|
||||
|
||||
You should now have a **libreboot.rom** image containing the correct 4K
|
||||
You should now have a **nongenuineboot.rom** image containing the correct 4K
|
||||
descriptor and 8K gbe regions, which will then be safe to flash. Refer
|
||||
back to [index.md/\#gm45](index.md/#gm45) for how to flash
|
||||
it.
|
||||
|
@ -288,7 +291,7 @@ Keep the original factory.rom stored safely somewhere):
|
|||
|
||||
Use-case: a factory.rom image modified in this way would theoretically
|
||||
have no flash protections whatsoever, making it easy to quickly switch
|
||||
between factory/libreboot in software, without ever having to
|
||||
between factory/nongenuineboot in software, without ever having to
|
||||
disassemble and re-flash externally unless you brick the device.
|
||||
|
||||
The sections below are adapted from (mostly) IRC logs related to early
|
||||
|
@ -310,7 +313,7 @@ Early notes {#early_notes}
|
|||
of disabling the descriptor.
|
||||
- **and the location of GPIO33 on the x200s: (was an external link.
|
||||
Putting it here instead)**
|
||||
[https://av.libreboot.org/x200/gpio33_location.jpg](https://av.libreboot.org/x200/gpio33_location.jpg) -
|
||||
[https://avgnu.vimuser.org/x200/gpio33_location.jpg](https://avgnu.vimuser.org/x200/gpio33_location.jpg) -
|
||||
it's above the number 7 on TP37 (which is above the big intel chip
|
||||
at the bottom)
|
||||
- The ME datasheet may not be for the mobile chipsets but it doesn't
|
||||
|
@ -436,7 +439,7 @@ way through the 8K area, and the rest is all 0xFF. This is all
|
|||
documented in the datasheet.
|
||||
|
||||
The GBe region starts at 0x20A000 bytes from the \*end\* of a factory
|
||||
image and is 0x2000 bytes long. In libreboot (deblobbed) the descriptor
|
||||
image and is 0x2000 bytes long. In nonGeNUine Boot (deblobbed) the descriptor
|
||||
is set to put gbe directly after the initial 4K flash descriptor. So the
|
||||
first 4K of the ROM is the descriptor, and then the next 8K is the gbe
|
||||
region.
|
||||
|
@ -457,7 +460,7 @@ not making this stuff up...
|
|||
regions on the X200 factory.rom dumps. The checksums of the backup
|
||||
regions match BABA, however. We think `0xBABA` is the only correct checksum,
|
||||
because those other, similar checksums were only ever found in the "backup"
|
||||
GbE regions on factory ROM dumps. In libreboot, we simply use `0xBABA` and
|
||||
GbE regions on factory ROM dumps. In nonGeNUine Boot, we simply use `0xBABA` and
|
||||
ensure that both 4KiB regions in GbE NVM have that checksum.
|
||||
|
||||
By default, the X200 (as shipped by Lenovo) actually has an invalid main
|
||||
|
@ -478,10 +481,10 @@ Flash descriptor region {#flash_descriptor_region}
|
|||
|
||||
<http://www.intel.co.uk/content/dam/doc/datasheet/io-controller-hub-9-datasheet.pdf>
|
||||
from page 850 onwards. This explains everything that is in the flash
|
||||
descriptor, which can be used to understand what libreboot is doing
|
||||
descriptor, which can be used to understand what nonGeNUine Boot is doing
|
||||
about modifying it.
|
||||
|
||||
How to deblob:
|
||||
How to deblob *manually*:
|
||||
|
||||
- patch the number of regions present in the descriptor from 5 - 3
|
||||
- originally descriptor + bios + me + gbe + platform
|
||||
|
@ -502,7 +505,7 @@ There's an interesting parameter called 'ME Alternate disable', which
|
|||
allows the ME to only handle hardware errata in the southbridge, but
|
||||
disables any other functionality. This is similar to the 'ignition' in
|
||||
the 5 series and higher but using the standard firmware instead of a
|
||||
small 128K version. Useless for libreboot, though.
|
||||
small 128K version. Useless for nonGeNUine Boot, though.
|
||||
|
||||
To deblob GM45, you chop out the platform and ME regions and correct the
|
||||
addresses in flReg1-4. Then you set meDisable to 1 in ICHSTRAP0 and
|
||||
|
@ -521,7 +524,7 @@ How to patch the descriptor from the factory.rom dump
|
|||
- Then it can be dd'd into the first 12K part of a coreboot image.
|
||||
- the GBe region always starts 0x20A000 bytes from the end of the ROM
|
||||
|
||||
This means that libreboot's descriptor region will simply define the
|
||||
This means that nonGeNUine Boot's descriptor region will simply define the
|
||||
following regions:
|
||||
|
||||
- descriptor (4K)
|
||||
|
@ -539,8 +542,8 @@ If it's in descriptor mode, then the first 4 bytes will be 5A A5 F0 0F.
|
|||
platform data partition in boot flash (factory.rom / lenovo bios) {#platform_data_region}
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Basically useless for libreboot, since it appears to be a blob. Removing
|
||||
it didn't cause any issues in libreboot. We think it's just random data that
|
||||
Basically useless for nonGeNUine Boot, since it appears to be a blob. Removing
|
||||
it didn't cause any issues in nonGeNUine Boot. We think it's just random data that
|
||||
the manufacturer can put there, to use in their firmware. Intel datasheets seem
|
||||
to suggest that the platform region serves no specific function except to
|
||||
provide a region in flash for the hardware manufacturer to use, for whatever
|
||||
|
|
|
@ -3,7 +3,7 @@ title: Installation instructions
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
This section relates to installing libreboot on supported targets.
|
||||
This section relates to installing nonGeNUine Boot on supported targets.
|
||||
|
||||
NOTE: if running `flashrom -p internal` for software based flashing, and you
|
||||
get an error related to `/dev/mem` access, you should reboot with
|
||||
|
@ -13,11 +13,11 @@ has `CONFIG_STRICT_DEVMEM` not enabled.
|
|||
PRECAUTIONS
|
||||
===========
|
||||
|
||||
libreboot flashing can be risky business. Please ensure that you have external
|
||||
nonGeNUine Boot flashing can be risky business. Please ensure that you have external
|
||||
flashing equipment, in case anything goes wrong. The general rule of thumb with
|
||||
firmware is this: if it's non-free, replace it, but if you're already running
|
||||
free firmware and it works nicely for you, you do not need to update it.
|
||||
However, you might want to tweak it or try out newer releases of libreboot if
|
||||
However, you might want to tweak it or try out newer releases of nonGeNUine Boot if
|
||||
they have bug fixes for your board, and/or new security fixes.
|
||||
|
||||
If you're already running libre firmware on your board, you should decide for
|
||||
|
@ -31,7 +31,7 @@ Init types and display mode
|
|||
---------------------------
|
||||
|
||||
NOTE: regardless of init type, on desktops, an external/add-on GPU can always
|
||||
be used. On laptop hardware in libreboot, libgfxinit will always be used. On
|
||||
be used. On laptop hardware in nonGeNUine Boot, libgfxinit will always be used. On
|
||||
desktop/server hardware, if available, libgfxinit will also always be used by
|
||||
default (but in that setup, SeaBIOS can be used if you want to use an add-on
|
||||
graphics card, e.g. on KCMA-D8, KGPE-D16, GA-G41M-ES2L)
|
||||
|
@ -63,11 +63,11 @@ int10h text mode is used on startup.
|
|||
|
||||
### vgarom
|
||||
|
||||
NOTE: no configs in libreboot are currently available that use this method.
|
||||
NOTE: no configs in nonGeNUine Boot are currently available that use this method.
|
||||
|
||||
With this method, coreboot is finding, loading and executing a VGA option ROM
|
||||
for your graphics hardware. This would not be done on laptops, because that
|
||||
implies supplying non-free binary blobs in libreboot, so this setup would only
|
||||
implies supplying non-free binary blobs in nonGeNUine Boot, so this setup would only
|
||||
ever be provided on desktop hardware where no GPU exists or where it is
|
||||
desirable for you to use an external/add-on graphics card
|
||||
|
||||
|
@ -91,7 +91,7 @@ In this setup, coreboot is neither implementing libgfxinit / native graphics
|
|||
initialization nor is it finding/loading/executing VGA option ROMs. In this
|
||||
setup, SeaBIOS would most likely be used for that.
|
||||
|
||||
The `normal` setup is supported in the libreboot build system, but not
|
||||
The `normal` setup is supported in the nonGeNUine Boot build system, but not
|
||||
currently used. It is there for desktop hardware that will be added in the
|
||||
future, where those desktop boards do not have an onboard GPU and therefore an
|
||||
add-on GPU is always used..
|
||||
|
@ -116,42 +116,6 @@ an option in the boot menu.
|
|||
ROM images that have `seabios_withgrub` in the file name start with SeaBIOS
|
||||
first, but also have GRUB available in the boot menu when you press ESC.
|
||||
|
||||
### seabios\_grubfirst (DEFUNCT)
|
||||
|
||||
**DEFUNCT**
|
||||
|
||||
This build option is obsolete, and should not be used. It was deleted
|
||||
in lbmk revision `e1bbdadc9584291cf062660d67128e9f17ab788e`.
|
||||
|
||||
It was believed, in earlier theory, that VGA ROM initialisation could
|
||||
be used in SeaBIOS and then SeaBIOS boots into a GRUB payload (built
|
||||
for coreboot), where the initialisation would continue to be used, but
|
||||
it didn't work that way.
|
||||
|
||||
It's best to use PC GRUB (normal BIOS GRUB), but compile it into a floppy
|
||||
image to insert inside CBFS, to then be executed by SeaBIOS. This is referred
|
||||
to as SeaGRUB by the Libreboot project, and it would be quite useful
|
||||
for desktop users, but it's largely irrelevant on laptops where
|
||||
coreboot's own `libgfxinit` is usually available (or the option ROM is
|
||||
easy to extract from vendor firmware and insert).
|
||||
|
||||
Where direct bare metal GRUB is desired, but you use a desktop system with
|
||||
an add-on graphics card, you must extract the VGA ROM for your card and
|
||||
insert it into the coreboot ROM, for coreboot itself to execute. This will
|
||||
require custom configuration on your part, and it is thus beyond the scope
|
||||
of the Libreboot project, in context of lbmk (automated build system).
|
||||
|
||||
Some older Libreboot releases included ROM images built using this option,
|
||||
and those specific ROM images (`seabios_grubfirst` ones) should not be
|
||||
used; you should only use `seabios_grubfirst` or `seabios`, in most
|
||||
scenarios, if SeaBIOS is required.
|
||||
|
||||
For most desktop users, if running an external graphics card, it's easier
|
||||
to simply boot in text mode with a SeaBIOS payload and use only that. This
|
||||
will Just Work with almost all graphics cards, allowing you to use an
|
||||
operating system with a full display and (drivers permitting) full 2D/3D
|
||||
acceleration.
|
||||
|
||||
Which systems are supported?
|
||||
============================
|
||||
|
||||
|
@ -180,8 +144,8 @@ carefully.
|
|||
Run flashrom on host CPU
|
||||
------------------------
|
||||
|
||||
You can simply take any ROM image from the libreboot project, and flash it.
|
||||
Boot a Linux distribution on the target device, and install flashrom.
|
||||
You can simply take any ROM image from the nonGeNUine Boot project, and flash it.
|
||||
Boot a GNU+Linux distribution on the target device, and install flashrom.
|
||||
|
||||
In some cases, this is not possible or there are other considerations. Please
|
||||
read this section *carefully*.
|
||||
|
@ -205,7 +169,7 @@ ensure that you get the same checksums. Check each dump using `sha1sum`
|
|||
|
||||
How to erase and rewrite the chip contents:
|
||||
|
||||
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom
|
||||
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w nongenuineboot.rom
|
||||
|
||||
If you are re-flashing a GM45+ICH9M laptop (e.g. ThinkPad X200/X200S/X200T,
|
||||
T400, T500, R400, W500 etc - but not R500), you should run the ich9gen utility
|
||||
|
@ -237,7 +201,7 @@ the sections below:
|
|||
|
||||
#### DELL Latitute E6400 laptop (easy to flash, similar to X200/T400)
|
||||
|
||||
See: [Dell Latitute E6400 Libreboot Installation Guide](e6400.md)
|
||||
See: [Dell Latitute E6400 nonGeNUine Boot Installation Guide](e6400.md)
|
||||
|
||||
#### ThinkPad X200/T400/T500/W500/R400/R500 vendor BIOS
|
||||
|
||||
|
@ -258,7 +222,7 @@ Intel NIC.
|
|||
[You must flash it externally](spi.md)
|
||||
|
||||
D410PT is more or less the same board as D510MO, but we would like more info
|
||||
about this board. If you have a D410PT mainboard, please contact the libreboot
|
||||
about this board. If you have a D410PT mainboard, please contact the nonGeNUine Boot
|
||||
project via IRC and ping `leah` before you flash it. When you do so, please
|
||||
reference this paragraph on this web page.
|
||||
|
||||
|
@ -271,17 +235,17 @@ and you must flash both chips. Refer to the guide:\
|
|||
#### Macbook1,1 running non-free Apple EFI firmware
|
||||
|
||||
This laptop requires external flashing. Remove the mainboard and refer to
|
||||
the [external flashing guide](spi.md); if libreboot is already running, you
|
||||
the [external flashing guide](spi.md); if nonGeNUine Boot is already running, you
|
||||
can flash internally.
|
||||
|
||||
MacBook2,1 can be flashed internally.
|
||||
|
||||
#### ASUS KFSN4-DRE?
|
||||
|
||||
Simply boot Linux with the default vendor firmware, and flash it internally,
|
||||
Simply boot GNU+Linux with the default vendor firmware, and flash it internally,
|
||||
but before you do: take a push pin, remove the metal pin, and superglue the
|
||||
plastic part to the chip. Then remove the chip after you booting your
|
||||
Linux system. Install a new chip, and flash *that*.
|
||||
GNU+Linux system. Install a new chip, and flash *that*.
|
||||
|
||||
This board uses LPC flash in a PLCC32 socket. This coreboot page shows an
|
||||
example of the push pin as a proof of concept:
|
||||
|
@ -303,17 +267,15 @@ example of the push pin as a proof of concept:
|
|||
|
||||
NOTE: If BIOS password auth is enabled, you can clear it by shorting pins on
|
||||
an EEPROM and then resetting the password in Lenovo BIOS, prior to flashing
|
||||
Libreboot. For T60, see:
|
||||
nonGeNUine Boot. For T60, see:
|
||||
<https://ounapuu.ee/posts/2022/10/13/recovering-password-locked-thinkpad-t60/>
|
||||
(TODO: link something here for X60)
|
||||
|
||||
X60 BIOS password (Lenovo): you might find info here:
|
||||
<https://bios-pw.org/>
|
||||
|
||||
You can just get bucts from the libreboot project, same thing for the patched
|
||||
flashrom. In the Libreboot 20160907 release, there is a *utility* archive, which
|
||||
has statically compiled executables. They still work just fine on modern
|
||||
systems, and they can be used for this purpose.
|
||||
Download bucts here:
|
||||
<https://notabug.org/libreboot/bucts>
|
||||
|
||||
Here are a list of targets:
|
||||
|
||||
|
@ -323,14 +285,14 @@ Here are a list of targets:
|
|||
can get a serial console on the RS232 port if you use the Advanced Dock or
|
||||
Advanced Mini Dock. Connect to it from another machine, using null modem
|
||||
cable and USB serial adapter; *Screen* can connect to the serial console
|
||||
and you will run it at 115200 baud rate. agetty/fgetty in Linux can give
|
||||
and you will run it at 115200 baud rate. agetty/fgetty in GNU+Linux can give
|
||||
you a serial console in your OS)
|
||||
|
||||
Download and build flashrom, using the instructions
|
||||
on [the Git page](../../git.md), and download the `bucts` software using the
|
||||
notes on that very same page.
|
||||
|
||||
You can replace Lenovo BIOS with libreboot, using flashrom running on the host
|
||||
You can replace Lenovo BIOS with nonGeNUine Boot, using flashrom running on the host
|
||||
CPU. However, there are some considerations.
|
||||
|
||||
Firstly, make sure that the yellow CMOS battery is installed, and functioning
|
||||
|
@ -353,10 +315,10 @@ can set the machine to boot using that lower 64KiB bootblock, which is
|
|||
read-write. You do this by setting the BUC.TS register to 1, using the `bucts`
|
||||
program referenced below.
|
||||
|
||||
The libreboot ROM images already have the upper 64KiB bootblock copied to the lower
|
||||
The nonGeNUine Boot ROM images already have the upper 64KiB bootblock copied to the lower
|
||||
one, so you don't have to worry about copying it yourself.
|
||||
|
||||
If you build flashrom using the libreboot build system, there will be three
|
||||
If you build flashrom using the nonGeNUine Boot build system, there will be three
|
||||
binaries:
|
||||
|
||||
* `flashrom`
|
||||
|
@ -433,7 +395,7 @@ Assuming that everything went well:
|
|||
Flash the ROM for a second time. For this second flashing attempt, the upper
|
||||
64KiB bootblock is now read-write. Use the *unpatched* flashrom binary:
|
||||
|
||||
sudo ./flashrom -p internal -w libreboot.rom
|
||||
sudo ./flashrom -p internal -w nongenuineboot.rom
|
||||
|
||||
To reset bucts, do this:
|
||||
|
||||
|
@ -444,10 +406,10 @@ flashed. It is flashed if flashrom said VERIFIED when running the above
|
|||
command.
|
||||
|
||||
If it said VERIFIED, shut down. If it didn't say VERIFIED, make sure bucts is
|
||||
still set to 1, and consult the libreboot project on IRC for advice, and avoid
|
||||
still set to 1, and consult the nonGeNUine Boot project on IRC for advice, and avoid
|
||||
shutting down your system until you get help.
|
||||
|
||||
If all went well, libreboot should now be booting and you should be able to
|
||||
If all went well, nonGeNUine Boot should now be booting and you should be able to
|
||||
boot into your operating system.
|
||||
|
||||
If you messed up, there are external flashing instructions. See main navigation
|
||||
|
@ -474,7 +436,7 @@ Refer to the following article:\
|
|||
DELL Latitude E6400 laptop (easy to flash, similar to X200/T400)
|
||||
-------------------------
|
||||
|
||||
See: [Dell Latitute E6400 Libreboot Installation Instructions](e6400.md)
|
||||
See: [Dell Latitute E6400 nonGeNUine Boot Installation Instructions](e6400.md)
|
||||
|
||||
ASUS KFSN4-DRE
|
||||
--------------
|
||||
|
@ -493,7 +455,7 @@ TARGET: Apple Macbook2,1, Macbook1,1 and iMac5,2 (i945 platform)
|
|||
----------------------------------------------------------------
|
||||
|
||||
iMac5,2 is essentially the same board as Macbook2,1, and it is compatible with
|
||||
libreboot.
|
||||
nonGeNUine Boot.
|
||||
|
||||
Refer to the following article:\
|
||||
[Macbook2,1 and MacBook1,1 installation guide](../hardware/macbook21.md)
|
||||
|
|
|
@ -3,12 +3,12 @@ title: KGPE-D16 external flashing instructions
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
These will be re-added to Libreboot at a later date, once proper testing
|
||||
These will be re-added to nonGeNUine Boot at a later date, once proper testing
|
||||
has been done.
|
||||
|
||||
Initial flashing instructions for KGPE-D16.
|
||||
|
||||
This guide is for those who want libreboot on their ASUS KGPE-D16
|
||||
This guide is for those who want nonGeNUine Boot on their ASUS KGPE-D16
|
||||
motherboard, while they still have the proprietary ASUS BIOS present.
|
||||
This guide can also be followed (adapted) if you brick you board, to
|
||||
know how to recover.
|
||||
|
@ -27,6 +27,6 @@ External programmer
|
|||
Refer to [spi.md](spi.md) for a guide on how to re-flash externally.
|
||||
|
||||
The flash chip is in a PDIP 8 socket (SPI flash chip) on the
|
||||
motherboard, which you take out and then re-flash with libreboot, using
|
||||
motherboard, which you take out and then re-flash with nonGeNUine Boot, using
|
||||
the programmer. *DO NOT* remove the chip with your hands. Use a chip
|
||||
extractor tool.
|
||||
|
|
|
@ -3,6 +3,9 @@ title: nvmutil manual
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
This software was inherited from Libreboot, when we forked it to create
|
||||
nonGeNUine Boot.
|
||||
|
||||
With this software, you can change the MAC address inside GbE regions
|
||||
on any system that uses an Intel Flash Descriptor.
|
||||
|
||||
|
@ -12,8 +15,8 @@ Continue reading...
|
|||
Introduction
|
||||
============
|
||||
|
||||
This is the manual for `nvmutil`, included in the Libreboot,
|
||||
build system (lbmk) under `util/nvmutil/`. This program lets you modify
|
||||
This is the manual for `nvmutil`, included in the nonGeNUine Boot,
|
||||
build system (gbmk) under `util/nvmutil/`. This program lets you modify
|
||||
the MAC address, correct/verify/invalidate checksums,
|
||||
swap/copy and dump regions on Intel PHY NVM images,
|
||||
which are small binary configuration files that go
|
||||
|
@ -23,7 +26,7 @@ This software is largely targeted at coreboot users,
|
|||
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
|
||||
NOTE: nonGeNUine Boot X200/X200T/X200S/T400/T400S/T500/W500/R400
|
||||
users should know that this software does *not*
|
||||
replace `ich9gen`, because that program generates entire
|
||||
ICH9M IFD+GbE regions, in addition to letting you set the
|
||||
|
@ -42,8 +45,9 @@ using `nvmutil`.
|
|||
How to download newer versions
|
||||
==============================
|
||||
|
||||
Simply pull down the latest changes in `lbmk.git`. The `nvmutil`
|
||||
software is now part of lbmk, since 17 November 2022.
|
||||
Simply pull down the latest changes in `gbmk.git`. The `nvmutil`
|
||||
software is part of our nonGeNUine Boot build system, which we called `gbmk`,
|
||||
short for non**G**eNUine**B**oot**M**a**K**e.
|
||||
|
||||
More info about git:
|
||||
|
||||
|
@ -72,7 +76,7 @@ does not modify or manipulate these in any way.
|
|||
The final word in the NVM section is the *checksum*; all words
|
||||
must add up, truncated, to the value `0xBABA`. The hardware
|
||||
itself does not calculate or validate this, and will in
|
||||
fact work nicely, but software such as Linux will check
|
||||
fact work nicely, but software such as GNU+Linux will check
|
||||
that this is correct. If the checksum is invalid, your
|
||||
kernel will refuse to make use of the NIC.
|
||||
|
||||
|
@ -132,11 +136,9 @@ them together:
|
|||
cat spi1.rom spi2.rom > rom.bin
|
||||
|
||||
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 nonGeNUine Boot
|
||||
project has a handy guide for this; it can be used for reading
|
||||
from and writing to the chip. See:
|
||||
|
||||
* <https://libreboot.org/docs/install/spi.html>
|
||||
from and writing to the chip. See: [spi.md](spi.md)
|
||||
|
||||
If you're using an external programmer, the `-p internal`
|
||||
option should be changed accordingly. Read flashrom
|
||||
|
@ -235,11 +237,11 @@ How to compile source code
|
|||
==========================
|
||||
|
||||
The nvmutil source code is located under `util/nvmutil/` in the
|
||||
lbmk repository. A makefile is included there, for you to build an
|
||||
gbmk repository. A makefile is included there, for you to build an
|
||||
executable.
|
||||
|
||||
The nvmutil programs will work just fine, on any modern BSD Unix operating
|
||||
system, or unix-like system such as Linux.
|
||||
system, or unix-like system such as GNU+Linux.
|
||||
|
||||
You must be sure to have toolchains installed, for
|
||||
building; a normal libc, C compiler and linker should be enough.
|
||||
|
@ -484,7 +486,7 @@ used. Also, the `setmac` command will only operate on
|
|||
parts that already have a valid checksum, so you could
|
||||
run `brick` before running `setmac` (or run it afterwards).
|
||||
|
||||
The Linux kernel's `e1000` driver will refuse to initialise
|
||||
The GNU+Linux kernel's `e1000` driver will refuse to initialise
|
||||
Intel gigabit NICs that don't have a valid checksum. This
|
||||
is software-defined, and not enforced by the hardware.
|
||||
|
||||
|
|
|
@ -4,19 +4,19 @@ x-toc-enable: true
|
|||
...
|
||||
|
||||
**If you haven't bought an R400 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Initial flashing instructions for R400.
|
||||
|
||||
This guide is for those who want libreboot on their ThinkPad R400 while
|
||||
This guide is for those who want nonGeNUine Boot on their ThinkPad R400 while
|
||||
they still have the original Lenovo BIOS present. This guide can also be
|
||||
followed (adapted) if you brick your R400, to know how to recover.
|
||||
|
||||
Before following this section, please make sure to setup your libreboot
|
||||
Before following this section, please make sure to setup your nonGeNUine Boot
|
||||
ROM properly first. Although ROM images are provided pre-built in
|
||||
libreboot, there are some modifications that you need to make to the one
|
||||
nonGeNUine Boot, there are some modifications that you need to make to the one
|
||||
you chose before flashing. (instructions referenced later in this guide)
|
||||
|
||||
Serial port {#serial_port}
|
||||
|
@ -31,7 +31,7 @@ A note about CPUs
|
|||
|
||||
[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
|
||||
work in libreboot. The Core 2 Duo T9600 was confirmed to work, so the
|
||||
work in nonGeNUine Boot. The Core 2 Duo T9600 was confirmed to work, so the
|
||||
T9400 probably also works. *The Core 2 Duo T5870/5670 and Celeron M
|
||||
575/585 are untested!*
|
||||
|
||||
|
@ -49,7 +49,7 @@ Intel GPU; this is referred to as "Dual Graphics" (previously
|
|||
you can specify that the system will use one or the other (but not
|
||||
both).
|
||||
|
||||
libreboot is known to work on systems with only the Intel GPU, using
|
||||
nonGeNUine Boot is known to work on systems with only the Intel GPU, using
|
||||
native graphics initialization. On systems with switchable graphics, the
|
||||
Intel GPU is used and the ATI GPU is disabled, so native graphics
|
||||
initialization works all the same.
|
||||
|
@ -80,84 +80,84 @@ Disassembly
|
|||
-----------
|
||||
|
||||
Remove all screws:\
|
||||
![](https://av.libreboot.org/r400/0000.jpg)\
|
||||
![](https://avgnu.vimuser.org/r400/0000.jpg)\
|
||||
Remove the HDD and optical drive:\
|
||||
![](https://av.libreboot.org/r400/0001.jpg)\
|
||||
![](https://avgnu.vimuser.org/r400/0001.jpg)\
|
||||
Remove the hinge screws:\
|
||||
![](https://av.libreboot.org/r400/0002.jpg) ![](https://av.libreboot.org/r400/0003.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0002.jpg) ![](https://avgnu.vimuser.org/r400/0003.jpg)
|
||||
|
||||
Remove the palm rest and keyboard:\
|
||||
![](https://av.libreboot.org/r400/0004.jpg) ![](https://av.libreboot.org/r400/0005.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0004.jpg) ![](https://avgnu.vimuser.org/r400/0005.jpg)
|
||||
|
||||
Remove these screws, and then remove the bezel:\
|
||||
![](https://av.libreboot.org/r400/0006.jpg) ![](https://av.libreboot.org/r400/0007.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0006.jpg) ![](https://avgnu.vimuser.org/r400/0007.jpg)
|
||||
|
||||
Remove the speaker screws, but don't remove the speakers yet (just set
|
||||
them loose):\
|
||||
![](https://av.libreboot.org/r400/0008.jpg) ![](https://av.libreboot.org/r400/0009.jpg)
|
||||
![](https://av.libreboot.org/r400/0010.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0008.jpg) ![](https://avgnu.vimuser.org/r400/0009.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0010.jpg)
|
||||
|
||||
Remove these screws, and then remove the metal plate:\
|
||||
![](https://av.libreboot.org/r400/0011.jpg) ![](https://av.libreboot.org/r400/0012.jpg)
|
||||
![](https://av.libreboot.org/r400/0013.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0011.jpg) ![](https://avgnu.vimuser.org/r400/0012.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0013.jpg)
|
||||
|
||||
Remove the antennas from the wifi card, and then start unrouting them:\
|
||||
![](https://av.libreboot.org/r400/0014.jpg) ![](https://av.libreboot.org/r400/0015.jpg)
|
||||
![](https://av.libreboot.org/r400/0016.jpg) ![](https://av.libreboot.org/r400/0017.jpg)
|
||||
![](https://av.libreboot.org/r400/0018.jpg) ![](https://av.libreboot.org/r400/0019.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0014.jpg) ![](https://avgnu.vimuser.org/r400/0015.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0016.jpg) ![](https://avgnu.vimuser.org/r400/0017.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0018.jpg) ![](https://avgnu.vimuser.org/r400/0019.jpg)
|
||||
|
||||
Disconnect the LCD cable from the motherboard:\
|
||||
![](https://av.libreboot.org/r400/0020.jpg) ![](https://av.libreboot.org/r400/0021.jpg)
|
||||
![](https://av.libreboot.org/r400/0022.jpg) ![](https://av.libreboot.org/r400/0023.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0020.jpg) ![](https://avgnu.vimuser.org/r400/0021.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0022.jpg) ![](https://avgnu.vimuser.org/r400/0023.jpg)
|
||||
|
||||
Remove the hinge screws, and then remove the LCD panel:\
|
||||
![](https://av.libreboot.org/r400/0024.jpg) ![](https://av.libreboot.org/r400/0025.jpg)
|
||||
![](https://av.libreboot.org/r400/0026.jpg) ![](https://av.libreboot.org/r400/0027.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0024.jpg) ![](https://avgnu.vimuser.org/r400/0025.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0026.jpg) ![](https://avgnu.vimuser.org/r400/0027.jpg)
|
||||
|
||||
Remove this:\
|
||||
![](https://av.libreboot.org/r400/0028.jpg) ![](https://av.libreboot.org/r400/0029.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0028.jpg) ![](https://avgnu.vimuser.org/r400/0029.jpg)
|
||||
|
||||
Remove this long cable (there are 3 connections):\
|
||||
![](https://av.libreboot.org/r400/0030.jpg) ![](https://av.libreboot.org/r400/0031.jpg)
|
||||
![](https://av.libreboot.org/r400/0032.jpg) ![](https://av.libreboot.org/r400/0033.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0030.jpg) ![](https://avgnu.vimuser.org/r400/0031.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0032.jpg) ![](https://avgnu.vimuser.org/r400/0033.jpg)
|
||||
|
||||
Disconnect the speaker cable, and remove the speakers:\
|
||||
![](https://av.libreboot.org/r400/0034.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0034.jpg)
|
||||
|
||||
Remove the heatsink screws, remove the fan and then remove the
|
||||
heatsink/fan:\
|
||||
![](https://av.libreboot.org/r400/0035.jpg) ![](https://av.libreboot.org/r400/0036.jpg)
|
||||
![](https://av.libreboot.org/r400/0037.jpg) ![](https://av.libreboot.org/r400/0038.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0035.jpg) ![](https://avgnu.vimuser.org/r400/0036.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0037.jpg) ![](https://avgnu.vimuser.org/r400/0038.jpg)
|
||||
|
||||
Remove the NVRAM battery:\
|
||||
![](https://av.libreboot.org/r400/0039.jpg) ![](https://av.libreboot.org/r400/0040.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0039.jpg) ![](https://avgnu.vimuser.org/r400/0040.jpg)
|
||||
|
||||
Remove this screw:\
|
||||
![](https://av.libreboot.org/r400/0041.jpg) ![](https://av.libreboot.org/r400/0042.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0041.jpg) ![](https://avgnu.vimuser.org/r400/0042.jpg)
|
||||
|
||||
Disconnect the AC jack:\
|
||||
![](https://av.libreboot.org/r400/0043.jpg) ![](https://av.libreboot.org/r400/0044.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0043.jpg) ![](https://avgnu.vimuser.org/r400/0044.jpg)
|
||||
|
||||
Remove this screw and then remove what is under it:\
|
||||
![](https://av.libreboot.org/r400/0045.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0045.jpg)
|
||||
|
||||
Remove this:\
|
||||
![](https://av.libreboot.org/r400/0046.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0046.jpg)
|
||||
|
||||
Lift the motherboard (which is still inside the cage) from the side on
|
||||
the right, removing it completely:\
|
||||
![](https://av.libreboot.org/r400/0047.jpg) ![](https://av.libreboot.org/r400/0048.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0047.jpg) ![](https://avgnu.vimuser.org/r400/0048.jpg)
|
||||
|
||||
Remove all screws, marking each hole so that you know where to re-insert
|
||||
them. You should place the screws in a layout corresponding to the order
|
||||
that they were in before removal: ![](https://av.libreboot.org/r400/0049.jpg)
|
||||
![](https://av.libreboot.org/r400/0050.jpg)
|
||||
that they were in before removal: ![](https://avgnu.vimuser.org/r400/0049.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0050.jpg)
|
||||
|
||||
Remove the motherboard from the cage, and the SPI flash chip will be
|
||||
next to the memory slots:\
|
||||
![](https://av.libreboot.org/r400/0051.jpg) ![](https://av.libreboot.org/r400/0052.jpg)
|
||||
![](https://avgnu.vimuser.org/r400/0051.jpg) ![](https://avgnu.vimuser.org/r400/0052.jpg)
|
||||
|
||||
Now, you should be ready to install libreboot.
|
||||
Now, you should be ready to install nonGeNUine Boot.
|
||||
|
||||
Read [this article](spi.md) to learn how you may flash the chip, which is near
|
||||
to the RAM.
|
||||
|
@ -173,7 +173,7 @@ When re-installing the heatsink, you must first clean off all old paste
|
|||
with the alcohol/cloth. Then apply new paste. Arctic MX-4 is also much
|
||||
better than the default paste used on these systems.
|
||||
|
||||
![](https://av.libreboot.org/t400/paste.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/paste.jpg)
|
||||
|
||||
NOTE: the photo above is for illustration purposes only, and does not
|
||||
show how to properly apply the thermal paste. Other guides online detail
|
||||
|
@ -198,13 +198,13 @@ be useful for RAM compatibility info (note: coreboot raminit is
|
|||
different, so this page might be BS)
|
||||
|
||||
The following photo shows 8GiB (2x4GiB) of RAM installed:\
|
||||
![](https://av.libreboot.org/t400/memory.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/memory.jpg)
|
||||
|
||||
Boot it!
|
||||
--------
|
||||
|
||||
You should see something like this:
|
||||
|
||||
![](https://av.libreboot.org/t400/boot0.jpg) ![](https://av.libreboot.org/t400/boot1.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/boot0.jpg) ![](https://avgnu.vimuser.org/t400/boot1.jpg)
|
||||
|
||||
Now [install Linux](../linux/).
|
||||
Now [install GNU+Linux](../gnulinux/).
|
||||
|
|
|
@ -6,7 +6,7 @@ x-toc-enable: true
|
|||
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
|
||||
computers that coreboot runs on. Almost every system currently supported by
|
||||
libreboot uses this type of boot flash; the only exception is ASUS KFSN4-DRE,
|
||||
nonGeNUine Boot uses this type of boot flash; the only exception is ASUS KFSN4-DRE,
|
||||
which uses LPC flash in a PLCC32 socket, which you can simply hot-swap after
|
||||
booting the vendor firmware, and then flash internally. Simple!
|
||||
|
||||
|
@ -14,7 +14,7 @@ We will be using
|
|||
the [flashrom](https://flashrom.org/Flashrom) software which is written to
|
||||
dump, erase and rewrite these flash chips.
|
||||
|
||||
libreboot currently documents how to use these SPI programmers:
|
||||
nonGeNUine Boot currently documents how to use these SPI programmers:
|
||||
|
||||
* Raspberry Pi (RPi)
|
||||
* BeagleBone Black (BBB)
|
||||
|
@ -23,16 +23,16 @@ libreboot currently documents how to use these SPI programmers:
|
|||
Many other SPI programmers exist. More of them will be documented on this page,
|
||||
at a date in the future. You can otherwise figure it out on your own; certain
|
||||
parts of this page are still useful, even if you're using a programmer that
|
||||
Libreboot does not yet document.
|
||||
nonGeNUine Boot does not yet document.
|
||||
|
||||
Most systems in libreboot have to be re-flashed externally, using instructions
|
||||
Most systems in nonGeNUine Boot have to be re-flashed externally, using instructions
|
||||
on this and similar guides, the first time you flash. However, on all currently
|
||||
supported systems, it's possible that you can re-flash *internally* when
|
||||
libreboot is running.
|
||||
nonGeNUine Boot is running.
|
||||
|
||||
*Internal* flashing means that the host CPU on your system can re-program the
|
||||
SPI flash, using an on-board SPI programmer (which all boards have). You do this
|
||||
from Linux, with flashrom.
|
||||
from GNU+Linux, with flashrom.
|
||||
|
||||
*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.
|
||||
|
@ -40,7 +40,7 @@ is called *external* because it's not the *internal* one on your mainboard.
|
|||
Do not use CH341A!
|
||||
==================
|
||||
|
||||
NOR flashes on libreboot systems run on 3.3V DC or 1.8V DC, and this includes
|
||||
NOR flashes on nonGeNUine Boot 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
|
||||
SPI flash and also the southbridge that it's connected to, plus anything else
|
||||
that it's connected to.
|
||||
|
@ -95,8 +95,8 @@ tell them why the CH341A is bad.
|
|||
|
||||
These photos show both modifications (3.3v logic and WP/HOLD pull-up
|
||||
resistors) performed, on the black CH341A:\
|
||||
<img tabindex=1 src="https://av.libreboot.org/ch341a/0000_th.jpg" /><span class="f"><img src="https://av.libreboot.org/ch341a/0000.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>
|
||||
<img tabindex=1 src="https://avgnu.vimuser.org/ch341a/0000_th.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/ch341a/0000.jpg" /></span>
|
||||
<img tabindex=1 src="https://avgnu.vimuser.org/ch341a/0001_th.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/ch341a/0001.jpg" /></span>
|
||||
|
||||
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.
|
||||
|
@ -113,12 +113,12 @@ accomplish your goal, which is to read from and/or write to the boot flash.
|
|||
SOIC8
|
||||
-----
|
||||
|
||||
![](https://av.libreboot.org/chip/soic8.jpg)
|
||||
![](https://avgnu.vimuser.org/chip/soic8.jpg)
|
||||
|
||||
SOIC16
|
||||
------
|
||||
|
||||
![](https://av.libreboot.org/chip/soic16.jpg)
|
||||
![](https://avgnu.vimuser.org/chip/soic16.jpg)
|
||||
|
||||
SOIC8 and SOIC16 are the most common types, but there are others:
|
||||
|
||||
|
@ -127,21 +127,21 @@ WSON8
|
|||
|
||||
It will be like this on an X200S or X200 Tablet:\
|
||||
|
||||
![](https://av.libreboot.org/x200t_flash/X200T-flashchip-location.jpg)
|
||||
![](https://avgnu.vimuser.org/x200t_flash/X200T-flashchip-location.jpg)
|
||||
|
||||
On T400S, it is in this location near the RAM:\
|
||||
![](https://av.libreboot.org/t400s/soic8.jpg)\
|
||||
![](https://avgnu.vimuser.org/t400s/soic8.jpg)\
|
||||
NOTE: in this photo, the chip has been replaced with SOIC8
|
||||
|
||||
DIP8
|
||||
----
|
||||
|
||||
![](https://av.libreboot.org/dip8/dip8.jpg)
|
||||
![](https://avgnu.vimuser.org/dip8/dip8.jpg)
|
||||
|
||||
Supply Voltage
|
||||
--------------
|
||||
|
||||
Historically, all boards that Libreboot supports happened to have SPI NOR chips
|
||||
Historically, all boards that nonGeNUine Boot supports happened to have SPI NOR chips
|
||||
which work at 3.3V DC. With the recent addition of Chromebooks whose chips are
|
||||
rated for 1.8V DC, this can no longer be assumed.
|
||||
|
||||
|
@ -241,7 +241,7 @@ Rasberry Pi (RPi)
|
|||
SSH into your Raspberry Pi. You will run `flashrom` from your Raspberry Pi.
|
||||
|
||||
You must configure `spidev` on your Raspberry Pi. This is a special driver in
|
||||
the Linux kernel; technically, the driver name is `spi-bcm2835`.
|
||||
the GNU+Linux kernel; technically, the driver name is `spi-bcm2835`.
|
||||
|
||||
This page has info:\
|
||||
<https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md>
|
||||
|
@ -323,7 +323,7 @@ the problem here is that it gave Microsoft free reign to define whatever
|
|||
dependencies they liked (as per apt-get rules), and every time you updated,
|
||||
you would be pinging Microsoft servers. Do you think that is strange?
|
||||
|
||||
Microsoft shouldn't have *any* access to your Linux system! This was the
|
||||
Microsoft shouldn't have *any* access to your GNU+Linux system! This was the
|
||||
commit that Raspbian added to their distro, which added this what should rightly
|
||||
be called a security vulnerability, intentionally:
|
||||
|
||||
|
@ -354,11 +354,11 @@ 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
|
||||
the contents of your NOR flash.
|
||||
|
||||
In the libreboot build system, from the Git repository, you can download and
|
||||
In the nonGeNUine Boot build system, from the Git repository, you can download and
|
||||
install flashrom. Do this after downloading the
|
||||
[lbmk Git repository](https://codeberg.org/libreboot/lbmk):
|
||||
[gbmk Git repository](../../git.md):
|
||||
|
||||
cd lbmk
|
||||
cd gbmk
|
||||
sudo ./build dependencies ubuntu2004
|
||||
|
||||
NOTE: debian, arch or void can be written instead of ubuntu2004. the debian
|
||||
|
@ -370,7 +370,7 @@ script is also applicable to newer ubuntu versions
|
|||
If the `ubuntu2004` script complains about missing dependencies, just modify
|
||||
the script and remove those dependencies. The script is located
|
||||
at `resources/scripts/build/dependencies/ubuntu2004` and it is written for
|
||||
Ubuntu 20.04, but it should work fine in other Linux distributions that use
|
||||
Ubuntu 20.04, but it should work fine in other GNU+Linux distributions that use
|
||||
the `apt-get` package manager.
|
||||
|
||||
A `flashrom/` directory will be present, with a `flashrom` executable inside
|
||||
|
@ -387,10 +387,12 @@ If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to
|
|||
use a special patched version of flashrom, which you can download here:
|
||||
<https://vimuser.org/hackrom.tar.xz> - patched source code is available, and a
|
||||
binary is also available that you can simply run. Pass the `--workaround-mx`
|
||||
argument in flashrom. This mitigates stability issues.
|
||||
argument in flashrom. This mitigates stability issues. *Another*, newer
|
||||
version of this is available, with the same workaround patch, but based on
|
||||
flashrom 1.3: <https://codeberg.org/Riku_V/whackrom>
|
||||
|
||||
If you downloaded the flashrom source code directly, you can go into the
|
||||
directory and simply type `make`. In the libreboot build system, build
|
||||
directory and simply type `make`. In the nonGeNUine Boot build system, build
|
||||
dependencies are documented in script located
|
||||
at `resources/scripts/build/dependencies/` which you can install
|
||||
using the `apt-get` software.
|
||||
|
@ -453,11 +455,11 @@ Writing
|
|||
|
||||
Next, run this command (RPi):
|
||||
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/nongenuineboot.rom
|
||||
|
||||
If using BBB:
|
||||
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w /path/to/libreboot.rom
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w /path/to/nongenuineboot.rom
|
||||
|
||||
If using BBB, you may have to use a lower speed than 512. You may also have to
|
||||
re-flash several times before it works fully.
|
||||
|
@ -492,7 +494,7 @@ Do not *disconnect* your chip from the flasher until you've disconnected or
|
|||
turned off the power source.
|
||||
|
||||
BE CAREFUL that you are indeed supplying the appropriate supply voltage to the
|
||||
chip. SPI flashes on most of the currently supported libreboot hardware run on
|
||||
chip. SPI flashes on most of the currently supported nonGeNUine Boot hardware run on
|
||||
3.3V DC and logic at that level too. Some of them (at least Chromebooks) can
|
||||
have chips that run on 1.8V DC. You should make sure to check the part number
|
||||
and datasheet of the SPI flash chip for the supply voltage it requires. If your
|
||||
|
@ -520,7 +522,7 @@ ISP programming and VCC diode
|
|||
-----------------------------
|
||||
|
||||
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 mainboard of your computer that you wish to install nonGeNUine Boot
|
||||
on.
|
||||
|
||||
It may be beneficial to modify the mainboard so that the SPI flash is powered
|
||||
|
@ -554,9 +556,6 @@ 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
|
||||
the flash into a breadboard when flashing.
|
||||
|
||||
TODO: Make a page on libreboot.org, showing how to do this on all mainboards
|
||||
supported by libreboot.
|
||||
|
||||
GPIO pins on BeagleBone Black (BBB)
|
||||
-----------------------------------
|
||||
|
||||
|
@ -574,7 +573,7 @@ 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
|
||||
on the left.
|
||||
|
||||
![](https://av.libreboot.org/rpi/wiring.webp)
|
||||
![](https://avgnu.vimuser.org/rpi/wiring.webp)
|
||||
|
||||
GPIO pins on Raspberry Pi (RPi) 26 Pin
|
||||
-------------------------------
|
||||
|
@ -582,7 +581,7 @@ GPIO pins on Raspberry Pi (RPi) 26 Pin
|
|||
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):
|
||||
|
||||
![](https://av.libreboot.org/rpi/0012.png) ![](https://av.libreboot.org/rpi/0013.png)
|
||||
![](https://avgnu.vimuser.org/rpi/0012.png) ![](https://avgnu.vimuser.org/rpi/0013.png)
|
||||
|
||||
Use this as a reference for the other sections in this page, seen below:
|
||||
|
||||
|
@ -618,8 +617,8 @@ SOIC16 wiring diagram (Raspberry Pi)
|
|||
------------------------------------
|
||||
|
||||
RPi GPIO header:\
|
||||
![](https://av.libreboot.org/rpi/0009.png)
|
||||
![](https://av.libreboot.org/rpi/0010.png)
|
||||
![](https://avgnu.vimuser.org/rpi/0009.png)
|
||||
![](https://avgnu.vimuser.org/rpi/0010.png)
|
||||
|
||||
BBB P9 header:\
|
||||
<https://beagleboard.org/static/images/cape-headers.png>
|
||||
|
@ -707,7 +706,7 @@ SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard
|
|||
|
||||
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
|
||||
16MiB chip. For example, KGPE-D16 and KCMA-D8 mainboards in libreboot have
|
||||
16MiB chip. For example, KGPE-D16 and KCMA-D8 mainboards in nonGeNUine Boot have
|
||||
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
|
||||
course of action is to replace it with a SOIC8 flash chip.
|
||||
|
@ -752,13 +751,13 @@ SOIC8 is desirable; in that case, you might still want to dump the contents of
|
|||
the original WSON8.
|
||||
|
||||
Here is a SOIC8 in a socket, mounted to a breadboard, for flashing:\
|
||||
![](https://av.libreboot.org/rpi/soic8_socket.jpg)
|
||||
![](https://avgnu.vimuser.org/rpi/soic8_socket.jpg)
|
||||
|
||||
Here is a photo of a DIP8 IC:\
|
||||
![](https://av.libreboot.org/dip8/dip8.jpg)
|
||||
![](https://avgnu.vimuser.org/dip8/dip8.jpg)
|
||||
|
||||
Here is a photo of a SOIC8 in 1.27mm 208mil SOP to DIP adapter:\
|
||||
![](https://av.libreboot.org/dip8/sop8todip8.jpg)
|
||||
![](https://avgnu.vimuser.org/dip8/sop8todip8.jpg)
|
||||
|
||||
NOTE: DIP8 and WSON8-in-socket, and SOIC16-in-socket, are basically the same,
|
||||
just adapt accordingly.
|
||||
|
@ -771,9 +770,9 @@ can just put the 2.54mm pins directly in the DIP8 socket and mount the SOIC8 +
|
|||
adapter onto that, and solder that. Use quality rosin flux (not acid based)
|
||||
and good 60/40 or 63/37 leaded solder (don't use lead-free):
|
||||
|
||||
![](https://av.libreboot.org/dip8/adapter_breadboard.jpg)
|
||||
![](https://av.libreboot.org/dip8/adapter.jpg)
|
||||
![](https://av.libreboot.org/dip8/sop8todip8.jpg)
|
||||
![](https://avgnu.vimuser.org/dip8/adapter_breadboard.jpg)
|
||||
![](https://avgnu.vimuser.org/dip8/adapter.jpg)
|
||||
![](https://avgnu.vimuser.org/dip8/sop8todip8.jpg)
|
||||
|
||||
SOIC8/SOIC16 soldered to a mainboard
|
||||
------------------------------------
|
||||
|
@ -796,10 +795,10 @@ resistors needed. You do not need a decoupling capacitor for pin 2 (VCC) either
|
|||
because the mainboard will already have one.
|
||||
|
||||
Here is an example of a test clip connected for SOIC16:\
|
||||
![](https://av.libreboot.org/rpi/0002.jpg)
|
||||
![](https://avgnu.vimuser.org/rpi/0002.jpg)
|
||||
|
||||
And here is an example photo for SOIC8:\
|
||||
![](https://av.libreboot.org/x60/th_bbb_flashing.jpg)
|
||||
![](https://avgnu.vimuser.org/x60/th_bbb_flashing.jpg)
|
||||
|
||||
DIP8 soldered to the mainboard
|
||||
------------------------------
|
||||
|
@ -812,7 +811,7 @@ for flashing. You might want to de-solder the chip, using a solder vacuum
|
|||
(extractor) tool, and then you can install a socket in its place. You can then
|
||||
insert the DIP8 IC into the socket.
|
||||
|
||||
In the libreboot project, we have never heard of a board where the DIP8 is
|
||||
In the nonGeNUine Boot project, we have never heard of a board where the DIP8 is
|
||||
directly soldered. It is almost always mounted in a socket.
|
||||
|
||||
Your DIP8 IC has the same pinout as a SOIC8 IC.
|
||||
|
@ -828,7 +827,7 @@ can easily damage the pads that way.
|
|||
WSON8 has the same pinout as SOIC8, but it's a ball mounted QFN (quad flat
|
||||
pack, no leads). There are no clips for it. Sometimes referred to as QFN8
|
||||
|
||||
On all currently supported libreboot hardware, boards that have WSON8 can also
|
||||
On all currently supported nonGeNUine Boot hardware, boards that have WSON8 can also
|
||||
have a SOIC8 because the pads are long enough to accomodate either type of
|
||||
chip.
|
||||
|
||||
|
@ -868,13 +867,13 @@ In case you're not comfortable with soldering, we have some excellent videos
|
|||
linked on the [FAQ page](../../faq.md) which you can watch.
|
||||
|
||||
WSON8 IC:\
|
||||
![](https://av.libreboot.org/rpi/wson8/0001.jpg)
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0001.jpg)
|
||||
|
||||
Surround a large area around the chip with layers of kapton tape, and then
|
||||
aluminium foil. This will act as a heat shield, to reduce the risk of re-flowing
|
||||
other solder joints (which can make them turn into cold joints, and you risk
|
||||
knocking them off of the board):\
|
||||
![](https://av.libreboot.org/rpi/wson8/0002.jpg)\
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0002.jpg)\
|
||||
Notice that the kapton+foil does not cover the chip itself, or the solder pads.
|
||||
It's important that these are exposed to the heat.
|
||||
|
||||
|
@ -892,16 +891,16 @@ move freely. While in this state, the solder is fully melted and the chip can
|
|||
be lifted off with ease.
|
||||
|
||||
If you're doing it correctly, the chip will come off within 1 minute, like so:\
|
||||
![](https://av.libreboot.org/rpi/wson8/0003.jpg)
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0003.jpg)
|
||||
|
||||
Add fresh solder to the pads, including the thermal pad:\
|
||||
![](https://av.libreboot.org/rpi/wson8/0004.jpg)
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0004.jpg)
|
||||
|
||||
Now wick it out using a copper braid, dunked in rosin flux:\
|
||||
![](https://av.libreboot.org/rpi/wson8/0005.jpg)
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0005.jpg)
|
||||
|
||||
Ensure that all of the solder is removed:\
|
||||
![](https://av.libreboot.org/rpi/wson8/0006.jpg)\
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0006.jpg)\
|
||||
You will notice that one of the pads doesn't have all of the solder removed.
|
||||
The pad on the top-left in this photo. This is intentional, to show you a
|
||||
comparison for reference. The other pads are free of solder.
|
||||
|
@ -914,13 +913,13 @@ SPI flasher.
|
|||
|
||||
Align the new SOIC8, and tack it in the corner pins. Then solder it fully. Use
|
||||
lots of flux!\
|
||||
![](https://av.libreboot.org/rpi/wson8/0007.jpg)\
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0007.jpg)\
|
||||
A T12-D08 tip is being used in this photo, but a mini chisel, mini hoof or
|
||||
knife (e.g. T12-K) tip would be ideal.
|
||||
|
||||
Ensure that all the joints are perfect. A good solder joint is shiny, and with
|
||||
concave fillets where the solder has flowed. Observe:\
|
||||
![](https://av.libreboot.org/rpi/wson8/0008.jpg)
|
||||
![](https://avgnu.vimuser.org/rpi/wson8/0008.jpg)
|
||||
|
||||
After you're done, use a soft bristle brush and 99.9% isopropyl alcohol to
|
||||
break up the remaining flux, then soak up the flux using a cloth, while the
|
||||
|
@ -939,15 +938,11 @@ 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)
|
||||
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,
|
||||
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
|
||||
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
|
||||
merely linked here, instead of being hosted on the av.libreboot.org server).
|
||||
merely linked here, instead of being hosted on the avgnu.vimuser.org server).
|
||||
|
||||
This version of the page is hosted in the `lbwww` git repository, with images
|
||||
for it hosted in the `lbwww-img` repository (from libreboot).
|
||||
This version of the page is hosted in the `gbwww` git repository, with images
|
||||
for it hosted in the `gbwww-img` repository (from nonGeNUine Boot).
|
||||
|
|
|
@ -3,11 +3,11 @@ title: Generic SPI Flashing Guide
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
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 nonGeNUine Boot to a SOIC chip.
|
||||
Some users might be daunted by the price of a raspberry pi.
|
||||
This guide is intended to help users looking to use a programmer which is not listed in the [main guide.](spi.md)
|
||||
As an example, this guide will use the [libre computer 'le potato.'](https://libre.computer/products/aml-s905x-cc/)
|
||||
You should note however, that this guide is intended to demonstrate how to set up any SBC with SPI programming capabilities for flashing libreboot.
|
||||
You should note however, that this guide is intended to demonstrate how to set up any SBC with SPI programming capabilities for flashing nonGeNUine Boot.
|
||||
|
||||
If you are wondering about which SBC to buy, keep these things in mind:
|
||||
|
||||
|
@ -81,8 +81,6 @@ Using Flashrom
|
|||
==============
|
||||
|
||||
Most linux distros will provide flashrom in their default repositories.
|
||||
You can also download flashrom in binary form with [libreboot utils.](https://libreboot.org/download.html#https)
|
||||
Here is an example using raspbian:
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
|
@ -93,7 +91,7 @@ Reading/writing from SPI works respectively as such:
|
|||
|
||||
```
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -r /path/to/read.bin
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/nongenuineboot.rom
|
||||
```
|
||||
|
||||
Note that `spispeed` varies based on the board in question.
|
||||
|
|
|
@ -7,8 +7,8 @@ Dell Latitude E6400
|
|||
===================
|
||||
|
||||
**If you haven't bought an T400 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Introduction
|
||||
|
@ -16,7 +16,7 @@ Introduction
|
|||
|
||||
Initial flashing instructions for T400.
|
||||
|
||||
This guide is for those who want libreboot on their ThinkPad T400 while
|
||||
This guide is for those who want nonGeNUine Boot on their ThinkPad T400 while
|
||||
they still have the original Lenovo BIOS present. This guide can also be
|
||||
followed (adapted) if you brick your T400, to know how to recover.
|
||||
|
||||
|
@ -40,7 +40,7 @@ A note about CPUs
|
|||
|
||||
[ThinkWiki](http://www.thinkwiki.org/wiki/Category:T400) has a list of
|
||||
CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed
|
||||
to work in libreboot.
|
||||
to work with nonGeNUine Boot.
|
||||
|
||||
T9600, T9500, T9550 and T9900 are all compatible, as reported by users.
|
||||
|
||||
|
@ -62,7 +62,7 @@ Intel GPU; this is referred to as "switchable graphics". In the *BIOS
|
|||
setup* program for lenovobios, you can specify that the system will use
|
||||
one or the other (but not both).
|
||||
|
||||
libreboot is known to work on systems with only the Intel GPU, using
|
||||
nonGeNUine Boot is known to work on systems with only the Intel GPU, using
|
||||
native graphics initialization. On systems with switchable graphics, the
|
||||
Intel GPU is used and the ATI GPU is disabled, so native graphics
|
||||
initialization works all the same.
|
||||
|
@ -93,96 +93,96 @@ The procedure
|
|||
-------------
|
||||
|
||||
Remove *all* screws, placing them in the order that you removed them:\
|
||||
![](https://av.libreboot.org/t400/0001.jpg) ![](https://av.libreboot.org/t400/0002.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0001.jpg) ![](https://avgnu.vimuser.org/t400/0002.jpg)
|
||||
|
||||
Remove those three screws then remove the rear bezel:\
|
||||
![](https://av.libreboot.org/t400/0003.jpg) ![](https://av.libreboot.org/t400/0004.jpg)
|
||||
![](https://av.libreboot.org/t400/0005.jpg) ![](https://av.libreboot.org/t400/0006.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0003.jpg) ![](https://avgnu.vimuser.org/t400/0004.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0005.jpg) ![](https://avgnu.vimuser.org/t400/0006.jpg)
|
||||
|
||||
Remove the speakers:\
|
||||
![](https://av.libreboot.org/t400/0007.jpg) ![](https://av.libreboot.org/t400/0008.jpg)
|
||||
![](https://av.libreboot.org/t400/0009.jpg) ![](https://av.libreboot.org/t400/0010.jpg)
|
||||
![](https://av.libreboot.org/t400/0011.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0007.jpg) ![](https://avgnu.vimuser.org/t400/0008.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0009.jpg) ![](https://avgnu.vimuser.org/t400/0010.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0011.jpg)
|
||||
|
||||
Remove the wifi:\
|
||||
![](https://av.libreboot.org/t400/0012.jpg) ![](https://av.libreboot.org/t400/0013.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0012.jpg) ![](https://avgnu.vimuser.org/t400/0013.jpg)
|
||||
|
||||
Remove this cable:\
|
||||
![](https://av.libreboot.org/t400/0014.jpg) ![](https://av.libreboot.org/t400/0015.jpg)
|
||||
![](https://av.libreboot.org/t400/0016.jpg) ![](https://av.libreboot.org/t400/0017.jpg)
|
||||
![](https://av.libreboot.org/t400/0018.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0014.jpg) ![](https://avgnu.vimuser.org/t400/0015.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0016.jpg) ![](https://avgnu.vimuser.org/t400/0017.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0018.jpg)
|
||||
|
||||
Unroute those antenna wires:\
|
||||
![](https://av.libreboot.org/t400/0019.jpg) ![](https://av.libreboot.org/t400/0020.jpg)
|
||||
![](https://av.libreboot.org/t400/0021.jpg) ![](https://av.libreboot.org/t400/0022.jpg)
|
||||
![](https://av.libreboot.org/t400/0023.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0019.jpg) ![](https://avgnu.vimuser.org/t400/0020.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0021.jpg) ![](https://avgnu.vimuser.org/t400/0022.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0023.jpg)
|
||||
|
||||
Remove the LCD assembly:\
|
||||
![](https://av.libreboot.org/t400/0024.jpg) ![](https://av.libreboot.org/t400/0025.jpg)
|
||||
![](https://av.libreboot.org/t400/0026.jpg) ![](https://av.libreboot.org/t400/0027.jpg)
|
||||
![](https://av.libreboot.org/t400/0028.jpg) ![](https://av.libreboot.org/t400/0029.jpg)
|
||||
![](https://av.libreboot.org/t400/0030.jpg) ![](https://av.libreboot.org/t400/0031.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0024.jpg) ![](https://avgnu.vimuser.org/t400/0025.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0026.jpg) ![](https://avgnu.vimuser.org/t400/0027.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0028.jpg) ![](https://avgnu.vimuser.org/t400/0029.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0030.jpg) ![](https://avgnu.vimuser.org/t400/0031.jpg)
|
||||
|
||||
Disconnect the NVRAM battery:\
|
||||
![](https://av.libreboot.org/t400/0033.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0033.jpg)
|
||||
|
||||
Disconnect the fan:\
|
||||
![](https://av.libreboot.org/t400/0034.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0034.jpg)
|
||||
|
||||
Unscrew these:\
|
||||
![](https://av.libreboot.org/t400/0035.jpg) ![](https://av.libreboot.org/t400/0036.jpg)
|
||||
![](https://av.libreboot.org/t400/0037.jpg) ![](https://av.libreboot.org/t400/0038.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0035.jpg) ![](https://avgnu.vimuser.org/t400/0036.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0037.jpg) ![](https://avgnu.vimuser.org/t400/0038.jpg)
|
||||
|
||||
Unscrew the heatsink, then lift it off:\
|
||||
![](https://av.libreboot.org/t400/0039.jpg) ![](https://av.libreboot.org/t400/0040.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0039.jpg) ![](https://avgnu.vimuser.org/t400/0040.jpg)
|
||||
|
||||
Disconnect the power jack:\
|
||||
![](https://av.libreboot.org/t400/0041.jpg) ![](https://av.libreboot.org/t400/0042.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0041.jpg) ![](https://avgnu.vimuser.org/t400/0042.jpg)
|
||||
|
||||
Loosen this:\
|
||||
![](https://av.libreboot.org/t400/0043.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0043.jpg)
|
||||
|
||||
Remove this:\
|
||||
![](https://av.libreboot.org/t400/0044.jpg) ![](https://av.libreboot.org/t400/0045.jpg)
|
||||
![](https://av.libreboot.org/t400/0046.jpg) ![](https://av.libreboot.org/t400/0047.jpg)
|
||||
![](https://av.libreboot.org/t400/0048.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0044.jpg) ![](https://avgnu.vimuser.org/t400/0045.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0046.jpg) ![](https://avgnu.vimuser.org/t400/0047.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0048.jpg)
|
||||
|
||||
Unscrew these:\
|
||||
![](https://av.libreboot.org/t400/0049.jpg) ![](https://av.libreboot.org/t400/0050.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0049.jpg) ![](https://avgnu.vimuser.org/t400/0050.jpg)
|
||||
|
||||
Remove this:\
|
||||
![](https://av.libreboot.org/t400/0051.jpg) ![](https://av.libreboot.org/t400/0052.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0051.jpg) ![](https://avgnu.vimuser.org/t400/0052.jpg)
|
||||
|
||||
Unscrew this:\
|
||||
![](https://av.libreboot.org/t400/0053.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0053.jpg)
|
||||
|
||||
Remove the motherboard (the cage is still attached) from the right hand
|
||||
side, then lift it out:\
|
||||
![](https://av.libreboot.org/t400/0054.jpg) ![](https://av.libreboot.org/t400/0055.jpg)
|
||||
![](https://av.libreboot.org/t400/0056.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0054.jpg) ![](https://avgnu.vimuser.org/t400/0055.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0056.jpg)
|
||||
|
||||
Remove these screws, placing the screws in the same layout and marking
|
||||
each screw hole (so that you know what ones to put the screws back into
|
||||
later): ![](https://av.libreboot.org/t400/0057.jpg) ![](https://av.libreboot.org/t400/0058.jpg)
|
||||
![](https://av.libreboot.org/t400/0059.jpg) ![](https://av.libreboot.org/t400/0060.jpg)
|
||||
![](https://av.libreboot.org/t400/0061.jpg) ![](https://av.libreboot.org/t400/0062.jpg)
|
||||
later): ![](https://avgnu.vimuser.org/t400/0057.jpg) ![](https://avgnu.vimuser.org/t400/0058.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0059.jpg) ![](https://avgnu.vimuser.org/t400/0060.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0061.jpg) ![](https://avgnu.vimuser.org/t400/0062.jpg)
|
||||
|
||||
Separate the motherboard:\
|
||||
![](https://av.libreboot.org/t400/0063.jpg) ![](https://av.libreboot.org/t400/0064.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0063.jpg) ![](https://avgnu.vimuser.org/t400/0064.jpg)
|
||||
|
||||
Connect your programmer, then connect GND and 3.3V\
|
||||
![](https://av.libreboot.org/t400/0065.jpg) ![](https://av.libreboot.org/t400/0066.jpg)
|
||||
![](https://av.libreboot.org/t400/0067.jpg) ![](https://av.libreboot.org/t400/0069.jpg)
|
||||
![](https://av.libreboot.org/t400/0070.jpg) ![](https://av.libreboot.org/t400/0071.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0065.jpg) ![](https://avgnu.vimuser.org/t400/0066.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0067.jpg) ![](https://avgnu.vimuser.org/t400/0069.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0070.jpg) ![](https://avgnu.vimuser.org/t400/0071.jpg)
|
||||
|
||||
A dedicated 3.3V PSU was used to create this guide, but at ATX PSU is
|
||||
also fine:\
|
||||
![](https://av.libreboot.org/t400/0072.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0072.jpg)
|
||||
|
||||
Of course, make sure to turn on your PSU:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0013.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0013.jpg)
|
||||
|
||||
Now, you should be ready to install libreboot.
|
||||
Now, you should be ready to install nonGeNUine Boot.
|
||||
|
||||
Refer to the external flashing instructions [here](spi.md), and when you're
|
||||
done, re-assemble your laptop.
|
||||
|
@ -198,7 +198,7 @@ When re-installing the heatsink, you must first clean off all old paste
|
|||
with the alcohol/cloth. Then apply new paste. Arctic MX-4 is also much
|
||||
better than the default paste used on these systems.
|
||||
|
||||
![](https://av.libreboot.org/t400/paste.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/paste.jpg)
|
||||
|
||||
NOTE: the photo above is for illustration purposes only, and does not
|
||||
show how to properly apply the thermal paste. Other guides online detail
|
||||
|
@ -223,13 +223,13 @@ be useful for RAM compatibility info (note: coreboot raminit is
|
|||
different, so this page might be BS)
|
||||
|
||||
The following photo shows 8GiB (2x4GiB) of RAM installed:\
|
||||
![](https://av.libreboot.org/t400/memory.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/memory.jpg)
|
||||
|
||||
Boot it!
|
||||
--------
|
||||
|
||||
You should see something like this:
|
||||
|
||||
![](https://av.libreboot.org/t400/boot0.jpg) ![](https://av.libreboot.org/t400/boot1.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/boot0.jpg) ![](https://avgnu.vimuser.org/t400/boot1.jpg)
|
||||
|
||||
Now [install Linux](../linux/).
|
||||
Now [install GNU+Linux](../gnulinux/).
|
||||
|
|
|
@ -4,13 +4,13 @@ x-toc-enable: true
|
|||
...
|
||||
|
||||
**If you haven't bought a T500 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Initial flashing instructions for T500.
|
||||
|
||||
This guide is for those who want libreboot on their ThinkPad T500 while
|
||||
This guide is for those who want nonGeNUine Boot on their ThinkPad T500 while
|
||||
they still have the original Lenovo BIOS present. This guide can also be
|
||||
followed (adapted) if you brick your T500, to know how to recover.
|
||||
|
||||
|
@ -28,7 +28,7 @@ A note about CPUs
|
|||
|
||||
[ThinkWiki](http://www.thinkwiki.org/wiki/Category:T500) has a list of
|
||||
CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed
|
||||
to work in libreboot. The T9600 was also tested on the T400 and
|
||||
to work with nonGeNUine Boot. The T9600 was also tested on the T400 and
|
||||
confirmed working.
|
||||
|
||||
T9550 and T9900 was tested by a user, and is compatible as reported in the IRC channel.
|
||||
|
@ -58,7 +58,7 @@ Intel GPU; this is referred to as "switchable graphics". In the *BIOS
|
|||
setup* program for lenovobios, you can specify that the system will use
|
||||
one or the other (but not both).
|
||||
|
||||
libreboot is known to work on systems with only the Intel GPU, using
|
||||
nonGeNUine Boot is known to work on systems with only the Intel GPU, using
|
||||
native graphics initialization. On systems with switchable graphics, the
|
||||
Intel GPU is used and the ATI GPU is disabled, so native graphics
|
||||
initialization works all the same.
|
||||
|
@ -89,104 +89,104 @@ The procedure
|
|||
-------------
|
||||
|
||||
Remove all screws:\
|
||||
![](https://av.libreboot.org/t500/0000.jpg)\
|
||||
![](https://avgnu.vimuser.org/t500/0000.jpg)\
|
||||
It is also advisable to, throughout the disassembly, place any screws
|
||||
and/or components that you removed in the same layout or arrangement.
|
||||
The follow photos demonstrate this:\
|
||||
![](https://av.libreboot.org/t500/0001.jpg) ![](https://av.libreboot.org/t500/0002.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0001.jpg) ![](https://avgnu.vimuser.org/t500/0002.jpg)
|
||||
|
||||
Remove the HDD/SSD and optical drive:\
|
||||
![](https://av.libreboot.org/t500/0003.jpg) ![](https://av.libreboot.org/t500/0004.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0003.jpg) ![](https://avgnu.vimuser.org/t500/0004.jpg)
|
||||
|
||||
Remove the palm rest:\
|
||||
![](https://av.libreboot.org/t500/0005.jpg) ![](https://av.libreboot.org/t500/0006.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0005.jpg) ![](https://avgnu.vimuser.org/t500/0006.jpg)
|
||||
|
||||
Remove the keyboard and rear bezel:\
|
||||
![](https://av.libreboot.org/t500/0007.jpg) ![](https://av.libreboot.org/t500/0008.jpg)
|
||||
![](https://av.libreboot.org/t500/0009.jpg) ![](https://av.libreboot.org/t500/0010.jpg)
|
||||
![](https://av.libreboot.org/t500/0011.jpg) ![](https://av.libreboot.org/t500/0012.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0007.jpg) ![](https://avgnu.vimuser.org/t500/0008.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0009.jpg) ![](https://avgnu.vimuser.org/t500/0010.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0011.jpg) ![](https://avgnu.vimuser.org/t500/0012.jpg)
|
||||
|
||||
If you have a WWAN/3G card and/or sim card reader, remove them
|
||||
permanently. The WWAN-3G card has proprietary firmware inside; the
|
||||
technology is identical to what is used in mobile phones, so it can also
|
||||
track your movements:\
|
||||
![](https://av.libreboot.org/t500/0013.jpg) ![](https://av.libreboot.org/t500/0017.jpg)
|
||||
![](https://av.libreboot.org/t500/0018.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0013.jpg) ![](https://avgnu.vimuser.org/t500/0017.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0018.jpg)
|
||||
|
||||
Remove this frame, and then remove the wifi chip:\
|
||||
![](https://av.libreboot.org/t500/0014.jpg) ![](https://av.libreboot.org/t500/0015.jpg)
|
||||
![](https://av.libreboot.org/t500/0016.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0014.jpg) ![](https://avgnu.vimuser.org/t500/0015.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0016.jpg)
|
||||
|
||||
Remove the speakers:\
|
||||
![](https://av.libreboot.org/t500/0019.jpg) ![](https://av.libreboot.org/t500/0020.jpg)
|
||||
![](https://av.libreboot.org/t500/0021.jpg) ![](https://av.libreboot.org/t500/0022.jpg)
|
||||
![](https://av.libreboot.org/t500/0023.jpg) ![](https://av.libreboot.org/t500/0024.jpg)
|
||||
![](https://av.libreboot.org/t500/0025.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0019.jpg) ![](https://avgnu.vimuser.org/t500/0020.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0021.jpg) ![](https://avgnu.vimuser.org/t500/0022.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0023.jpg) ![](https://avgnu.vimuser.org/t500/0024.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0025.jpg)
|
||||
|
||||
Remove the NVRAM battery (already removed in this photo):\
|
||||
![](https://av.libreboot.org/t500/0026.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0026.jpg)
|
||||
|
||||
When you re-assemble, you will be replacing the wifi chip with another.
|
||||
These two screws don't hold anything together, but they are included in
|
||||
your system because the screw holes for half-height cards are a
|
||||
different size, so use these if you will be installing a half-height
|
||||
card:\
|
||||
![](https://av.libreboot.org/t500/0027.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0027.jpg)
|
||||
|
||||
Unroute the antenna wires:\
|
||||
![](https://av.libreboot.org/t500/0028.jpg) ![](https://av.libreboot.org/t500/0029.jpg)
|
||||
![](https://av.libreboot.org/t500/0030.jpg) ![](https://av.libreboot.org/t500/0031.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0028.jpg) ![](https://avgnu.vimuser.org/t500/0029.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0030.jpg) ![](https://avgnu.vimuser.org/t500/0031.jpg)
|
||||
|
||||
Disconnect the LCD cable from the motherboard:\
|
||||
![](https://av.libreboot.org/t500/0032.jpg) ![](https://av.libreboot.org/t500/0033.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0032.jpg) ![](https://avgnu.vimuser.org/t500/0033.jpg)
|
||||
|
||||
Remove the LCD assembly hinge screws, and then remove the LCD assembly:\
|
||||
![](https://av.libreboot.org/t500/0034.jpg) ![](https://av.libreboot.org/t500/0035.jpg)
|
||||
![](https://av.libreboot.org/t500/0036.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0034.jpg) ![](https://avgnu.vimuser.org/t500/0035.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0036.jpg)
|
||||
|
||||
Remove the fan and heatsink:\
|
||||
![](https://av.libreboot.org/t500/0037.jpg) ![](https://av.libreboot.org/t500/0038.jpg)
|
||||
![](https://av.libreboot.org/t500/0039.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0037.jpg) ![](https://avgnu.vimuser.org/t500/0038.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0039.jpg)
|
||||
|
||||
Remove this screw:\
|
||||
![](https://av.libreboot.org/t500/0040.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0040.jpg)
|
||||
|
||||
Remove these cables, keeping note of how and in what arrangement they
|
||||
are connected:\
|
||||
![](https://av.libreboot.org/t500/0041.jpg) ![](https://av.libreboot.org/t500/0042.jpg)
|
||||
![](https://av.libreboot.org/t500/0043.jpg) ![](https://av.libreboot.org/t500/0044.jpg)
|
||||
![](https://av.libreboot.org/t500/0045.jpg) ![](https://av.libreboot.org/t500/0046.jpg)
|
||||
![](https://av.libreboot.org/t500/0047.jpg) ![](https://av.libreboot.org/t500/0048.jpg)
|
||||
![](https://av.libreboot.org/t500/0049.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0041.jpg) ![](https://avgnu.vimuser.org/t500/0042.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0043.jpg) ![](https://avgnu.vimuser.org/t500/0044.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0045.jpg) ![](https://avgnu.vimuser.org/t500/0046.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0047.jpg) ![](https://avgnu.vimuser.org/t500/0048.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0049.jpg)
|
||||
|
||||
Disconnect the power jack:\
|
||||
![](https://av.libreboot.org/t500/0050.jpg) ![](https://av.libreboot.org/t500/0051.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0050.jpg) ![](https://avgnu.vimuser.org/t500/0051.jpg)
|
||||
|
||||
Remove the motherboard and cage from the base (the marked hole is where
|
||||
those cables were routed through):\
|
||||
![](https://av.libreboot.org/t500/0052.jpg) ![](https://av.libreboot.org/t500/0053.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0052.jpg) ![](https://avgnu.vimuser.org/t500/0053.jpg)
|
||||
|
||||
Remove all screws, arranging them in the same layout when placing the
|
||||
screws on a surface and marking each screw hole (this is to reduce the
|
||||
possibility of putting them back in the wrong holes):\
|
||||
![](https://av.libreboot.org/t500/0054.jpg) ![](https://av.libreboot.org/t500/0055.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0054.jpg) ![](https://avgnu.vimuser.org/t500/0055.jpg)
|
||||
|
||||
Also remove this:\
|
||||
![](https://av.libreboot.org/t500/0056.jpg) ![](https://av.libreboot.org/t500/0057.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0056.jpg) ![](https://avgnu.vimuser.org/t500/0057.jpg)
|
||||
|
||||
Separate the motherboard from the cage:\
|
||||
![](https://av.libreboot.org/t500/0058.jpg) ![](https://av.libreboot.org/t500/0059.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0058.jpg) ![](https://avgnu.vimuser.org/t500/0059.jpg)
|
||||
|
||||
The flash chip is next to the memory slots. On this system, it was a
|
||||
SOIC-8 (4MiB or 32Mb) flash chip:\
|
||||
![](https://av.libreboot.org/t500/0060.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0060.jpg)
|
||||
|
||||
Connect your programmer, then connect GND and 3.3V\
|
||||
![](https://av.libreboot.org/t500/0061.jpg)\
|
||||
![](https://av.libreboot.org/t400/0067.jpg) ![](https://av.libreboot.org/t400/0069.jpg)
|
||||
![](https://av.libreboot.org/t400/0070.jpg) ![](https://av.libreboot.org/t400/0071.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0061.jpg)\
|
||||
![](https://avgnu.vimuser.org/t400/0067.jpg) ![](https://avgnu.vimuser.org/t400/0069.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0070.jpg) ![](https://avgnu.vimuser.org/t400/0071.jpg)
|
||||
|
||||
Now flash Libreboot.
|
||||
Now flash nonGeNUine Boot.
|
||||
|
||||
Thermal paste (IMPORTANT)
|
||||
=========================
|
||||
|
@ -199,7 +199,7 @@ When re-installing the heatsink, you must first clean off all old paste
|
|||
with the alcohol/cloth. Then apply new paste. Arctic MX-4 is also much
|
||||
better than the default paste used on these systems.
|
||||
|
||||
![](https://av.libreboot.org/t400/paste.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/paste.jpg)
|
||||
|
||||
NOTE: the photo above is for illustration purposes only, and does not
|
||||
show how to properly apply the thermal paste. Other guides online detail
|
||||
|
@ -217,13 +217,13 @@ Some T500 laptops might come with an Atheros chipset, but this is
|
|||
802.11g only.
|
||||
|
||||
It is recommended that you install a new wifi chipset. This can only be
|
||||
done after installing libreboot, because the original firmware has a
|
||||
done after installing nonGeNUine Boot, because the original firmware has a
|
||||
whitelist of approved chips, and it will refuse to boot if you use an
|
||||
'unauthorized' wifi card.
|
||||
|
||||
The following photos show an Atheros AR5B95 being installed, to replace
|
||||
the Intel chip that this T500 came with:\
|
||||
![](https://av.libreboot.org/t400/0012.jpg) ![](https://av.libreboot.org/t400/ar5b95.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/0012.jpg) ![](https://avgnu.vimuser.org/t400/ar5b95.jpg)
|
||||
|
||||
WWAN
|
||||
====
|
||||
|
@ -254,13 +254,13 @@ be useful for RAM compatibility info (note: coreboot raminit is
|
|||
different, so this page might be BS)
|
||||
|
||||
The following photo shows 8GiB (2x4GiB) of RAM installed:\
|
||||
![](https://av.libreboot.org/t400/memory.jpg)
|
||||
![](https://avgnu.vimuser.org/t400/memory.jpg)
|
||||
|
||||
Boot it!
|
||||
--------
|
||||
|
||||
You should see something like this:
|
||||
|
||||
![](https://av.libreboot.org/t500/0062.jpg)
|
||||
![](https://avgnu.vimuser.org/t500/0062.jpg)
|
||||
|
||||
Now [install Linux](../linux/).
|
||||
Now [install GNU+Linux](../gnulinux/).
|
||||
|
|
|
@ -9,7 +9,7 @@ your ThinkPad T60 from booting.
|
|||
This section documents how to recover from a bad flash that prevents
|
||||
your ThinkPad X60 from booting.
|
||||
|
||||
ROM images for this machine are well-tested in libreboot, so bricks are rare.
|
||||
ROM images for this machine are well-tested in nonGeNUine Boot, so bricks are rare.
|
||||
The most common cause of a brick is operator error, when flashing a ROM image.
|
||||
In *most* cases, the cause will be that there is no bootblock, or an invalid
|
||||
one.
|
||||
|
@ -17,9 +17,9 @@ one.
|
|||
Brick type 1: bucts not reset. {#bucts_brick}
|
||||
==============================
|
||||
|
||||
You still have Lenovo BIOS, or you had libreboot running and you flashed
|
||||
You still have Lenovo BIOS, or you had nonGeNUine Boot running and you flashed
|
||||
another ROM; and you had bucts 1 set and the ROM wasn't dd'd.\* or if
|
||||
Lenovo BIOS was present and libreboot wasn't flashed.
|
||||
Lenovo BIOS was present and nonGeNUine Boot wasn't flashed.
|
||||
|
||||
There are *2* 64KiB bootblocks possible, in the upper part of the ROM image.
|
||||
By default (bucts set to 0), the top one is used. If bucts is set to 1, the
|
||||
|
@ -41,10 +41,10 @@ you re-flash a second time and set it back to 0.
|
|||
In this case, unbricking is easy: reset BUC.TS to 0 by removing that
|
||||
yellow cmos coin (it's a battery) and putting it back after a minute or
|
||||
two:\
|
||||
![](https://av.libreboot.org/t60_dev/0006.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0006.JPG)
|
||||
|
||||
\*Those dd commands should be applied to all newly compiled T60 ROM
|
||||
images (the ROM images in libreboot binary archives already have this
|
||||
images (the ROM images in nonGeNUine Boot binary archives already have this
|
||||
applied!):
|
||||
|
||||
dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
|
||||
|
@ -72,65 +72,65 @@ will not boot at all.
|
|||
"Unbricking" means flashing a known-good (working) ROM. The problem:
|
||||
you can't boot the system, making this difficult. In this situation,
|
||||
external hardware (see hardware requirements above) is needed which can
|
||||
flash the SPI chip (where libreboot resides).
|
||||
flash the SPI chip (where nonGeNUine Boot resides).
|
||||
|
||||
Remove those screws and remove the HDD:\
|
||||
![](https://av.libreboot.org/t60_dev/0001.JPG) ![](https://av.libreboot.org/t60_dev/0002.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0001.JPG) ![](https://avgnu.vimuser.org/t60_dev/0002.JPG)
|
||||
|
||||
Lift off the palm rest:\
|
||||
![](https://av.libreboot.org/t60_dev/0003.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0003.JPG)
|
||||
|
||||
Lift up the keyboard, pull it back a bit, flip it over like that and
|
||||
then disconnect it from the board:\
|
||||
![](https://av.libreboot.org/t60_dev/0004.JPG) ![](https://av.libreboot.org/t60_dev/0005.JPG)
|
||||
![](https://av.libreboot.org/t60_dev/0006.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0004.JPG) ![](https://avgnu.vimuser.org/t60_dev/0005.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0006.JPG)
|
||||
|
||||
Gently wedge both sides loose:\
|
||||
![](https://av.libreboot.org/t60_dev/0007.JPG) ![](https://av.libreboot.org/t60_dev/0008.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0007.JPG) ![](https://avgnu.vimuser.org/t60_dev/0008.JPG)
|
||||
|
||||
Remove that cable from the position:\
|
||||
![](https://av.libreboot.org/t60_dev/0009.JPG) ![](https://av.libreboot.org/t60_dev/0010.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0009.JPG) ![](https://avgnu.vimuser.org/t60_dev/0010.JPG)
|
||||
|
||||
Now remove that bezel. Remove wifi, nvram battery and speaker connector
|
||||
(also remove 56k modem, on the left of wifi):\
|
||||
![](https://av.libreboot.org/t60_dev/0011.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0011.JPG)
|
||||
|
||||
Remove those screws:\
|
||||
![](https://av.libreboot.org/t60_dev/0012.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0012.JPG)
|
||||
|
||||
Disconnect the power jack:\
|
||||
![](https://av.libreboot.org/t60_dev/0013.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0013.JPG)
|
||||
|
||||
Remove nvram battery:\
|
||||
![](https://av.libreboot.org/t60_dev/0014.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0014.JPG)
|
||||
|
||||
Disconnect cable (for 56k modem) and disconnect the other cable:\
|
||||
![](https://av.libreboot.org/t60_dev/0015.JPG) ![](https://av.libreboot.org/t60_dev/0016.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0015.JPG) ![](https://avgnu.vimuser.org/t60_dev/0016.JPG)
|
||||
|
||||
Disconnect speaker cable:\
|
||||
![](https://av.libreboot.org/t60_dev/0017.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0017.JPG)
|
||||
|
||||
Disconnect the other end of the 56k modem cable:\
|
||||
![](https://av.libreboot.org/t60_dev/0018.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0018.JPG)
|
||||
|
||||
Make sure you removed it:\
|
||||
![](https://av.libreboot.org/t60_dev/0019.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0019.JPG)
|
||||
|
||||
Unscrew those:\
|
||||
![](https://av.libreboot.org/t60_dev/0020.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0020.JPG)
|
||||
|
||||
Make sure you removed those:\
|
||||
![](https://av.libreboot.org/t60_dev/0021.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0021.JPG)
|
||||
|
||||
Disconnect LCD cable from board:\
|
||||
![](https://av.libreboot.org/t60_dev/0022.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0022.JPG)
|
||||
|
||||
Remove those screws then remove the LCD assembly:\
|
||||
![](https://av.libreboot.org/t60_dev/0023.JPG) ![](https://av.libreboot.org/t60_dev/0024.JPG)
|
||||
![](https://av.libreboot.org/t60_dev/0025.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0023.JPG) ![](https://avgnu.vimuser.org/t60_dev/0024.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0025.JPG)
|
||||
|
||||
Once again, make sure you removed those:\
|
||||
![](https://av.libreboot.org/t60_dev/0026.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0026.JPG)
|
||||
|
||||
Remove the shielding containing the motherboard, then flip it over.
|
||||
Remove these screws, placing them on a steady surface in the same layout
|
||||
|
@ -139,13 +139,13 @@ screw hole after removing the screw (a permanent marker pen will do),
|
|||
this is so that you have a point of reference when re-assembling the
|
||||
system:
|
||||
|
||||
![](https://av.libreboot.org/t60_dev/0027.JPG) ![](https://av.libreboot.org/t60_dev/0028.JPG)
|
||||
![](https://av.libreboot.org/t60_dev/0029.JPG) ![](https://av.libreboot.org/t60_dev/0031.JPG)
|
||||
![](https://av.libreboot.org/t60_dev/0032.JPG) ![](https://av.libreboot.org/t60_dev/0033.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0027.JPG) ![](https://avgnu.vimuser.org/t60_dev/0028.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0029.JPG) ![](https://avgnu.vimuser.org/t60_dev/0031.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0032.JPG) ![](https://avgnu.vimuser.org/t60_dev/0033.JPG)
|
||||
|
||||
This photo shows the flash chip, near the RAM, with numbers of pins written:
|
||||
|
||||
![](https://av.libreboot.org/t60_dev/0030.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0030.JPG)
|
||||
|
||||
Refer to the external flashing guide:
|
||||
|
||||
|
@ -160,7 +160,7 @@ which all draw a lot of current, more than your flasher can provide.
|
|||
|
||||
Example command:
|
||||
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=4096 -w libreboot.rom -V
|
||||
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=4096 -w nongenuineboot.rom -V
|
||||
|
||||
If flashrom complains about multiple flash chips detected, just pass the `-c`
|
||||
option as it suggests, and pick any of the chips it lists. `spispeed=4096` or
|
||||
|
@ -174,48 +174,48 @@ complains about multiple flash chip definitions detected, then choose
|
|||
one of them following the instructions in the output.
|
||||
|
||||
Put those screws back:\
|
||||
![](https://av.libreboot.org/t60_dev/0047.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0047.JPG)
|
||||
|
||||
Put it back into lower chassis:\
|
||||
![](https://av.libreboot.org/t60_dev/0048.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0048.JPG)
|
||||
|
||||
Attach LCD and insert screws (also, attach the lcd cable to the board):\
|
||||
![](https://av.libreboot.org/t60_dev/0049.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0049.JPG)
|
||||
|
||||
Insert those screws:\
|
||||
![](https://av.libreboot.org/t60_dev/0050.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0050.JPG)
|
||||
|
||||
On the CPU (and there is another chip south-east to it, sorry forgot to
|
||||
take pic) clean off the old thermal paste (with the alcohol) and apply
|
||||
new (Artic Silver 5 is good, others are good too) you should also clean
|
||||
the heatsink the same way\
|
||||
![](https://av.libreboot.org/t60_dev/0051.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0051.JPG)
|
||||
|
||||
Attach the heatsink and install the screws (also, make sure to install
|
||||
the AC jack as highlighted):\
|
||||
![](https://av.libreboot.org/t60_dev/0052.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0052.JPG)
|
||||
|
||||
Reinstall that upper bezel:\
|
||||
![](https://av.libreboot.org/t60_dev/0053.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0053.JPG)
|
||||
|
||||
Do that:\
|
||||
![](https://av.libreboot.org/t60_dev/0054.JPG) ![](https://av.libreboot.org/t60_dev/0055.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0054.JPG) ![](https://avgnu.vimuser.org/t60_dev/0055.JPG)
|
||||
|
||||
Re-attach modem, wifi, (wwan?), and all necessary cables. Sorry, forgot
|
||||
to take pics. Look at previous removal steps to see where they go back
|
||||
to.
|
||||
|
||||
Attach keyboard and install nvram battery:\
|
||||
![](https://av.libreboot.org/t60_dev/0056.JPG) ![](https://av.libreboot.org/t60_dev/0057.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0056.JPG) ![](https://avgnu.vimuser.org/t60_dev/0057.JPG)
|
||||
|
||||
Place keyboard and (sorry, forgot to take pics) reinstall the palmrest
|
||||
and insert screws on the underside:\
|
||||
![](https://av.libreboot.org/t60_dev/0058.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0058.JPG)
|
||||
|
||||
It lives!\
|
||||
![](https://av.libreboot.org/t60_dev/0071.JPG) ![](https://av.libreboot.org/t60_dev/0072.JPG)
|
||||
![](https://av.libreboot.org/t60_dev/0073.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0071.JPG) ![](https://avgnu.vimuser.org/t60_dev/0072.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0073.JPG)
|
||||
|
||||
Always stress test ('stress -c 2' and xsensors. below 90C is ok) when
|
||||
replacing cpu paste/heatsink:\
|
||||
![](https://av.libreboot.org/t60_dev/0074.JPG)
|
||||
![](https://avgnu.vimuser.org/t60_dev/0074.JPG)
|
||||
|
|
|
@ -4,11 +4,11 @@ x-toc-enable: true
|
|||
...
|
||||
|
||||
**If you haven't bought an X200 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
This guide is for those who want libreboot on their ThinkPad X200 while
|
||||
This guide is for those who want nonGeNUine Boot on their ThinkPad X200 while
|
||||
they still have the original Lenovo BIOS present. This guide can also be
|
||||
followed (adapted) if you brick your X200, to know how to recover.
|
||||
|
||||
|
@ -18,7 +18,7 @@ underneath the palm rest. You will then connect an external SPI programmer, to
|
|||
re-flash the chip externally while it is powered off with the battery removed.
|
||||
|
||||
NOTE: This guide only applies to the regular X200. For X200S and X200 Tablet
|
||||
flashing, please read other guides available on libreboot.org.
|
||||
flashing, please read other guides available on the nonGeNUine Boot website.
|
||||
|
||||
Flash chip size
|
||||
===============
|
||||
|
@ -40,27 +40,27 @@ Tablet (for those systems, you have to remove the motherboard
|
|||
completely, since the flash chip is on the other side of the board).
|
||||
|
||||
Remove these screws:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0003.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0003.jpg)
|
||||
|
||||
Gently push the keyboard towards the screen, then lift it off, and optionally
|
||||
disconnect it from the board:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0004.jpg)
|
||||
![](https://av.libreboot.org/x200/disassembly/0005.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0004.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0005.jpg)
|
||||
|
||||
Disconnect the cable of the fingerpring reader, and then pull up the palm rest,
|
||||
lifting up the left and right side of it:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0006.1.jpg)
|
||||
![](https://av.libreboot.org/x200/disassembly/0006.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0006.1.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0006.jpg)
|
||||
|
||||
This shows the location of the flash chip, for both SOIC-8 and SOIC-16:\
|
||||
![](https://av.libreboot.org/x200/x200_soic16.jpg)
|
||||
![](https://av.libreboot.org/x200/x200_soic8.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/x200_soic16.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/x200_soic8.jpg)
|
||||
|
||||
Lift back the tape that covers a part of the flash chip, and then
|
||||
connect the clip:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0008.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0008.jpg)
|
||||
|
||||
Now, you should be ready to install libreboot.
|
||||
Now, you should be ready to install nonGeNUine Boot.
|
||||
|
||||
Refer to the [SPI programming instructions](spi.md).
|
||||
|
||||
|
@ -83,16 +83,16 @@ Make sure that the RAM you buy is the 2Rx8 configuration when buying 4GiB sticks
|
|||
|
||||
In this photo, 8GiB of RAM (2x4GiB) is installed:
|
||||
|
||||
![](https://av.libreboot.org/x200/disassembly/0018.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0018.jpg)
|
||||
|
||||
Boot it!
|
||||
--------
|
||||
|
||||
You should see something like this:
|
||||
|
||||
![](https://av.libreboot.org/x200/disassembly/0019.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0019.jpg)
|
||||
|
||||
Now [install Linux](../linux/).
|
||||
Now [install GNU+Linux](../gnulinux/).
|
||||
|
||||
X200S and X200 Tablet users: GPIO33 trick will not work.
|
||||
--------------------------------------------------------
|
||||
|
@ -104,7 +104,7 @@ was proven correct; however, it is still useless in practise.
|
|||
|
||||
Look just above the 7 in TP37 (that's GPIO33):
|
||||
|
||||
![](https://av.libreboot.org/x200/gpio33_location.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/gpio33_location.jpg)
|
||||
|
||||
By default we would see this in lenovobios, when trying flashrom -p
|
||||
internal -w rom.rom:
|
||||
|
@ -146,16 +146,16 @@ probably setting something in memory and loading the ROM, plus a payload program
|
|||
that does the flashing; Lenovo BIOS then probably sees that and runs that, instead
|
||||
of setting PRx and going for normal boot. It is theoretically possible that we
|
||||
could discover how this works, by debugging the Lenovo BIOS update utility (in
|
||||
Windows), and then replicate what it is doing, with some tool for Linux,
|
||||
Windows), and then replicate what it is doing, with some tool for GNU+Linux,
|
||||
then load a flashrom binary into memory and the ROM to flash (for the BIOS
|
||||
region). You would do this with GPIO33 grounded, and the payload program would
|
||||
actually flash the entire chip, with just a normal libreboot image.
|
||||
actually flash the entire chip, with just a normal nonGeNUine Boot image.
|
||||
|
||||
It's possible. The above is likely the only way that the Lenovo BIOS updater
|
||||
program works. So if we discover precisely how to do that, then you could
|
||||
just connect some pogo pins to ground GPIO33, then boot up, run some software
|
||||
(which would have to be written) that does the above.
|
||||
|
||||
On a related note, libreboot has a utility that could help with
|
||||
On a related note, nonGeNUine Boot has a utility that could help with
|
||||
investigating this:
|
||||
[ich9utils.md#demefactory](ich9utils.md#demefactory)
|
||||
|
|
|
@ -4,11 +4,11 @@ x-toc-enable: true
|
|||
...
|
||||
|
||||
**If you haven't bought an X200 yet: the [Dell Latitude
|
||||
E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
|
||||
E6400](e6400.md) is much easier to flash; no disassembly required,
|
||||
it can be flashed entirely in software from Dell BIOS to nonGeNUine Boot. It is the
|
||||
same hardware generation (GM45), with same CPUs, video processor, etc.**
|
||||
|
||||
Цей посібник призначений для тих, хто бажає libreboot на своєму ThinkPad X200,
|
||||
Цей посібник призначений для тих, хто бажає nonGeNUine Boot на своєму ThinkPad X200,
|
||||
поки у нього все ще є оригінальний Lenovo BIOS в наявності. Цього керівництва також можна
|
||||
дотримуватися (адаптувати), якщо ви перетворили ваш X200 на цеглину, щоб знати, як його відновити.
|
||||
|
||||
|
@ -18,7 +18,7 @@ same hardware generation (GM45), with same CPUs, video processor, etc.**
|
|||
повторно прошити мікросхему зовні, коли вона вимкнена та акумулятор висунуто.
|
||||
|
||||
ПРИМІТКА: Цей посібник стосується лише звичайного X200. Для перепрошивки X200S та X200 Tablet,
|
||||
будь-ласка прочитайте інші посібники, доступні на libreboot.org.
|
||||
будь-ласка прочитайте інші посібники, доступні на nonGeNUine Boot
|
||||
|
||||
Розмір флеш-чіпа
|
||||
===============
|
||||
|
@ -40,27 +40,27 @@ Tablet (для цих систем потрібно повністю видал
|
|||
оскільки мікросхема флеш-пам'яті знаходиться з іншого боку плати).
|
||||
|
||||
Викрутіть ці гвинти:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0003.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0003.jpg)
|
||||
|
||||
Обережно притисніть клавіатуру до екрана, потім підніміть її та за бажанням
|
||||
від'єднайте від плати:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0004.jpg)
|
||||
![](https://av.libreboot.org/x200/disassembly/0005.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0004.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0005.jpg)
|
||||
|
||||
Від'єднайте кабель пристрою для зчитування відбитків пальців, а потім потягніть упор для рук,
|
||||
піднявши його ліву та праву сторону:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0006.1.jpg)
|
||||
![](https://av.libreboot.org/x200/disassembly/0006.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0006.1.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0006.jpg)
|
||||
|
||||
Тут показано розташування мікросхеми флеш-пам'яті, для обох SOIC-8 та SOIC-16:\
|
||||
![](https://av.libreboot.org/x200/x200_soic16.jpg)
|
||||
![](https://av.libreboot.org/x200/x200_soic8.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/x200_soic16.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/x200_soic8.jpg)
|
||||
|
||||
Підніміть стрічку, яка закриває частину флеш-пам'яті, а потім
|
||||
приєднайте затискач:\
|
||||
![](https://av.libreboot.org/x200/disassembly/0008.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0008.jpg)
|
||||
|
||||
Тепер ви повинні бути готові до встановлення libreboot.
|
||||
Тепер ви повинні бути готові до встановлення nonGeNUine Boot.
|
||||
|
||||
Зверніться до [інструкцій програмування SPI](spi.md).
|
||||
|
||||
|
@ -83,16 +83,16 @@ Tablet (для цих систем потрібно повністю видал
|
|||
|
||||
На цьому фото встановлено 8 ГБ оперативної пам'яті (2x4ГБ):
|
||||
|
||||
![](https://av.libreboot.org/x200/disassembly/0018.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0018.jpg)
|
||||
|
||||
Завантажуйтесь!
|
||||
--------
|
||||
|
||||
Ви маєте побачити щось подібне цьому:
|
||||
|
||||
![](https://av.libreboot.org/x200/disassembly/0019.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/disassembly/0019.jpg)
|
||||
|
||||
Тепер [встановлюйте Linux](../linux/).
|
||||
Тепер [встановлюйте GNU+Linux](../gnulinux/).
|
||||
|
||||
Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює.
|
||||
--------------------------------------------------------
|
||||
|
@ -104,7 +104,7 @@ sgsit дізнався про контакт під назвою GPIO33, яки
|
|||
|
||||
Подивіться трохи вище 7 у TP37 (це GPIO33):
|
||||
|
||||
![](https://av.libreboot.org/x200/gpio33_location.jpg)
|
||||
![](https://avgnu.vimuser.org/x200/gpio33_location.jpg)
|
||||
|
||||
Це замовчуванням ми побачимо це в lenovobios, під час спроби flashrom -p
|
||||
internal -w rom.rom:
|
||||
|
@ -140,16 +140,16 @@ internal -w rom.rom:
|
|||
яка виконує перепрошивання; тоді Lenovo BIOS, ймовірно, бачить це та запускає це замість
|
||||
встановлення PRx і переходу до нормального завантаження. Теоретично можливо, що ми
|
||||
зможемо дізнатися, як це працює, налагодивши утиліту оновлення BIOS Lenovo (у
|
||||
Windows), а потім відтворивши її дії за допомогою якогось інструменту для Linux,
|
||||
Windows), а потім відтворивши її дії за допомогою якогось інструменту для GNU+Linux,
|
||||
а потім завантаживши двійковий файл flashrom в пам'ять та ROM для прошивки (для BIOS
|
||||
регіона). Ви б зробили це з заземленням GPIO33, і програма корисного навантаження
|
||||
фактично прошиє весь чіп, лише звичайним образом libreboot.
|
||||
фактично прошиє весь чіп, лише звичайним образом nonGeNUine Boot.
|
||||
|
||||
Це можливо. Ймовірно, це єдиний спосіб роботи програми оновлення BIOS Lenovo.
|
||||
Отже, якщо ми дізнаємося, як саме це зробити, тоді ви можете просто підключити кілька
|
||||
контактів pogo для заземлення GPIO33, потім завантажитися, запустити програмне забезпечення
|
||||
(яке потрібно було б написати), яке виконує вищезазначене.
|
||||
|
||||
У зв'язку з цим у libreboot є утиліта, яка може допомогти
|
||||
У зв'язку з цим у nonGeNUine Boot є утиліта, яка може допомогти
|
||||
розслідувати це:
|
||||
[ich9utils.md#demefactory](ich9utils.md#demefactory)
|
||||
|
|
|
@ -6,7 +6,7 @@ x-toc-enable: true
|
|||
This section documents how to recover from a bad flash that prevents
|
||||
your ThinkPad X60 from booting.
|
||||
|
||||
ROM images for this machine are well-tested in libreboot, so bricks are rare.
|
||||
ROM images for this machine are well-tested in nonGeNUine Boot, so bricks are rare.
|
||||
The most common cause of a brick is operator error, when flashing a ROM image.
|
||||
In *most* cases, the cause will be that there is no bootblock, or an invalid
|
||||
one.
|
||||
|
@ -14,9 +14,9 @@ one.
|
|||
Brick type 1: bucts not reset. {#bucts_brick}
|
||||
==============================
|
||||
|
||||
You still have Lenovo BIOS, or you had libreboot running and you flashed
|
||||
You still have Lenovo BIOS, or you had nonGeNUine Boot running and you flashed
|
||||
another ROM; and you had bucts 1 set and the ROM wasn't dd'd.\* or if
|
||||
Lenovo BIOS was present and libreboot wasn't flashed.
|
||||
Lenovo BIOS was present and nonGeNUine Boot wasn't flashed.
|
||||
|
||||
There are *2* 64KiB bootblocks possible, in the upper part of the ROM image.
|
||||
By default (bucts set to 0), the top one is used. If bucts is set to 1, the
|
||||
|
@ -38,10 +38,10 @@ you re-flash a second time and set it back to 0.
|
|||
In this case, unbricking is easy: reset BUC.TS to 0 by removing that
|
||||
yellow cmos coin (it's a battery) and putting it back after a minute or
|
||||
two:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0004.jpg)\
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0004.jpg)\
|
||||
|
||||
\*Those dd commands should be applied to all newly compiled X60 ROM
|
||||
images (the ROM images in libreboot binary archives already have this
|
||||
images (the ROM images in nonGeNUine Boot binary archives already have this
|
||||
applied!):
|
||||
|
||||
dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
|
||||
|
@ -68,66 +68,66 @@ will not boot at all.
|
|||
"Unbricking" means flashing a known-good (working) ROM. The problem:
|
||||
you can't boot the system, making this difficult. In this situation,
|
||||
external hardware (see hardware requirements above) is needed which can
|
||||
flash the SPI chip (where libreboot resides).
|
||||
flash the SPI chip (where nonGeNUine Boot resides).
|
||||
|
||||
Remove those screws:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0000.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0000.jpg)
|
||||
|
||||
Push the keyboard forward (carefully):\
|
||||
![](https://av.libreboot.org/x60_unbrick/0001.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0001.jpg)
|
||||
|
||||
Lift the keyboard up and disconnect it from the board:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0002.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0002.jpg)
|
||||
|
||||
Grab the right-hand side of the chassis and force it off (gently) and
|
||||
pry up the rest of the chassis:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0003.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0003.jpg)
|
||||
|
||||
You should now have this:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0004.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0004.jpg)
|
||||
|
||||
Disconnect the wifi antenna cables, the modem cable and the speaker:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0005.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0005.jpg)
|
||||
|
||||
Unroute the cables along their path, carefully lifting the tape that
|
||||
holds them in place. Then, disconnect the modem cable (other end) and
|
||||
power connection and unroute all the cables so that they dangle by the
|
||||
monitor hinge on the right-hand side:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0006.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0006.jpg)
|
||||
|
||||
Disconnect the monitor from the motherboard, and unroute the grey
|
||||
antenna cable, carefully lifting the tape that holds it into place:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0008.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0008.jpg)
|
||||
|
||||
Carefully lift the remaining tape and unroute the left antenna cable so
|
||||
that it is loose:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0009.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0009.jpg)
|
||||
|
||||
Remove the screw that is highlighted (do NOT remove the other one; it
|
||||
holds part of the heatsink (other side) into place):\
|
||||
![](https://av.libreboot.org/x60_unbrick/0011.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0011.jpg)
|
||||
|
||||
Remove those screws:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0012.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0012.jpg)
|
||||
|
||||
Carefully remove the plate, like so:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0013.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0013.jpg)
|
||||
|
||||
Remove the SATA connector:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0014.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0014.jpg)
|
||||
|
||||
Now remove the motherboard (gently) and cast the lcd/chassis aside:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0015.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0015.jpg)
|
||||
|
||||
Lift back that tape and hold it with something. Highlighted is the SPI
|
||||
flash chip:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0016.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0016.jpg)
|
||||
|
||||
Here is another photo, with the numbers of the pins written:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0017.jpg)\
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0017.jpg)\
|
||||
|
||||
This photo shows an SPI flasher used, with SOIC8 test clip:\
|
||||
![](https://av.libreboot.org/x60/th_bbb_flashing.jpg)
|
||||
![](https://avgnu.vimuser.org/x60/th_bbb_flashing.jpg)
|
||||
|
||||
Refer to the following guide:\
|
||||
[Externally rewrite 25xx NOR flash via SPI protocol](spi.md)
|
||||
|
@ -141,74 +141,74 @@ which all draw a lot of current, more than your programmer can provide.
|
|||
|
||||
When you're finished flashing, remove the programmer and put it away somewhere.
|
||||
Put back the tape and press firmly over it:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0026.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0026.jpg)
|
||||
|
||||
Your empty chassis:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0027.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0027.jpg)
|
||||
|
||||
Put the motherboard back in:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0028.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0028.jpg)
|
||||
|
||||
Reconnect SATA:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0029.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0029.jpg)
|
||||
|
||||
Put the plate back and re-insert those screws:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0030.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0030.jpg)
|
||||
|
||||
Re-route that antenna cable around the fan and apply the tape:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0031.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0031.jpg)
|
||||
|
||||
Route the cable here and then (not shown, due to error on my part)
|
||||
reconnect the monitor cable to the motherboard and re-insert the
|
||||
screws:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0032.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0032.jpg)
|
||||
|
||||
Re-insert that screw:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0033.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0033.jpg)
|
||||
|
||||
Route the black antenna cable like so:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0034.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0034.jpg)
|
||||
|
||||
Tuck it in neatly like so:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0035.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0035.jpg)
|
||||
|
||||
Route the modem cable like so:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0036.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0036.jpg)
|
||||
|
||||
Connect modem cable to board and tuck it in neatly like so:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0037.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0037.jpg)
|
||||
|
||||
Route the power connection and connect it to the board like so:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0038.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0038.jpg)
|
||||
|
||||
Route the antenna and modem cables neatly like so:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0039.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0039.jpg)
|
||||
|
||||
Connect the wifi antenna cables. At the start of the tutorial, this
|
||||
system had an Intel wifi chip. Here you see I've replaced it with an
|
||||
Atheros AR5B95 (supports 802.11n and can be used without blobs):\
|
||||
![](https://av.libreboot.org/x60_unbrick/0040.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0040.jpg)
|
||||
|
||||
Connect the modem cable:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0041.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0041.jpg)
|
||||
|
||||
Connect the speaker:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0042.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0042.jpg)
|
||||
|
||||
You should now have this:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0043.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0043.jpg)
|
||||
|
||||
Re-connect the upper chassis:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0044.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0044.jpg)
|
||||
|
||||
Re-connect the keyboard:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0045.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0045.jpg)
|
||||
|
||||
Re-insert the screws that you removed earlier:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0046.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0046.jpg)
|
||||
|
||||
Power on!\
|
||||
![](https://av.libreboot.org/x60_unbrick/0047.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0047.jpg)
|
||||
|
||||
Operating system:\
|
||||
![](https://av.libreboot.org/x60_unbrick/0049.jpg)
|
||||
![](https://avgnu.vimuser.org/x60_unbrick/0049.jpg)
|
||||
|
|
|
@ -6,7 +6,7 @@ x-toc-enable: true
|
|||
This section documents how to recover from a bad flash that prevents
|
||||
your ThinkPad X60 Tablet from booting.
|
||||
|
||||
ROM images for this machine are well-tested in libreboot, so bricks are rare.
|
||||
ROM images for this machine are well-tested in nonGeNUine Boot, so bricks are rare.
|
||||
The most common cause of a brick is operator error, when flashing a ROM image.
|
||||
In *most* cases, the cause will be that there is no bootblock, or an invalid
|
||||
one.
|
||||
|
@ -14,9 +14,9 @@ one.
|
|||
Brick type 1: bucts not reset. {#bucts_brick}
|
||||
==============================
|
||||
|
||||
You still have Lenovo BIOS, or you had libreboot running and you flashed
|
||||
You still have Lenovo BIOS, or you had nonGeNUine Boot running and you flashed
|
||||
another ROM; and you had bucts 1 set and the ROM wasn't dd'd.\* or if
|
||||
Lenovo BIOS was present and libreboot wasn't flashed.
|
||||
Lenovo BIOS was present and nonGeNUine Boot wasn't flashed.
|
||||
|
||||
There are *2* 64KiB bootblocks possible, in the upper part of the ROM image.
|
||||
By default (bucts set to 0), the top one is used. If bucts is set to 1, the
|
||||
|
@ -38,10 +38,10 @@ you re-flash a second time and set it back to 0.
|
|||
In this case, unbricking is easy: reset BUC.TS to 0 by removing that
|
||||
yellow cmos coin (it's a battery) and putting it back after a minute or
|
||||
two:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0008.JPG)\
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0008.JPG)\
|
||||
|
||||
\*Those dd commands should be applied to all newly compiled X60 ROM
|
||||
images (the ROM images in libreboot binary archives already have this
|
||||
images (the ROM images in nonGeNUine Boot binary archives already have this
|
||||
applied!):
|
||||
|
||||
dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
|
||||
|
@ -68,45 +68,45 @@ will not boot at all.
|
|||
"Unbricking" means flashing a known-good (working) ROM. The problem:
|
||||
you can't boot the system, making this difficult. In this situation,
|
||||
external hardware (see hardware requirements above) is needed which can
|
||||
flash the SPI chip (where libreboot resides).
|
||||
flash the SPI chip (where nonGeNUine Boot resides).
|
||||
|
||||
![](https://av.libreboot.org/x60t_unbrick/0000.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0000.JPG)
|
||||
|
||||
Remove those screws:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0001.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0001.JPG)
|
||||
|
||||
Remove the HDD:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0002.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0002.JPG)
|
||||
|
||||
Push keyboard forward to loosen it:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0003.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0003.JPG)
|
||||
|
||||
Lift:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0004.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0004.JPG)
|
||||
|
||||
Remove those:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0005.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0005.JPG)
|
||||
|
||||
![](https://av.libreboot.org/x60t_unbrick/0006.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0006.JPG)
|
||||
|
||||
Also remove that (marked) and unroute the antenna cables:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0007.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0007.JPG)
|
||||
|
||||
For some X60T laptops, you have to unroute those too:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0010.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0010.JPG)
|
||||
|
||||
Remove the LCD extend board screws. Also remove those screws (see blue
|
||||
marks) and remove/unroute the cables and remove the metal plate:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0008.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0008.JPG)
|
||||
|
||||
Remove that screw and then remove the board:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0009.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0009.JPG)
|
||||
|
||||
This photo shows the flash location:\
|
||||
![](https://av.libreboot.org/x60t_unbrick/0011.JPG)
|
||||
![](https://avgnu.vimuser.org/x60t_unbrick/0011.JPG)
|
||||
|
||||
This photo shows an SPI flasher used, with SOIC8 test clip:\
|
||||
![](https://av.libreboot.org/x60/th_bbb_flashing.jpg)
|
||||
![](https://avgnu.vimuser.org/x60/th_bbb_flashing.jpg)
|
||||
|
||||
Refer to the external flashing guide:
|
||||
|
||||
|
|
|
@ -1,37 +1,37 @@
|
|||
---
|
||||
title: lbmk maintenance manual
|
||||
title: gbmk maintenance manual
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Automated build system
|
||||
======================
|
||||
|
||||
This manual describes the nature of `lbmk` (LibreBoot MaKe), the automated
|
||||
build system used to produce libreboot releases. It is provided as a reference
|
||||
for *libreboot development*.
|
||||
This manual describes the nature of `gbmk` (non**G**eNUine**B**oot**M**a**K**e), the
|
||||
automated build system used to produce nonGeNUine Boot releases. It is provided as a
|
||||
reference for *nonGeNUine Boot development*.
|
||||
|
||||
If you simply wish to compile libreboot from source, you should instead refer
|
||||
If you simply wish to compile nonGeNUine Boot from source, you should instead refer
|
||||
to the [build instructions](../build/)
|
||||
|
||||
Generally speaking, *testing* releases of libreboot will not come with
|
||||
Generally speaking, *testing* releases of nonGeNUine Boot will not come with
|
||||
documentation; if you're later using *old* testing releases, it is prudent to
|
||||
check the `lbwww.git` repository on a revision from around the same time as
|
||||
those releases. Future stable releases of libreboot will come with a snapshot of
|
||||
the `lbwww.git` repository, for documentation pertaining to such releases. One
|
||||
way to do this, all testing releases of libreboot, will be to simply run `git log`
|
||||
on the `news/` section of `lbwww.git` and find the revision that added
|
||||
check the `gbwww.git` repository on a revision from around the same time as
|
||||
those releases. Future stable releases of nonGeNUine Boot will come with a snapshot of
|
||||
the `gbwww.git` repository, for documentation pertaining to such releases. One
|
||||
way to do this, all testing releases of nonGeNUine Boot, will be to simply run `git log`
|
||||
on the `news/` section of `gbwww.git` and find the revision that added
|
||||
the *announcement* for a given release (when available), and then you can
|
||||
just reset to that revision.
|
||||
|
||||
As such, you should always refer to the *live* version of this page, on
|
||||
libreboot.org, when working on the `lbmk.git` repository; the live version is
|
||||
As such, you should always refer to the *live* version of this page, on the GNU
|
||||
Boot website, when working on the `gbmk.git` repository; the live version is
|
||||
provided for development on the Git repository!
|
||||
|
||||
What is lbmk?
|
||||
What is gbmk?
|
||||
==============
|
||||
|
||||
In the same way that that *Trisquel* is a *GNU+Linux distribution*, Libreboot
|
||||
is a **coreboot distribution**. The `lbmk` build system *is* that distro,
|
||||
In the same way that that *Trisquel* is a *GNU+Linux distribution*, nonGeNUine Boot
|
||||
is a **coreboot distribution**. The `gbmk` build system *is* that distro,
|
||||
providing the glue necessary to integrate coreboot plus anything else that's
|
||||
needed, unifying everything in a completely automated and pre-configured
|
||||
fashion, so as to provide a distribution that is ease to install and use by
|
||||
|
@ -39,18 +39,18 @@ non-technical users.
|
|||
|
||||
In the past, installation of coreboot **required** extensive amounts of
|
||||
configuration by the user, because there was no automation available. It was a
|
||||
problem, and one that `lbmk` has *solved*; it is a problem, because most users
|
||||
simply want to *install* coreboot without giving it much thought. The `lbmk`
|
||||
problem, and one that `gbmk` has *solved*; it is a problem, because most users
|
||||
simply want to *install* coreboot without giving it much thought. The `gbmk`
|
||||
build system is written for *those* people, while also providing some
|
||||
flexibility for those who do want to tinker and get their hands dirty.
|
||||
|
||||
The `lbmk` build system is designed to be simple. Each part of it is its own
|
||||
The `gbmk` build system is designed to be simple. Each part of it is its own
|
||||
separate program, which is to run independently. *Write one program that does
|
||||
one thing well*.
|
||||
|
||||
Technically, `lbmk` isn't necessarily a build system, but rather, a handful of
|
||||
Technically, `gbmk` isn't necessarily a build system, but rather, a handful of
|
||||
small scripts that run other scripts, or even C programs if you wish. What
|
||||
makes `lbmk` *be* `lbmk` is what each individual script does, and how scripts
|
||||
makes `gbmk` *be* `gbmk` is what each individual script does, and how scripts
|
||||
interact with or call each other to produce working ROM images. It takes
|
||||
a *light touch* approach, providing only the most minimal glue necessary to
|
||||
build working ROM images that the user can install, with sane defaults, while
|
||||
|
@ -59,60 +59,60 @@ describing how to do just that. User-friendly documentation is provided, with
|
|||
simple installation steps, automating as much of it as possible.
|
||||
|
||||
*This* document is different. The document you're reading right now is written
|
||||
for *technical* users who want to know how libreboot is put together.
|
||||
for *technical* users who want to know how nonGeNUine Boot is put together.
|
||||
|
||||
The lbmk design also helps to ease copyright licensing and compliance, because
|
||||
each part of lbmk is literally its own separate program. With this design, it
|
||||
The gbmk design also helps to ease copyright licensing and compliance, because
|
||||
each part of gbmk is literally its own separate program. With this design, it
|
||||
means that most scripts do not directly link/embed/include each other. Because
|
||||
of this, it's much easier to have different licenses in use for different
|
||||
files. Generally speaking, lbmk is GPLv3+, but it's perfectly OK, for
|
||||
files. Generally speaking, gbmk is GPLv3+, but it's perfectly OK, for
|
||||
example, to add files that are GPLv2 or other licenses. By comparison, if you
|
||||
were to have a C program under GPLv3, you could not \#include C libraries that
|
||||
are GPLv2, at least not directly, or there would be many pitfalls to avoid at
|
||||
the very least. With lbmk's design, you can think of it as like when you have
|
||||
the very least. With gbmk's design, you can think of it as like when you have
|
||||
many programs running in your operating system, and not all of those programs
|
||||
are under the same license, and most of those different licenses are not
|
||||
compatible with each other; this is perfectly OK there, and it's OK here too.
|
||||
|
||||
The purpose of this document is to (hopefully) cause you to understand the
|
||||
entire build system in libreboot, so that you can contribute patches or
|
||||
entire build system in nonGeNUine Boot, so that you can contribute patches or
|
||||
otherwise make whatever changes you like. As such, this is a reference guide
|
||||
for libreboot development.
|
||||
for nonGeNUine Boot development.
|
||||
|
||||
Libreboot is a *coreboot distro*, focusing on integration. As such, direct
|
||||
nonGeNUine Boot is a *coreboot distro*, focusing on integration. As such, direct
|
||||
development on software such as coreboot, GRUB, SeaBIOS etc should ideally
|
||||
be done upstream, or if it's a project hosted by libreboot (such as ich9utils)
|
||||
developed in the corresponding separate repository.
|
||||
be done upstream.
|
||||
|
||||
This document is written for developers and power users alike, or otherwise for
|
||||
anyone who is curious enough to learn more about what *makes* libreboot!
|
||||
anyone who is curious enough to learn more about what *makes* nonGeNUine Boot!
|
||||
|
||||
A major planned addition to lbmk in the future is: use it to implement a small
|
||||
A major planned addition to gbmk in the future is: use it to implement a small
|
||||
busybox+linux distribution, with musl libc, plus u-root, and implement a
|
||||
linux-based bootloader setup similar to Heads, but do it *lbmk-style*. The
|
||||
lbmk build system is designed for absolute simplicity and modularity, making
|
||||
linux-based bootloader setup similar to Heads, but do it *gbmk-style*. The
|
||||
gbmk build system is designed for absolute simplicity and modularity, making
|
||||
it easy to understand and maintain. It intentionally avoids use of rather
|
||||
complicated programs such as Autoconf; the Makefile in lbmk is just bolted
|
||||
on but it not required. The `lbmk` build system is a *non-design*; it evolved
|
||||
complicated programs such as Autoconf; the Makefile in gbmk is just bolted
|
||||
on but it not required. The `gbmk` build system is a *non-design*; it evolved
|
||||
over time, into what it is today. Its modularity and simplicity of non-design
|
||||
allows you to easily rewrite large parts of it, whenever you want to do so.
|
||||
|
||||
lbmk is written in POSIX shell scripts, and this is unlikely to change in the
|
||||
future. However, lbmk integrates several projects such as coreboot, GRUB
|
||||
or SeaBIOS, and these all have *their* own build systems aswell. The `lbmk`
|
||||
gbmk is written in POSIX shell scripts, and this is unlikely to change in the
|
||||
future. However, gbmk integrates several projects such as coreboot, GRUB
|
||||
or SeaBIOS, and these all have *their* own build systems aswell. The `gbmk`
|
||||
build system is the glue that puts all of these together to produce ROM images
|
||||
for users, in a completely automated fashion. The purpose of `lbmk` is to
|
||||
for users, in a completely automated fashion. The purpose of `gbmk` is to
|
||||
provide an *unattended* build process, with as little user interaction as
|
||||
possible. Thus, `lbmk` is an *automated build system*. It says on the libreboot
|
||||
home page that libreboot is a *coreboot distribution* in much the same way that
|
||||
Alpine Linux is a *Linux distribution*, and `lbmk` is what implements that!
|
||||
possible. Thus, `gbmk` is an *automated build system*. It says on the nonGeNUine Boot
|
||||
home page that nonGeNUine Boot is a *coreboot distribution* in much the same way that
|
||||
Trisquel GNU+Linux is a *GNU+Linux distribution*, and `gbmk` is what implements
|
||||
that!
|
||||
|
||||
Continue reading, and you will learn of each file contained in `lbmk`. This
|
||||
document largely pertains to the version of `lbmk` as hosted in `lbmk.git`,
|
||||
Continue reading, and you will learn of each file contained in `gbmk`. This
|
||||
document largely pertains to the version of `gbmk` as hosted in `gbmk.git`,
|
||||
but this manual also covers source code archives containing the full downloaded
|
||||
set of modules such as coreboot and GRUB.
|
||||
|
||||
In general, it is advisable to open *every* file in lbmk, after you downloaded
|
||||
In general, it is advisable to open *every* file in gbmk, after you downloaded
|
||||
it (from the Git repository), and study the logic in great detail. This manual
|
||||
attempts to explain all of it, and provide a general idea, but nothing beats
|
||||
simply *studying* the logic directly.
|
||||
|
@ -120,15 +120,15 @@ simply *studying* the logic directly.
|
|||
AUTOMATED automation
|
||||
====================
|
||||
|
||||
Every part of lbmk checks if the prerequisite steps are done, and does them
|
||||
Every part of gbmk checks if the prerequisite steps are done, and does them
|
||||
automatically if not. The `roms_helper` script is no different; for example, it
|
||||
automatically downloads coreboot if not present, aswell as GRUB and everything
|
||||
else. You can run each and every part of lbmk without having to worry about
|
||||
else. You can run each and every part of gbmk without having to worry about
|
||||
running something before it, because it is handled automatically; if that is
|
||||
ever not the case, it's a bug that should be fixed immediately (in Libreboot
|
||||
20160907, such fine tuned automation did not exist and you did have to run
|
||||
specific parts of the build system manually, in a precise order, but this is
|
||||
no longer the case in modern `lbmk` or `lbmk`).
|
||||
no longer the case in `lbmk`, when we forked it to create `gbmk`).
|
||||
|
||||
Another example: if you run `./build payload grub` but `./build module grub` is
|
||||
not completed, it will automatically run that first, to produce
|
||||
|
@ -138,12 +138,13 @@ Another example: if you run `./build boot roms` and crossgcc isn't yet built
|
|||
for the revision used on each given board, it will automatically compile that
|
||||
version of it, using *that* coreboot tree's own build system to do it.
|
||||
|
||||
This level of automation means that modern `lbmk` is much
|
||||
This level of automation means that modern `gbmk` is much
|
||||
easier to use, compared to the build system present in Libreboot 20160907.
|
||||
Massive improvements to that build system were made, during most of 2021, when
|
||||
implementing the `lbmk` build system.
|
||||
the Libreboot project spent time re-implementing their `lbmk` build system,
|
||||
upon which `gbmk` (the nonGeNUine Boot build system) is now based.
|
||||
|
||||
All sections below pertain to actual files in lbmk:
|
||||
All sections below pertain to actual files in gbmk:
|
||||
|
||||
.gitcheck
|
||||
=========
|
||||
|
@ -152,12 +153,12 @@ This checks whether Git credentials are set, and sets placeholder credentials
|
|||
if required, locally for the given project.
|
||||
|
||||
If something went wrong during build, these placeholder credentials will still
|
||||
be in effect, but only within `lbmk`. You can unset them like so:
|
||||
be in effect, but only within `gbmk`. You can unset them like so:
|
||||
|
||||
./.gitcheck Clean
|
||||
|
||||
This is important, when working on Libreboot. Ordinarily, temporary credentials
|
||||
are cleared after running lbmk, but may not be cleared in error conditions.
|
||||
This is important, when working on nonGeNUine Boot. Ordinarily, temporary credentials
|
||||
are cleared after running gbmk, but may not be cleared in error conditions.
|
||||
|
||||
A bit of a hack, but it avoids build issues when the user hasn't set a name
|
||||
and email address in Git. If you've set a *global* one, then this script is
|
||||
|
@ -166,17 +167,17 @@ irrelevant.
|
|||
NOTE: In a git repository, the directory `.git` and files like `.gitignore`
|
||||
or `.gitmodules` are used by the Git software. The name of this script begins
|
||||
with `.git`, but the Git software does not make use of this file. It is
|
||||
a *shell script*, executed by lbmk when you run commands in it.
|
||||
a *shell script*, executed by gbmk when you run commands in it.
|
||||
|
||||
More context about Git name/email can be found in
|
||||
the [Libreboot build instructions](../build/).
|
||||
the [nonGeNUine Boot build instructions](../build/).
|
||||
|
||||
.git
|
||||
====
|
||||
|
||||
Metadata used by git-scm, the version control system that Libreboot uses for
|
||||
Metadata used by git-scm, the version control system that nonGeNUine Boot uses for
|
||||
development. This directory will be present in the Git repository. It is not
|
||||
provided in Libreboot *releases*. Learn more about Git here:
|
||||
provided in nonGeNUine Boot *releases*. Learn more about Git here:
|
||||
|
||||
<https://git-scm.com/>
|
||||
|
||||
|
@ -184,8 +185,8 @@ provided in Libreboot *releases*. Learn more about Git here:
|
|||
==========
|
||||
|
||||
This file is used by Git. It tells Git to *ignore* certain files, so that they
|
||||
do not get added accidentally to commits for the Libreboot Git repository,
|
||||
named `lbmk.git`.
|
||||
do not get added accidentally to commits for the nonGeNUine Boot Git repository,
|
||||
named `gbmk.git`.
|
||||
|
||||
You can learn more about `.gitignore` files here:
|
||||
|
||||
|
@ -195,49 +196,47 @@ COPYING
|
|||
=======
|
||||
|
||||
This file contains a copy of the GNU General Public License, version 3.0. It is
|
||||
the license that most parts of `lbmk` are released under.
|
||||
the license that most parts of `gbmk` are released under.
|
||||
|
||||
NOTE: Not all of Libreboot is released under this license, but it is heavily
|
||||
used in the Libreboot *build system*. Much of coreboot is GPL version 2 and
|
||||
NOTE: Not all of nonGeNUine Boot is released under this license, but it is heavily
|
||||
used in the nonGeNUine Boot *build system*. Much of coreboot is GPL version 2 and
|
||||
in some cases, other licenses (such as BSD-style licenses) are used. This is
|
||||
inevitable, with Libreboot being an *aggregate distribution* of software,
|
||||
inevitable, with nonGeNUine Boot being an *aggregate distribution* of software,
|
||||
namely coreboot and *payloads*, plus utilities.
|
||||
|
||||
Including a `COPYING` file is a good, conservative first step in adhering
|
||||
to *good practise* when it comes to software, and it is *mostly* technically
|
||||
correct in the context of *lbmk*, because *most* of lbmk is under GPLv3. This
|
||||
is a legacy from when Libreboot started, where that license was chosen, and
|
||||
it has just been *de facto* standard for Libreboot (build system) ever since.
|
||||
correct in the context of *gbmk*, because *most* of gbmk is under GPLv3. This
|
||||
is a legacy from when nonGeNUine Boot started, where that license was chosen, and
|
||||
it has just been *de facto* standard for nonGeNUine Boot (build system) ever since.
|
||||
|
||||
You should perform an audit, to learn more about other licenses. This can be
|
||||
done by inspecting the various projects that lbmk makes use of, like coreboot.
|
||||
For aggregate distributions such as coreboot distributions or Linux distros,
|
||||
done by inspecting the various projects that gbmk makes use of, like coreboot.
|
||||
For aggregate distributions such as coreboot distributions or GNU+Linux distros,
|
||||
it's not trivial to keep track of every license in a simple way, so such an
|
||||
audit is inevitable if you want to know more.
|
||||
|
||||
Makefile
|
||||
========
|
||||
|
||||
For use with *GNU* Make, this is a frontend to `lbmk`, which can be used to run
|
||||
various commands in `lbmk`.
|
||||
For use with *GNU* Make, this is a frontend to `gbmk`, which can be used to run
|
||||
various commands in `gbmk`.
|
||||
|
||||
Use of this file is purely optional, and largely beneficial if you simply want
|
||||
to build all of `lbmk` (just run `make` when the current work directory is the
|
||||
root directory of `lbmk`).
|
||||
to build all of `gbmk` (just run `make` when the current work directory is the
|
||||
root directory of `gbmk`).
|
||||
|
||||
README*.*md
|
||||
===========
|
||||
|
||||
This file contains a brief description of libreboot, along with information
|
||||
This file contains a brief description of nonGeNUine Boot, along with information
|
||||
about the project
|
||||
|
||||
It's basically a copy of the homepage text, relative to libreboot.org.
|
||||
|
||||
build
|
||||
=====
|
||||
|
||||
This is the main shell script, part of `lbmk`, used for running most `lbmk`
|
||||
commands. You could say that this file *is* `lbmk`. Run `./build help` for
|
||||
This is the main shell script, part of `gbmk`, used for running most `gbmk`
|
||||
commands. You could say that this file *is* `gbmk`. Run `./build help` for
|
||||
usage instructions.
|
||||
|
||||
It calls scripts in `resources/scripts/build/`. For example, the
|
||||
|
@ -277,7 +276,7 @@ You may also refer to the [build instructions](../build)
|
|||
download
|
||||
========
|
||||
|
||||
This is the main shell script for downloading various components used by `lbmk`.
|
||||
This is the main shell script for downloading various components used by `gbmk`.
|
||||
For example, this script downloads coreboot. Scripts called by `download` may
|
||||
also apply patches and such, to the corresponding project; for example, it will
|
||||
apply custom patches to GRUB.
|
||||
|
@ -311,11 +310,11 @@ gitclone
|
|||
|
||||
This script is used by the `download` script, specifically for cloning of
|
||||
Git repositories, for certain projects as defined in the file at location,
|
||||
path `resources/git/revisions` within lbmk.
|
||||
path `resources/git/revisions` within gbmk.
|
||||
|
||||
It downloads a project, from a main Git repository or a backup if defined and
|
||||
the main one is down. It then resets to a defined revision (commit ID). If
|
||||
patches are supplied for that project, by lbmk, then those patches are applied.
|
||||
patches are supplied for that project, by gbmk, then those patches are applied.
|
||||
The patches are applied as per: ascending, alphanumerical order of patch file
|
||||
name.
|
||||
|
||||
|
@ -344,18 +343,18 @@ If you run it without arguments, help text is shown.
|
|||
projectname
|
||||
===========
|
||||
|
||||
This file contains a single line of text, with the string "libreboot".
|
||||
This file contains a single line of text, with the string "nongenuineboot".
|
||||
|
||||
If you were to fork libreboot, you could very easily just modify this file, so
|
||||
as to rename your fork in a largely automated way. Many parts of lbmk use this
|
||||
If you were to fork nonGeNUine Boot, you could very easily just modify this file, so
|
||||
as to rename your fork in a largely automated way. Many parts of gbmk use this
|
||||
file.
|
||||
|
||||
resources/coreboot/
|
||||
===================
|
||||
|
||||
This directory contains configuration, patches and so on, for each mainboard
|
||||
supported in the `lbmk` build system. These directories contain such
|
||||
configuration, so that `lbmk` can build working ROM images.
|
||||
supported in the `gbmk` build system. These directories contain such
|
||||
configuration, so that `gbmk` can build working ROM images.
|
||||
|
||||
The scripts in `resources/scripts/build/boot/` make heavy use of this
|
||||
directory.
|
||||
|
@ -400,9 +399,9 @@ be `coreboot/bar/`. ALSO:
|
|||
|
||||
FUN FACT: such references are infinitely checked until resolved. For
|
||||
example, `foo` can refer to `bar` and `bar` can refer to `baz` but if there is
|
||||
an infinite loop, this is detected and handled by `lbmk`. For example,
|
||||
an infinite loop, this is detected and handled by `gbmk`. For example,
|
||||
if `bar` refers to `foo` which refers back to `bar`, this is not permitted
|
||||
and will throw an error in `lbmk`.
|
||||
and will throw an error in `gbmk`.
|
||||
|
||||
The `romtype` entry largely defines what `./build boot roms` does once the ROM
|
||||
is built; for example, `romtype="4MiB ICH9 IFD NOR flash"` would specify that
|
||||
|
@ -410,7 +409,7 @@ an Intel Flash Descriptor for ICH9M, generated by `ich9gen`, would have to be
|
|||
inserted.
|
||||
|
||||
The `cbrevision` entry defines which coreboot revision to use, from the
|
||||
coreboot Git repository. *At present, lbmk only supports use of the official
|
||||
coreboot Git repository. *At present, gbmk only supports use of the official
|
||||
repository from the upstream coreboot project*.
|
||||
|
||||
The `arch` entry specifies which CPU architecture is to be used: currently
|
||||
|
@ -445,7 +444,7 @@ other than `default`, which is the default if the option is missing.
|
|||
The `grub_scan_disk` option specifies can be `ahci`, `ata` or `both`, and it
|
||||
determines which types of disks are to be scanned, when the `grub.cfg` file in
|
||||
GRUB payloads tries to automatically find other `grub.cfg` files supplied by
|
||||
your Linux distribution. On some machines, setting it to `ata` or `ahci`
|
||||
your GNU+Linux distribution. On some machines, setting it to `ata` or `ahci`
|
||||
can improve boot speed by reducing delays; for example, trying to scan `ata0`
|
||||
on a ThinkPad X60 with the optical drive may cause GRUB to hang, so on that
|
||||
machine it is advisable to set this option to `ahci` (becuse the default HDD
|
||||
|
@ -467,7 +466,7 @@ Configuration file names can be as follows:
|
|||
Information pertaining to this can be found on
|
||||
the [installation manual](../install/)
|
||||
|
||||
In `lbmk`, a board-specific directory under `resources/coreboot/` should never
|
||||
In `gbmk`, a board-specific directory under `resources/coreboot/` should never
|
||||
specify a coreboot revision. Rather, a directory *without* coreboot configs
|
||||
should be created, specifying a coreboot revision. For example, the
|
||||
directory `resources/coreboot/default/` specifies a coreboot revision. In the
|
||||
|
@ -476,7 +475,7 @@ specify `cbtree="default"` but without specifying a coreboot revision (this
|
|||
is specified by `resources/coreboot/default/board.cfg`).
|
||||
|
||||
When you create a coreboot configuration, you should set the payload to *none*
|
||||
because `lbmk` itself will assume that is the case, and insert payloads itself.
|
||||
because `gbmk` itself will assume that is the case, and insert payloads itself.
|
||||
|
||||
Configurations with `libgfxinit` will use coreboot's native graphics init code
|
||||
if available on that board. If the file name has `txtmode` in it, coreboot
|
||||
|
@ -497,7 +496,7 @@ the VGA ROM (on an add-on graphics card, as opposed to onboard chipset), you
|
|||
should have a *separate* directory just for that, under `resources/coreboot/`;
|
||||
another directory for that board will have configs with `libgfxinit`. HOWEVER:
|
||||
|
||||
It *is* supported in lbmk to have SeaBIOS used, on either setup. In the
|
||||
It *is* supported in gbmk to have SeaBIOS used, on either setup. In the
|
||||
directory `resources/seabios/` there are SeaBIOS configs for both; the vgarom
|
||||
one sets VGA hardware type to *none* while the libgfxinit one sets it
|
||||
to *coreboot linear framebuffer*. However, if you use SeaBIOS on a setup with
|
||||
|
@ -507,7 +506,7 @@ SeaBIOS, but the board has libgfxinit, it is recommended that you do it from
|
|||
a `libgfxinit` ROM.
|
||||
|
||||
HOWEVER: there's no hard and fast rule. For example, you could make a vgarom
|
||||
configuration, on a board in lbmk, but in its coreboot configuration, don't
|
||||
configuration, on a board in gbmk, but in its coreboot configuration, don't
|
||||
enable native init *or* oproms, and do SeaBIOS-only on that board.
|
||||
|
||||
On `vgarom` setups, coreboot can be configured to start with a high resolution
|
||||
|
@ -540,7 +539,7 @@ This and other documents from coreboot shall help you to understand *coreboot*.
|
|||
|
||||
You create a config, for `resources/coreboot/BOARDNAME/configs`, by running
|
||||
the `make menuconfig` command in the *coreboot* build system. You should do
|
||||
this after running `./download coreboot` in lbmk.
|
||||
this after running `./download coreboot` in gbmk.
|
||||
|
||||
You can simply clone coreboot upstream, add whatever patches you want, and
|
||||
then you can make your config. It will appear afterwards in a file
|
||||
|
@ -554,15 +553,15 @@ The *base* revision, upon which any custom patches you wrote are applied,
|
|||
shall be the `cbrevision` entry.
|
||||
|
||||
REMINDER: Do not enable a payload in coreboot's build system. Set it
|
||||
to *none*, and enable whatever payload you want in lbmk.
|
||||
to *none*, and enable whatever payload you want in gbmk.
|
||||
|
||||
If a payload is not supported in lbmk, patches are very much welcome! It is
|
||||
the policy of libreboot, to only ever use the *coreboot* build system inside
|
||||
If a payload is not supported in gbmk, patches are very much welcome! It is
|
||||
the policy of nonGeNUine Boot, to only ever use the *coreboot* build system inside
|
||||
coreboot, but not use any of *coreboot's* own integration for payloads. It is
|
||||
far more flexible and *robust* to handle payloads externally, relative to the
|
||||
coreboot build system.
|
||||
|
||||
Scripts exist in `lbmk` for automating the modification/updating of *existing*
|
||||
Scripts exist in `gbmk` for automating the modification/updating of *existing*
|
||||
configs, but not for adding them. Adding them is to be done manually, based on
|
||||
the above guidance.
|
||||
|
||||
|
@ -583,8 +582,8 @@ the command `./download coreboot`, those patches will be applied chronologically
|
|||
in alphanumerical order as per patch file names.
|
||||
|
||||
The patch files should be named with `.patch` file extensions. All other files
|
||||
will be ignored. By having `lbmk` do it this way, you could add a `README` file
|
||||
for instance, and `lbmk` will not erroneously try to apply `README` as though
|
||||
will be ignored. By having `gbmk` do it this way, you could add a `README` file
|
||||
for instance, and `gbmk` will not erroneously try to apply `README` as though
|
||||
it were a patch file. This might be useful if you have a *lot* of patches, and
|
||||
you want to provide some explanations about specific files.
|
||||
|
||||
|
@ -592,11 +591,11 @@ resources/git/revisions
|
|||
=======================
|
||||
|
||||
This defines git repositories and commit IDs (revisions) to reset to, for
|
||||
various projects used by Libreboot. *This* file is used, for projects that
|
||||
various projects used by nonGeNUine Boot. *This* file is used, for projects that
|
||||
are relatively simple to handle when downloading (coreboot is not defined
|
||||
here).
|
||||
|
||||
In the past, Libreboot had bespoke logic for *each* program, to download it.
|
||||
In the past, nonGeNUine Boot had bespoke logic for *each* program, to download it.
|
||||
This was repetitive, so much of the download logic was centralised with the
|
||||
use of the `gitclone` script, which references this file.
|
||||
|
||||
|
@ -627,7 +626,7 @@ resources/grub/keymap/
|
|||
======================
|
||||
|
||||
This directory contains keymaps for GRUB. They allow for different keyboard
|
||||
layouts to be used. The `lbmk` build system uses these to produce ROM images
|
||||
layouts to be used. The `gbmk` build system uses these to produce ROM images
|
||||
with various keyboard layouts used by default, when the GRUB payload is to be
|
||||
used.
|
||||
|
||||
|
@ -657,19 +656,19 @@ Patches applied to `me_cleaner` when downloading it.
|
|||
resources/memtest86plus/patches/
|
||||
==============================
|
||||
|
||||
Patches applied to Memtest86+ when downloading it. Libreboot includes
|
||||
Patches applied to Memtest86+ when downloading it. nonGeNUine Boot includes
|
||||
memtest86+ as a secondary payload, loaded from SeaBIOS *or* GRUB when booted
|
||||
via int10h text mode on x86 hosts.
|
||||
|
||||
(using it with corebootfb mode is also possible, if your machine has a viable
|
||||
serial output on it with memtest86+ configured accordingly, and this was done
|
||||
on some older Libreboot releases in the past, but current Libreboot releases
|
||||
on some older nonGeNUine Boot releases in the past, but current nonGeNUine Boot releases
|
||||
only provide memtest86+ in text mode, for use directly on the machine)
|
||||
|
||||
resources/scripts/
|
||||
==================
|
||||
|
||||
These scripts implement the *core* logic of Libreboot's *automated build
|
||||
These scripts implement the *core* logic of nonGeNUine Boot's *automated build
|
||||
system*, to produce coreboot ROM images with payloads.
|
||||
|
||||
resources/scripts/build/
|
||||
|
@ -682,7 +681,7 @@ resources/scripts/build/boot/
|
|||
=============================
|
||||
|
||||
This directory contains shell scripts for compiling ROM images. Many other
|
||||
scripts in lbmk are called by these scripts; for example, GRUB payload scripts.
|
||||
scripts in gbmk are called by these scripts; for example, GRUB payload scripts.
|
||||
|
||||
resources/scripts/build/boot/roms
|
||||
=================================
|
||||
|
@ -702,7 +701,7 @@ example:
|
|||
./build boot roms x60 x200_8mb
|
||||
|
||||
Since November 2022, this script can build images for x86 *and* ARM targets.
|
||||
The *ARM* targets are ChromeOS devices (chromebooks and such); Libreboot uses
|
||||
The *ARM* targets are ChromeOS devices (chromebooks and such); nonGeNUine Boot uses
|
||||
the *U-Boot* payload, rather than Google's *depthcharge* bootloader. In this
|
||||
setup, U-Boot is running on the bare metal, as enabled by *coreboot*.
|
||||
|
||||
|
@ -740,8 +739,8 @@ for `romtype`:
|
|||
loading or executing the option ROM stored on PIKE2008 modules, present on
|
||||
certain configurations with the ASUS KCMA-D8 or KGPE-D16 mainboards. Those
|
||||
option ROMs cause the system to hang, so they should never be executed (this
|
||||
means however that booting Linux kernels from SAS devices is impossible on
|
||||
those boards, unless a Linux payload is used; Linux can use those SAS drives,
|
||||
means however that booting GNU+Linux kernels from SAS devices is impossible on
|
||||
those boards, unless a GNU+Linux payload is used; GNU+Linux can use those SAS drives,
|
||||
without relying on the PIKE2008 option ROMs). When SeaBIOS runs, it will
|
||||
default to loading the corresponding option ROM from CBFS, if it exists, for
|
||||
a given PCI device, overriding whatever option ROM is present on the device
|
||||
|
@ -760,7 +759,7 @@ for `romtype`:
|
|||
part). In all cases, the default *ME* (Intel Management Engine) region is
|
||||
disabled, as is the ME itself, based on bits set to disable it in the Intel
|
||||
Flash Descriptor. The descriptor is used in such a setup, because on all
|
||||
such boards in libreboot, GbE NVM is needed to get gigabit ethernet working
|
||||
such boards in nonGeNUine Boot, GbE NVM is needed to get gigabit ethernet working
|
||||
correctly; it is the sole reason `ich9gen` was written, because it is
|
||||
otherwise possible to boot these machines in a *descriptorless* setup, where
|
||||
ICH9M behaves similarly to ICH7: all one region of flash, for the boot
|
||||
|
@ -798,14 +797,14 @@ then expected to handle option ROMs, and SeaBIOS should not do it.
|
|||
This script handles U-Boot separately, for ARM-based chromeos devices.
|
||||
|
||||
Essentially, the `roms_helper` script makes use of each and every part of
|
||||
lbmk. It is the heart of libreboot.
|
||||
gbmk. It is the beating heart of nonGeNUine Boot.
|
||||
|
||||
When the ROM is finished compiling, it will appear under a directory in `bin/`
|
||||
|
||||
resources/scripts/build/clean/cbutils
|
||||
=====================================
|
||||
|
||||
This simply runs `make clean` on various utilities from coreboot, which lbmk
|
||||
This simply runs `make clean` on various utilities from coreboot, which gbmk
|
||||
makes use of.
|
||||
|
||||
Command: `./build clean cbutils`
|
||||
|
@ -814,7 +813,7 @@ resources/scripts/build/clean/crossgcc
|
|||
======================================
|
||||
|
||||
This runs `make crossgcc-clean` on all of the coreboot revisions present in
|
||||
lbmk.
|
||||
gbmk.
|
||||
|
||||
Command: `./build clean crossgcc`
|
||||
|
||||
|
@ -873,7 +872,7 @@ resources/scripts/build/clean/u-boot
|
|||
======================================
|
||||
|
||||
This runs `make distclean` and `git clean -fdx` on all of the U-Boot revisions
|
||||
present in lbmk.
|
||||
present in gbmk.
|
||||
|
||||
Command: `./build clean u-boot`
|
||||
|
||||
|
@ -1112,7 +1111,7 @@ resources/scripts/update/seabios/configs
|
|||
========================================
|
||||
|
||||
This runs `make oldconfig` on SeaBIOS configs. It is most useful when updating
|
||||
the version of SeaBIOS used by lbmk.
|
||||
the version of SeaBIOS used by gbmk.
|
||||
|
||||
Command: `./update seabios configs`
|
||||
|
||||
|
@ -1132,7 +1131,7 @@ However, using `make oldconfig` is not optimal for U-Boot, as their Kconfig
|
|||
dependencies/defaults are not as well specified as coreboot's is. When updating
|
||||
configs for an upstream board, it's usually better (but not automated) to:
|
||||
|
||||
- Turn `lbmk` config into a defconfig in the old version
|
||||
- Turn `gbmk` config into a defconfig in the old version
|
||||
- Compare it with the old version's upstream defconfig
|
||||
- Apply the difference to the new version's upstream defconfig
|
||||
- Create an updated config in the new version
|
||||
|
@ -1190,7 +1189,7 @@ resources/u-boot/
|
|||
=================
|
||||
|
||||
This directory contains configuration, patches and so on, for each mainboard
|
||||
that can use U-Boot as a payload in the `lbmk` build system. U-Boot doesn't yet
|
||||
that can use U-Boot as a payload in the `gbmk` build system. U-Boot doesn't yet
|
||||
have reliable generic configurations that can work across all coreboot boards
|
||||
(per-architecture), so these are used to build it per-board.
|
||||
|
||||
|
@ -1225,12 +1224,12 @@ created u-boot source tree would be `u-boot/bar/`. ALSO:
|
|||
|
||||
FUN FACT: such references are infinitely checked until resolved. For
|
||||
example, `foo` can refer to `bar` and `bar` can refer to `baz` but if there is
|
||||
an infinite loop, this is detected and handled by `lbmk`. For example,
|
||||
an infinite loop, this is detected and handled by `gbmk`. For example,
|
||||
if `bar` refers to `foo` which refers back to `bar`, this is not permitted
|
||||
and will throw an error in `lbmk`.
|
||||
and will throw an error in `gbmk`.
|
||||
|
||||
The `ubrevision` entry defines which U-Boot revision to use, from the U-Boot
|
||||
Git repository. *At present, lbmk only supports use of the official repository
|
||||
Git repository. *At present, gbmk only supports use of the official repository
|
||||
from the upstream U-Boot project*.
|
||||
|
||||
The `arch` entry specifies which CPU architecture is to be used: currently
|
||||
|
@ -1245,7 +1244,7 @@ resources/u-boot/BOARDNAME/config/\*
|
|||
Files in this directory are *U-Boot* configuration files. Configuration file
|
||||
names can be anything, but for now `default` is the only one used.
|
||||
|
||||
In `lbmk`, a board-specific directory under `resources/u-boot/` should never
|
||||
In `gbmk`, a board-specific directory under `resources/u-boot/` should never
|
||||
specify a U-Boot revision. Rather, a directory *without* U-Boot configs should
|
||||
be created, specifying a U-Boot revision. For example, the directory
|
||||
`resources/u-boot/default/` specifies a U-Boot revision. In the board-specific
|
||||
|
@ -1264,10 +1263,10 @@ When making a U-Boot configuration, you should also pay special attention to
|
|||
the `CONFIG_SYS_TEXT_BASE` (`CONFIG_TEXT_BASE` in later versions), whose defaults
|
||||
may cause it to overlap coreboot, in which case it won't boot. Normally, the
|
||||
upstream coreboot build system checks for this when given `CONFIG_PAYLOAD_ELF`,
|
||||
but `lbmk` injects the payload itself and doesn't check for this yet.
|
||||
but `gbmk` injects the payload itself and doesn't check for this yet.
|
||||
|
||||
Another interesting config option is `CONFIG_POSITION_INDEPENDENT` for ARM
|
||||
boards, which has been so far enabled in the ones `lbmk` supports, just to be
|
||||
boards, which has been so far enabled in the ones `gbmk` supports, just to be
|
||||
safe.
|
||||
|
||||
U-Boot build system
|
||||
|
@ -1282,7 +1281,7 @@ You create a config, for `resources/u-boot/BOARDNAME/configs`, by finding the
|
|||
corresponding board name in the upstream U-Boot `configs` directory, and
|
||||
running `make BOARDNAME_defconfig` and `make menuconfig` commands in the
|
||||
*U-Boot* build system. You should do this after running `./download u-boot` in
|
||||
`lbmk`.
|
||||
`gbmk`.
|
||||
|
||||
You might want to consider basing your config on the upstream `coreboot` boards
|
||||
when possible, but such a board is not available upstream for ARM yet.
|
||||
|
@ -1298,7 +1297,7 @@ under `resources/u-boot/BOARDNAME`.
|
|||
The *base* revision, upon which any custom patches you wrote are applied,
|
||||
shall be the `ubrevision` entry.
|
||||
|
||||
Scripts exist in `lbmk` for automating the modification/updating of *existing*
|
||||
Scripts exist in `gbmk` for automating the modification/updating of *existing*
|
||||
configs, but not for adding them. Adding them is to be done manually, based on
|
||||
the above guidance.
|
||||
|
||||
|
@ -1312,15 +1311,15 @@ the command `./download u-boot`, those patches will be applied chronologically
|
|||
in alphanumerical order as per patch file names.
|
||||
|
||||
The patch files should be named with `.patch` file extensions. All other files
|
||||
will be ignored. By having `lbmk` do it this way, you could add a `README` file
|
||||
for instance, and `lbmk` will not erroneously try to apply `README` as though
|
||||
will be ignored. By having `gbmk` do it this way, you could add a `README` file
|
||||
for instance, and `gbmk` will not erroneously try to apply `README` as though
|
||||
it were a patch file. This might be useful if you have a *lot* of patches, and
|
||||
you want to provide some explanations about specific files.
|
||||
|
||||
util/
|
||||
=====
|
||||
|
||||
This directory contains utilities that `lbmk` makes use of.
|
||||
This directory contains utilities that `gbmk` makes use of.
|
||||
|
||||
util/nvmutil/
|
||||
=============
|
||||
|
@ -1347,7 +1346,7 @@ about here:
|
|||
[ich9utils manual](../install/ich9utils.html)
|
||||
|
||||
This source code also pertains to `ich9gen`, which is what GM45 laptops in
|
||||
Libreboot use in order to generate a config that *excludes* Intel ME firmware.
|
||||
nonGeNUine Boot use in order to generate a config that *excludes* Intel ME firmware.
|
||||
|
||||
Patches welcome.
|
||||
|
||||
|
|
|
@ -1,14 +1,9 @@
|
|||
---
|
||||
title: Apply to become board maintainer/tester for Libreboot
|
||||
title: Apply to become board maintainer/tester for nonGeNUine Boot
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
This page is very new, and these guidelines/procedures will be revised over
|
||||
time. We are, as of April 2023, formalising our testing / release engineering
|
||||
procedures somewhat. The Libreboot project is *expanding* to support a lot
|
||||
more hardware these days.
|
||||
|
||||
Libreboot strives to make Coreboot accessible for as many users as possible.
|
||||
nonGeNUine Boot strives to make Coreboot accessible for as many users as possible.
|
||||
To accomplish this goal, we must add as many boards as possible.
|
||||
As the total number of supported boards increases it becomes more and more difficult
|
||||
for our main contributors to test every single release for every single supported board.
|
||||
|
@ -23,13 +18,13 @@ All you need to do in order to become a board maintainer is:
|
|||
+ Have the board you wish to maintain
|
||||
|
||||
Once you become a board maintainer, your real name and screen name can
|
||||
be added to the public list on the Libreboot contributors page.
|
||||
be added to the public list on the nonGeNUine Boot contributors page.
|
||||
You can, of course, choose to forego the public listing (we will ask for
|
||||
permission, before publishing your name).
|
||||
|
||||
To apply for such a posting, ping `leah` or `shmalebx9` on
|
||||
[irc,](../../contact.html#irc-chatroom) or email
|
||||
Leah Rowe via [leah@libreboot.org](mailto:leah@libreboot.org)
|
||||
the nonGeNUine Boot maintainers.
|
||||
Do not be afraid to apply to maintain a board with another listed
|
||||
maintainer or multiple maintainers; more is better.
|
||||
|
||||
|
@ -66,9 +61,9 @@ Testing Procedure
|
|||
=================
|
||||
|
||||
You will receive an email when roms are ready for testing.
|
||||
The email will link to an open issue on our [current git hosting platform.](/git.html#lbmk-libreboot-make)
|
||||
The email will link to an open issue on our [current git hosting platform.](/git.html#gbmk-nongenuineboot-make)
|
||||
|
||||
Whether you receive an email from a libreboot.org email
|
||||
Whether you receive an email from a GNU email
|
||||
domain or one of our developer's email you should verify (for
|
||||
your own security)
|
||||
that the downloaded roms are signed with the [official key.](/download.html#gpg-signing-key)
|
||||
|
|
|
@ -10,7 +10,7 @@ Introduction
|
|||
|
||||
This document lists product codenames for some hardware.
|
||||
Please note that just because a certain device is listed here does NOT mean
|
||||
that it is supported in libreboot. For supported devices refer to the
|
||||
that it is supported in nonGeNUine Boot. For supported devices refer to the
|
||||
installation documentation.
|
||||
|
||||
### A note on GPUs
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
---
|
||||
title: Building Libreboot for Emulation
|
||||
title: Building nonGeNUine Boot for Emulation
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Libreboot supports building for qemu as a target board.
|
||||
nonGeNUine Boot supports building for qemu as a target board.
|
||||
The resulting rom can then be tested using qemu.
|
||||
|
||||
The qemu board is mostly intended to speed up development by removing the need to flash to bare metal during initial tests.
|
||||
Qemu may also be useful for end users who intend to make changes to their libreboot rom without having to flash and reboot their machine.
|
||||
Qemu may also be useful for end users who intend to make changes to their nonGeNUine Boot rom without having to flash and reboot their machine.
|
||||
|
||||
Building and Testing
|
||||
====================
|
||||
|
||||
Libreboot can be built for qemu just like any other board.
|
||||
nonGeNUine Boot can be built for qemu just like any other board.
|
||||
|
||||
`./build boot roms qemu_x86_12mb`
|
||||
|
||||
|
@ -40,7 +40,7 @@ Use Cases
|
|||
=========
|
||||
|
||||
While development is the primary motivation for qemu support, the board makes it easy to test minor changes to release roms.
|
||||
For example one can use *cbfstool* from coreboot to edit the background image in a libreboot rom as follows:
|
||||
For example one can use *cbfstool* from coreboot to edit the background image in a nonGeNUine Boot rom as follows:
|
||||
|
||||
```
|
||||
cbfstool /path/to/rom remove -n background.png
|
||||
|
|
|
@ -3,14 +3,16 @@ title: Miscellaneous
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
TODO: this page is very old, and could do with an update.
|
||||
TODO: this page is very old, and could do with an update. It was *old* when
|
||||
we inherited it from Libreboot, which we forked to create nonGeNUine Boot; it is
|
||||
even older now. It's almost a tradition now, that this page is never updated.
|
||||
|
||||
High Pitched Whining Noise on Idle in Debian or Devuan
|
||||
======================================================================
|
||||
|
||||
Start powertop automatically at boot time.
|
||||
|
||||
Included with libreboot is a script called 'powertop.debian'. Run this
|
||||
Included with nonGeNUine Boot is a script called 'powertop.debian'. Run this
|
||||
as root and it will setup powertop to run with --auto-tune at boot
|
||||
time. Load the file in your text editor to see how it does that.
|
||||
|
||||
|
@ -20,7 +22,7 @@ Might want to run with --calibrate first
|
|||
|
||||
If powertop doesn't work, another way (reduces battery life slightly)
|
||||
is to add *processor.max\_cstate=2* to the *linux* line in grub.cfg,
|
||||
using [this guide](../linux/grub_cbfs.md).
|
||||
using [this guide](../gnulinux/grub_cbfs.md).
|
||||
|
||||
High Pitched Whining Noise on Idle in Arch-based distros
|
||||
==============================================================
|
||||
|
@ -34,7 +36,7 @@ is a step towards that. Also, in some instances you will need to run
|
|||
'sudo powertop --auto-tune' again. This needs to be implemented
|
||||
properly in coreboot itself!
|
||||
|
||||
On the X60 with coreboot or libreboot, there is a high pitched sound
|
||||
On the X60 with coreboot or nonGeNUine Boot, there is a high pitched sound
|
||||
when idle. So far we have use processor.max\_cstate=2 or idle=halt in
|
||||
GRUB. These consume power. Stop using them!
|
||||
|
||||
|
@ -74,7 +76,7 @@ Might want to run with --calibrate first
|
|||
|
||||
If powertop doesn't work, another way (reduces battery life slightly)
|
||||
is to add *processor.max\_cstate=2* to the *linux* line in grub.cfg,
|
||||
using [this guide](../linux/grub_cbfs.md).
|
||||
using [this guide](../gnulinux/grub_cbfs.md).
|
||||
|
||||
X60/T60: Serial port - how to use (for dock owners)
|
||||
|
||||
|
@ -86,7 +88,7 @@ X60 Tablet it is called X6 Tablet UltraBase). For the ThinkPad T60, you
|
|||
can use the "Advanced Mini Dock".
|
||||
|
||||
If you are using one of the ROM images with 'serial' in the name, then
|
||||
you have serial port enabled in libreboot and you have memtest86+
|
||||
you have serial port enabled in nonGeNUine Boot and you have memtest86+
|
||||
included inside the ROM. Connect your null modem cable to the serial
|
||||
port on the dock and connect the other end to a 2nd system using your
|
||||
USB Serial adapter.
|
||||
|
@ -101,7 +103,7 @@ Y.
|
|||
There are also others like Minicom but Screen works nicely.
|
||||
|
||||
By doing this before booting the X60/T60, you will see console output
|
||||
from libreboot. You will also see GRUB displaying on the serial output,
|
||||
from nonGeNUine Boot. You will also see GRUB displaying on the serial output,
|
||||
and you will be able to see MemTest86+ on the serial output aswell. You
|
||||
can also configure your distro so that a terminal (TTY) is accessible
|
||||
from the serial console.
|
||||
|
@ -112,12 +114,12 @@ Devuan, to enable a serial console using GeTTY:\
|
|||
|
||||
Note: part of the tutorial above requires changing your grub.cfg. Just
|
||||
change the `linux` line to add instructions for enabling getty. See
|
||||
[../linux/grub\_cbfs.md](../linux/grub_cbfs.md).
|
||||
[../gnulinux/grub\_cbfs.md](../gnulinux/grub_cbfs.md).
|
||||
|
||||
Finetune backlight control on intel gpu's
|
||||
=========================================
|
||||
|
||||
Sometimes the backlight control value (BLC\_PWM\_CTL) set by libreboot
|
||||
Sometimes the backlight control value (BLC\_PWM\_CTL) set by nonGeNUine Boot
|
||||
is not ideal. The result is either flicker, which could cause nausea or
|
||||
epilepsy or an uneven backlight and/or coil whine coming from the
|
||||
display. To fix this a different value for the gpu reg BLC\_PWM\_CTL
|
||||
|
@ -211,34 +213,34 @@ Power Management Beeps on Thinkpads
|
|||
|
||||
When disconnecting or connecting the charger, a beep occurs. When the
|
||||
battery goes to a critically low charge level, a beep occurs. Nvramtool
|
||||
is included in libreboot, and can be used to enable or disable this
|
||||
is included in nonGeNUine Boot, and can be used to enable or disable this
|
||||
behaviour.
|
||||
|
||||
You need to write changes in a libreboot rom image, and flash it, in order
|
||||
You need to write changes in a nonGeNUine Boot ROM image, and flash it, in order
|
||||
to apply them. You can either use a pre-compiled rom image, or create an image
|
||||
from the current one in your computer. See here
|
||||
<https://libreboot.org/docs/linux/grub_cbfs.html#get-the-rom-image> for
|
||||
more information on how to do that.
|
||||
from the current one in your computer. See here
|
||||
[../gnulinux/grub_cbfs.html#get-the-rom-image](../gnulinux/grub_cbfs.html#get-the-rom-image)
|
||||
for more information on how to do that.
|
||||
|
||||
Once you have a libreboot rom image, say 'libreboot.rom', you can write
|
||||
Once you have a nonGeNUine Boot rom image, say 'nongenuineboot.rom', you can write
|
||||
changes on the image with the following commands.
|
||||
|
||||
Disable or enable beeps when removing/adding the charger:
|
||||
|
||||
sudo ./nvramtool -C libreboot.rom -w power_management_beeps=Enable
|
||||
sudo ./nvramtool -C libreboot.rom -w power_management_beeps=Disable
|
||||
sudo ./nvramtool -C nongenuineboot.rom -w power_management_beeps=Enable
|
||||
sudo ./nvramtool -C nongenuineboot.rom -w power_management_beeps=Disable
|
||||
|
||||
Disable or enable beeps when battery is low:
|
||||
|
||||
sudo ./nvramtool -C libreboot.rom -w low_battery_beep=Enable
|
||||
sudo ./nvramtool -C libreboot.rom -w low_battery_beep=Disable
|
||||
sudo ./nvramtool -C nongenuineboot.rom -w low_battery_beep=Enable
|
||||
sudo ./nvramtool -C nongenuineboot.rom -w low_battery_beep=Disable
|
||||
|
||||
You can check that the parameters are set in the image with :
|
||||
|
||||
sudo ./nvramtool -C libreboot.rom -a
|
||||
sudo ./nvramtool -C nongenuineboot.rom -a
|
||||
|
||||
Finally, you need to flash the rom with this new image. See here
|
||||
<https://libreboot.org/docs/linux/grub_cbfs.html#with-re-flashing-the-rom>
|
||||
[../gnulinux/grub_cbfs.html#with-re-flashing-the-rom](../gnulinux/grub_cbfs.html#with-re-flashing-the-rom)
|
||||
for a detailed explanation.
|
||||
|
||||
Get EDID: Find out the name (model) of your LCD panel
|
||||
|
@ -280,7 +282,7 @@ using more power) non-stop, which will drain battery life if this is a
|
|||
laptop. If power usage is a concern, then you should not use this.
|
||||
(we're also not sure whether this workaround is appropriate)*
|
||||
|
||||
To disable c-states, do this in Linux:
|
||||
To disable c-states, do this in GNU+Linux:
|
||||
|
||||
```
|
||||
for i in /sys/devices/system/cpu/cpu/cpuidle/state/disable;
|
||||
|
|
|
@ -3,16 +3,15 @@ title: U-Boot payload
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
U-Boot integration in Libreboot is currently at a proof-of-concept
|
||||
U-Boot integration in nonGeNUine Boot is currently at a proof-of-concept
|
||||
stage, with most boards completely untested and most likely not working.
|
||||
ROM images for them are mostly intended for further testing and
|
||||
development. If you have one of these machines and want to help fix
|
||||
things, you can ping `alpernebbi` on Libera IRC, who ported these boards
|
||||
to Libreboot.
|
||||
to nonGeNUine Boot.
|
||||
|
||||
As of 14 December 2022, building of U-Boot images has been tested on
|
||||
Debian. Make sure you have the latest `lbmk` from the Git repository,
|
||||
and the build dependencies are installed like so, from `lbmk/` as root:
|
||||
Make sure you have the latest `gbmk` from the Git repository,
|
||||
and the build dependencies are installed like so, from `gbmk/` as root:
|
||||
|
||||
./build dependencies debian
|
||||
|
||||
|
@ -52,7 +51,7 @@ inside the shell, which can be saved to and automatically loaded from
|
|||
persistent storage configured at build-time.
|
||||
|
||||
WARNING: Environment variable storage has not been explicitly configured
|
||||
so far and is untested in the context of Libreboot. It may cause data
|
||||
so far and is untested in the context of nonGeNUine Boot. It may cause data
|
||||
loss or even brick your device by overwriting your disk's partition
|
||||
table, unexpected parts of the SPI ROM image, or do something else
|
||||
entirely.
|
||||
|
@ -60,10 +59,10 @@ entirely.
|
|||
Known issues
|
||||
============
|
||||
|
||||
U-Boot integration in Libreboot is incomplete. Here is a list of known
|
||||
U-Boot integration in nonGeNUine Boot is incomplete. Here is a list of known
|
||||
issues that affect all boards:
|
||||
|
||||
- Branding is U-Boot with their logo (Libreboot only in version number)
|
||||
- Branding is U-Boot with their logo (nonGeNUine Boot only in version number)
|
||||
- Splash screen might be better instead of console messages
|
||||
- Cursor/drawing bugs with video improvements patches
|
||||
- Environment storage is likely dangerously broken
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
---
|
||||
title: Installing ArchLinuxARM on a Chromebook with U-Boot installed
|
||||
title: Installing ArchGNU+LinuxARM on a Chromebook with U-Boot installed
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
**TODO FOR nonGeNUine Boot PROJECT: Test with Parabola, which is the FSF-endorsed
|
||||
version of Arch. See: <https://www.parabola.nu/>**
|
||||
|
||||
Background
|
||||
==========
|
||||
|
||||
The following process should theoretically be applicable to other U-Boot devices and GNU/Linux distributions, but the focus here is specifically on ArchLinuxARM.
|
||||
The following process should theoretically be applicable to other U-Boot devices and GNU+Linux distributions, but the focus here is specifically on ArchGNU+LinuxARM.
|
||||
|
||||
Sources used for this guide include the [following guide to install ArchLinuxARM on a RockPro64,](https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html)
|
||||
Sources used for this guide include the [following guide to install ArchGNU+LinuxARM on a RockPro64,](https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html)
|
||||
|
||||
And the the instructions from the ArchLinuxARM wiki [here](https://archlinuxarm.org/platforms/armv8/rockchip/asus-chromebook-flip-c101pa)
|
||||
And the the instructions from the ArchGNU+LinuxARM wiki [here](https://archlinuxarm.org/platforms/armv8/rockchip/asus-chromebook-flip-c101pa)
|
||||
(Be aware that there will be overlap in my documentation with these guides, so some of this information will be very close to verbatim.)
|
||||
|
||||
The purpose of this guide is to instruct users on how to install an ArchLinuxARM on an external disk that will boot on a gru_bob chromebook, and optionally on the internal eMMC. Many concepts covered in this guide may be familiar to prospective and veteran Libreboot users, with the scope being comprehensive.
|
||||
The purpose of this guide is to instruct users on how to install an ArchGNU+LinuxARM on an external disk that will boot on a gru_bob chromebook, and optionally on the internal eMMC. Many concepts covered in this guide may be familiar to prospective and veteran nonGeNUine Boot users, with the scope being comprehensive.
|
||||
|
||||
Boot Method
|
||||
===========
|
||||
|
||||
There are (at least) three methods that can be used to boot into a Linux distribution from u-boot:
|
||||
There are (at least) three methods that can be used to boot into a GNU+Linux distribution from u-boot:
|
||||
1) EFI - common, modern boot method for amd64 architecture machines. This is not distribution-specific, so if you intend to make a portable drive that is compatible across multiple systems, you may have a use case.
|
||||
|
||||
This is an unlikely use-case, so it's a bit odd to use an EFI partition when not using a UEFI system.
|
||||
|
@ -46,14 +49,14 @@ timeout 50
|
|||
|
||||
|
||||
label arch
|
||||
menu label Arch Linux ARM
|
||||
menu label Arch GNU+Linux ARM
|
||||
linux /Image
|
||||
initrd /initramfs-linux.img
|
||||
fdt /dtbs/rockchip/rk3399-gru-bob.dtb
|
||||
append root=PARTUUID=$PARTUUID rw console=tty1 console=ttyS2,115200 earlycon rootwait LANG=en_US.UTF-8
|
||||
|
||||
label archfallback
|
||||
menu label Arch Linux ARM (FALLBACK)
|
||||
menu label Arch GNU+Linux ARM (FALLBACK)
|
||||
linux /Image
|
||||
initrd /initramfs-linux-fallback.img
|
||||
fdt /dtbs/rockchip/rk3399-gru-bob.dtb
|
||||
|
@ -64,7 +67,7 @@ Formatting and Partitioning Your External Media
|
|||
===============================================
|
||||
|
||||
Now it's time partition the boot disk. During testing, a microSD card was used in the microSD card slot of the gru-bob chromebook.
|
||||
The libreboot configuration will boot the microSD card above the onboard eMMC if both are present and bootable. This is useful because it means no knowledge or use of the u-boot console is required.
|
||||
The nonGeNUine Boot configuration will boot the microSD card above the onboard eMMC if both are present and bootable. This is useful because it means no knowledge or use of the u-boot console is required.
|
||||
|
||||
Since the eMMC is 16GB of storage space, it's advisable to choose an external storage disk of less than 16GB if you intend to install onto the onboard storage, or to create a root partition of less than 15.8GB.
|
||||
|
||||
|
@ -83,7 +86,7 @@ In the fdisk tui, create two partitions on a Master Boot Record:
|
|||
- set type to fat32 (ext2 is also supported by extlinux I believe, but I used fat32)
|
||||
- create a second partition of up to 15.8GB
|
||||
|
||||
You will find the appropriate options by typing `m` when using the fdisk tui on GNU/Linux distros.
|
||||
You will find the appropriate options by typing `m` when using the fdisk tui on GNU+Linux distros.
|
||||
|
||||
Now make the filesystems:
|
||||
```
|
||||
|
@ -109,27 +112,27 @@ Boot-Disk Creation
|
|||
Now that we've got an extlinux.conf file, copy it to your /tmp directory, and we'll begin.
|
||||
```
|
||||
cd /tmp
|
||||
curl -LO http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
|
||||
curl -LO http://os.archlinuxarm.org/os/ArchGNU+LinuxARM-aarch64-latest.tar.gz
|
||||
mkdir root
|
||||
mkdir boot
|
||||
mount /dev/sdX2 root
|
||||
|
||||
mount /dev/sdX1 boot
|
||||
tar -C boot --strip-components=2 -xvf ArchLinuxARM-aarch64-latest.tar.gz ./boot/
|
||||
tar -C root --exclude=./boot -xvf ArchLinuxARM-aarch64-latest.tar.gz
|
||||
tar -C boot --strip-components=2 -xvf ArchGNU+LinuxARM-aarch64-latest.tar.gz ./boot/
|
||||
tar -C root --exclude=./boot -xvf ArchGNU+LinuxARM-aarch64-latest.tar.gz
|
||||
mkdir boot/extlinux
|
||||
cp extlinux.conf boot/extlinux/extlinux.conf
|
||||
sync
|
||||
umount boot
|
||||
umount root
|
||||
```
|
||||
Note the use of ArchLinuxARM-aarch64-latest.tar.gz and not ArchLinuxARM-gru-latest.tar.gz
|
||||
Note the use of ArchGNU+LinuxARM-aarch64-latest.tar.gz and not ArchGNU+LinuxARM-gru-latest.tar.gz
|
||||
|
||||
The current gru build only supports a depthcharge payload and, of course, we're not using depthcharge are we?
|
||||
|
||||
With that, you should now have a (kind of) working boot disk - insert your installation media and boot.
|
||||
|
||||
Extensive testing with ArchLinuxARM-latest release, showed that booting the fallback initramfs image will work, but the main image won't.
|
||||
Extensive testing with ArchGNU+LinuxARM-latest release, showed that booting the fallback initramfs image will work, but the main image won't.
|
||||
If you create an extlinux.conf file with paths to both images - like in the template above - you can select either by number at boot.
|
||||
|
||||
Going Live - Necessary Tweaks
|
||||
|
@ -170,7 +173,7 @@ lsblk -o NAME,UUID,FSTYPE,SIZE
|
|||
Final Steps
|
||||
===========
|
||||
|
||||
At this stage, you now have a fully functional ArchLinuxARM system on an external disk, and are ready to configure your system.
|
||||
At this stage, you now have a fully functional ArchGNU+LinuxARM system on an external disk, and are ready to configure your system.
|
||||
If you intend to install onto the eMMC module, you can make your changes permanent with:
|
||||
```
|
||||
dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress
|
||||
|
|
|
@ -6,9 +6,9 @@ x-toc-enable: true
|
|||
System Configuration
|
||||
====================
|
||||
|
||||
Hardware: Samsung Chromebook Plus XE513C24 (gru_kevin)
|
||||
Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin)
|
||||
|
||||
Libreboot: 2023-04-23
|
||||
Tested on Libreboot 20230423 (nonGeNUine Boot is a fork of Libreboot)
|
||||
|
||||
Operating System: Debian Bookworm RC2
|
||||
|
||||
|
@ -34,7 +34,7 @@ netinst version.
|
|||
|
||||
[https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/](https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/)
|
||||
|
||||
Write the iso file to a micro sdcard. Replace "sdcard_device" below
|
||||
Write the iso file to a micro sdcard. Replace `sdcard_device` below
|
||||
with the appropriate device path on your system.
|
||||
```
|
||||
# dd if=debian-bookworm-DI-rc2-arm64-DVD-1.img of=/dev/sdcard_device bs=1M status=progress; sync
|
||||
|
@ -54,12 +54,12 @@ The system automatically found an EFI image (efi/boot/bootaa64.efi), but after
|
|||
loading it the "Synchronous Abort" handler activated and the chromeboot would
|
||||
reboot.
|
||||
|
||||
Since libreboot/uboot has a 2 second pause at the beginning to stop autoboot if
|
||||
desired I paused autoboot and it dropped me to the uboot command line. Per the
|
||||
suggestion from alpernebbi on libreboot IRC I looked for the grub EFI image on
|
||||
the micro sdcard and started that up instead. Below are the series of uboot
|
||||
commands I used to understand the media and partition structure. Device 1 is
|
||||
the micro sdcard slot, and in this case the efi partition is 2.
|
||||
Since nongenuineboot/uboot has a 2 second pause at the beginning to stop autoboot if
|
||||
desired I paused autoboot and it dropped me to the uboot command line. Look for
|
||||
the grub EFI image on the micro sdcard and started that up instead. Below are
|
||||
the series of uboot commands I used to understand the media and partition
|
||||
structure. Device 1 is the micro sdcard slot, and in this case the efi
|
||||
partition is 2.
|
||||
|
||||
```
|
||||
Hit any key to stop autoboot: 0
|
||||
|
@ -102,12 +102,12 @@ everything was in text mode and easy to read. The "Graphical install" worked
|
|||
also, however the screen resolution was so high that all the text and buttons
|
||||
were quite small on the display and harder to read.
|
||||
|
||||
![](https://av.libreboot.org/xe513c24/debbook-grub.jpg)
|
||||
![](https://avgnu.vimuser.org/xe513c24/debbook-grub.jpg)
|
||||
|
||||
At this point the installation proceeded normally.
|
||||
|
||||
![](https://av.libreboot.org/xe513c24/debbook-lang.jpg)
|
||||
![](https://av.libreboot.org/xe513c24/debbook-packages.jpg)
|
||||
![](https://avgnu.vimuser.org/xe513c24/debbook-lang.jpg)
|
||||
![](https://avgnu.vimuser.org/xe513c24/debbook-packages.jpg)
|
||||
|
||||
Note that you will see a message during install asking whether you want to
|
||||
search for non-free firmware. My experience was that the system would use
|
||||
|
@ -115,11 +115,11 @@ non-free firmware regardless what I selected in that dialogue. The system was
|
|||
able to connect wirelessly to the internet and download packages and updates as
|
||||
needed.
|
||||
|
||||
![](https://av.libreboot.org/xe513c24/debbook-nonfree.jpg)
|
||||
![](https://avgnu.vimuser.org/xe513c24/debbook-nonfree.jpg)
|
||||
|
||||
Some users have mentioned experiencing corruption of the first partition after
|
||||
installing Debian Bookworm on a Libreboot / uboot xe513c24 system. This is
|
||||
possibly due to the experimental nature of the libreboot / uboot system at this
|
||||
installing Debian Bookworm on a nonGeNUine Boot / uboot xe513c24 system. This is
|
||||
possibly due to the experimental nature of the nongenuineboot / uboot system at this
|
||||
time.
|
||||
|
||||
One potential workaround is to leave some unused space at the beginning of the
|
||||
|
@ -163,8 +163,8 @@ grub though, so you may need to repeat this as a workaround for now.
|
|||
Below are a couple screen shots of the installed system running from the
|
||||
internal emmc.
|
||||
|
||||
![](https://av.libreboot.org/xe513c24/debbook-desktop.jpg)
|
||||
![](https://av.libreboot.org/xe513c24/debbook-firefox.jpg)
|
||||
![](https://avgnu.vimuser.org/xe513c24/debbook-desktop.jpg)
|
||||
![](https://avgnu.vimuser.org/xe513c24/debbook-firefox.jpg)
|
||||
|
||||
System Functionality
|
||||
====================
|
||||
|
@ -176,7 +176,7 @@ Things that work:
|
|||
* Touchpad
|
||||
* Audio (Speakers and headphone jack)
|
||||
* Volume buttons on side of laptop.
|
||||
* Graphics (the open source panfrost driver is impressive)
|
||||
* Graphics (the free software panfrost driver is impressive)
|
||||
* Playing videos
|
||||
|
||||
Things that do not work:
|
||||
|
|
|
@ -6,9 +6,9 @@ x-toc-enable: true
|
|||
System Configuration
|
||||
====================
|
||||
|
||||
Hardware: Samsung Chromebook Plus XE513C24 (gru_kevin)
|
||||
Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin)
|
||||
|
||||
Libreboot: 2023-04-23
|
||||
Tested on Libreboot 20230423 (nonGeNUine Boot is a fork of Libreboot)
|
||||
|
||||
Operating System: OpenBSD 7.3
|
||||
|
||||
|
@ -19,7 +19,7 @@ Follow the OpenBSD arm64 installation instructions in the link below:
|
|||
|
||||
https://ftp.openbsd.org/pub/OpenBSD/snapshots/arm64/INSTALL.arm64
|
||||
|
||||
Write the install73.img file to a micro sdcard. Replace "sdcard_device" below
|
||||
Write the install73.img file to a micro sdcard. Replace `sdcard_device` below
|
||||
with the appropriate device path on your system.
|
||||
```
|
||||
# dd if=install73.img of=/dev/sdcard_device bs=1M status=progress; sync
|
||||
|
@ -41,4 +41,4 @@ indicating an error opening random.seed but continued to load the OpenBSD
|
|||
kernel. Unfortunately the system then froze indefinitely. See screen shot
|
||||
below.
|
||||
|
||||
![](https://av.libreboot.org/xe513c24/openbsd-attempt.jpg)
|
||||
![](https://avgnu.vimuser.org/xe513c24/openbsd-attempt.jpg)
|
||||
|
|
194
site/download.md
194
site/download.md
|
@ -3,148 +3,99 @@ title: Downloads
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
New releases are announced in the [main news section](news/).
|
||||
|
||||
If you're more interested in libreboot development, go to the
|
||||
[libreboot development page](../git.md), which also includes links to the
|
||||
If you're more interested in nonGeNUine Boot development, go to the
|
||||
[nonGeNUine Boot development page](../git.md), which also includes links to the
|
||||
Git repositories. The page on [/docs/maintain/](docs/maintain/) describes how
|
||||
Libreboot is put together, and how to maintain it. If you wish to build
|
||||
Libreboot from source, [read this page](docs/build/).
|
||||
nonGeNUine Boot is put together, and how to maintain it. If you wish to build
|
||||
nonGeNUine Boot from source, [read this page](docs/build/).
|
||||
|
||||
non**G**e**NU**ine Boot 20230717 release
|
||||
---------------------------------------------
|
||||
|
||||
The latest non-**G**e**NU**ine firmware can be found here, originally released
|
||||
on 17 July 2023 as *unofficial* GNU Boot 20230717, but re-branded on [21
|
||||
July 2021](news/nongenuineboot20230717.html#update-21-july-2023) to *nonGeNUine
|
||||
Boot*:
|
||||
|
||||
**<https://av.vimuser.org/notgnuboot/20230717/>**
|
||||
|
||||
**Please read the [nonGeNUine Boot 20230717 release
|
||||
announcement](news/nongenuineboot20230717.md)**
|
||||
|
||||
*This non-**G**e**NU**ine release is proposed to the GNU project, for use in
|
||||
the GNU Boot releases, but it is not officially sanctioned. It was created
|
||||
by Leah Rowe, leader of the [Libreboot project](https://libreboot.org), based
|
||||
directly upon the [Libreboot 20230625
|
||||
release](https://libreboot.org/news/libreboot20230625.html) of 25 June 2023;
|
||||
the intent is to help GNU Boot reach parity with current Libreboot releases,
|
||||
so that the two projects can begin to operate in sync (while GNU Boot continues
|
||||
to exclude parts of Libreboot that it finds unacceptable); as of
|
||||
July 16th, 2023, GNU Boot was struggling to get up to speed with Libreboot, so
|
||||
it was decided that the Libreboot project itself would help GNU Boot in
|
||||
whatever way it can.*
|
||||
|
||||
On that day, GNU Boot's code repository was still based on Libreboot from
|
||||
late 2022, and its website repository was mostly based upon Libreboot from
|
||||
late 2021. *This* mock nonGeNUine Boot website and release, though unofficial, *is*
|
||||
validly adherent to GNU Boot policy, and *is* real. You can *use it*, today.
|
||||
*nonGeNUine* Boot policy adheres to the [GNU Free System Distribution
|
||||
Guidelines (GNU FSDG)](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html),
|
||||
whereas Libreboot adheres to the [Binary Blob Reduction
|
||||
Policy](https://libreboot.org/news/policy.html), and that is the reason GNU
|
||||
wanted to fork Libreboot. We in Libreboot do not agree with the GNU Boot
|
||||
project, especially since Libreboot already still provides blob-free
|
||||
configurations when possible, on any given mainboard, but no-blob configuration
|
||||
is still the preferred configuration when possible, in Libreboot. Indeed, this
|
||||
nonGeNUine Boot release adds several new mainboards that the real GNU Boot can make
|
||||
use of (Dell Latitude E6400 and 2 RK3399 chromebooks).
|
||||
|
||||
GPG signing key
|
||||
---------------
|
||||
|
||||
**The latest *censored* release is Libreboot c20230710, under the `censored` directory.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
### NEW KEY
|
||||
**NOTE: The signing key below is used by Libreboot, and was used to
|
||||
sign the unofficial nonGeNUine Boot 20230717 release, linked above.**
|
||||
|
||||
Full key fingerprint: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
||||
|
||||
This key is for Libreboot releases *after* the 20160907 release.
|
||||
|
||||
Download the key here: [lbkey.asc](lbkey.asc)
|
||||
|
||||
Libreboot releases are signed using GPG.
|
||||
|
||||
### OLD KEY:
|
||||
|
||||
This key is for Libreboot 20160907, and releases older than 20160907:
|
||||
|
||||
Full key fingerprint: CDC9 CAE3 2CB4 B7FC 84FD C804 969A 9795 05E8 C5B2
|
||||
|
||||
The GPG key can also be downloaded with this exported dump of the
|
||||
pubkey: [lbkeyold.asc](lbkeyold.asc).
|
||||
|
||||
sha512sum -c sha512sum.txt
|
||||
gpg --verify sha512sum.txt.sig
|
||||
nonGeNUine Boot releases are signed using GnuPG.
|
||||
|
||||
Git repository
|
||||
--------------
|
||||
|
||||
Links to regular release archives are listed on this page.
|
||||
|
||||
However, for the absolute most bleeding edge up-to-date version of Libreboot,
|
||||
However, for the absolute most bleeding edge up-to-date version of nonGeNUine Boot,
|
||||
there is a Git repository that you can download from. Go here:
|
||||
|
||||
[How to download Libreboot from Git](git.md)
|
||||
[How to download nonGeNUine Boot from Git](git.md)
|
||||
|
||||
HTTPS mirrors {#https}
|
||||
-------------
|
||||
|
||||
**The latest *censored* release is Libreboot c20230710, under the `censored` directory.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
These mirrors are recommended, since they use TLS (https://) encryption.
|
||||
|
||||
You can download Libreboot from these mirrors:
|
||||
|
||||
* <https://www.mirrorservice.org/sites/libreboot.org/release/> (University
|
||||
of Kent, UK)
|
||||
* <https://mirrors.mit.edu/libreboot/> (MIT university, USA)
|
||||
* <https://mirror.math.princeton.edu/pub/libreboot/> (Princeton
|
||||
university, USA)
|
||||
* <https://mirror.shapovalov.tech/libreboot/> (shapovalov.tech, Ukraine)
|
||||
* <https://mirror.koddos.net/libreboot/> (koddos.net, Netherlands)
|
||||
* <https://mirror-hk.koddos.net/libreboot/> (koddos.net, Hong Kong)
|
||||
* <https://mirror.cyberbits.eu/libreboot/> (cyberbits.eu, France)
|
||||
* <https://mirror.mangohost.net/libreboot/> (mangohost.net, Moldova)
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
||||
RSYNC mirrors {#rsync}
|
||||
-------------
|
||||
|
||||
The following rsync mirrors are available publicly:
|
||||
|
||||
* <rsync://rsync.mirrorservice.org/libreboot.org/release/> (University of Kent,
|
||||
UK)
|
||||
* <rsync://mirror.math.princeton.edu/pub/libreboot/> (Princeton university, USA)
|
||||
* <rsync://rsync.shapovalov.tech/libreboot/> (shapovalov.tech, Ukraine)
|
||||
* <rsync://ftp.linux.ro/libreboot/> (linux.ro, Romania)
|
||||
* <rsync://mirror.koddos.net/libreboot/> (koddos.net, Netherlands)
|
||||
* <rsync://mirror-hk.koddos.net/libreboot/> (koddos.net, Hong Kong)
|
||||
* <rsync://mirror.mangohost.net/libreboot/> (mangohost.net, Moldova)
|
||||
|
||||
Are you running a mirror? Contact the libreboot project, and the link will be
|
||||
added to this page!
|
||||
|
||||
You can make your rsync mirror available via your web server, and also configure
|
||||
your *own* mirror to be accessible via rsync. There are many resources online
|
||||
that show you how to set up an rsync server.
|
||||
|
||||
How to create your own rsync mirror:
|
||||
|
||||
Useful for mirroring Libreboot's entire set of release archives. You can put
|
||||
an rsync command into crontab and pull the files into a directory on your
|
||||
web server.
|
||||
|
||||
If you are going to mirror the entire set, it is recommended that you allocate
|
||||
at least 25GiB. Libreboot's rsync is currently about 12GiB, so allocating 25GiB
|
||||
will afford you plenty of space for the future. At minimum, you should ensure
|
||||
that at least 15-20GiB of space is available, for your Libreboot mirror.
|
||||
|
||||
*It is highly recommended that you use the libreboot.org mirror*, if you wish
|
||||
to host an official mirror. Otherwise, if you simply want to create your own
|
||||
local mirror, you should use one of the other mirrors, which sync from
|
||||
libreboot.org.
|
||||
|
||||
Before you create the mirror, make a directory on your web server. For
|
||||
example:
|
||||
|
||||
mkdir /var/www/html/libreboot/
|
||||
|
||||
Now you can run rsync, for instance:
|
||||
|
||||
rsync -avz --delete-after rsync://rsync.libreboot.org/mirrormirror/ /var/www/html/libreboot/
|
||||
|
||||
You might put this in an hourly crontab. For example:
|
||||
|
||||
crontab -e
|
||||
|
||||
Then in crontab, add this line and save/exit (hourly crontab):
|
||||
|
||||
0 * * * * rsync -avz --delete-after rsync://rsync.libreboot.org/mirrormirror/ /var/www/html/libreboot/
|
||||
|
||||
**It's extremely important to have the final forward slash (/) at the end of each path,
|
||||
in the above rsync command. Otherwise, rsync will behave very strangely.**
|
||||
|
||||
**NOTE: `rsync.libreboot.org` is not directly accessible by the public, except
|
||||
those whose IPs are whitelisted. For bandwidth reasons, the firewall running
|
||||
on libreboot.org blocks incoming rsync requests, except by specific IPs.**
|
||||
|
||||
**If you wish to run an rsync mirror, sync from one of the third party mirrors
|
||||
above and set up your mirror. You can then contact Leah Rowe, to have your IP
|
||||
addresses whitelisted for rsync usage - if the IP addresses match DNS A/AAAA
|
||||
records for your rsync host, this can be used. A script runs in an hourly
|
||||
crontab on libreboot.org, that fetches the A/AAAA records of whitelisted
|
||||
rsync mirrors, automatically adding rules permitting them to get through the
|
||||
firewall.**
|
||||
|
||||
If you wish to regularly keep your rsync mirror updated, you can add it to a
|
||||
crontab. This page tells you how to use crontab:
|
||||
<https://man7.org/linux/man-pages/man5/crontab.5.html>
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
||||
HTTP mirrors {#http}
|
||||
------------
|
||||
|
||||
**The latest *censored* release is Libreboot c20230710, under the `censored` directory.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
WARNING: these mirrors are non-HTTPS which means that they are
|
||||
unencrypted. Your traffic could be subject to interference by
|
||||
|
@ -152,38 +103,13 @@ adversaries. Make especially sure to check the GPG signatures, assuming
|
|||
that you have the right key. Of course, you should do this anyway, even
|
||||
if using HTTPS.
|
||||
|
||||
* <http://mirror.linux.ro/libreboot/> (linux.ro, Romania)
|
||||
* <http://mirror.helium.in-berlin.de/libreboot/> (in-berlin.de, Germany)
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
||||
FTP mirrors {#ftp}
|
||||
-----------
|
||||
|
||||
**The latest *censored* release is Libreboot c20230710, under the `censored` directory.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
WARNING: FTP is also unencrypted, like HTTP. The same risks are present.
|
||||
|
||||
* <ftp://ftp.mirrorservice.org/sites/libreboot.org/release/> (University
|
||||
of Kent, UK)
|
||||
* <ftp://ftp.linux.ro/libreboot/> (linux.ro, Romania)
|
||||
|
||||
Statically linked
|
||||
------------------
|
||||
|
||||
Libreboot includes statically linked executables in some releases, built from
|
||||
the available source code. Those executables have certain libraries built into
|
||||
them, so that the executables will work on many Linux distros.
|
||||
|
||||
Libreboot 20160907 was built in Trisquel Linux, version 7.0 64-bit.
|
||||
Some older Libreboot releases will have been built in Trisquel 6.0.1.
|
||||
|
||||
To comply with GPL v2, Trisquel 6 and 7 source ISOs are supplied by the
|
||||
Libreboot project. You can find these source ISOs in the `ccsource` directory
|
||||
on the `rsync` mirrors.
|
||||
|
||||
Libreboot releases past version 20160907 do not distribute statically linked
|
||||
binaries. Instead, these releases are source-only, besides pre-compiled ROM
|
||||
images for which the regular Libreboot source code archives suffice. These newer
|
||||
releases instead automate the installation of build dependencies, with instructions
|
||||
in the documentation for building various utilities from source.
|
||||
|
||||
These executables are utilities such as `flashrom`.
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
|
|
@ -5,146 +5,92 @@ x-toc-enable: true
|
|||
|
||||
Нові випуски оголошуються в [основній секції новин](news/).
|
||||
|
||||
Якщо ви більше зацікавлені в розробці libreboot, пройдіть на
|
||||
[сторінку розробки libreboot](../git.md), яка також включає посилання на
|
||||
Якщо ви більше зацікавлені в розробці nonGeNUine Boot, пройдіть на
|
||||
[сторінку розробки nonGeNUine Boot](../git.md), яка також включає посилання на
|
||||
репозиторії Git. Сторінка на [/docs/maintain/](docs/maintain/) описує те, як
|
||||
Libreboot складається разом, і як підтримувати його. Якщо ви бажаєте зібрати
|
||||
Libreboot із джерельного кода, [прочитайте цю сторінку](docs/build/).
|
||||
nonGeNUine Boot складається разом, і як підтримувати його. Якщо ви бажаєте зібрати
|
||||
nonGeNUine Boot із джерельного кода, [прочитайте цю сторінку](docs/build/).
|
||||
|
||||
Non-**G**e**NU**ine Boot 20230717 release
|
||||
---------------------------------------------
|
||||
|
||||
The latest non-**G**e**NU**ine firmware can be found here, originally released
|
||||
on 17 July 2023:
|
||||
|
||||
**<https://av.vimuser.org/notgnuboot/20230717/>**
|
||||
|
||||
**Please read the [nonGeNUine Boot 20230717 release
|
||||
announcement](news/nongenuineboot20230717.md)**
|
||||
|
||||
*This non-**G**e**NU**ine release is proposed to the GNU project, for use in
|
||||
the GNU Boot releases, but it is not officially sanctioned. It was created
|
||||
by Leah Rowe, leader of the [Libreboot project](https://libreboot.org), based
|
||||
directly upon the [Libreboot 20230625
|
||||
release](https://libreboot.org/news/libreboot20230625.html) of 25 June 2023;
|
||||
the intent is to help GNU Boot reach parity with current Libreboot releases,
|
||||
so that the two projects can begin to operate in sync (while GNU Boot continues
|
||||
to exclude parts of Libreboot that it finds unacceptable); as of
|
||||
July 16th, 2023, GNU Boot was struggling to get up to speed with Libreboot, so
|
||||
it was decided that the Libreboot project itself would help GNU Boot in
|
||||
whatever way it can.*
|
||||
|
||||
On that day, GNU Boot's code repository was still based on Libreboot from
|
||||
late 2022, and its website repository was mostly based upon Libreboot from
|
||||
late 2021. *This* mock nonGeNUine Boot website and release, though unofficial, *is*
|
||||
validly adherent to GNU Boot policy, and *is* real. You can *use it*, today.
|
||||
*nonGeNUine* Boot policy adheres to the [GNU Free System Distribution
|
||||
Guidelines (GNU FSDG)](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html),
|
||||
whereas Libreboot adheres to the [Binary Blob Reduction
|
||||
Policy](https://libreboot.org/news/policy.html), and that is the reason GNU
|
||||
wanted to fork Libreboot. We in Libreboot do not agree with the GNU Boot
|
||||
project, especially since Libreboot already still provides blob-free
|
||||
configurations when possible, on any given mainboard, but no-blob configuration
|
||||
is still the preferred configuration when possible, in Libreboot. Indeed, this
|
||||
nonGeNUine Boot release adds several new mainboards that the real GNU Boot can make
|
||||
use of (Dell Latitude E6400 and 2 RK3399 chromebooks).
|
||||
|
||||
Код підпису GPG
|
||||
---------------
|
||||
|
||||
**Останнім випуском є Censored-Libreboot c20230710, в директорії `censored`.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
### НОВИЙ КЛЮЧ
|
||||
**NOTE: The signing key below is used by Libreboot, and was used to
|
||||
sign the unofficial nonGeNUine Boot 20230717 release, linked above.**
|
||||
|
||||
Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
||||
|
||||
Вищезазначений ключ для Censored-Libreboot 20230710, та наступних випусків.
|
||||
|
||||
Завантажте ключ тут: [lbkey.asc](lbkey.asc)
|
||||
|
||||
Випуски Libreboot підписані з використанням GPG.
|
||||
|
||||
### СТАРИЙ КЛЮЧ:
|
||||
|
||||
Цей ключ для Libreboot 20160907 та всіх старіших випусків:
|
||||
|
||||
Повний відбиток ключа: CDC9 CAE3 2CB4 B7FC 84FD C804 969A 9795 05E8 C5B2
|
||||
|
||||
Ключ GPG також може бути завантажений разом із цим експортованим дампом
|
||||
публічного ключа: [lbkeyold.asc](lbkeyold.asc).
|
||||
|
||||
sha512sum -c sha512sum.txt
|
||||
gpg --verify sha512sum.txt.sig
|
||||
Випуски nonGeNUine Boot підписані з використанням GnuPG.
|
||||
|
||||
Репозиторій Git
|
||||
--------------
|
||||
|
||||
Посилання на архіви регулярних випусків зазначені на цій сторінці.
|
||||
|
||||
Однак, для абсолютно найновішої версії Libreboot,
|
||||
Однак, для абсолютно найновішої версії nonGeNUine Boot,
|
||||
існує репозиторії Git, з якого можна завантажити. Ідіть сюди:
|
||||
|
||||
[Як завантажити Libreboot через Git](git.md)
|
||||
[Як завантажити nonGeNUine Boot через Git](git.md)
|
||||
|
||||
Дзеркала HTTPS {#https}
|
||||
-------------
|
||||
|
||||
**Останнім випуском є Censored-Libreboot c20230710, в директорії `censored`.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування.
|
||||
|
||||
Ви можете завантажити Libreboot через дані дзеркала:
|
||||
|
||||
* <https://www.mirrorservice.org/sites/libreboot.org/release/> (Кентський
|
||||
університет, Великобританія)
|
||||
* <https://mirrors.mit.edu/libreboot/> (Університет МТІ, США)
|
||||
* <https://mirror.math.princeton.edu/pub/libreboot/> (Прінстонський
|
||||
університет, США)
|
||||
* <https://mirror.shapovalov.tech/libreboot/> (shapovalov.tech, Україна)
|
||||
* <https://mirror.koddos.net/libreboot/> (koddos.net, Нідерланди)
|
||||
* <https://mirror-hk.koddos.net/libreboot/> (koddos.net, Гонконг)
|
||||
* <https://mirror.cyberbits.eu/libreboot/> (cyberbits.eu, Франція)
|
||||
* <https://mirror.mangohost.net/libreboot/> (mangohost.net, Moldova)
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
||||
Дзеркала RSYNC {#rsync}
|
||||
-------------
|
||||
|
||||
Наступні дзеркала rsync доступні публічно:
|
||||
|
||||
* <rsync://rsync.mirrorservice.org/libreboot.org/release/> (Кентський університет,
|
||||
Великобританія)
|
||||
* <rsync://mirror.math.princeton.edu/pub/libreboot/> (Прінстонський університет, США)
|
||||
* <rsync://rsync.shapovalov.tech/libreboot/> (shapovalov.tech, Україна)
|
||||
* <rsync://ftp.linux.ro/libreboot/> (linux.ro, Румунія)
|
||||
* <rsync://mirror.koddos.net/libreboot/> (koddos.net, Нідерланди)
|
||||
* <rsync://mirror-hk.koddos.net/libreboot/> (koddos.net, Гонконг)
|
||||
* <rsync://mirror.mangohost.net/libreboot/> (mangohost.net, Moldova)
|
||||
|
||||
Ви підтримуєте роботу дзеркала? Зв'яжіться з проектом libreboot, і посилання буде
|
||||
додано до цієї сторінки!
|
||||
|
||||
Ви можете зробити своє дзеркало rsync доступним через свій веб-сервер, а також налаштувати
|
||||
ваше *власне* дзеркало бути доступним через rsync. Є багато онлайн-ресурсів,
|
||||
які показують вам те, як налаштувати сервер rsync.
|
||||
|
||||
Як створити ваше власне дзеркало rsync:
|
||||
|
||||
Корисно для відзеркалювання повного набору архівів випусків Libreboot. Ви можете розмістити
|
||||
команду rsync в crontab та витягувать файли в директорію на
|
||||
вашому веб-сервері.
|
||||
|
||||
Якщо ви збираєтесь відзеркалювати повний набір, рекомендовано, щоб вами було виділено
|
||||
хоча би 25 ГБ. Rsync Libreboot наразі приблизно 12 ГБ, таким чином виділення 25 ГБ
|
||||
забезпечить вам багато місця на майбутнє. Мінімально, ви маєте переконатись, що
|
||||
хоча би 15-20 ГБ простору доступно, для вашого дзеркала Libreboot.
|
||||
|
||||
*Настійно рекомендується, щоб ви використовували дзеркало libreboot.org*, якщо бажаєте
|
||||
розміщувати офіційне дзеркало. В іншому випадку, якщо ви просто бажаєте створити своє власне
|
||||
локальне дзеркало, вам варто використовувати одне з інших дзеркал, яке синхронізується з
|
||||
libreboot.org.
|
||||
|
||||
Перед створенням дзеркала, зробіть директорію на вашому веб-сервері. Для
|
||||
прикладу:
|
||||
|
||||
mkdir /var/www/html/libreboot/
|
||||
|
||||
Тепер ви можете виконувати rsync, для прикладу:
|
||||
|
||||
rsync -avz --delete-after rsync://rsync.libreboot.org/mirrormirror/ /var/www/html/libreboot/
|
||||
|
||||
Ви могли би розмістить це в щогодинний crontab. Для прикладу:
|
||||
|
||||
crontab -e
|
||||
|
||||
Потім в crontab, додайте цей рядок і збережіться/вийдіть (щогодинний crontab):
|
||||
|
||||
0 * * * * rsync -avz --delete-after rsync://rsync.libreboot.org/mirrormirror/ /var/www/html/libreboot/
|
||||
|
||||
**Це надзвичайно важливо, щоб мати в кінці косу лінію (/) в кінці кожного шляху,
|
||||
в вищезазначеній команді rsync. В інакшому випадку, rsync буде поводитись дуже дивно.**
|
||||
|
||||
**ПОМІТКА: `rsync.libreboot.org` не є напряму доступним для громадськості, окрім
|
||||
тих, чиї IP у білому списку. Через пропускну здатність, Брандмауер, який працює
|
||||
на libreboot.org, блокує вхідні запити rsync, окрім окремих IP.**
|
||||
|
||||
**Якщо ви бажаєте запустити дзеркало rsync, синхронізуйте з одного з дзеркал третіх сторін
|
||||
вище і встановіть своє дзеркало. Ви можете потім зв'язатись з Лією Роу, щоб мати ваші адреси
|
||||
IP внесеним в білий список для використання rsync - якщо адреси IP відповідають DNS A/AAAA
|
||||
записам для вашого хоста rsync, це може бути використано. Сценарій виконується в щогодинному
|
||||
crontab на libreboot.org, який отримує A/AAAA записи внесених в білий список дзеркал
|
||||
rsync, автоматично додаючи правила, які дозволяють їм проходити через
|
||||
брандмауер.**
|
||||
|
||||
Якщо ви бажаєте регулярно тримати свої дзеркала rsync оновленими, ви можете додати це до
|
||||
crontab. Ця сторінка розповідає вам, як використовувати crontab:
|
||||
<https://man7.org/linux/man-pages/man5/crontab.5.html>
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
||||
Дзеркала HTTP {#http}
|
||||
------------
|
||||
|
||||
**Останнім випуском є Censored-Libreboot c20230710, під директорією `censored`.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
УВАГА: ці дзеркала є не-HTTPS, що означає, що вони
|
||||
незашифровані. Ваш трафік може бути об'єктом втручання
|
||||
|
@ -152,38 +98,13 @@ crontab. Ця сторінка розповідає вам, як викорис
|
|||
ви маєте правильний ключ. Звісно, вам варто зробити це в будь-якому випадку, навіть
|
||||
при використанні HTTPS.
|
||||
|
||||
* <http://mirror.linux.ro/libreboot/> (linux.ro, Румунія)
|
||||
* <http://mirror.helium.in-berlin.de/libreboot/> (in-berlin.de, Німеччина)
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
||||
Дзеркала FTP {#ftp}
|
||||
-----------
|
||||
|
||||
**Останнім випуском є Censored-Libreboot 20230710, під директорією `censored`.**
|
||||
**The latest *official* release is TBD.**
|
||||
|
||||
УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні.
|
||||
|
||||
* <ftp://ftp.mirrorservice.org/sites/libreboot.org/release/> (Кентський
|
||||
університет, Великобританія)
|
||||
* <ftp://ftp.linux.ro/libreboot/> (linux.ro, Румунія)
|
||||
|
||||
Статично зв'язані
|
||||
------------------
|
||||
|
||||
Libreboot включає статично зв'язані виконувані файли в деяких випусках, побудовані з
|
||||
доступного джерельного кода. Ці виконувані файли мають деякі бібліотеки, вбудовані в
|
||||
них, так щоб виконувані файли працювали на багатьох дистрибутивах Linux.
|
||||
|
||||
Libreboot 20160907 було побудовано в Trisquel Linux, версія 7.0 64-біти.
|
||||
Деякі старіші випуски Libreboot буде побудовано в Trisquel 6.0.1.
|
||||
|
||||
Для дотримання GPL v2, Trisquel 6 та 7 джерельні ISO постачаються
|
||||
проектом Libreboot. Ви можете знайти ці джерельні ISO в директорії `ccsource`
|
||||
на дзеркалах `rsync`.
|
||||
|
||||
Попередні випуски Libreboot 20160907 не розповсюджують статично зв'язані двійкові
|
||||
файли. Натомість ці випуски є лише вихідними кодами, окрім попередньо скомпільованих образів
|
||||
ПЗП, для яких достатньо звичайних архівів джерельного коду Libreboot. Ці новіші
|
||||
випуски натомість автоматизують встановлення залежностей побудови, з інструкцієї
|
||||
в документації для побудови різних утиліт з джерельного коду.
|
||||
|
||||
Ці виконувані файли є утилітами, подібними `flashrom`.
|
||||
**NO MIRRORS YET. GNU will no doubt use its FTP infrastructure for this.**
|
||||
|
|
146
site/faq.md
146
site/faq.md
|
@ -8,15 +8,15 @@ AKA Frequently Questioned Answers
|
|||
Important issues
|
||||
================
|
||||
|
||||
How to compile libreboot from source
|
||||
How to compile nonGeNUine Boot from source
|
||||
------------------------------------
|
||||
|
||||
Refer to the [lbmk build instructions](docs/build/).
|
||||
Refer to the [gbmk build instructions](docs/build/).
|
||||
|
||||
How does the build system work?
|
||||
-------------------------------
|
||||
|
||||
Refer to the [lbmk maintenance manual](docs/maintain/).
|
||||
Refer to the [gbmk maintenance manual](docs/maintain/).
|
||||
|
||||
Do not use CH341A!
|
||||
------------------
|
||||
|
@ -30,7 +30,7 @@ learn more.
|
|||
How Can I Help
|
||||
--------------
|
||||
|
||||
If you have a board supported in Libreboot then please consider becoming a
|
||||
If you have a board supported in nonGeNUine Boot then please consider becoming a
|
||||
tester.
|
||||
Testing involves minimal effort and really helps out the project.
|
||||
See the [board maintainers documentation](/docs/maintain/testing.md)
|
||||
|
@ -46,7 +46,7 @@ that has `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` not enabled.
|
|||
|
||||
Example flashrom output with both `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` enabled:
|
||||
```
|
||||
flashrom v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64)
|
||||
flashrom v0.9.9-r1955 on GNU+Linux 4.11.9-1-ARCH (x86_64)
|
||||
flashrom is free software, get the source code at https://flashrom.org
|
||||
|
||||
Calibrating delay loop... OK.
|
||||
|
@ -71,7 +71,7 @@ The ethernet doesn't work on my X200/T400/X60/T60 when I plug in it
|
|||
-------------------------------------------------------------------
|
||||
|
||||
This was observed on some systems using network-manager. This happens
|
||||
both on the original BIOS and in libreboot. It's a quirk in the
|
||||
both on the original BIOS and in nonGeNUine Boot. It's a quirk in the
|
||||
hardware. On debian systems, a workaround is to restart the networking
|
||||
service when you connect the ethernet cable:
|
||||
|
||||
|
@ -91,7 +91,7 @@ Loading the option ROM from the PIKE2008 module on either ASUS KCMA-D8
|
|||
or KGPE-D16 causes the system to hang at boot. It's possible to use
|
||||
this in the payload (if you use a linux kernel payload, like linuxboot),
|
||||
or to boot (with SeaGRUB and/or SeaBIOS) from regular SATA and then use
|
||||
it in Linux. The Linux kernel is capable of using the PIKE2008
|
||||
it in GNU+Linux. The GNU+Linux kernel is capable of using the PIKE2008
|
||||
module without loading the option ROM.
|
||||
|
||||
How to save kernel panic logs on thinkpad laptops?
|
||||
|
@ -162,11 +162,11 @@ the target (`target$`):
|
|||
Hardware compatibility
|
||||
======================
|
||||
|
||||
What systems are compatible with libreboot?
|
||||
What systems are compatible with nonGeNUine Boot?
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
Any system can easily be added, so *compatibility* merely refers to whatever
|
||||
boards are integrated in the `lbmk` build system, which libreboot uses.
|
||||
boards are integrated in the `gbmk` build system, which nonGeNUine Boot uses.
|
||||
|
||||
Please read the [hardware compatibility list](docs/hardware/).
|
||||
|
||||
|
@ -259,7 +259,7 @@ application introduced in Q2 2013 with ME firmware version 9.0 on 4th
|
|||
Generation Intel Core i3/i5/i7 (Haswell) CPUs. It allows a PC OEM to
|
||||
generate an asymmetric cryptographic keypair, install the public key in
|
||||
the CPU, and prevent the CPU from executing boot firmware that isn't
|
||||
signed with their private key. This means that ***coreboot and libreboot
|
||||
signed with their private key. This means that ***coreboot and nonGeNUine Boot
|
||||
are impossible to port*** to such PCs, without the OEM's private
|
||||
signing key. Note that systems assembled from separately purchased
|
||||
mainboard and CPU parts are unaffected, since the vendor of the
|
||||
|
@ -297,7 +297,7 @@ privacy that can't be ignored.
|
|||
Before version 6.0 (that is, on systems from 2008/2009 and earlier), the
|
||||
ME can be disabled by setting a couple of values in the SPI flash
|
||||
memory. The ME firmware can then be removed entirely from the flash
|
||||
memory space. The libreboot project [does this](docs/install/ich9utils.md) on
|
||||
memory space. The nonGeNUine Boot project [does this](docs/install/ich9utils.md) on
|
||||
the Intel 4 Series systems that it supports, such as the [ThinkPad
|
||||
X200](../docs/install/x200_external.md) and [ThinkPad
|
||||
T400](../docs/install/t400_external.md). ME firmware versions 6.0 and
|
||||
|
@ -319,7 +319,7 @@ hopelessly proprietary and "tivoized".
|
|||
|
||||
**In summary, the Intel Management Engine and its applications are a
|
||||
backdoor with total access to and control over the rest of the PC. The
|
||||
ME is a threat to freedom, security, and privacy, and the libreboot
|
||||
ME is a threat to freedom, security, and privacy, and the nonGeNUine Boot
|
||||
project strongly recommends avoiding it entirely. Since recent versions
|
||||
of it can't be removed, this means avoiding all recent generations of
|
||||
Intel hardware.**
|
||||
|
@ -393,9 +393,6 @@ most cases (they will just integrate the blobs that Intel provides).
|
|||
Newer Intel graphics chipsets also [require firmware
|
||||
blobs](https://01.org/linuxgraphics/intel-linux-graphics-firmwares?langredirect=1).
|
||||
|
||||
The `libreboot` project *does* provide some support for newer Intel platforms, but
|
||||
you should be aware of these issues if you choose to run those machines.
|
||||
|
||||
Freedom pitfalls to consider on AMD hardware {#amd}
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
|
@ -440,7 +437,7 @@ machine completely outside of the user's knowledge.
|
|||
Much like with the Intel Boot Guard (an application of the Intel
|
||||
Management Engine), AMD's PSP can also act as a tyrant by checking
|
||||
signatures on any boot firmware that you flash, making replacement boot
|
||||
firmware (e.g. libreboot, coreboot) impossible on some boards. Early
|
||||
firmware (e.g. nongenuineboot, coreboot) impossible on some boards. Early
|
||||
anecdotal reports indicate that AMD's boot guard counterpart will be
|
||||
used on most OEM hardware, disabled only on so-called "enthusiast"
|
||||
CPUs.
|
||||
|
@ -524,7 +521,7 @@ Please consult the coreboot project for guidance.
|
|||
General questions
|
||||
=================
|
||||
|
||||
How do I install libreboot?
|
||||
How do I install nonGeNUine Boot?
|
||||
-------------------------------------------------------
|
||||
|
||||
See [installation guide](docs/install/)
|
||||
|
@ -541,7 +538,7 @@ align the pins properly. The connection is generally more sturdy.
|
|||
How do I write-protect the flash chip?
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
By default, there is no write-protection on a libreboot system. This is
|
||||
By default, there is no write-protection on a nonGeNUine Boot system. This is
|
||||
for usability reasons, because most people do not have easy access to an
|
||||
external programmer for re-flashing their firmware, or they find it
|
||||
inconvenient to use an external programmer.
|
||||
|
@ -552,7 +549,7 @@ possible, using dedicated hardware). For example, on current GM45
|
|||
laptops (e.g. ThinkPad X200, T400), you can write-protect (see
|
||||
[ICH9 gen utility](docs/install/ich9utils.md#ich9gen)).
|
||||
|
||||
It's possible to write-protect on all libreboot systems, but the instructions
|
||||
It's possible to write-protect on all nonGeNUine Boot systems, but the instructions
|
||||
need to be written. The documentation is in the main git repository, so you are
|
||||
welcome to submit patches adding these instructions.
|
||||
|
||||
|
@ -562,17 +559,18 @@ other methods on AMD systems.
|
|||
How do I change the BIOS settings?
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Most libreboot setups actually use the [GRUB
|
||||
Most nonGeNUine Boot setups actually use the [GRUB
|
||||
payload](http://www.coreboot.org/GRUB2). More information about payloads
|
||||
can be found at
|
||||
[coreboot.org/Payloads](http://www.coreboot.org/Payloads). SeaBIOS is also
|
||||
available. The *CMOS* config is hardcoded in libreboot.
|
||||
available. The *CMOS* config is hardcoded in nonGeNUine Boot, but you can change the
|
||||
defaults via `nvramtool -C nongenuineboot.rom -w config_item=value`
|
||||
|
||||
The libreboot project inherits the modular payload concept from coreboot, which
|
||||
Our nonGeNUine Boot project inherits the modular payload concept from coreboot, which
|
||||
means that pre-OS bare-metal *BIOS setup* programs are not very
|
||||
practical. Coreboot (and libreboot) does include a utility called
|
||||
practical. Coreboot (and nonGeNUine Boot) does include a utility called
|
||||
*nvramtool*, which can be used to change some settings. You can find
|
||||
nvramtool under *coreboot/util/nvramtool/*, in the libreboot source
|
||||
nvramtool under *coreboot/util/nvramtool/*, in the nonGeNUine Boot source
|
||||
archives.
|
||||
|
||||
The *-a* option in nvramtool will list the available options, and *-w*
|
||||
|
@ -582,7 +580,7 @@ coreboot wiki for more information.
|
|||
In practise, you don't need to change any of those settings, in most
|
||||
cases.
|
||||
|
||||
Default libreboot setups lock the CMOS table, to ensure consistent functionality
|
||||
Default nonGeNUine Boot setups lock the CMOS table, to ensure consistent functionality
|
||||
for all users. You can use:
|
||||
|
||||
nvramtool -C yourrom.rom -w somesetting=somevalue
|
||||
|
@ -599,10 +597,10 @@ How do I pad a ROM before flashing?
|
|||
|
||||
It is advisable to simply use a larger ROM image. This section was written
|
||||
mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only
|
||||
provided 2MiB ROM images in libreboot, but we now provide 16MiB ROM images.
|
||||
provided 2MiB ROM images in nonGeNUine Boot, but we now provide 16MiB ROM images.
|
||||
Other sizes are not provided because in practise, someone upgrading one of
|
||||
these chips will just use a 16MiB one. Larger sizes are available, but 16MiB
|
||||
is the maximum that you can use on all currently supported libreboot systems
|
||||
is the maximum that you can use on all currently supported nonGeNUine Boot systems
|
||||
that use SPI flash.
|
||||
|
||||
Required for ROMs where the ROM image is smaller than the flash chip
|
||||
|
@ -637,17 +635,17 @@ With padding removed cbfstool will be able to operate on the image as usual.
|
|||
Do I need to install a bootloader when installing a distribution?
|
||||
---------------------------------------------------------------------------------------------------
|
||||
|
||||
Most libreboot setups integrate the GRUB bootloader already, as a
|
||||
Most nonGeNUine Boot setups integrate the GRUB bootloader already, as a
|
||||
*[payload](http://www.coreboot.org/Payloads)*. This means that the GRUB
|
||||
bootloader is actually *flashed*, as part of the boot firmware
|
||||
(libreboot). This means that you do not have to install a boot loader on
|
||||
(nonGeNUine Boot). This means that you do not have to install a boot loader on
|
||||
the HDD or SSD, when installing a new distribution. You'll be able to
|
||||
boot just fine, using the bootloader (GRUB) that is in the flash chip.
|
||||
|
||||
This also means that even if you remove the HDD or SSD, you'll still
|
||||
have a functioning bootloader installed which could be used to boot a
|
||||
live distribution installer from a USB flash drive. See
|
||||
[How to install Linux on a libreboot system](../docs/linux/grub_boot_installer.md)
|
||||
[Install GNU+Linux on nonGeNUine Boot](../docs/gnulinux/grub_boot_installer.md)
|
||||
|
||||
Nowadays, other payloads are also provided. If you're using the SeaBIOS payload,
|
||||
then the normal MBR bootsector is used on your HDD or SSD, like you would
|
||||
|
@ -656,12 +654,12 @@ expect. So the above paragraphs only apply to the GRUB payload.
|
|||
Do I need to re-flash when I re-install a distribution?
|
||||
-------------------------------------------------------------------------------------------
|
||||
|
||||
Not anymore. Recent versions of libreboot (using the GRUB payload) will
|
||||
Not anymore. Recent versions of nonGeNUine Boot (using the GRUB payload) will
|
||||
automatically switch to a GRUB configuration on the HDD or SSD, if it
|
||||
exists. You can also load a different GRUB configuration, from any kind
|
||||
of device that is supported in GRUB (such as a USB flash drive). For
|
||||
more information, see
|
||||
[Modifying the GRUB Configuration in libreboot Systems](../docs/linux/grub_cbfs.md)
|
||||
[Modifying the GRUB configuration in nonGeNUine Boot](../docs/gnulinux/grub_cbfs.md)
|
||||
|
||||
If you're using the SeaBIOS payload, it's even easier. It works just like you
|
||||
would expect. SeaBIOS implements a normal x86 BIOS interface.
|
||||
|
@ -672,53 +670,7 @@ What does a flash chip look like?
|
|||
You can find photos of various chip types on the following page:\
|
||||
[External 25xx NOR flashing guide](docs/install/spi.md)
|
||||
|
||||
Inability to modprobe thinkpad\_acpi on Haswell
|
||||
===============================================
|
||||
|
||||
This was reported by a user, running Debian 11 with
|
||||
kernel `5.19.0-0.deb11.2-amd64`. The `thinkpad_acpi` module was not loading,
|
||||
with the following message:
|
||||
|
||||
```
|
||||
modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device"
|
||||
```
|
||||
|
||||
Battery info in `/sys` was absent, because of this. The user reported that
|
||||
the following workaround was effective (in Debian).
|
||||
|
||||
Add this line to `/etc/modprobe.d/thinkpad_acpi.conf`:
|
||||
|
||||
```
|
||||
options thinkpad_acpi force_load=1
|
||||
```
|
||||
|
||||
tlp
|
||||
---
|
||||
|
||||
You can install the `tlp` package and start that service. For example, on
|
||||
Debian:
|
||||
|
||||
```
|
||||
apt-get install tlp tlp-rdw
|
||||
systemctl enable tlp
|
||||
systemctl start tlp
|
||||
```
|
||||
|
||||
Now read the manual:
|
||||
|
||||
```
|
||||
man tlp-stat
|
||||
```
|
||||
|
||||
As root, you can do:
|
||||
|
||||
```
|
||||
tlp-stat -b
|
||||
```
|
||||
|
||||
This will provide information about the battery.
|
||||
|
||||
What other firmware exists outside of libreboot?
|
||||
What other firmware exists outside of nonGeNUine Boot?
|
||||
==================================================
|
||||
|
||||
### External GPUs
|
||||
|
@ -732,7 +684,8 @@ in a coreboot ROM image and have coreboot executes it, if you use a
|
|||
different payload, such as GRUB).
|
||||
|
||||
The *coreboot project* provides free initialization code, on many boards, and
|
||||
libreboot will use this code when it is available, depending on the configuration.
|
||||
nonGeNUine Boot will use this code when it is available, depending on the
|
||||
configuration.
|
||||
|
||||
In configurations where SeaBIOS and native GPU init are used together,
|
||||
a special shim VBIOS is added that uses coreboot linear framebuffer.
|
||||
|
@ -767,7 +720,7 @@ is transparent to the user of the drive.
|
|||
HDDs and SSDs are quite complex, and these days contain quite complex
|
||||
hardware which is even capable of running an entire operating system (by
|
||||
this, we mean that the drive itself is capable of running its own
|
||||
embedded OS), even Linux.
|
||||
embedded OS), even GNU+Linux.
|
||||
|
||||
SSDs and HDDs are a special case, since they are persistent storage
|
||||
devices as well as computers.
|
||||
|
@ -799,11 +752,6 @@ it through the controller. This
|
|||
<http://www.intel.co.uk/content/dam/www/public/us/en/documents/technical-specifications/serial-ata-ahci-spec-rev1_3.pdf>
|
||||
(pages 59, 67, 94, 99).
|
||||
|
||||
The following is based on discussion with Peter Stuge (CareBear\\) in
|
||||
the coreboot IRC channel on Friday, 18 September 2015, when
|
||||
investigating whether the SATA drive itself can make use of DMA. The
|
||||
following is based on the datasheets linked above:
|
||||
|
||||
According to those linked documents, FIS type 39h is *"DMA Activate FIS
|
||||
- Device to Host"*. It mentions *"transfer of data from the host to
|
||||
the device, and goes on to say: Upon receiving a DMA Activate, if the
|
||||
|
@ -854,8 +802,8 @@ Other links:
|
|||
|
||||
It is recommended that you use full disk encryption, on HDDs connected
|
||||
via USB. There are several adapters available online, that allow you to
|
||||
connect SATA HDDs via USB, and Libreboot is capable of booting from them the
|
||||
normal way. Consult the documentation for your Linux/BSD operating system, so
|
||||
connect SATA HDDs via USB, and nonGeNUine Boot is capable of booting from them the
|
||||
normal way. Consult the documentation for your GNU+Linux/BSD operating system, so
|
||||
that you can know how to install it with *full disk encryption*.
|
||||
|
||||
The current theory (unproven) is that this will at least prevent
|
||||
|
@ -893,7 +841,7 @@ workaround.
|
|||
Webcams have firmware integrated into them that process the image input
|
||||
into the camera; adjusting focus, white balancing and so on. Can use USB
|
||||
webcam hardware, to work around potential DMA issues; integrated webcams
|
||||
(on laptops, for instance) are discouraged by the libreboot project, for
|
||||
(on laptops, for instance) are discouraged by the nonGeNUine Boot project, for
|
||||
security reasons.
|
||||
|
||||
### USB host controller
|
||||
|
@ -918,7 +866,7 @@ by the GSM network, by triangulating the signal).
|
|||
|
||||
On some laptops, these cards use USB (internally), so won't have DMA,
|
||||
but it's still a massive freedom and privacy issue. If you have an
|
||||
internal WWAN chip/card, the libreboot project recommends that you
|
||||
internal WWAN chip/card, the nonGeNUine Boot project recommends that you
|
||||
disable and (ideally, if possible) physically remove the hardware. If
|
||||
you absolutely must use this technology, an external USB dongle is much
|
||||
better because it can be easily removed when you don't need it, thereby
|
||||
|
@ -930,12 +878,12 @@ as these are generally much safer.
|
|||
Operating Systems
|
||||
=================
|
||||
|
||||
Can I use Linux?
|
||||
Can I use GNU+Linux?
|
||||
--------------------------------------------------
|
||||
|
||||
Absolutely! It is well-tested in libreboot, and highly recommended. See
|
||||
[installing Linux](../docs/linux/grub_boot_installer.md) and
|
||||
[booting Linux](../docs/linux/grub_cbfs.md).
|
||||
Absolutely! It is well-tested in nonGeNUine Boot, and highly recommended. See
|
||||
[installing GNU+Linux](../docs/gnulinux/grub_boot_installer.md) and
|
||||
[booting GNU+Linux](../docs/gnulinux/grub_cbfs.md).
|
||||
|
||||
Any recent distribution should work, as long as it uses KMS (kernel mode
|
||||
setting) for the graphics.
|
||||
|
@ -945,12 +893,12 @@ Fedora won't boot? (may also be applicable to Redhat/CentOS)
|
|||
|
||||
On Fedora, by default the grub.cfg tries to boot linux in 16-bit mode. You
|
||||
just have to modify Fedora's GRUB configuration.
|
||||
Refer to [the Linux page](docs/linux/).
|
||||
Refer to [the GNU+Linux page](docs/gnulinux/).
|
||||
|
||||
Can I use BSD?
|
||||
----------------------------------
|
||||
|
||||
Absolutely! The libreboot firmware has good support for FreeBSD, NetBSD and
|
||||
Absolutely! The nonGeNUine Boot firmware has good support for FreeBSD, NetBSD and
|
||||
OpenBSD. Other systems are untested, but should work just fine.
|
||||
|
||||
See:
|
||||
|
@ -961,17 +909,17 @@ Are other operating systems compatible?
|
|||
|
||||
Unknown. Perhaps so, but it's impossible to say without further testing.
|
||||
|
||||
What level of software freedom does libreboot give me?
|
||||
What level of software freedom does nonGeNUine Boot give me?
|
||||
===================================================
|
||||
|
||||
The libreboot firmware provides host hardware initialisation inside ROM files,
|
||||
nonGeNUine Boot firmware provides host hardware initialisation inside ROM files,
|
||||
that can be written to NOR flash, but on many systems there exist
|
||||
a lot more small computers on the mainboard running blob firmware.
|
||||
Some of them are not practicable to replace due to being located on Mask ROM.
|
||||
Most laptops have EC (Embedded Controller) firmware, for example.
|
||||
|
||||
Besides software itself (embedded in ROM or not), most hardware
|
||||
(from ICs to circuit boards) are not released under open source licenses.
|
||||
(from ICs to circuit boards) are not released under free software licenses.
|
||||
We do not have a single device that can be considered be "100% free",
|
||||
and such absolutes are nearly impossible to reach.
|
||||
|
||||
|
|
139
site/faq.uk.md
139
site/faq.uk.md
|
@ -8,15 +8,15 @@ x-toc-enable: true
|
|||
Важливі питання
|
||||
================
|
||||
|
||||
Як скомпілювати libreboot з джерельного коду
|
||||
Як скомпілювати nonGeNUine Boot з джерельного коду
|
||||
------------------------------------
|
||||
|
||||
Зверніться до [інструкцій зі збірки lbmk](docs/build/).
|
||||
Зверніться до [інструкцій зі збірки gbmk](docs/build/).
|
||||
|
||||
Як працює система збірки?
|
||||
-------------------------------
|
||||
|
||||
Зверніться до [посібника з обслуговування lbmk](docs/maintain/).
|
||||
Зверніться до [посібника з обслуговування gbmk](docs/maintain/).
|
||||
|
||||
Не використовуйте CH341A!
|
||||
------------------
|
||||
|
@ -37,7 +37,7 @@ Flashrom скаржиться на доступ DEVMEM
|
|||
|
||||
Приклад виводу flashrom з обома `CONFIG_STRICT_DEVMEM` та `CONFIG_IO_STRICT_DEVMEM` ввімкненими:
|
||||
```
|
||||
flashrom v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64)
|
||||
flashrom v0.9.9-r1955 on GNU+Linux 4.11.9-1-ARCH (x86_64)
|
||||
flashrom is free software, get the source code at https://flashrom.org
|
||||
|
||||
Calibrating delay loop... OK.
|
||||
|
@ -62,7 +62,7 @@ Ethernet не працює на моєму X200/T400/X60/T60, коли я йог
|
|||
-------------------------------------------------------------------
|
||||
|
||||
Це спостерігалося в деяких системах, які використовують network-manager. Таке буває
|
||||
як в оригінальному BIOS, так і в libreboot. Це примха в
|
||||
як в оригінальному BIOS, так і в nonGeNUine Boot. Це примха в
|
||||
обладнанні. У системах debian обхідним шляхом є перезапуск сервіса
|
||||
мережі, коли ви підключаєте кабель ethernet:
|
||||
|
||||
|
@ -82,7 +82,7 @@ Ethernet не працює на моєму X200/T400/X60/T60, коли я йог
|
|||
або KGPE-D16 викликає зависання системи під час завантаження. Можна використовувати
|
||||
це в корисному навантаженні (якщо ви використовуєте корисне навантаження ядра linux, таке як linuxboot),
|
||||
або завантажитись (з SeaGRUB та/або SeaBIOS) зі звичайного SATA, а потім використовувати
|
||||
це в Linux. Ядро Linux здатне використовувати PIKE2008
|
||||
це в GNU+Linux. Ядро GNU+Linux здатне використовувати PIKE2008
|
||||
модуль без завантаження Option ROM.
|
||||
|
||||
Як зберегти журнали паніки ядра на ноутбуках Thinkpad?
|
||||
|
@ -153,11 +153,11 @@ Ethernet не працює на моєму X200/T400/X60/T60, коли я йог
|
|||
Апаратна сумісність
|
||||
======================
|
||||
|
||||
Які системи сумісні з libreboot?
|
||||
Які системи сумісні з nonGeNUine Boot?
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
Будь-яку систему можна легко додати, тому *сумісність* посилається до будь-якої
|
||||
інтегрованої до системи побудови `lbmk` плати, яку libreboot використовує.
|
||||
інтегрованої до системи побудови `gbmk` плати, яку nonGeNUine Boot використовує.
|
||||
|
||||
Прочитайте [список сумісного обладнання](docs/hardware/).
|
||||
|
||||
|
@ -250,7 +250,7 @@ Platform Module (TPM), Intel Boot Guard, аудіо та відео DRM
|
|||
поколінні процесорів Intel Core i3/i5/i7 (Haswell). Це дозволяє виробникам комплектного обладнання для ПК
|
||||
згенерувати асиметричну криптографічну пару ключів, встановити публічний ключ
|
||||
в ЦП і запобігти ЦП від запуску завантажувальної мікропрограми, яка не підписана
|
||||
з їх приватним ключем. Це означає, що ***coreboot та libreboot
|
||||
з їх приватним ключем. Це означає, що ***coreboot та nonGeNUine Boot
|
||||
неможливо перенести*** на такі ПК, без приватного ключа підпису
|
||||
OEM. Зверніть увагу, що системи, зібрані з придбаних окремо материнської плати
|
||||
та ЦП залишаються незмінними, оскільки постачальник материнської
|
||||
|
@ -288,7 +288,7 @@ Intel Management Engine із власною мікропрограмою маю
|
|||
До версії 6.0 (тобто в системах 2008/2009 і раніше),
|
||||
ME можна вимкнути, встановивши пару значень у флеш-пам'яті SPI.
|
||||
Прошивку ME потім можна повністю видалити з простору флеш-
|
||||
пам'яті. Проект libreboot [робить це](docs/install/ich9utils.md) на
|
||||
пам'яті. Проект nonGeNUine Boot [робить це](docs/install/ich9utils.md) на
|
||||
системах Intel серії 4, які він підтримує, наприклад [ThinkPad
|
||||
X200](../docs/install/x200_external.uk.md) та [ThinkPad
|
||||
T400](../docs/install/t400_external.md). Прошивка ME версії 6.0 та
|
||||
|
@ -310,7 +310,7 @@ PCH, включає мікропрограму "ME Ignition", яка викон
|
|||
|
||||
**Підсумовуючи, Intel Management Engine і його програми є
|
||||
лазівкою з повним доступом до та контролем над рештою ПК.
|
||||
ME є загрозою свободі, безпеці та конфіденційності, і проект libreboot
|
||||
ME є загрозою свободі, безпеці та конфіденційності, і проект nonGeNUine Boot
|
||||
наполегливо рекомендує повністю уникати цього. З останніх версій
|
||||
його не можна видалити, це означає уникати всіх останніх поколінь обладнання
|
||||
Intel.**
|
||||
|
@ -384,7 +384,7 @@ Revealed (Розкрито вбудовану технологію безпек
|
|||
Новіші графічні чіпсети Intel [вимагають блобів
|
||||
прошивки](https://01.org/linuxgraphics/intel-linux-graphics-firmwares?langredirect=1).
|
||||
|
||||
Проект `libreboot` *надає* деяку підтримку для новіших платформ Intel, але
|
||||
Проект nonGeNUine Boot *надає* деяку підтримку для новіших платформ Intel, але
|
||||
вам варто знати про ці проблемні питання, якщо ви вибираєте використовувати ці машини.
|
||||
|
||||
Підводні камені свободи, які слід враховувати на апаратному забезпеченні AMD {#amd}
|
||||
|
@ -431,7 +431,7 @@ PSP теоретично має доступ до всього простору
|
|||
Подібно до Intel Boot Guard (додаток Intel
|
||||
Management Engine), PSP від AMD також може діяти як тиран, перевіряючи
|
||||
підписи будь-якої завантажувальної мікропрограми, яку ви прошиваєте, унеможливлюючи заміну
|
||||
завантажувальної мікропрограми (наприклад, libreboot, coreboot) на деяких платах. Ранні
|
||||
завантажувальної мікропрограми (наприклад, nongenuineboot, coreboot) на деяких платах. Ранні
|
||||
неофіційні повідомлення свідчать про те, що аналог AMD boot guard буде використовуватися
|
||||
на більшості апаратного забезпечення OEM, відключений лише на так званих процесорах
|
||||
"ентузіастів".
|
||||
|
@ -515,7 +515,7 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ
|
|||
Загальні питання
|
||||
=================
|
||||
|
||||
Як встановити libreboot?
|
||||
Як встановити nonGeNUine Boot?
|
||||
-------------------------------------------------------
|
||||
|
||||
Подивіться [посібник з встановлення](docs/install/)
|
||||
|
@ -532,7 +532,7 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ
|
|||
Як захистити флеш-чіп від запису?
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
За замовчуванням немає захисту від запису на системі libreboot. Це
|
||||
За замовчуванням немає захисту від запису на системі nonGeNUine Boot. Це
|
||||
з міркувань зручності використання, оскільки більшість людей не мають легкого доступу до зовнішнього
|
||||
програматора для перепрошивання їх мікропрограми, або вони знаходять
|
||||
незручним використання зовнішнього програматора.
|
||||
|
@ -543,7 +543,7 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ
|
|||
(таких як, ThinkPad X200, T400) можна захистити від запису (див.
|
||||
[утиліту ICH9 gen](docs/install/ich9utils.md#ich9gen)).
|
||||
|
||||
Захист від запису можна встановити на всіх системах libreboot, але інструкції
|
||||
Захист від запису можна встановити на всіх системах nonGeNUine Boot, але інструкції
|
||||
потрібно написати. Документація знаходиться в основному репозиторії git, тому ви можете
|
||||
надсилати виправлення, додаючи ці інструкції.
|
||||
|
||||
|
@ -553,18 +553,18 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ
|
|||
Як змінити налаштування BIOS?
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Більшість налаштувань libreboot насправді використовує [корисне навантаження
|
||||
Більшість налаштувань nonGeNUine Boot насправді використовує [корисне навантаження
|
||||
GRUB](http://www.coreboot.org/GRUB2). Більше інформації про корисні навантаження
|
||||
може бути знайдено на
|
||||
[coreboot.org/Payloads](http://www.coreboot.org/Payloads). SeaBIOS також
|
||||
доступний. Конфігурацію *CMOS* жорстко закодовано в libreboot.
|
||||
доступний. Конфігурацію *CMOS* жорстко закодовано в nonGeNUine Boot.
|
||||
|
||||
Проект libreboot успадковує модульну концепцію корисного навантаження від coreboot, що
|
||||
Проект nonGeNUine Boot успадковує модульну концепцію корисного навантаження від coreboot, що
|
||||
означає, що програми *налаштування BIOS* не дуже
|
||||
практичні. Coreboot (та libreboot) включає утиліту, названу
|
||||
практичні. Coreboot (та nonGeNUine Boot) включає утиліту, названу
|
||||
*nvramtool*, яка може бути використана для зміни деяких налаштувань. Ви можете знайти
|
||||
nvramtool у *coreboot/util/nvramtool/*, в архівах джерельного коду
|
||||
libreboot.
|
||||
nonGeNUine Boot.
|
||||
|
||||
Параметр *-a* у nvramtool покаже список доступних параметрів, і *-w*
|
||||
може бути використано для їх зміни. Зверніться до документації nvramtool на
|
||||
|
@ -573,7 +573,7 @@ coreboot вікі для більшої інформації.
|
|||
На практиці, у більшості випадків, вам не потрібно змінювати жодні з цих
|
||||
налаштувань.
|
||||
|
||||
Налаштування libreboot за замовчуванням блокують таблицю CMOS, щоб забезпечити узгоджену функціональність
|
||||
Налаштування nonGeNUine Boot за замовчуванням блокують таблицю CMOS, щоб забезпечити узгоджену функціональність
|
||||
для всіх користувачів. Ви можете використовувати:
|
||||
|
||||
nvramtool -C вашаROM.rom -w деякеналаштування=деякезначення
|
||||
|
@ -590,10 +590,10 @@ coreboot вікі для більшої інформації.
|
|||
|
||||
Бажано просто використовувати більший образ ROM. Цей розділ був написаний здебільшого для
|
||||
материнських плат ASUS KCMA-D8 та KGPE-D16, де раніше ми надавали
|
||||
тільки образи ROM розміром 2 MБ у libreboot, але тепер ми надаємо образи ROM розміром 16 МБ.
|
||||
тільки образи ROM розміром 2 MБ у nonGeNUine Boot, але тепер ми надаємо образи ROM розміром 16 МБ.
|
||||
Інші розміри не надаються, оскільки на практиці хтось, оновлюючи один із
|
||||
цих чіпів, використовуватиме лише 16 МБ. Доступні більші розміри, але 16 МБ
|
||||
це максимум, який ви можете використати на всіх підтримуваних системах libreboot, які
|
||||
це максимум, який ви можете використати на всіх підтримуваних системах nonGeNUine Boot, які
|
||||
використовують флеш-пам'ять SPI.
|
||||
|
||||
Необхідно для ROM, де образ ROM менший за флеш-чіп
|
||||
|
@ -628,17 +628,17 @@ ROM та флеш-чіпом. Випадок вище, наприклад:
|
|||
Чи потрібно встановлювати завантажувач під час встановлення дистрибутива?
|
||||
---------------------------------------------------------------------------------------------------
|
||||
|
||||
Більшість налаштувань libreboot уже інтегрують завантажувач GRUB як
|
||||
Більшість налаштувань nonGeNUine Boot уже інтегрують завантажувач GRUB як
|
||||
*[корисне навантаження](http://www.coreboot.org/Payloads)*. Це означає, що завантажувач GRUB
|
||||
фактично *прошивається* як частина завантажувальної прошивки
|
||||
(libreboot). Це означає, що вам не потрібно встановлювати завантажувач на
|
||||
(nonGeNUine Boot). Це означає, що вам не потрібно встановлювати завантажувач на
|
||||
HDD або SSD під час встановлення нового дистрибутива. Ви зможете нормально завантажитися,
|
||||
використовуючи завантажувач (GRUB), який знаходиться у мікросхемі флеш-пам'яті.
|
||||
|
||||
Це означає, що навіть якщо ви виймете жорсткий диск або твердотільний накопичувач, у вас всеодно
|
||||
буде встановлено функціонуючий завантажувач, який можна використовувати для завантаження програми
|
||||
встановлення дистрибутива з флеш-пам'яті USB. Див.
|
||||
[Як інсталювати Linux у системі libreboot](../docs/linux/grub_boot_installer.md)
|
||||
[Як інсталювати GNU+Linux у системі nonGeNUine Boot](../docs/gnulinux/grub_boot_installer.md)
|
||||
|
||||
В даний час також передбачені інші корисні навантаження. Якщо ви використовуєте корисне навантаження SeaBIOS,
|
||||
тоді на вашому HDD або SSD використовується звичайний завантажувальний сектор MBR, як і слід було
|
||||
|
@ -647,12 +647,12 @@ HDD або SSD під час встановлення нового дистри
|
|||
Чи потрібно мені перепрошивати, коли я перевстановлю дистрибутив?
|
||||
-------------------------------------------------------------------------------------------
|
||||
|
||||
Більше ні. Останні версії libreboot (з використанням корисного навантаження GRUB)
|
||||
Більше ні. Останні версії nonGeNUine Boot (з використанням корисного навантаження GRUB)
|
||||
автоматично переключатимуться на конфігурацію GRUB на HDD або SSD, якщо
|
||||
існує. Ви також можете завантажити іншу конфігурацію GRUB з будь-якого пристрою, який підтримується
|
||||
GRUB (наприклад, флеш-накопичувач USB). Для
|
||||
більшої інформації див.
|
||||
[Змінення конфігурації GRUB в системах libreboot](../docs/linux/grub_cbfs.md)
|
||||
[Змінення конфігурації GRUB в системах nonGeNUine Boot](../docs/gnulinux/grub_cbfs.md)
|
||||
|
||||
Якщо ви використовуєте корисне навантаження SeaBIOS, це ще простіше. Це працює так, як ви
|
||||
очікували. SeaBIOS реалізує звичайний інтерфейс x86 BIOS.
|
||||
|
@ -663,53 +663,7 @@ GRUB (наприклад, флеш-накопичувач USB). Для
|
|||
Ви можете знайти фотографії різних видів чипів на наступній сторінці:\
|
||||
[Керівництво зовнішньої прошивки 25xx NOR](docs/install/spi.md)
|
||||
|
||||
Неможливість виконати modprobe thinkpad\_acpi на Haswell
|
||||
===============================================
|
||||
|
||||
Про це повідомив користувач, який використовує Debian 11 з
|
||||
ядром `5.19.0-0.deb11.2-amd64`. Модуль `thinkpad_acpi` не завантажувався
|
||||
з таким повідомленням:
|
||||
|
||||
```
|
||||
modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device"
|
||||
```
|
||||
|
||||
Інформація про батарею в `/sys` була відсутньою, по цій причині. Користувач повідомив, що
|
||||
наступний обхідний шлях був ефективним (в Debian).
|
||||
|
||||
Додайте цей рядок до `/etc/modprobe.d/thinkpad_acpi.conf`:
|
||||
|
||||
```
|
||||
options thinkpad_acpi force_load=1
|
||||
```
|
||||
|
||||
tlp
|
||||
---
|
||||
|
||||
Ви можете встановити пакет `tlp` та розпочати той сервіс. Наприклад, на
|
||||
Debian:
|
||||
|
||||
```
|
||||
apt-get install tlp tlp-rdw
|
||||
systemctl enable tlp
|
||||
systemctl start tlp
|
||||
```
|
||||
|
||||
Тепер прочитайте документацію:
|
||||
|
||||
```
|
||||
man tlp-stat
|
||||
```
|
||||
|
||||
Від імені root, ви можете зробити:
|
||||
|
||||
```
|
||||
tlp-stat -b
|
||||
```
|
||||
|
||||
Це надасть інформацію про батарею.
|
||||
|
||||
Яке ще мікропрограмне забезпечення існує за межами libreboot?
|
||||
Яке ще мікропрограмне забезпечення існує за межами nonGeNUine Boot?
|
||||
==================================================
|
||||
|
||||
### Зовнішні графічні карти
|
||||
|
@ -723,7 +677,7 @@ VBIOS (спеціальний вид OptionROM) зазвичай вбудова
|
|||
інше корисне навантаження, таке як GRUB).
|
||||
|
||||
*Проект coreboot* надає вільний код ініціалізації, на багатьох платах, і
|
||||
libreboot буде використовувати цей код, коли він наявний, в залежності від конфігурації.
|
||||
nonGeNUine Boot буде використовувати цей код, коли він наявний, в залежності від конфігурації.
|
||||
|
||||
В конфігураціях, де SeaBIOS і власна ініціалізація GPU використовуються разом,
|
||||
додається спеціальна прокладка VBIOS, яка використовує лінійний кадровий буфер coreboot.
|
||||
|
@ -758,7 +712,7 @@ AHCI/SATA), який програмне забезпечення ОС може
|
|||
Жорсткі диски та твердотільні накопичувачі є досить складними, і сьогодні містять досить складне
|
||||
обладнання, яке навіть здатне запускати цілу операційну систему (під цим ми маємо
|
||||
на увазі, що сам диск здатний запускати свою власну вбудовану ОС), навіть
|
||||
Linux або BusyBox/Linux.
|
||||
GNU+Linux або BusyBox/GNU+Linux.
|
||||
|
||||
SSD та HDD є особливим випадком, оскільки вони є постійними пристроями зберігання,
|
||||
а також комп'ютерами.
|
||||
|
@ -790,11 +744,6 @@ SSD проект
|
|||
<http://www.intel.co.uk/content/dam/www/public/us/en/documents/technical-specifications/serial-ata-ahci-spec-rev1_3.pdf>
|
||||
(сторінки 59, 67, 94, 99).
|
||||
|
||||
Наступне засновано на дискусії з Пітером Стьюджем (CareBear\\) в
|
||||
каналі IRC coreboot в п'ятницу, 18 вересня 2015 року, під час
|
||||
дослідження того, чи може сам диск SATA використовувати DMA. Наступне
|
||||
базується на таблицях даних, посилання на які наведено вище:
|
||||
|
||||
Згідно з цими приведеними документами, тип FIS 39h - це *"DMA Activate FIS
|
||||
- Device to Host"*. У ньому згадується *"передача даних від хоста до
|
||||
пристрою, і далі сказано: після отримання DMA Activate,
|
||||
|
@ -844,8 +793,8 @@ USB 3.0, який ще не можна використовувати в сво
|
|||
|
||||
Рекомендовано використовувати повне шифрування диска на жорстких дисках,
|
||||
підключених через USB. У мережі є кілька адаптерів, які дозволяють підключати жорсткі диски
|
||||
SATA через USB, і проект Libreboot здатний завантажуватись з них
|
||||
звичайним чином. Проконсультуйтесь з документацією для вашої операційної системи Linux/BSD,
|
||||
SATA через USB, і проект nonGeNUine Boot здатний завантажуватись з них
|
||||
звичайним чином. Проконсультуйтесь з документацією для вашої операційної системи GNU+Linux/BSD,
|
||||
щоб знати те, як встановити їх з *повнодисковим шифруванням*:
|
||||
|
||||
|
||||
|
@ -884,7 +833,7 @@ SATA через USB, і проект Libreboot здатний завантажу
|
|||
Веб-камери мають вбудоване програмне забезпечення, яке обробляє зображення, що вводиться
|
||||
в камеру; налаштування фокуса, балансу білого тощо. Можна використовувати апаратне забезпечення
|
||||
веб-камери USB, щоб вирішити можливі проблеми DMA; інтегровані веб-камери
|
||||
(наприклад, на ноутбуках) не рекомендовані проектом libreboot з
|
||||
(наприклад, на ноутбуках) не рекомендовані проектом nonGeNUine Boot з
|
||||
міркувань безпеки.
|
||||
|
||||
### Хост-контролер USB
|
||||
|
@ -909,7 +858,7 @@ WWAN, підключення до мережі 3g/4g (наприклад, GSM).
|
|||
|
||||
На деяких ноутбуках ці карти використовують USB (внутрішньо), тому не матимуть DMA,
|
||||
але це все одно є великою проблемою свободи та конфіденційності. Якщо у вас є
|
||||
внутрішній чіп/карта WWAN, проект libreboot рекомендує вимкнути та
|
||||
внутрішній чіп/карта WWAN, проект nonGeNUine Boot рекомендує вимкнути та
|
||||
(в ідеалі, якщо можливо) фізично видалити апаратне забезпечення. Якщо вам абсолютно
|
||||
необхідно використовувати цю технологію, зовнішній USB-адаптер набагато
|
||||
кращий, оскільки його можна легко вийняти, коли він вам не потрібен, тим самим
|
||||
|
@ -921,12 +870,12 @@ WWAN, підключення до мережі 3g/4g (наприклад, GSM).
|
|||
Операційні системи
|
||||
=================
|
||||
|
||||
Чи я можу використовувати Linux?
|
||||
Чи я можу використовувати GNU+Linux?
|
||||
--------------------------------------------------
|
||||
|
||||
Абсолютно! Він добре перевірений в libreboot, та дуже рекомендований. Подивіться
|
||||
[встановлення Linux](../docs/linux/grub_boot_installer.md) та
|
||||
[запуск Linux](../docs/linux/grub_cbfs.md).
|
||||
Абсолютно! Він добре перевірений в nonGeNUine Boot, та дуже рекомендований. Подивіться
|
||||
[встановлення GNU+Linux](../docs/gnulinux/grub_boot_installer.md) та
|
||||
[запуск GNU+Linux](../docs/gnulinux/grub_cbfs.md).
|
||||
|
||||
Будь-який сучасний дистрибутив має працювати, допоки він використовує KMS (kernel mode
|
||||
setting) для графіки.
|
||||
|
@ -936,12 +885,12 @@ Fedora не завантажується? (також може бути заст
|
|||
|
||||
У Fedora типово grub.cfg намагається завантажити linux в 16-розрядному режимі.
|
||||
Вам просто потрібно змінити конфігурацію GRUB Fedora.
|
||||
Зверніться до [сторінки Linux](docs/linux/).
|
||||
Зверніться до [сторінки GNU+Linux](docs/gnulinux/).
|
||||
|
||||
Чи я можу використовувати BSD?
|
||||
----------------------------------
|
||||
|
||||
Абсолютно! Прошивка libreboot має добру підтримку для FreeBSD, NetBSD та
|
||||
Абсолютно! Прошивка nonGeNUine Boot має добру підтримку для FreeBSD, NetBSD та
|
||||
OpenBSD. Інші системи не перевірені, але мають працювти нормально.
|
||||
|
||||
Дивіться:
|
||||
|
@ -952,10 +901,10 @@ OpenBSD. Інші системи не перевірені, але мають п
|
|||
|
||||
Невідомо. Можливо, але неможливо сказати без подальшого випробовування.
|
||||
|
||||
Який рівень програмної свободи дає мені libreboot?
|
||||
Який рівень програмної свободи дає мені nonGeNUine Boot?
|
||||
===================================================
|
||||
|
||||
Прошивка libreboot надає ініціалізацію апаратного забезпечення хоста всередині файлів ROM,
|
||||
Прошивка nonGeNUine Boot надає ініціалізацію апаратного забезпечення хоста всередині файлів ROM,
|
||||
що може бути записано на флеш NOR, але на багатьох системах існує
|
||||
набагато більше маленьких комп'ютерів на материнській платі, виконуючих двійкові прошивки.
|
||||
Деякі з них неможливо замінити через те, що вони розташовані на Mask ROM.
|
||||
|
|
BIN
site/favicon.ico
BIN
site/favicon.ico
Binary file not shown.
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.5 KiB |
|
@ -2,7 +2,7 @@
|
|||
-------------------------------------------------------------------------------
|
||||
|
||||
* [Diese Seite bearbeiten](/git.de.md)
|
||||
* [Wer entwickelt Libreboot?](/who.de.md)
|
||||
* [Wer entwickelt nonGeNUine Boot?](/who.md)
|
||||
* [Lizenz](/license.md)
|
||||
* [Vorlage](/template-license.md)
|
||||
* [Logo](/logo-license.md)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
-------------------------------------------------------------------------------
|
||||
|
||||
* [Edit this page](/git.md)
|
||||
* [Who develops Libreboot?](/who.md)
|
||||
* [Who develops nonGeNUine Boot?](/who.md)
|
||||
* [License](/license.md)
|
||||
* [Template](/template-license.md)
|
||||
* [Logo](/logo-license.md)
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
-------------------------------------------------------------------------------
|
||||
|
||||
* [Редагувати цю сторінку](/git.md)
|
||||
* [Хто розробляє Libreboot?](/who.uk.md)
|
||||
* [Хто розробляє nonGeNUine Boot?](/who.md)
|
||||
* [Ліцензія](/license.md)
|
||||
* [Шаблон](/template-license.uk.md)
|
||||
* [Логотип](/logo-license.uk.md)
|
||||
* [Автори](/contrib.uk.md)
|
||||
* [Логотип](/logo-license.md)
|
||||
* [Автори](/contrib.md)
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
-------------------------------------------------------------------------------
|
||||
|
||||
* [编辑本页面](/git.md)
|
||||
* [谁在开发 Libreboot?](/who.md)
|
||||
* [谁在开发 nonGeNUine Boot?](/who.md)
|
||||
* [许可证](/license.md)
|
||||
* [模板](/template-license.md)
|
||||
* [图标](/logo-license.md)
|
||||
|
|
244
site/git.de.md
244
site/git.de.md
|
@ -3,65 +3,57 @@ title: Code review
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Libreboot Repositories
|
||||
**NOTE TO GNU Boot AUDITORS: Obviously, these repository links are unofficial
|
||||
and you'll want to change them to your own ones for GNUBoot.**
|
||||
|
||||
**The repositories below are real, containing the actual code for this
|
||||
nonGeNUine Boot website intended for use by GNU Boot, images and also the [nonGeNUine
|
||||
Boot 20230717 release](news/nongenuineboot20230717.md). The GNU project is both free,
|
||||
and encouraged, to re-use this work officially.**
|
||||
|
||||
nonGeNUine Boot Repositories
|
||||
===================
|
||||
|
||||
Informationen darüber wer an Libreboot arbeitet und wer das Projekt betreibt
|
||||
sind unter [who.de.md](who.de.md) zu finden.
|
||||
Informationen darüber wer an nonGeNUine Boot arbeitet und wer das Projekt betreibt
|
||||
sind unter [who.md](who.md) zu finden.
|
||||
|
||||
Das `libreboot` Projekt hat hauptsächlich 3 Git Repositories:
|
||||
Das nonGeNUine Boot Projekt hat hauptsächlich 3 Git Repositories:
|
||||
|
||||
* Build system: <https://codeberg.org/libreboot/lbmk>
|
||||
* Webseite (+Anleitungen): <https://codeberg.org/libreboot/lbwww>
|
||||
* Bilder (für die Webseite): <https://codeberg.org/libreboot/lbwww-img>
|
||||
* Build system: <https://codeberg.org/vimuser/gbmk>
|
||||
* Webseite (+Anleitungen): <https://codeberg.org/vimuser/gbwww>
|
||||
* Bilder (für die Webseite): <https://codeberg.org/vimuser/gbwww-img>
|
||||
|
||||
Du kannst dir lbmk auch auf Libreboot's eigener cgit Instanz *ansehen*,
|
||||
allerdings ist dies nicht für die Entwicklung gedacht (benutze hierfür bitte codeberg):\
|
||||
<https://browse.libreboot.org/lbmk.git/>
|
||||
|
||||
Weiter unten auf dieser Seite sind Mirror von `lbmk` und `lbwww` aufgelistet,
|
||||
Weiter unten auf dieser Seite sind Mirror von `gbmk` und `gbwww` aufgelistet,
|
||||
sofern die Haupt Git Repositories nicht erreichbar sein sollten.
|
||||
|
||||
Zuvor hat Libreboot NotABug verwendet, aber es gab regelmässig
|
||||
Probleme mit der der Zuverlässigkeit aufgrund von HTTP Error 500,
|
||||
hauptsächlich in den Abendstunden, höchstwahrscheinlich weil zu viele Leute
|
||||
darauf zugegriffen haben; daher wurde beschlossen, das Libreboot eine
|
||||
stabilere Lösung benötigt, daher verwendet Libreboot nun codeberg. Siehe
|
||||
[Ankündigung des Wechsels zu codeberg, 8. April 2023](news/codeberg.md)
|
||||
Zudem gibt es noch diese vom nonGeNUine Boot Projekt gehosteten Programme, welche
|
||||
von nonGeNUine Boot entweder empfohlen oder verwendet werden:
|
||||
|
||||
Zudem gibt es noch diese vom Libreboot Projekt gehosteten Programme, welche
|
||||
von libreboot entweder empfohlen oder verwendet werden:
|
||||
|
||||
Das `ich9utils` Projekt ist nun unter `util/ich9utils` in lbmk verfügbar,
|
||||
und lbmk verdendet *dies*, aber das alte standalone Repository ist nach
|
||||
wie vor verfügbar unter notabug (bucts is also there):
|
||||
|
||||
* Bucts (Utility): <https://notabug.org/libreboot/bucts>
|
||||
* ich9utils (Utility): <https://notabug.org/libreboot/ich9utils>
|
||||
bucts is also there: <https://notabug.org/libreboot/bucts>
|
||||
|
||||
Du kannst diese Repositories herunterladen, sie nach deinen Wünschen ändern,
|
||||
und dann deine Änderungen zur Verfügung stellen mithilfe der folgenden
|
||||
Anleitungen.
|
||||
|
||||
Es wird empfohlen den libreboot build (alle zugehörigen Teile) in einer
|
||||
Linux Umgebung herzustellen. Unter BSD Systemen ist das build system (lbmk)
|
||||
Es wird empfohlen den nonGeNUine Boot build (alle zugehörigen Teile) in einer
|
||||
GNU+Linux Umgebung herzustellen. Unter BSD Systemen ist das build system (gbmk)
|
||||
beispielsweise nicht getestet.
|
||||
Installiere `git` auf deinem Linux System und lade eines der Repositories
|
||||
Installiere `git` auf deinem GNU+Linux System und lade eines der Repositories
|
||||
herunter.
|
||||
|
||||
Die Entwicklung von Libreboot findet mithilfe der Versionskontrolle von
|
||||
Die Entwicklung von nonGeNUine Boot findet mithilfe der Versionskontrolle von
|
||||
Git statt. Sieh in der [offiziellen Git Dokumentation](https://git-scm.com/doc)
|
||||
nach, sofern Du nicht weisst wie man Git verwendet.
|
||||
|
||||
Das `bucts` Repository wird auch vom Libreboot Projekt gehostet, da das
|
||||
Das `bucts` Repository wird auch vom nonGeNUine Boot Projekt gehostet, da das
|
||||
Original Repository auf `stuge.se` nicht mehr verfügbar ist, seit wie dies
|
||||
zuletzt geprüft haben. Das `bucts` Programm wurde von Peter Stuge geschrieben.
|
||||
Du benötigst `bucts` sofern Du ein Libreboot ROM intern auf ein Thinkpad X60
|
||||
Du benötigst `bucts` sofern Du ein nonGeNUine Boot ROM intern auf ein Thinkpad X60
|
||||
oder T60 flashen möchtest, welches (derzeit) noch ein nicht-freies Lenovo
|
||||
BIOS verwendet. Anleitungen hierfür findest Du hier:\
|
||||
[Libreboot Installations Anleitungen](docs/install/)
|
||||
[nonGeNUine Boot Installations Anleitungen](docs/install/)
|
||||
|
||||
Das `ich9utils` Repository wird erheblich vom `lbmk` build system verwendet.
|
||||
Das `ich9utils` Repository wird erheblich vom `gbmk` build system verwendet.
|
||||
Du kannst `ich9utils` allerdings auch separat herunterladen und verwenden.
|
||||
Es erzeugt ICH9M descriptor+GbE Images für GM45 ThinkPads welche die ICH9M
|
||||
Southbridge verwenden. Es könnte auch für andere Systeme funktionieren,
|
||||
|
@ -69,60 +61,60 @@ welche dieselbe Platform bzw. denselben Chipsatz verwenden.
|
|||
Dokumentation für `ich9utils` ist hier verfügbar:\
|
||||
[ich9utils Dokumentation](docs/install/ich9utils.md)
|
||||
|
||||
lbmk (libreboot-make)
|
||||
gbmk (non**G**eNUine**B**oot**M**a**K**e)
|
||||
---------------------
|
||||
|
||||
Dies ist das zentrale build system in Libreboot. Man könnte auch sagen `lbmk` *ist*
|
||||
Libreboot! Das Git repository herunterladen:
|
||||
Dies ist das zentrale build system in nonGeNUine Boot. Man könnte auch sagen `gbmk` *ist*
|
||||
nonGeNUine Boot! Das Git repository herunterladen:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbmk
|
||||
git clone https://codeberg.org/vimuser/gbmk
|
||||
|
||||
Der oben dargestellte `git` Befehl, wird das Libreboot build system `lbmk`
|
||||
Der oben dargestellte `git` Befehl, wird das nonGeNUine Boot build system `gbmk`
|
||||
herunterladen.
|
||||
Du kannst dann folgendermassen in das Verzeichnis wechseln:
|
||||
|
||||
cd lbmk
|
||||
cd gbmk
|
||||
|
||||
Ändere dies nach deinen Vorstellungen oder erstelle einfach einen build.
|
||||
Für Anleitungen bzgl. `lbmk` build, siehe [build Anleitungen](docs/build/).
|
||||
Für Anleitungen bzgl. `gbmk` build, siehe [build Anleitungen](docs/build/).
|
||||
|
||||
Informationen über das build system selbst und wie es funktioniert, sind
|
||||
verfügbar unter dem [lbmk maintenance guide](docs/maintain/).
|
||||
verfügbar unter dem [gbmk maintenance guide](docs/maintain/).
|
||||
|
||||
lbwww and lbwww-img
|
||||
gbwww and gbwww-img
|
||||
-------------------
|
||||
|
||||
Die *gesamte* Libreboot Website sowie Dokumentation befindet sich in einem
|
||||
Die *gesamte* nonGeNUine Boot Website sowie Dokumentation befindet sich in einem
|
||||
Git Repository.
|
||||
Du kannst es folgendermassen herunterladen:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbwww
|
||||
git clone https://codeberg.org/vimuser/gbwww
|
||||
|
||||
Bilder befinden sich unter <https://av.libreboot.org/> und sind verfügbar
|
||||
Bilder befinden sich unter <https://avgnu.vimuser.org/> und sind verfügbar
|
||||
in einem separaten Git Repository:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbwww-img
|
||||
git clone https://codeberg.org/vimuser/gbwww-img
|
||||
|
||||
Du kannst alles nach deinen Vorstellungen ändern. Beachte die nachfolgenden
|
||||
Informationen wie Du deine Änderungen zur Verfügung stellen kannst.
|
||||
|
||||
Die gesamte Website ist in Markdown geschrieben, insbesondere die Pandoc Version.
|
||||
Die statischen HTML Seiten werden mit [Untitled](https://untitled.vimuser.org/)
|
||||
generiert. Leah Rowe, die Gründerin von Libreboot, ist auch die Gründerin des Untitled static
|
||||
generiert. Leah Rowe, die Gründerin von nonGeNUine Boot, ist auch die Gründerin des Untitled static
|
||||
site generator Projekts.
|
||||
|
||||
Wenn Du möchtest, kannst Du einen lokalen HTTP Server einrichten und eine
|
||||
lokale Version der Website herstellen. Bitte bedenke, dass alle Bilder nach
|
||||
wie vor mit den Bildern auf <https://av.libreboot.org/> verknüpft werden,
|
||||
daher werden jegliche Bilder die Du `lbwww-img` hinzugefügt hast nicht auf
|
||||
deiner lokalen `lbwww` Seite dargestellt, sofern Du die Bilder (die Du
|
||||
hinzugefügt hast) mit `av.libreboot.org` verknüpfst. Es ist jedoch erforderlich,
|
||||
dass sich diese Bilder auf av.libreboot.org befinden.
|
||||
wie vor mit den Bildern auf <https://avgnu.vimuser.org/> verknüpft werden,
|
||||
daher werden jegliche Bilder die Du `gbwww-img` hinzugefügt hast nicht auf
|
||||
deiner lokalen `gbwww` Seite dargestellt, sofern Du die Bilder (die Du
|
||||
hinzugefügt hast) mit `avgnu.vimuser.org` verknüpfst. Es ist jedoch erforderlich,
|
||||
dass sich diese Bilder auf avgnu.vimuser.org befinden.
|
||||
|
||||
Sofern Du der Webseite Bilder hinzufügen möchtest, füge diese ebenso
|
||||
dem `lbwww-img` Repository hinzu, indem Du diese dann jeweils mit diesem Link verknüpfst
|
||||
<https://av.libreboot.org/path/to/your/new/image/in/lbwww-img>.
|
||||
Wenn dein Patch der Libreboot Webseite hinzugefügt wird, werden erscheinen deine Bilder live.
|
||||
dem `gbwww-img` Repository hinzu, indem Du diese dann jeweils mit diesem Link verknüpfst
|
||||
<https://avgnu.vimuser.org/path/to/your/new/image/in/gbwww-img>.
|
||||
Wenn dein Patch der nonGeNUine Boot Webseite hinzugefügt wird, werden erscheinen deine Bilder live.
|
||||
|
||||
Zu Entwicklungszwecken, könntest Du deine Bilder auch lokal verknüpfen, und
|
||||
anschliesend die URLs anpassen sobald Du deine Patches für die Dokumentation/Webseite schickst.
|
||||
|
@ -130,7 +122,7 @@ anschliesend die URLs anpassen sobald Du deine Patches für die Dokumentation/We
|
|||
Eine Anleitung wie Du eine lokale Version der Webseite herstellen kannst,
|
||||
befinden sich auf der Untitled Webseite. Lade untitled
|
||||
herunter, und erstelle in dem `untitled` Verzeichnis ein Verzeichnis mit
|
||||
dem Namen `www/` dann wechsle in dieses Verzeichnis und klone das `lbwww`
|
||||
dem Namen `www/` dann wechsle in dieses Verzeichnis und klone das `gbwww`
|
||||
Repository dorthin. Konfiguriere deinen lokalen HTTP Server entsprechend.
|
||||
|
||||
Nochmal, Anleitungen hierfür findest Du auf der Untitled Webseite.
|
||||
|
@ -143,8 +135,8 @@ Repository öffentlich aufgezeichnet. Dies betrifft ebenso den Namen sowie
|
|||
die email Adresse des Mitwirkenden.
|
||||
|
||||
Du musst bei Git keinen Autoren Namen bzw. keine email Addresse verwenden,
|
||||
mithilfe derer Du identifizierbar bist. Du kannst `libreboot Contributor`
|
||||
verwenden und deine email Addresse könnte als contributor@libreboot.org
|
||||
mithilfe derer Du identifizierbar bist. Du kannst `nongenuineboot Contributor`
|
||||
verwenden und deine email Addresse könnte als john@doe.com
|
||||
spezifiert werden. Es ist Dir gestattet dies zu tun, sofern Du deine Privatsphäre
|
||||
wahren möchtest. Wir glauben an Privatsphäre. Sofern Du anonym bleiben möchtest
|
||||
werden wir dies respektieren.
|
||||
|
@ -167,131 +159,13 @@ bevor Du einem öffentlichen Git Repository Änderungen hinzufügst.
|
|||
Lizenzen (für Mitwirkende)
|
||||
--------
|
||||
|
||||
Stelle sicher, dass deine Beiträge mit einer libre Lizenz frei lizensiert
|
||||
sind. Libreboot schreibt nicht mehr vor, welche Lizenzen akzeptiert werden,
|
||||
und es existieren einige Lizenzen. Wir werden deinen Beitrag prüfen und
|
||||
dir mitteilen sofern es ein Problem damit gibt (z.B. keine Lizenz).
|
||||
Make sure to freely license your work, under a free license.
|
||||
|
||||
Gib *immer* eine Lizenz an für deine Arbeit! Keine Lizenz anzugeben bedeutet
|
||||
das deine Arbeit unter die Standard Urheberrechte fällt, was deine Arbeit
|
||||
proprietär macht und somit von denselben Einschränkungen betroffen ist.
|
||||
*Always* declare a license on your work! Not declaring a license means that
|
||||
the default, restrictive copyright laws apply, which would make your work
|
||||
proprietary, subject to all of the same restrictions.
|
||||
|
||||
Die MIT Lizenz ist ein guter Start, und sie ist die bevorzugte Lizenz
|
||||
für sämtliche Arbeit an Libreboot, aber wir sind nicht pingelig. Libreboot
|
||||
hat in der Vergangenheit GNU Lizenzen so wie GPL verwendet; vieles davon
|
||||
besteht nach wie vor und wird auch weiterhin bestehen.
|
||||
Es ist deine Arbeit; sofern deine Arbeit auf der Arbeit eines anderen basiert,
|
||||
ist es aufgrund der Lizenz-Kompatibilität ggfs. naheliegend diesselbe Lizenz zu
|
||||
verwenden.
|
||||
The Free Software Foundation maintains a handy dandy list, which you can review
|
||||
here:
|
||||
|
||||
[Hier](https://opensource.org/licenses) findest Du übliche Beispiele für Lizenzen.
|
||||
|
||||
*Wenn* deine Arbeit auf bestehender Arbeit basiert, dann ist es wichtig
|
||||
(für deinen Beitrag) das die Lizenz deiner Arbeit kompatibel ist mit der
|
||||
Lizenz der Arbeit auf der sie beruht. Die MIT Lizenz ist hierfür gut geeignet,
|
||||
weil sie mit vielen anderen Lizenen kompatibel ist, und Freiheit zulässt
|
||||
(wie zum Beispiel die Freiheit einer SubLizenz) was bei vielen anderen
|
||||
Lizenzen nicht der Fall ist:
|
||||
|
||||
<https://opensource.org/licenses/MIT>
|
||||
|
||||
Patches senden
|
||||
------------
|
||||
|
||||
Erstelle einen Account unter <https://codeberg.org/> und navigiere (während
|
||||
Du eingeloggt bist) zu dem Repository das Du bearbeiten möchtest. Klicke
|
||||
auf *Fork* und Du wirst ein eigenes Libreboot Repository in deinem Account
|
||||
erhalten. Erstelle einen Clone dieses Repository, füge alle gewünschten Änderungen hinzu
|
||||
und führe anschliessend einen Push in dein Repository in deinem Account
|
||||
auf Codeberg durch. Du kannst dies auch in einem neuen Branch erledigen,
|
||||
sofern Du magst.
|
||||
|
||||
In deinem Codeberg Account kannst Du nun zum offiziellen Libreboot
|
||||
Repository navigieren und dort einen Pull Request erstellen. Die Art und
|
||||
Weise wie dies funktioniert ist vergleichbar mit anderen populären Web basierten
|
||||
Git Plattformen die heutzutage verwendet werden.
|
||||
|
||||
Du kannst dort deine Patches bereitstellen. Alternativ kannst Du dich in
|
||||
den Libreboot IRC Kanal einloggen und dort bekannt geben welche deiner Patches
|
||||
geprüft werden sollen, sofern Du ein eigenes Git repository mit den Patches
|
||||
hast.
|
||||
|
||||
Sobald Du einen Pull Request erstellt hast, werden die Libreboot Maintainer
|
||||
per email informiert. Sofern Du nicht schnell genug eine Antwort erhälst,
|
||||
kannst Du das Projekt ebenso mithilfe des `#libreboot` Kanals auf Libera
|
||||
Chat kontaktieren.
|
||||
|
||||
Ein weiterer Weg Patches zu senden ist Leah Rowe direkt eine email zu senden:
|
||||
[info@minifree.org](mailto:info@minifree.org) ist Leah's Projekt email Addresse.
|
||||
|
||||
Um den Prozess der Quelltext Überprüfung transparent zu gestalten,
|
||||
wird jedoch empfohlen künftig Codeberg zu verwenden.
|
||||
|
||||
Mirrors für lbmk.git
|
||||
===================
|
||||
|
||||
Das `lbmk` Repository enthält Libreboot's automatischess build system, welches
|
||||
Libreboot Veröffentlichungen herstellt (inklusive kompilierter ROM Images).
|
||||
|
||||
Du kannst `git clone` für alle diese Links ausführen (die Links können auch
|
||||
angeklickt werden, um Änderungen in deinem Web Browser anzusehen):
|
||||
|
||||
* <https://git.disroot.org/libreboot/lbmk>
|
||||
* <https://gitea.treehouse.systems/libreboot/lbmk>
|
||||
* <https://git.fosscommunity.in/libreboot/lbmk>
|
||||
* <https://0xacab.org/libreboot/lbmk/>
|
||||
* <https://framagit.org/libreboot/libreboot>
|
||||
* <https://gitlab.com/libreboot/lbmk>
|
||||
* <https://pagure.io/libreboot>
|
||||
* <https://rocketgit.com/libreboot/libreboot>
|
||||
|
||||
lbwww.git Mirror
|
||||
----------------
|
||||
|
||||
Das `lbwww` Repository enthält Markdown Dateien (Pandoc Variant), für die
|
||||
Verwendung mit dem [Untitled Static Site Generator](https://untitled.vimuser.org/);
|
||||
dies wird von Libreboot verwendet um HTML Web Seiten bereitzustellen, *inklusive*
|
||||
der Seite die Du gerade liest!
|
||||
|
||||
Du kannst `git clone` für diese Links ausführen und/oder die Links
|
||||
anklicken um Änderungen in deinem Web Browser anzusehen). Siehe:
|
||||
|
||||
* <https://git.disroot.org/libreboot/lbwww>
|
||||
* <https://gitea.treehouse.systems/libreboot/lbwww>
|
||||
* <https://git.fosscommunity.in/libreboot/lbwww>
|
||||
* <https://0xacab.org/libreboot/lbwww>
|
||||
* <https://framagit.org/libreboot/lbwww/>
|
||||
* <https://gitlab.com/libreboot/lbwww>
|
||||
* <https://rocketgit.com/libreboot/lbwww>
|
||||
|
||||
HINWEIS: Das `lbwww-img` Repository wird generell nicht auf einem Mirror
|
||||
zur Verfügung gestellt, weil dies lediglich Bilder sind die Du unter
|
||||
<https://av.libreboot.org> finden kannst und es ist nicht die Intention
|
||||
des Libreboot Projektes *Mirror* mit zusätzlichen Datenverkehr durch
|
||||
Bilder zu belasten.
|
||||
|
||||
Notabug Repositories
|
||||
====================
|
||||
|
||||
Commits die zu codeberg gepusht werden, werden ebenso zu notabug gepusht,
|
||||
zusätzlich zu den anderen Mirrors.
|
||||
Notabug wird seit dem 8. April 2023 als *Mirror* betrachtet, seitdem
|
||||
Libreboot's Haupt Entwicklung zu *Codeberg* gewechselt hat.
|
||||
|
||||
In die ALTEN notabug Repositories wird zu Backup Zwecken nach wie vor gepusht,
|
||||
aber der codeberg mirror wird nun als der hauptsächliche/offizielle betrachtet,
|
||||
wie in dieser [Ankündigung vom 8. April 2023](news/codeberg.md). Siehe:
|
||||
|
||||
* Build system: <https://notabug.org/libreboot/lbmk>
|
||||
* Webseite (+Dokumentation): <https://notabug.org/libreboot/lbwww>
|
||||
* Bilder (für die Webseite): <https://notabug.org/libreboot/lbwww-img>
|
||||
|
||||
Um Patches zu senden, wird nun bevorzugt wenn Du *codeberg* verwendest.
|
||||
Technisch gesehen sind pull requests via Notabug nach wie vor möglich.
|
||||
Während Notabug nach wie vor existiert, werden Libreboot Patches nach wie
|
||||
vor dorthin gepushed, als Mirror für Änderungen die auf Notabug gepushed werden.
|
||||
|
||||
Weil pull requests und issues in der Vergangenheit auf notabug verfügbar waren,
|
||||
macht es Sinn diese offen zu lassen, dennoch würden wir dich bitten an codeberg
|
||||
zu schicken. Sofern diese auf notabug geschlossen werden, dann werden diese PRs
|
||||
und issues ohnehin nicht mehr sichtbar, daher sollten diese offen bleiben.
|
||||
<https://www.gnu.org/licenses/license-list.en.html>
|
||||
|
|
229
site/git.md
229
site/git.md
|
@ -3,123 +3,115 @@ title: Code review
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
libreboot repositories
|
||||
**NOTE TO GNU Boot AUDITORS: Obviously, these repository links are unofficial
|
||||
and you'll want to change them to your own ones for GNUBoot.**
|
||||
|
||||
**The repositories below are real, containing the actual code for this
|
||||
nonGeNUine Boot website intended for use by GNU Boot, images and also the [nonGeNUine
|
||||
Boot 20230717 release](news/nongenuineboot20230717.md). The GNU project is both free,
|
||||
and encouraged, to re-use this work officially.**
|
||||
|
||||
nonGeNUine Boot repositories
|
||||
===================
|
||||
|
||||
Information about who works on libreboot and who runs the project can be
|
||||
Information about who works on nonGeNUine Boot and who runs the project can be
|
||||
found on [who.md](who.md)
|
||||
|
||||
The `libreboot` project has 3 main Git repositories:
|
||||
The nonGeNUine Boot project has 3 main Git repositories:
|
||||
|
||||
* Build system: <https://codeberg.org/libreboot/lbmk>
|
||||
* Website (+docs): <https://codeberg.org/libreboot/lbwww>
|
||||
* Images (for website): <https://codeberg.org/libreboot/lbwww-img>
|
||||
* Build system: <https://codeberg.org/vimuser/gbmk>
|
||||
* Website (+docs): <https://codeberg.org/vimuser/gbwww>
|
||||
* Images (for website): <https://codeberg.org/vimuser/gbwww-img>
|
||||
|
||||
You can also *browse* lbmk on Libreboot's own cgit instance, though it is not
|
||||
intended for development (use codeberg for that):\
|
||||
<https://browse.libreboot.org/lbmk.git/>
|
||||
|
||||
If the main Git repositories are down, mirrors of `lbmk` and `lbwww` are listed
|
||||
If the main Git repositories are down, mirrors of `gbmk` and `gbwww` are listed
|
||||
further down in this page
|
||||
|
||||
Libreboot was previously using NotABug, but it had continued reliability
|
||||
issues due to HTTP 500 errors being returned, largely in the evenings, most
|
||||
likely because too many people were on it; it was decided that Libreboot
|
||||
needed something more stable, so now Libreboot is hosted on codeberg. See:
|
||||
[announcement of move to codeberg, 8 April 2023](news/codeberg.md)
|
||||
|
||||
There are also these programs, hosted by the Libreboot project, and libreboot
|
||||
There are also these programs, hosted by the nonGeNUine Boot project, and nonGeNUine Boot
|
||||
either recommends them or makes use of them:
|
||||
|
||||
The `ich9utils` project is now available under `util/ich9utils` in lbmk, and
|
||||
lbmk uses *that*, but the old standalone repository is still available on
|
||||
notabug (bucts is also there):
|
||||
|
||||
* Bucts (utility): <https://notabug.org/libreboot/bucts>
|
||||
* ich9utils (utility): <https://notabug.org/libreboot/ich9utils>
|
||||
bucts is also there: <https://notabug.org/libreboot/bucts>
|
||||
|
||||
You can download any of these repositories, make whatever changes you like, and
|
||||
then submit your changes using the instructions below.
|
||||
|
||||
It is recommended that you build libreboot (all parts of it) in a Linux
|
||||
distribution. For example, the build system (lbmk) is untested on BSD systems.
|
||||
Install `git` in your Linux system, and download one of the repositories.
|
||||
It is recommended that you build nonGeNUine Boot (all parts of it) in a GNU+Linux
|
||||
distribution. For example, the build system (gbmk) is untested on BSD systems.
|
||||
Install `git` in your GNU+Linux system, and download one of the repositories.
|
||||
|
||||
Development of libreboot is done using the Git version control system.
|
||||
Development of nonGeNUine Boot is done using the Git version control system.
|
||||
Refer to the [official Git documentation](https://git-scm.com/doc) if you don't
|
||||
know how to use Git.
|
||||
|
||||
The `bucts` repository is hosted by the libreboot project, because the original
|
||||
The `bucts` repository is hosted by the nonGeNUine Boot project, because the original
|
||||
repository on `stuge.se` is no longer available, last time we checked. The
|
||||
`bucts` program was written by Peter Stuge. You need `bucts` if you're flashing
|
||||
internally an libreboot ROM onto a ThinkPad X60 or T60 that is currently running
|
||||
internally an nonGeNUine Boot ROM onto a ThinkPad X60 or T60 that is currently running
|
||||
the non-free Lenovo BIOS. Instructions for that are available here:\
|
||||
[libreboot installation guides](docs/install/)
|
||||
[nonGeNUine Boot installation guides](docs/install/)
|
||||
|
||||
The `ich9utils` repository is used heavily, by the `lbmk` build system. However,
|
||||
The `ich9utils` repository is used heavily, by the `gbmk` build system. However,
|
||||
you can also download `ich9utils` on its own and use it. It generates ICH9M
|
||||
descriptor+GbE images for GM45 ThinkPads that use the ICH9M southbridge. It may
|
||||
also work for other systems using the same platform/chipset.
|
||||
Documentation for `ich9utils` is available here:\
|
||||
[ich9utils documentation](docs/install/ich9utils.md)
|
||||
|
||||
lbmk (libreboot-make)
|
||||
gbmk (non**G**eNUine**B**oot**M**a**K**e)
|
||||
---------------------
|
||||
|
||||
This is the core build system in libreboot. You could say that `lbmk` *is*
|
||||
libreboot! Download the Git repository:
|
||||
This is the core build system in nonGeNUine Boot. You could say that `gbmk` *is*
|
||||
nonGeNUine Boot! Download the Git repository:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbmk
|
||||
git clone https://codeberg.org/vimuser/gbmk
|
||||
|
||||
The `git` command, seen above, will download the libreboot build system `lbmk`.
|
||||
The `git` command, seen above, will download the nonGeNUine Boot build system `gbmk`.
|
||||
You can then go into it like so:
|
||||
|
||||
cd lbmk
|
||||
cd gbmk
|
||||
|
||||
Make whatever changes you like, or simply build it. For instructions on how to
|
||||
build `lbmk`, refer to the [build instructions](docs/build/).
|
||||
build `gbmk`, refer to the [build instructions](docs/build/).
|
||||
|
||||
Information about the build system itself, and how it works, is available in
|
||||
the [lbmk maintenance guide](docs/maintain/).
|
||||
the [gbmk maintenance guide](docs/maintain/).
|
||||
|
||||
lbwww and lbwww-img
|
||||
gbwww and gbwww-img
|
||||
-------------------
|
||||
|
||||
The *entire* libreboot website and documentation is hosted in a Git repository.
|
||||
The *entire* nonGeNUine Boot website and documentation is hosted in a Git repository.
|
||||
Download it like so:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbwww
|
||||
git clone https://codeberg.org/vimuser/gbwww
|
||||
|
||||
Images are hosted on <https://av.libreboot.org/> and available in a separate
|
||||
Images are hosted on <https://avgnu.vimuser.org/> and available in a separate
|
||||
repository:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbwww-img
|
||||
git clone https://codeberg.org/vimuser/gbwww-img
|
||||
|
||||
Make whatever changes you like. See notes below about how to send patches.
|
||||
|
||||
The entire website is written in Markdown, specifically the Pandoc version of
|
||||
it. The static HTML pages are generated with [Untitled](https://untitled.vimuser.org/).
|
||||
Leah Rowe, the founder of libreboot, is also the founder of the Untitled static
|
||||
site generator project.
|
||||
The entire website is written in Markdown, specifically the Pandoc version.
|
||||
Static HTML pages are generated with the [Untitled Static Site
|
||||
Generator](https://untitled.vimuser.org/).
|
||||
|
||||
If you like, you can set up a local HTTP server and build your own local
|
||||
version of the website. Please note that images will still link to the ones
|
||||
hosted on <https://av.libreboot.org/>, so any images that you add to `lbwww-img`
|
||||
will not show up on your local `lbwww` site if you make the image links (for
|
||||
images that you add) link to `av.libreboot.org`. However, it is required that such
|
||||
images be hosted on av.libreboot.org.
|
||||
hosted on <https://avgnu.vimuser.org/>, so any images that you add to `gbwww-img`
|
||||
will not show up on your local `gbwww` site if you make the image links (for
|
||||
images that you add) link to `avgnu.vimuser.org`. However, it is required that such
|
||||
images be hosted on avgnu.vimuser.org.
|
||||
|
||||
Therefore, if you wish to add images to the website, please also submit to the
|
||||
`lbwww-img` repository, with the links to them being
|
||||
<https://av.libreboot.org/path/to/your/new/image/in/lbwww-img> for each one.
|
||||
When it is merged on the libreboot website, your images will appear live.
|
||||
`gbwww-img` repository, with the links to them being
|
||||
<https://avgnu.vimuser.org/path/to/your/new/image/in/gbwww-img> for each one.
|
||||
When it is merged on the nonGeNUine Boot website, your images will appear live.
|
||||
|
||||
For development purposes, you might make your images local links first, and
|
||||
then adjust the URLs when you submit your documentation/website patches.
|
||||
|
||||
Instructions are on the Untitled website, for how to set up your local version
|
||||
of the website. Download untitled, and inside your `untitled` directory, create
|
||||
a directory named `www/` then go inside the www directory, and clone the `lbwww`
|
||||
a directory named `www/` then go inside the www directory, and clone the `gbwww`
|
||||
repository there. Configure your local HTTP server accordingly.
|
||||
|
||||
Again, instructions are available on the Untitled website for this purpose.
|
||||
|
@ -132,8 +124,8 @@ everyone can access. This includes the name and email address of the
|
|||
contributor.
|
||||
|
||||
In Git, for author name and email address, you do not have to use identifying
|
||||
data. You can use `libreboot Contributor` and your email address could be
|
||||
specified as contributor@libreboot.org. You are permitted to do this, if
|
||||
data. You can use `nongenuineboot Contributor` and your email address could be
|
||||
specified as john@doe.com. You are permitted to do this, if
|
||||
you wish to maintain privacy. We believe in privacy. If you choose to remain
|
||||
anonymous, we will honour this.
|
||||
|
||||
|
@ -153,123 +145,16 @@ push changes to a public Git repository.
|
|||
Licenses (for contributors)
|
||||
--------
|
||||
|
||||
Make sure to freely license your work, under a libre license. Libreboot no
|
||||
longer sets arbitrary restrictions on what licenses are accepted, and many
|
||||
licenses out there already exist. We will audit your contribution and tell
|
||||
you if there are problems with it (e.g. no license).
|
||||
Make sure to freely license your work, under a free license.
|
||||
|
||||
*Always* declare a license on your work! Not declaring a license means that
|
||||
the default, restrictive copyright laws apply, which would make your work
|
||||
proprietary, subject to all of the same restrictions.
|
||||
|
||||
The MIT license is a good one to start with, and it is the preferred license
|
||||
for all new works in Libreboot, but we're not picky. Libreboot has historically
|
||||
used GNU licensing such as GPL; much of that remains, and is likely to remain.
|
||||
It's your work; obviously, if you're deriving from an existing work,
|
||||
it may make sense to use the same license on your contribution, for license
|
||||
compatibility.
|
||||
The Free Software Foundation maintains a handy dandy list, which you can review
|
||||
here:
|
||||
|
||||
You can find common examples of licenses
|
||||
[here](https://opensource.org/licenses).
|
||||
<https://www.gnu.org/licenses/license-list.en.html>
|
||||
|
||||
If you *are* deriving from an existing work, it's important that your license
|
||||
(for your contribution) be compatible with the licensing of the work from which
|
||||
yours was derived. The MIT license is good because it's widely compatible
|
||||
with many other licenses, and permits many freedoms (such as the freedom to
|
||||
sublicense) that other licenses do not:
|
||||
|
||||
<https://opensource.org/licenses/MIT>
|
||||
|
||||
Send patches
|
||||
------------
|
||||
|
||||
Make an account on <https://codeberg.org/> and navigate (while logged in) to the
|
||||
repository that you wish to work on. Click *Fork* and in your account,
|
||||
you will have your own repository of libreboot. Clone your repository, make
|
||||
whatever changes you like to it and then push to your repository, in your
|
||||
account on Codeberg. You can also do this on a new branch, if you wish.
|
||||
|
||||
In your Codeberg account, you can then navigate to the official libreboot
|
||||
repository and submit a Pull Request. The way it works is similar to other
|
||||
popular web-based Git platforms that people use these days.
|
||||
|
||||
You can submit your patches there. Alternative, you can log onto the libreboot
|
||||
IRC channel and notify the channel of which patches you want reviewed, if you
|
||||
have your own Git repository with the patches.
|
||||
|
||||
Once you have issued a Pull Request, the libreboot maintainers will be notified
|
||||
via email. If you do not receive a fast enough response from the project, then
|
||||
you could also notify the project via the `#libreboot` channel on Libera Chat.
|
||||
|
||||
Another way to submit patches is to email Leah Rowe directly:
|
||||
[info@minifree.org](mailto:info@minifree.org) is Leah's project email address.
|
||||
|
||||
However, for transparency of the code review process, it's recommended that you
|
||||
use Codeberg, for the time being.
|
||||
|
||||
Mirrors of lbmk.git
|
||||
===================
|
||||
|
||||
The `lbmk` repository contains Libreboot's automated build system, which
|
||||
produces Libreboot releases (including compiled ROM images).
|
||||
|
||||
You can run `git clone` on any of these links (the links are also clickable,
|
||||
to view changes in your Web browser):
|
||||
|
||||
* <https://git.disroot.org/libreboot/lbmk>
|
||||
* <https://gitea.treehouse.systems/libreboot/lbmk>
|
||||
* <https://git.fosscommunity.in/libreboot/lbmk>
|
||||
* <https://0xacab.org/libreboot/lbmk/>
|
||||
* <https://framagit.org/libreboot/libreboot>
|
||||
* <https://gitlab.com/libreboot/lbmk>
|
||||
* <https://pagure.io/libreboot>
|
||||
* <https://rocketgit.com/libreboot/libreboot>
|
||||
|
||||
lbwww.git mirror
|
||||
----------------
|
||||
|
||||
The `lbwww` repository contains Markdown files (pandoc variant), for use
|
||||
with the [Untitled Static Site Generator](https://untitled.vimuser.org/); this
|
||||
is what Libreboot uses to provide HTML web pages, *including* the page that
|
||||
you are reading right now!
|
||||
|
||||
You can run `git clone` on these links, and/or click to view changes in your
|
||||
Web browser. See:
|
||||
|
||||
* <https://git.disroot.org/libreboot/lbwww>
|
||||
* <https://gitea.treehouse.systems/libreboot/lbwww>
|
||||
* <https://git.fosscommunity.in/libreboot/lbwww>
|
||||
* <https://0xacab.org/libreboot/lbwww>
|
||||
* <https://framagit.org/libreboot/lbwww/>
|
||||
* <https://gitlab.com/libreboot/lbwww>
|
||||
* <https://rocketgit.com/libreboot/lbwww>
|
||||
|
||||
NOTE: The `lbwww-img` repository is not generally provided, on mirrors, as
|
||||
those are just image files which you can find on <https://av.libreboot.org>
|
||||
and it is not the intention of the Libreboot project to bog down *mirrors*
|
||||
with additional traffic by hosting images.
|
||||
|
||||
Notabug repositories
|
||||
====================
|
||||
|
||||
Commits that go to codeberg are also still pushed to notabug, in addition to
|
||||
the other mirrors. Notabug is considered a *mirror* since 8 April 2023, when
|
||||
Libreboot's main development site moved to *Codeberg*.
|
||||
|
||||
OLD notabug repos are still pushed to as backup, but the codeberg mirror is
|
||||
considered to be main/official now, as of the [announcement on 8
|
||||
April 2023](news/codeberg.md). See:
|
||||
|
||||
* Build system: <https://notabug.org/libreboot/lbmk>
|
||||
* Website (+docs): <https://notabug.org/libreboot/lbwww>
|
||||
* Images (for website): <https://notabug.org/libreboot/lbwww-img>
|
||||
|
||||
For sending patches, it is now preferred that you use *codeberg*. Technically,
|
||||
pull requests are still possible via Notabug. While Notabug still exists,
|
||||
Libreboot patches will continue be pushed there, mirroring what gets pushed
|
||||
on Notabug.
|
||||
|
||||
Because pull requests and issues were available on notabug in the past, it
|
||||
makes sense to keep them open, though we ask that you send to codeberg. If
|
||||
they were to be closed on notabug, existing PRs and issues won't be visible
|
||||
anymore either, so they have to stay open.
|
||||
As a GNU project, it is natural that you may use copyleft licenses for works
|
||||
submitted to nonGeNUine Boot.
|
||||
|
|
231
site/git.uk.md
231
site/git.uk.md
|
@ -3,123 +3,116 @@ title: Огляд коду
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
репозиторії libreboot
|
||||
**NOTE TO GNU Boot AUDITORS: Obviously, these repository links are unofficial
|
||||
and you'll want to change them to your own ones for GNUBoot.**
|
||||
|
||||
**The repositories below are real, containing the actual code for this
|
||||
nonGeNUine Boot website intended for use by GNU Boot, images and also the [nonGeNUine
|
||||
Boot 20230717 release](news/nongenuineboot20230717.md). The GNU project is both free,
|
||||
and encouraged, to re-use this work officially.**
|
||||
|
||||
репозиторії nonGeNUine Boot
|
||||
===================
|
||||
|
||||
Інформацію про те, хто працює над libreboot і хто керує проектом, можна
|
||||
знайти на [who.uk.md](who.uk.md)
|
||||
Інформацію про те, хто працює над nonGeNUine Boot і хто керує проектом, можна
|
||||
знайти на [who.md](who.md)
|
||||
|
||||
Проект `libreboot` має 3 основні сховища Git:
|
||||
Проект nonGeNUine Boot має 3 основні сховища Git:
|
||||
|
||||
* Система побудови: <https://codeberg.org/libreboot/lbmk>
|
||||
* Веб-сайт (+документація): <https://codeberg.org/libreboot/lbwww>
|
||||
* Зображення (для веб-сайта): <https://codeberg.org/libreboot/lbwww-img>
|
||||
* Система побудови: <https://codeberg.org/vimuser/gbmk>
|
||||
* Веб-сайт (+документація): <https://codeberg.org/vimuser/gbwww>
|
||||
* Зображення (для веб-сайта): <https://codeberg.org/vimuser/gbwww-img>
|
||||
|
||||
You can also *browse* lbmk on Libreboot's own cgit instance, though it is not
|
||||
intended for development (use codeberg for that):\
|
||||
<https://browse.libreboot.org/lbmk.git/>
|
||||
|
||||
If the main Git repositories are down, mirrors of `lbmk` and `lbwww` are listed
|
||||
If the main Git repositories are down, mirrors of `gbmk` and `gbwww` are listed
|
||||
further down in this page
|
||||
|
||||
Libreboot was previously using NotABug, but it had continued reliability
|
||||
issues due to HTTP 500 errors being returned, largely in the evenings, most
|
||||
likely because too many people were on it; it was decided that Libreboot
|
||||
needed something more stable, so now Libreboot is hosted on codeberg. See:
|
||||
[announcement of move to codeberg, 8 April 2023](news/codeberg.md)
|
||||
|
||||
Є також ці програми, розміщені в проекті Libreboot, і libreboot
|
||||
Є також ці програми, розміщені в проекті nonGeNUine Boot, і nonGeNUine Boot
|
||||
або рекомендує їх, або використовує їх:
|
||||
|
||||
The `ich9utils` project is now available under `util/ich9utils` in lbmk, and
|
||||
lbmk uses *that*, but the old standalone repository is still available on
|
||||
notabug (bucts is also there):
|
||||
|
||||
* Bucts (утиліта): <https://notabug.org/libreboot/bucts>
|
||||
* ich9utils (утиліта): <https://notabug.org/libreboot/ich9utils>
|
||||
bucts is also there: <https://notabug.org/libreboot/bucts>
|
||||
|
||||
Ви можете завантажити будь-яке з цих сховищ, внести будь-які зміни, і
|
||||
потім надіслати свої зміни, дотримуючись інструкцій нижче.
|
||||
|
||||
Рекомендовано створювати libreboot (усі його частини) у дистрибутиві
|
||||
Linux. Наприклад, система збірки (lbmk) не перевірена на системах BSD.
|
||||
Встановіть `git` у вашій системі Linux, і завантажте одне із сховищ.
|
||||
Рекомендовано створювати nonGeNUine Boot (усі його частини) у дистрибутиві
|
||||
GNU+Linux. Наприклад, система збірки (gbmk) не перевірена на системах BSD.
|
||||
Встановіть `git` у вашій системі GNU+Linux, і завантажте одне із сховищ.
|
||||
|
||||
Розробка libreboot виконується за допомогою системи контролю версій Git.
|
||||
Розробка nonGeNUine Boot виконується за допомогою системи контролю версій Git.
|
||||
Зверніться до [офіційної документації Git](https://git-scm.com/doc), якщо ви не
|
||||
знаєте, як користуватися Git.
|
||||
|
||||
Репозиторій `bucts` розміщено в проекті libreboot, оскільки оригінальний
|
||||
Репозиторій `bucts` розміщено в проекті nonGeNUine Boot, оскільки оригінальний
|
||||
репозиторій на `stuge.se` більше не доступний, коли ми перевіряли останній раз.
|
||||
Програма `bucts` була написана Пітером Стьюджем. Вам знадобляться `bucts`, якщо ви прошиваєте
|
||||
внутрішньо libreboot ROM на ThinkPad X60 або T60, на якому зараз працює
|
||||
внутрішньо nonGeNUine Boot ROM на ThinkPad X60 або T60, на якому зараз працює
|
||||
невільний Lenovo BIOS. Інструкції щодо цього доступні тут:\
|
||||
[посібники зі встановлення libreboot](docs/install/)
|
||||
[посібники зі встановлення nonGeNUine Boot](docs/install/)
|
||||
|
||||
Репозиторій `ich9utils` активно використовується системою збирання `lbmk`. Однак
|
||||
Репозиторій `ich9utils` активно використовується системою збирання `gbmk`. Однак
|
||||
ви також можете завантажити `ich9utils` самостійно та використовувати його. Він генерує ICH9M
|
||||
дескриптор+GbE образи для GM45 ThinkPad, які використовують південний міст ICH9M. Він
|
||||
також може працювати з іншими системами, що використовують ту саму платформу/чіпсет.
|
||||
Документація для `ich9utils` доступна тут:\
|
||||
[документація ich9utils](docs/install/ich9utils.md)
|
||||
|
||||
lbmk (libreboot-make)
|
||||
gbmk (non**G**eNUine**B**oot**M**a**K**e)
|
||||
---------------------
|
||||
|
||||
Це основна система збирання в libreboot. Можна сказати, що `lbmk` *це*
|
||||
libreboot! Завантажте репозиторій Git:
|
||||
Це основна система збирання в nonGeNUine Boot. Можна сказати, що `gbmk` *це*
|
||||
nonGeNUine Boot! Завантажте репозиторій Git:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbmk
|
||||
git clone https://codeberg.org/vimuser/gbmk
|
||||
|
||||
Команда `git`, показана вище, завантажить систему збірки libreboot `lbmk`.
|
||||
Команда `git`, показана вище, завантажить систему збірки nonGeNUine Boot `gbmk`.
|
||||
Потім ви можете перейти до цього так:
|
||||
|
||||
cd lbmk
|
||||
cd gbmk
|
||||
|
||||
Внесіть будь-які зміни, які забажаєте, або просто побудуйте. Щоб отримати вказівки щодо
|
||||
збирання `lbmk`, зверніться до [інструкцій зі збирання](docs/build/).
|
||||
збирання `gbmk`, зверніться до [інструкцій зі збирання](docs/build/).
|
||||
|
||||
Інформація про саму систему збірки та про те, як вона працює, доступна в
|
||||
[посібнику обслуговування lbmk](docs/maintain/).
|
||||
[посібнику обслуговування gbmk](docs/maintain/).
|
||||
|
||||
lbwww та lbwww-img
|
||||
gbwww та gbwww-img
|
||||
-------------------
|
||||
|
||||
*Весь* веб-сайт і документація libreboot розміщені в репозиторії Git.
|
||||
*Весь* веб-сайт і документація nonGeNUine Boot розміщені в репозиторії Git.
|
||||
Завантажте так:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbwww
|
||||
git clone https://codeberg.org/vimuser/gbwww
|
||||
|
||||
Зображення розміщені на <https://av.libreboot.org/> і доступні в окремому
|
||||
Зображення розміщені на <https://avgnu.vimuser.org/> і доступні в окремому
|
||||
сховищі:
|
||||
|
||||
git clone https://codeberg.org/libreboot/lbwww-img
|
||||
git clone https://codeberg.org/vimuser/gbwww-img
|
||||
|
||||
Вносьте будь-які зміни, які забажаєте. Дивіться нотатки нижче про те, як надсилати виправлення.
|
||||
|
||||
Весь веб-сайт написаний у Markdown, зокрема його версія Pandoc.
|
||||
Статичні сторінки HTML створюються за допомогою [Untitled](https://untitled.vimuser.org/).
|
||||
Лія Роу, засновниця libreboot, також є засновницею проекту генератор статичних сайтів
|
||||
Лія Роу, засновниця nonGeNUine Boot, також є засновницею проекту генератор статичних сайтів
|
||||
Untitled.
|
||||
|
||||
Якщо хочете, ви можете налаштувати локальний HTTP-сервер і створити власну локальну
|
||||
версію веб-сайту. Зауважте, що зображення все одно будуть посилатися на ті, що
|
||||
розміщені на <https://av.libreboot.org/>, тому будь-які зображення, які ви додаєте до `lbwww-img`
|
||||
не відображатимуться на вашому локальному сайті `lbwww`, якщо ви зробите, щоб посилання на зображення (для
|
||||
зображень, які ви додаєте) посилались на `av.libreboot.org`. Однак необхідно, щоб такі
|
||||
зображення розміщувалися на av.libreboot.org.
|
||||
розміщені на <https://avgnu.vimuser.org/>, тому будь-які зображення, які ви додаєте до `gbwww-img`
|
||||
не відображатимуться на вашому локальному сайті `gbwww`, якщо ви зробите, щоб посилання на зображення (для
|
||||
зображень, які ви додаєте) посилались на `avgnu.vimuser.org`. Однак необхідно, щоб такі
|
||||
зображення розміщувалися на avgnu.vimuser.org.
|
||||
|
||||
Тому, якщо ви бажаєте додати зображення на веб-сайт, надішліть їх також до
|
||||
репозиторія `lbwww-img`, із посиланням на них
|
||||
<https://av.libreboot.org/шлях/до/вашого/нового/зображення/в/lbwww-img> для кожного з них.
|
||||
Коли його буде поєднано на веб-сайті libreboot, ваші зображення з'являться в реальному часі.
|
||||
репозиторія `gbwww-img`, із посиланням на них
|
||||
<https://avgnu.vimuser.org/шлях/до/вашого/нового/зображення/в/gbwww-img> для кожного з них.
|
||||
Коли його буде поєднано на веб-сайті nonGeNUine Boot, ваші зображення з'являться в реальному часі.
|
||||
|
||||
Для цілей розробки ви можете спочатку створити локальні посилання на зображення, а
|
||||
потім налаштувати URL-адреси, коли надсилатимете документацію/патчі веб-сайту.
|
||||
|
||||
На веб-сайті Untitled є інструкції щодо налаштування локальної версії
|
||||
веб-сайту. Завантажте untitled, і в своєму каталозі `untitled` створіть каталог
|
||||
під назвою `www/`, потім увійдіть у каталог www і клонуйте сховище `lbwww`
|
||||
під назвою `www/`, потім увійдіть у каталог www і клонуйте сховище `gbwww`
|
||||
там. Налаштуйте локальний HTTP-сервер відповідним чином.
|
||||
|
||||
Знову ж таки, інструкції для цього доступні на веб-сайті Untitled.
|
||||
|
@ -132,8 +125,8 @@ Untitled.
|
|||
учасника.
|
||||
|
||||
У Git для імені автора та електронної адреси вам не потрібно використовувати
|
||||
ідентифікаційні дані. Ви можете використовувати `libreboot Contributor`, а свою електронну адресу можна
|
||||
вказати як contributor@libreboot.org. Вам дозволено це робити, якщо
|
||||
ідентифікаційні дані. Ви можете використовувати `nongenuineboot Contributor`, а свою електронну адресу можна
|
||||
вказати як john@doe.com. Вам дозволено це робити, якщо
|
||||
ви бажаєте зберегти конфіденційність. Ми віримо в конфіденційність. Якщо ви вирішите залишитися
|
||||
анонімними, ми врахуємо це.
|
||||
|
||||
|
@ -153,123 +146,13 @@ Untitled.
|
|||
Ліцензії (для учасників)
|
||||
--------
|
||||
|
||||
Обов'язково вільно ліцензуйте свою роботу, за вільною ліцензією. Libreboot більше не
|
||||
встановлює довільні обмеження на те, які ліцензії приймаються, і багато
|
||||
інших ліцензій вже існує. Ми перевіримо ваш внесок і розкажемо вам, якщо з ним
|
||||
виникли проблеми (наприклад, немає ліцензії).
|
||||
Make sure to freely license your work, under a free license.
|
||||
|
||||
*Завжди* декларуйте ліцензію на свою роботу! Недекларування ліцензії означає, що
|
||||
за замовчуванням застосовуються обмежувальні закони про авторське право, які зроблять вашу роботу
|
||||
захищеною власністю, підпадаючи під усі ті самі обмеження.
|
||||
*Always* declare a license on your work! Not declaring a license means that
|
||||
the default, restrictive copyright laws apply, which would make your work
|
||||
proprietary, subject to all of the same restrictions.
|
||||
|
||||
Ліцензія MIT є хорошою для початку, і вона є бажаною ліцензією
|
||||
для всіх нових робіт у Libreboot, але ми не вибагливі. Libreboot історично
|
||||
використовував ліцензування GNU, таке як GPL; багато з цього залишилося, і, ймовірно, залишиться.
|
||||
Це ваша робота; очевидно, якщо ви використовуєте існуючу роботу,
|
||||
може мати сенс використовувати ту саму ліцензію для вашого внеску, для сумісності
|
||||
ліцензії.
|
||||
The Free Software Foundation maintains a handy dandy list, which you can review
|
||||
here:
|
||||
|
||||
Ви можете знайти типові приклади ліцензій
|
||||
[тут](https://opensource.org/licenses).
|
||||
|
||||
Якщо ви *виходите* на основі існуючого твору, важливо, щоб ваша ліцензія (на ваш внесок)
|
||||
була сумісна з ліцензуванням твору, з якого
|
||||
ваш був отриманий. Ліцензія MIT хороша, оскільки вона широко сумісна
|
||||
з багатьма іншими ліцензіями та надає багато свобод (наприклад, свободу
|
||||
субліцензування), яких немає в інших ліцензіях:
|
||||
|
||||
<https://opensource.org/licenses/MIT>
|
||||
|
||||
Надсилайте виправлення
|
||||
------------
|
||||
|
||||
Створіть обліковий запис на <https://codeberg.org/> і перейдіть (увійшовши в систему) до
|
||||
репозиторію, над яким ви хочете працювати. Натисніть *Fork*, і у вашому обліковому записі,
|
||||
ви матимете власне сховище libreboot. Клонуйте свій репозиторій, внесіть у нього
|
||||
будь-які зміни, а потім надішліть їх у свій репозиторій у своєму обліковому
|
||||
записі на NotABug. Ви також можете зробити це на новій гілці, якщо хочете.
|
||||
|
||||
У своєму обліковому записі Codeberg, ви можете перейти до офіційного репозиторія libreboot
|
||||
і надіслати запит на отримання. Принцип роботи подібний до інших популярних веб-платформ
|
||||
Git, якими люди користуються сьогодні.
|
||||
|
||||
Ви можете відправити свої патчі туди. Крім того, ви можете увійти на
|
||||
IRC-канал libreboot і повідомити канал, які виправлення ви хочете бути переглянутими, якщо у вас
|
||||
є власне сховище Git з виправленнями.
|
||||
|
||||
Після того, як ви подасте Pull Request, розробники libreboot отримають сповіщення
|
||||
електронною поштою. Якщо ви не отримаєте достатньо швидкої відповіді від проекту, ви
|
||||
також можете повідомити проект через канал `#libreboot` на Libera Chat.
|
||||
|
||||
Інший спосіб подати виправлення - це напряму надіслати Лії Роу електронною поштою:
|
||||
[leah@libreboot.org](mailto:leah@libreboot.org) - це адреса електронної пошти проекту Лії.
|
||||
|
||||
Однак, для прозорості процесу перевірки коду, ми рекомендуємо на даний момент
|
||||
використовувати Codeberg.
|
||||
|
||||
Mirrors of lbmk.git
|
||||
===================
|
||||
|
||||
The `lbmk` repository contains Libreboot's automated build system, which
|
||||
produces Libreboot releases (including compiled ROM images).
|
||||
|
||||
You can run `git clone` on any of these links (the links are also clickable,
|
||||
to view changes in your Web browser):
|
||||
|
||||
* <https://git.disroot.org/libreboot/lbmk>
|
||||
* <https://gitea.treehouse.systems/libreboot/lbmk>
|
||||
* <https://git.fosscommunity.in/libreboot/lbmk>
|
||||
* <https://0xacab.org/libreboot/lbmk/>
|
||||
* <https://framagit.org/libreboot/libreboot>
|
||||
* <https://gitlab.com/libreboot/lbmk>
|
||||
* <https://pagure.io/libreboot>
|
||||
* <https://rocketgit.com/libreboot/libreboot>
|
||||
|
||||
lbwww.git mirror
|
||||
----------------
|
||||
|
||||
The `lbwww` repository contains Markdown files (pandoc variant), for use
|
||||
with the [Untitled Static Site Generator](https://untitled.vimuser.org/); this
|
||||
is what Libreboot uses to provide HTML web pages, *including* the page that
|
||||
you are reading right now!
|
||||
|
||||
You can run `git clone` on these links, and/or click to view changes in your
|
||||
Web browser. See:
|
||||
|
||||
* <https://git.disroot.org/libreboot/lbwww>
|
||||
* <https://gitea.treehouse.systems/libreboot/lbwww>
|
||||
* <https://git.fosscommunity.in/libreboot/lbwww>
|
||||
* <https://0xacab.org/libreboot/lbwww>
|
||||
* <https://framagit.org/libreboot/lbwww/>
|
||||
* <https://gitlab.com/libreboot/lbwww>
|
||||
* <https://rocketgit.com/libreboot/lbwww>
|
||||
|
||||
NOTE: The `lbwww-img` repository is not generally provided, on mirrors, as
|
||||
those are just image files which you can find on <https://av.libreboot.org>
|
||||
and it is not the intention of the Libreboot project to bog down *mirrors*
|
||||
with additional traffic by hosting images.
|
||||
|
||||
Notabug repositories
|
||||
====================
|
||||
|
||||
Commits that go to codeberg are also still pushed to notabug, in addition to
|
||||
the other mirrors. Notabug is considered a *mirror* since 8 April 2023, when
|
||||
Libreboot's main development site moved to *Codeberg*.
|
||||
|
||||
OLD notabug repos are still pushed to as backup, but the codeberg mirror is
|
||||
considered to be main/official now, as of the [announcement on 8
|
||||
April 2023](news/codeberg.md). See:
|
||||
|
||||
* Build system: <https://notabug.org/libreboot/lbmk>
|
||||
* Website (+docs): <https://notabug.org/libreboot/lbwww>
|
||||
* Images (for website): <https://notabug.org/libreboot/lbwww-img>
|
||||
|
||||
For sending patches, it is now preferred that you use *codeberg*. Technically,
|
||||
pull requests are still possible via Notabug. While Notabug still exists,
|
||||
Libreboot patches will continue be pushed there, mirroring what gets pushed
|
||||
on Notabug.
|
||||
|
||||
Because pull requests and issues were available on notabug in the past, it
|
||||
makes sense to keep them open, though we ask that you send to codeberg. If
|
||||
they were to be closed on notabug, existing PRs and issues won't be visible
|
||||
anymore either, so they have to stay open.
|
||||
<https://www.gnu.org/licenses/license-list.en.html>
|
||||
|
|
|
@ -31,21 +31,20 @@
|
|||
|
||||
html
|
||||
{
|
||||
background: #280b22;
|
||||
color: #eee;
|
||||
background: #fff;
|
||||
color: #222;
|
||||
font-family: sans-serif;
|
||||
line-height: 1.4;
|
||||
text-shadow: 1px 1px #000;
|
||||
}
|
||||
|
||||
code,pre, #TOC, a:hover
|
||||
{
|
||||
background: #4e324e;
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
color: #fcc;
|
||||
color: #22d;
|
||||
}
|
||||
|
||||
img,video,iframe,pre
|
||||
|
@ -142,3 +141,14 @@ img
|
|||
.p {
|
||||
max-width: 13em;
|
||||
}
|
||||
|
||||
span.fcc
|
||||
{
|
||||
background: #fcc;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.fcc p {padding:0; margin: 0}
|
||||
|
|
|
@ -1,76 +1,74 @@
|
|||
---
|
||||
title: Libreboot projekt
|
||||
title: nonGeNUine Boot
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Das *Libreboot* Projekt bietet
|
||||
eine [freie](https://writefreesoftware.org/) *Boot
|
||||
Das *nonGeNUine Boot* Projekt bietet
|
||||
eine [freie](https://www.gnu.org/philosophy/free-sw.html) *Boot
|
||||
Firmware* welche auf [bestimmten Intel/AMD x86 und ARM Geräten](docs/hardware/)
|
||||
die Hardware initialisiert (z.b. Speicher-Controller, CPU, Peripherie),
|
||||
und dann einen Bootloader für dein Betriebssystem startet. [Linux](docs/linux/)
|
||||
und dann einen Bootloader für dein Betriebssystem startet. [GNU+Linux](docs/gnulinux/)
|
||||
sowie [BSD](docs/bsd/) werden gut unterstützt. Es ersetzt proprietäre BIOS/UEFI
|
||||
Firmware. Hilfe ist verfügbar
|
||||
via [\#libreboot](https://web.libera.chat/#libreboot)
|
||||
und [Libera](https://libera.chat/) IRC.
|
||||
Firmware.
|
||||
|
||||
<img tabindex=1 class="r" src="https://av.libreboot.org/t500/0005.jpg" /><span class="f"><img src="https://av.libreboot.org/t500/0005.jpg" /></span>
|
||||
<img tabindex=1 class="r" src="https://avgnu.vimuser.org/t500/0005.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/t500/0005.jpg" /></span>
|
||||
|
||||
**NEUESTE VERSION: Die neueste Version von Censored Libreboot ist c20230710, veröffentlicht am
|
||||
10. July 2023.
|
||||
Siehe auch: [Censored Libreboot c20230710 release announcement](news/censored-libreboot20230710.md).**
|
||||
**NEUESTE VERSION: Die neueste Version von nonGeNUine Boot ist 20230717, veröffentlicht am
|
||||
17. July 2023.
|
||||
Siehe auch: [nonGeNUine Boot 20230717 release announcement](news/nongenuineboot20230717.md).**
|
||||
|
||||
Warum solltest Du *Libreboot* verwenden?
|
||||
Warum solltest Du *nonGeNUine Boot* verwenden?
|
||||
----------------------------
|
||||
|
||||
Libreboot gibt dir [Freiheit](https://writefreesoftware.org/) welche
|
||||
nonGeNUine Boot gibt dir [Freiheit](https://www.gnu.org/philosophy/free-sw.html) welche
|
||||
Du mit den meisten Boot Firmwares nicht hast, und zusätzlich schnellere Boot
|
||||
Geschwindigkeiten sowie [höhere Sicherheit](docs/linux/grub_hardening.md).
|
||||
Geschwindigkeiten sowie [höhere Sicherheit](docs/gnulinux/grub_hardening.md).
|
||||
Es ist extrem leistungsfähig und für viele Einsatzzwecke [konfigurierbar](docs/maintain/).
|
||||
|
||||
Du hast Rechte. Das Recht auf Privatsphäre, Gedankenfreiheit, Meinungsäußerungsfreiheit,
|
||||
und Informationsfreiheit. In diesem Zusammenhang, Libreboot gibt dir diese Rechte.
|
||||
und Informationsfreiheit. In diesem Zusammenhang, nonGeNUine Boot gibt dir diese Rechte.
|
||||
Deine Freiheit ist wichtig.
|
||||
[Das Recht auf Reparatur](https://yewtu.be/watch?v=Npd_xDuNi9k) ist wichtig.
|
||||
Viele Menschen verwenden proprietäre (non-libre)
|
||||
Boot Firmware, sogar wenn Sie ein [Libre OS](https://www.openbsd.org/) verwenden.
|
||||
Boot Firmware, sogar wenn Sie ein [Libre OS](https://www.gnu.org/distros/) verwenden.
|
||||
Proprietäre Firmware [enthält](faq.html#intel) häufig [Hintertüren](faq.html#amd),
|
||||
und kann fehlerhaft sein. Das Libreboot Projekt wurde im Dezember 2013 gegründet,
|
||||
und kann fehlerhaft sein. Das nonGeNUine Boot Projekt wurde im July 2023 gegründet,
|
||||
mit dem Ziel, Coreboot Firmware auch für technisch unerfahrene Nutzer verfügbar
|
||||
zu machen.
|
||||
|
||||
Das Libreboot Projekt verwendet [Coreboot](https://www.coreboot.org/) für
|
||||
Das nonGeNUine Boot Projekt verwendet [Coreboot](https://www.coreboot.org/) für
|
||||
[die Initialiserung der Hardware](https://doc.coreboot.org/getting_started/architecture.html).
|
||||
Die Coreboot Installation ist für unerfahrene Benutzer überaus schwierig; sie
|
||||
übernimmt lediglich die Basis Initialisierung und springt dann zu einem separaten
|
||||
[payload](https://doc.coreboot.org/payloads.html) Programm (z.B.
|
||||
[GRUB](https://www.gnu.org/software/grub/),
|
||||
[Tianocore](https://www.tianocore.org/)), welche zusätzlich konfiguriert werden muss.
|
||||
*Libreboot löst dieses Problem*; es ist eine *Coreboot Distribution* mit
|
||||
*nonGeNUine Boot löst dieses Problem*; es ist eine *Coreboot Distribution* mit
|
||||
einem [automatisierten Build System](docs/build/) welches vollständige *ROM images*
|
||||
für eine robustere Installation erstellt.
|
||||
Dokumentation ist verfügbar.
|
||||
|
||||
Libreboot ist kein Coreboot Fork
|
||||
nonGeNUine Boot ist kein Coreboot Fork
|
||||
-----------------------------------
|
||||
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://av.libreboot.org/dip8/adapter.jpg" /><span class="f"><img src="https://av.libreboot.org/dip8/adapter.jpg" /></span>
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://avgnu.vimuser.org/dip8/adapter.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/dip8/adapter.jpg" /></span>
|
||||
|
||||
Tatsächlich versucht Libreboot so nah am regulären Coreboot zu bleiben wie möglich,
|
||||
für jedes Board, aber mit vielen automatisch durch das Libreboot Build System zur
|
||||
Tatsächlich versucht nonGeNUine Boot so nah am regulären Coreboot zu bleiben wie möglich,
|
||||
für jedes Board, aber mit vielen automatisch durch das nonGeNUine Boot Build System zur
|
||||
Verfügung gestellten verschiedenen Konfigurationstypen.
|
||||
|
||||
Ebenso wie *Alpine Linux* eine *Linux Distribution* ist, ist Libreboot eine
|
||||
Ebenso wie *Trisquel GNU+Linux* eine *GNU+Linux Distribution* ist, ist nonGeNUine Boot eine
|
||||
*Coreboot Distribution*. Sofern Du ein ROM Image von Grund auf herstellen möchtest,
|
||||
musst Du zunächst Konfigurationen auf Experten Level durchführen,
|
||||
und zwar für Coreboot, GRUB sowie sämtliche Software die Du sonst noch verwenden
|
||||
möchtest um das ROM Image vorzubereiten. Mithilfe von *Libreboot* kannst Du
|
||||
möchtest um das ROM Image vorzubereiten. Mithilfe von *nonGeNUine Boot* kannst Du
|
||||
sprichwörtlich von Git oder einem anderen Quell-Archiv herunterladen, anschliessend
|
||||
`make` ausführen, und es wird komplette ROM Images herstellen, ohne das Benutzer
|
||||
Eingaben oder Eingreifen von Nöten sind. Die Konfiguration wurde bereits im
|
||||
Vorfeld erledigt.
|
||||
|
||||
Sofern Du das reguläre Coreboot herstellen wollen würdest, ohne hierfür das automatisierte
|
||||
Libreboot Build System zu verwenden, würde dies deutlich mehr Eingreifen und ein
|
||||
nonGeNUine Boot Build System zu verwenden, würde dies deutlich mehr Eingreifen und ein
|
||||
sehr tiefgreifendes technisches Verständnis voraussetzen um eine funktionsfähige
|
||||
Konfiguration herzustellen.
|
||||
|
||||
|
|
|
@ -1,76 +1,74 @@
|
|||
---
|
||||
title: Projet Libreboot
|
||||
title: nonGeNUine Boot
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Libreboot est un micrologiciel de démarrage [libéré](https://writefreesoftware.org/)
|
||||
nonGeNUine Boot est un micrologiciel de démarrage [libéré](https://www.gnu.org/philosophy/free-sw.html)
|
||||
qui initialise le matériel (càd le contrôleur mémoire, CPU,
|
||||
périphériques) sur [des ordinateurs x86/ARM spécifiques](docs/hardware/)
|
||||
et lance un chargeur d'amorçage pour votre système d'exploitation. [Linux](docs/linux/) et [BSD](docs/bsd/) sont bien supportés. C'est un
|
||||
et lance un chargeur d'amorçage pour votre système d'exploitation. [GNU+Linux](docs/gnulinux/) et [BSD](docs/bsd/) sont bien supportés. C'est un
|
||||
remplacement pour le micrologiciel UEFI/BIOS propriétaire.
|
||||
Des canaux d'aide sont disponibles
|
||||
dans le canal [\#libreboot](https://web.libera.chat/#libreboot) sur le serveur IRC [Libera](https://libera.chat/).
|
||||
|
||||
<img tabindex=1 class="r" src="https://av.libreboot.org/t500/0005.jpg" /><span class="f"><img src="https://av.libreboot.org/t500/0005.jpg" /></span>
|
||||
<img tabindex=1 class="r" src="https://avgnu.vimuser.org/t500/0005.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/t500/0005.jpg" /></span>
|
||||
|
||||
**NOUVELLE VERSION: La dernière version est [Censored Libreboot c20230710](news/censored-libreboot20230710.md), sortie
|
||||
le 10 Juillet 2023.**
|
||||
**NOUVELLE VERSION: La dernière version est [nonGeNUine Boot 20230717](news/nongenuineboot20230717.md), sortie
|
||||
le 17 Juillet 2023.**
|
||||
|
||||
Pourquoi devriez-vous utiliser *Libreboot*?
|
||||
Pourquoi devriez-vous utiliser *nonGeNUine Boot*?
|
||||
-----------------------------------
|
||||
|
||||
Libreboot vous donne des [libertés](https://writefreesoftware.org/)
|
||||
nonGeNUine Boot vous donne des [libertés](https://www.gnu.org/philosophy/free-sw.html)
|
||||
que nous n'auriez pas autrement avec d'autre micrologiciel de démarrage. Il est
|
||||
extremement [puissant](docs/linux/grub_hardening.md)
|
||||
extremement [puissant](docs/gnulinux/grub_hardening.md)
|
||||
et [configurable](docs/maintain) pour plein de cas d'utilisations.
|
||||
|
||||
Vous avez des droits. Un droit à la vie privée, liberté de pensée, liberté d'espression et le droit de lire. Dans ce contexte là, Libreboot vous permet d'avoir ces droits.
|
||||
Vous avez des droits. Un droit à la vie privée, liberté de pensée, liberté d'espression et le droit de lire. Dans ce contexte là, nonGeNUine Boot vous permet d'avoir ces droits.
|
||||
Votre liberté compte.
|
||||
Le [Droit à la réparation](https://yewtu.be/watch?v=Npd_xDuNi9k) est important.
|
||||
Beaucoup de personnes utilisent un micrologiciel de
|
||||
démarrage propriétare (non libre), même
|
||||
si ils utilisent [un système d'exploitation libre](https://www.openbsd.org/).
|
||||
si ils utilisent [un système d'exploitation libre](https://www.gnu.org/distros/).
|
||||
Les micrologiciels propriétaires [contiennent](faq.html#intel) souvent
|
||||
des [portes dérobées](faq.html#amd) et peuvent être instable. Libreboot
|
||||
a été fondé en Décembre 2013 avec le but de rendre le libre
|
||||
des [portes dérobées](faq.html#amd) et peuvent être instable. nonGeNUine Boot
|
||||
a été fondé en July 2023 avec le but de rendre le libre
|
||||
au niveau du micrologiciel accessible pour les utilisateurs non-techniques.
|
||||
|
||||
Libreboot utilise [coreboot](https://www.coreboot.org) pour
|
||||
nonGeNUine Boot utilise [coreboot](https://www.coreboot.org) pour
|
||||
[l'initialisation matérielle](https://doc.coreboot.org/getting_started/architecture.html)
|
||||
Coreboot est renommé comme être difficilement installable par des utilisateurs
|
||||
non technique; il se charge seulement de l'initialisation basique
|
||||
puis bascule sur un programme de [charge utile](https://doc.coreboot.org/payloads.html)
|
||||
(par ex. [GRUB](https://www.gnu.org/software/grub/),
|
||||
[Tianocore](https://www.tianocore.org/)), qui doit lui aussi être configuré.
|
||||
*Libreboot règle ce problème*; c'est une *distribution de coreboot* avec
|
||||
*nonGeNUine Boot règle ce problème*; c'est une *distribution de coreboot* avec
|
||||
un [système de compilation automatisé](docs/builds/), crééant des
|
||||
*images ROM* complètes pour une installation plus robuste. De la documentation est disponible.
|
||||
|
||||
De quelle façon Libreboot diffère de Coreboot?
|
||||
De quelle façon nonGeNUine Boot diffère de Coreboot?
|
||||
------------------------------------------------
|
||||
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://av.libreboot.org/dip8/adapter.jpg" /><span class="f"><img src="https://av.libreboot.org/dip8/adapter.jpg" /></span>
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://avgnu.vimuser.org/dip8/adapter.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/dip8/adapter.jpg" /></span>
|
||||
|
||||
Contrairement à l'opinion populaire, le but principal de Libreboot n'est
|
||||
Contrairement à l'opinion populaire, le but principal de nonGeNUine Boot n'est
|
||||
pas de fournir un Coreboot déblobbé; ceci n'est simplement qu'une
|
||||
des politiques de Libreboot, une importante certes, mais qui n'est qu'un
|
||||
aspect mineur de Libreboot.
|
||||
des politiques de nonGeNUine Boot, une importante certes, mais qui n'est qu'un
|
||||
aspect mineur de nonGeNUine Boot.
|
||||
|
||||
De la même façon que *Alpine Linux* est une distribution Linux, Libreboot
|
||||
De la même façon que *Trisquel GNU+Linux* est une distribution GNU+Linux, nonGeNUine Boot
|
||||
est une *distribution coreboot*. Si vous voulez compilé une image ROM
|
||||
en partant des bases, vous devez alors effectuer une configuration experte
|
||||
de Coreboot, GRUB et n'importe quel autre logiciel dont vous avez besoin
|
||||
afin de préparer la ROM. Avec *Libreboot*,
|
||||
afin de préparer la ROM. Avec *nonGeNUine Boot*,
|
||||
vous pouvez télécharger la source depuis Git ou une archive, exécuter
|
||||
`make` etça compilera une image ROM entières. Le système de compilation
|
||||
automatisé de Libreboot nommé `lbmk` (Libreboot MaKe), compile ces images
|
||||
automatisé de nonGeNUine Boot nommé `gbmk` (non**G**eNUine**B**oot**M**a**K**e), compile ces images
|
||||
ROM automatiquement, sans besoin d'entrées utilisateur or intervention
|
||||
requise. La configuration est faite à l'avance.
|
||||
|
||||
Si vous devriez compiler du coreboot classique sans utiliser le système
|
||||
de build automatisé de Libreboot, ça demanderait bien plus d'effort et
|
||||
de build automatisé de nonGeNUine Boot, ça demanderait bien plus d'effort et
|
||||
de connaissances techniques décente pour écrire une configuration qui marche.
|
||||
|
||||
Les versions de Libreboot fournissent ces images ROM pré-compilés et vous
|
||||
Les versions de nonGeNUine Boot fournissent ces images ROM pré-compilés et vous
|
||||
pouvez les installez simplement, sans connaissance ou compétence particulière
|
||||
à savoir, sauf [suivre des instructions simplifiés écrite pour des utilisateurs non techniques](docs/install/).
|
||||
|
|
|
@ -1,76 +1,83 @@
|
|||
---
|
||||
title: Libreboot project
|
||||
title: nonGeNUine Boot
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
The *Libreboot* project provides
|
||||
[free, open source](https://writefreesoftware.org/) (*libre*) boot
|
||||
The *nonGeNUine Boot* ([formerly](news/nongenuineboot20230717.md#update-21-july-2023)
|
||||
the unofficial *GNU Boot* or *gnuboot*) project provides 100%
|
||||
[free](https://www.gnu.org/philosophy/free-sw.html) (*libre*) boot
|
||||
firmware based on coreboot, replacing proprietary BIOS/UEFI firmware
|
||||
on [specific Intel/AMD x86 and ARM based motherboards](docs/hardware/),
|
||||
including laptop and desktop computers. It initialises the hardware (e.g. memory
|
||||
controller, CPU, peripherals) and starts a bootloader for your operating
|
||||
system. [Linux](docs/linux/) and [BSD](docs/bsd/) are well-supported. Help is
|
||||
available via [\#libreboot](https://web.libera.chat/#libreboot)
|
||||
on [Libera](https://libera.chat/) IRC.
|
||||
system. [GNU+Linux](docs/gnulinux/) and [BSD](docs/bsd/) are well-supported.
|
||||
This project is a proof of concept, intended for re-use by the [GNU
|
||||
Boot](https://libreboot.org/news/gnuboot.html) (or *gnuboot*) project.
|
||||
|
||||
<img tabindex=1 class="r" src="https://av.libreboot.org/t500/0005.jpg" /><span class="f"><img src="https://av.libreboot.org/t500/0005.jpg" /></span>
|
||||
<img tabindex=1 class="r" src="https://avgnu.vimuser.org/t500/0005.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/t500/0005.jpg" /></span>
|
||||
|
||||
**NEW RELEASE: The latest release is Censored Libreboot c20230710, released on
|
||||
10 July 2023.
|
||||
See: [Censored Libreboot c20230710 release announcement](news/censored-libreboot20230710.md).**
|
||||
**NEW RELEASE: The latest release is nonGeNUine Boot 20230717, released on
|
||||
17 July 2023 (as *unofficial* GNU Boot, later re-branded to nonGeNUine
|
||||
Boot [on 21 July 2023](news/nongenuineboot20230717.md#update-21-july-2023)) -
|
||||
See: [nonGeNUine Boot 20230717 release announcement](news/nongenuineboot20230717.md).**
|
||||
|
||||
Why should you use *Libreboot*?
|
||||
Why should you use *nonGeNUine Boot*?
|
||||
----------------------------
|
||||
|
||||
Libreboot gives you [freedoms](https://writefreesoftware.org/) that
|
||||
nonGeNUine Boot gives you [freedoms](https://www.gnu.org/philosophy/free-sw.html) that
|
||||
you otherwise can't get with most other boot firmware, plus faster boot speeds
|
||||
and [better security](docs/linux/grub_hardening.md). It's extremely powerful
|
||||
and [better security](docs/gnulinux/grub_hardening.md). It's extremely powerful
|
||||
and [configurable](docs/maintain/) for many use cases.
|
||||
We *remove* binary blobs from coreboot and U-Boot, in line with the [GNU Free
|
||||
System Distribution Guidelines (GNU
|
||||
FSDG)](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html).
|
||||
|
||||
You have rights. The right to privacy, freedom of thought, freedom of speech
|
||||
and the right to read. In this context, Libreboot gives you these rights.
|
||||
Your freedom matters.
|
||||
*We* believe the freedom to [study, share, modify and use
|
||||
software](https://www.gnu.org/philosophy/free-sw.html), without any
|
||||
restriction, is one of the fundamental human rights that everyone must have.
|
||||
In this context, *software freedom* matters. Your freedom matters. Education
|
||||
matters.
|
||||
[Right to repair](https://yewtu.be/watch?v=Npd_xDuNi9k) matters.
|
||||
Many people use proprietary (non-libre)
|
||||
boot firmware, even if they use [a libre OS](https://www.openbsd.org/).
|
||||
boot firmware, even if they use [a libre OS](https://www.gnu.org/distros/).
|
||||
Proprietary firmware often [contains](faq.html#intel) [backdoors](faq.html#amd),
|
||||
and can be buggy. The Libreboot project was founded in December 2013, with the
|
||||
and can be buggy. The nonGeNUine Boot project was founded in July 2023, with the
|
||||
express purpose of making coreboot firmware accessible for non-technical users.
|
||||
|
||||
The Libreboot project uses [coreboot](https://www.coreboot.org/) for [hardware
|
||||
The nonGeNUine Boot project uses [coreboot](https://www.coreboot.org/) for [hardware
|
||||
initialisation](https://doc.coreboot.org/getting_started/architecture.html).
|
||||
Coreboot is notoriously difficult to install for most non-technical users; it
|
||||
handles only basic initialization and jumps to a separate
|
||||
[payload](https://doc.coreboot.org/payloads.html) program (e.g.
|
||||
[GRUB](https://www.gnu.org/software/grub/),
|
||||
[Tianocore](https://www.tianocore.org/)), which must also be configured.
|
||||
*Libreboot solves this problem*; it is a *coreboot distribution* with
|
||||
*nonGeNUine Boot solves this problem*; it is a *coreboot distribution* with
|
||||
an [automated build system](docs/build/) that builds complete *ROM images*, for
|
||||
more robust installation. Documentation is provided.
|
||||
|
||||
Libreboot is not a fork of coreboot
|
||||
nonGeNUine Boot is not a fork of coreboot
|
||||
-----------------------------------
|
||||
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://av.libreboot.org/dip8/adapter.jpg" /><span class="f"><img src="https://av.libreboot.org/dip8/adapter.jpg" /></span>
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://avgnu.vimuser.org/dip8/adapter.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/dip8/adapter.jpg" /></span>
|
||||
|
||||
In fact, Libreboot tries to stay as close to *stock* coreboot as possible,
|
||||
In fact, nonGeNUine Boot tries to stay as close to *stock* coreboot as possible,
|
||||
for each board, but with many different types of configuration provided
|
||||
automatically by the Libreboot build system.
|
||||
automatically by the nonGeNUine Boot build system.
|
||||
|
||||
In the same way that *Alpine Linux* is a *Linux distribution*, Libreboot is
|
||||
In the same way that *Trisquel GNU+Linux* is a *GNU+Linux distribution*, nonGeNUine Boot is
|
||||
a *coreboot distribution*. If you want to build a ROM image from scratch, you
|
||||
otherwise have to perform expert-level configuration of coreboot, GRUB and
|
||||
whatever other software you need, to prepare the ROM image. With *Libreboot*,
|
||||
whatever other software you need, to prepare the ROM image. With *nonGeNUine Boot*,
|
||||
you can literally download from Git or a source archive, and run `make`, and it
|
||||
will build entire ROM images. An automated build system, named `lbmk`
|
||||
(Libreboot MaKe), builds these ROM images automatically, without any user input
|
||||
will build entire ROM images. An automated build system, named `gbmk`
|
||||
(non**G**eNUine**B**oot**M**a**K**e), builds these ROM images automatically, without any user input
|
||||
or intervention required. Configuration has already been performed in advance.
|
||||
|
||||
If you were to build regular coreboot, without using Libreboot's automated
|
||||
build system, it would require a lot more intervention and decent technical
|
||||
If you were to build regular coreboot, without using an *automated* build system
|
||||
like our one, it would require a lot more intervention and decent technical
|
||||
knowledge to produce a working configuration.
|
||||
|
||||
Regular binary releases of Libreboot provide these
|
||||
Regular binary releases of nonGeNUine Boot provide these
|
||||
ROM images pre-compiled, and you can simply install them, with no special
|
||||
knowledge or skill except the ability to
|
||||
follow [simplified instructions, written for non-technical
|
||||
|
|
|
@ -1,70 +1,68 @@
|
|||
---
|
||||
title: Проект Libreboot
|
||||
title: nonGeNUine Boot
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Проект *Libreboot* надає
|
||||
[вільну](https://writefreesoftware.org/) *завантажувальну
|
||||
Проект *nonGeNUine Boot* надає
|
||||
[вільну](https://www.gnu.org/philosophy/free-sw.html) *завантажувальну
|
||||
прошивку*, яка ініціалізує апаратне забезпечення (наприклад, контролер пам'яті, ЦП,
|
||||
периферію) на [конкретних цілях Intel/AMD x86 та ARM](docs/hardware/), що
|
||||
потім розпочинає завантажувач для вашої операційної системи. [Linux](docs/linux/)
|
||||
потім розпочинає завантажувач для вашої операційної системи. [GNU+Linux](docs/gnulinux/)
|
||||
та [BSD](docs/bsd/) добре підтримуються. Це заміняє пропрієтарну BIOS/UEFI
|
||||
прошивку. Допомога доступна
|
||||
через [\#libreboot](https://web.libera.chat/#libreboot)
|
||||
на [Libera](https://libera.chat/) IRC.
|
||||
прошивку.
|
||||
|
||||
<img tabindex=1 class="r" src="https://av.libreboot.org/t500/0005.jpg" /><span class="f"><img src="https://av.libreboot.org/t500/0005.jpg" /></span>
|
||||
<img tabindex=1 class="r" src="https://avgnu.vimuser.org/t500/0005.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/t500/0005.jpg" /></span>
|
||||
|
||||
**НОВИЙ ВИПУСК: Останній випуск Censored Libreboot c20230710, випущено 10 липня 2023.
|
||||
Дивіться: [Оголошення про випуск Censored Libreboot c20230710](news/censored-libreboot20230710.md).**
|
||||
**НОВИЙ ВИПУСК: Останній випуск nonGeNUine Boot 20230717, випущено 17 липня 2023.
|
||||
Дивіться: [Оголошення про випуск nonGeNUine Boot 20230717](news/nongenuineboot20230717.md).**
|
||||
|
||||
Чому вам варто використовувати *Libreboot*?
|
||||
Чому вам варто використовувати *nonGeNUine Boot*?
|
||||
----------------------------
|
||||
|
||||
Libreboot надає вам [свободи](https://writefreesoftware.org/), які в
|
||||
nonGeNUine Boot надає вам [свободи](https://www.gnu.org/philosophy/free-sw.html), які в
|
||||
іншому випадку ви не можете отримати з більшістю інших завантажувальних
|
||||
прошивок. Він надзвичайно [потужний](docs/linux/grub_hardening.md)
|
||||
прошивок. Він надзвичайно [потужний](docs/gnulinux/grub_hardening.md)
|
||||
та [налаштовується](docs/maintain/) для багатьох випадків використання.
|
||||
|
||||
У вас є права. Право на конфіденційність, свобода мислення, свобода висловлювання
|
||||
та право читати. В цьому контексті, Libreboot надає вам ці права.
|
||||
та право читати. В цьому контексті, nonGeNUine Boot надає вам ці права.
|
||||
Ваша свобода має значення.
|
||||
[Право на ремонт](https://yewtu.be/watch?v=Npd_xDuNi9k) має значення.
|
||||
Багато людей використовують пропрієтарну (невільну)
|
||||
завантажувальну прошивку, навіть якщо вони використовують [вільну операційну систему](https://www.openbsd.org/).
|
||||
завантажувальну прошивку, навіть якщо вони використовують [вільну операційну систему](https://www.gnu.org/distros/).
|
||||
Пропрієтарна прошивка часто [містить](faq.uk.html#intel) [лазівки](faq.uk.html#amd),
|
||||
та може бути глючною. Проект Libreboot було засновано в грудні 2013 року, з
|
||||
та може бути глючною. Проект nonGeNUine Boot було засновано в July 2023 року, з
|
||||
явною метою зробити прошивку coreboot доступною для нетехнічних користувачів.
|
||||
|
||||
Проект Libreboot використовує [coreboot](https://www.coreboot.org/) для [ініціалізації апаратного забезпечення](https://doc.coreboot.org/getting_started/architecture.html).
|
||||
Проект nonGeNUine Boot використовує [coreboot](https://www.coreboot.org/) для [ініціалізації апаратного забезпечення](https://doc.coreboot.org/getting_started/architecture.html).
|
||||
Coreboot помітно складний для встановлення для більшості нетехнічних користувачів; він
|
||||
виконує тільки базову ініціалізацію та перестрибує до окремої програми
|
||||
[корисного навантаження](https://doc.coreboot.org/payloads.html) (наприклад,
|
||||
[GRUB](https://www.gnu.org/software/grub/),
|
||||
[Tianocore](https://www.tianocore.org/)), які також мають бути налаштованими.
|
||||
*Програмне забезпечення Libreboot вирішує цю проблему*; це *дистрибутив coreboot* з
|
||||
*Програмне забезпечення nonGeNUine Boot вирішує цю проблему*; це *дистрибутив coreboot* з
|
||||
[автоматизованою системою побудови](docs/build/index.uk.md), яка збирає завершені *образи ROM*, для
|
||||
більш надійної установки. Документація надається.
|
||||
|
||||
Чим Libreboot відрізняється від звичайного coreboot?
|
||||
Чим nonGeNUine Boot відрізняється від звичайного coreboot?
|
||||
---------------------------------------------
|
||||
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://av.libreboot.org/dip8/adapter.jpg" /><span class="f"><img src="https://av.libreboot.org/dip8/adapter.jpg" /></span>
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://avgnu.vimuser.org/dip8/adapter.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/dip8/adapter.jpg" /></span>
|
||||
|
||||
Таким же самим чином, як *Debian* це дистрибутив Linux, Libreboot це
|
||||
Таким же самим чином, як *Debian* це дистрибутив GNU+Linux, nonGeNUine Boot це
|
||||
*дистрибутив coreboot*. Якщо ви хочете зібрати образ ROM з нуля, вам
|
||||
інакше довелось би виконати налаштування експертного рівня coreboot, GRUB та
|
||||
будь-якого іншого потрібного програмного забезпечення, для підготування образа ROM. З *Libreboot*,
|
||||
будь-якого іншого потрібного програмного забезпечення, для підготування образа ROM. З *nonGeNUine Boot*,
|
||||
ви можете буквально завантажити з Git або архіву джерельного коду, та запустити `make`, і це
|
||||
побудує всі образи ROM. Автоматизована система побудови, названа `lbmk`
|
||||
(Libreboot MaKe), збирає ці образи ROM автоматично, без будь-якого вводу користувача
|
||||
побудує всі образи ROM. Автоматизована система побудови, названа `gbmk`
|
||||
(non**G**eNUine**B**oot**M**a**K**e), збирає ці образи ROM автоматично, без будь-якого вводу користувача
|
||||
або потрібного втручання. Налаштування вже виконано заздалегідь.
|
||||
|
||||
Якщо би ви збирали звичайний coreboot, не використовуючи автоматизовану систему побудови Libreboot,
|
||||
Якщо би ви збирали звичайний coreboot, не використовуючи автоматизовану систему побудови nonGeNUine Boot,
|
||||
це вимагало би набагато більше втручання та гідних технічних
|
||||
знань для створення робочої конфігурації.
|
||||
|
||||
Звичайні бінарні випуски Libreboot надають ці
|
||||
Звичайні бінарні випуски nonGeNUine Boot надають ці
|
||||
образи ROM попередньо зібраними, і ви можете просто встановити їх, не маючи спеціальних
|
||||
знань або навичок, окрім можливості
|
||||
слідувати [спрощеним інструкціям, написаним для нетехнічних
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
---
|
||||
title: Libreboot 项目
|
||||
title: nonGeNUine Boot
|
||||
x-toc-enable: true
|
||||
...
|
||||
|
||||
*Libreboot* 项目提供了[自由](https://writefreesoftware.org/)的*引导固件*,能够在[特定的 Intel/AMD x86 以及 ARM 目标机](docs/hardware/)上对硬件(如内存控制器、CPU、外设)进行初始化,进而为操作系统启动 bootloader。本项目对 [Linux](docs/linux/) 和 [BSD](docs/bsd/) 支持良好,并替代了专有的 BIOS/UEFI 固件。寻求帮助,可以前往 [Libera](https://libera.chat/) IRC 上的 [\#libreboot](https://web.libera.chat/#libreboot) 频道。
|
||||
*nonGeNUine Boot* 项目提供了[自由](https://www.gnu.org/philosophy/free-sw.html)的*引导固件*,能够在[特定的 Intel/AMD x86 以及 ARM 目标机](docs/hardware/)上对硬件(如内存控制器、CPU、外设)进行初始化,进而为操作系统启动 bootloader。本项目对 [GNU+Linux](docs/gnulinux/) 和 [BSD](docs/bsd/) 支持良好,并替代了专有的 BIOS/UEFI 固件。
|
||||
|
||||
<img tabindex=1 class="r" src="https://av.libreboot.org/t500/0005.jpg" /><span class="f"><img src="https://av.libreboot.org/t500/0005.jpg" /></span>
|
||||
<img tabindex=1 class="r" src="https://avgnu.vimuser.org/t500/0005.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/t500/0005.jpg" /></span>
|
||||
|
||||
**新版发布: 最新版本 Censored Libreboot c20230710 已在 2023 年 7 月 10 日发布。
|
||||
详见: [Censored Libreboot c20230710 发布公告](news/censored-libreboot20230710.md).**
|
||||
**新版发布: 最新版本 nonGeNUine Boot 20230717 已在 2023 年 7 月 17 日发布。
|
||||
详见: [nonGeNUine Boot 20230717 发布公告](news/nongenuineboot20230717.md).**
|
||||
|
||||
为什么要使用 *Libreboot*?
|
||||
为什么要使用 *nonGeNUine Boot*?
|
||||
----------------------------
|
||||
|
||||
Libreboot 赋予了你[自由](https://writefreesoftware.org/),而这等自由,是你用其他引导固件得不到的。同时,它的启动速度更加快,[安全性也更加高](docs/linux/grub_hardening.md)。在各种情况下使用,它都十分强大,具有高度[可配置性](docs/maintain/)。
|
||||
nonGeNUine Boot 赋予了你[自由](https://www.gnu.org/philosophy/free-sw.html),而这等自由,是你用其他引导固件得不到的。同时,它的启动速度更加快,[安全性也更加高](docs/gnulinux/grub_hardening.md)。在各种情况下使用,它都十分强大,具有高度[可配置性](docs/maintain/)。
|
||||
|
||||
权利在你手上。你拥有隐私权、思想自由、言论自由、阅读权。这时,Libreboot 赋予了你这些权利。你的自由是宝贵的。
|
||||
权利在你手上。你拥有隐私权、思想自由、言论自由、阅读权。这时,nonGeNUine Boot 赋予了你这些权利。你的自由是宝贵的。
|
||||
[修理权](https://yewtu.be/watch?v=Npd_xDuNi9k)是宝贵的。
|
||||
尽管许多人在用[自由的操作系统](https://www.openbsd.org/),但他们用的引导固件却是专有(非自由)的。专有固件常常[包含](faq.html#intel)了[后门](faq.html#amd),并且也可能出问题。2013 年 12 月,我们建立了 Libreboot 项目,目的是让不懂技术的用户能使用 coreboot 固件。
|
||||
尽管许多人在用[自由的操作系统](https://www.gnu.org/distros/),但他们用的引导固件却是专有(非自由)的。专有固件常常[包含](faq.html#intel)了[后门](faq.html#amd),并且也可能出问题。2023 年 7 月,我们建立了 nonGeNUine Boot 项目,目的是让不懂技术的用户能使用 coreboot 固件。
|
||||
|
||||
Libreboot 项目使用 [coreboot](https://www.coreboot.org/) 来[初始化硬件](https://doc.coreboot.org/getting_started/architecture.html)。对大部分不懂技术的用户来说,coreboot 是出了名地难安装;它只处理了基础的初始化,然后跳转进入单独的 [payload](https://doc.coreboot.org/payloads.html) 程序(例如 [GRUB](https://www.gnu.org/software/grub/)、[Tianocore](https://www.tianocore.org/)),而后者也需要进行配置。*Libreboot 解决了这样的问题*;他是一个 *coreboot 发行版*,配有[自动构建系统](docs/build/),能够构建完整的 *ROM 镜像*,从而让安装更加稳定。另有文档可参考。
|
||||
nonGeNUine Boot 项目使用 [coreboot](https://www.coreboot.org/) 来[初始化硬件](https://doc.coreboot.org/getting_started/architecture.html)。对大部分不懂技术的用户来说,coreboot 是出了名地难安装;它只处理了基础的初始化,然后跳转进入单独的 [payload](https://doc.coreboot.org/payloads.html) 程序(例如 [GRUB](https://www.gnu.org/software/grub/)、[Tianocore](https://www.tianocore.org/)),而后者也需要进行配置。*nonGeNUine Boot 解决了这样的问题*;他是一个 *coreboot 发行版*,配有[自动构建系统](docs/build/),能够构建完整的 *ROM 镜像*,从而让安装更加稳定。另有文档可参考。
|
||||
|
||||
Libreboot 不是 coreboot 的分支
|
||||
nonGeNUine Boot 不是 coreboot 的分支
|
||||
-----------------------------------
|
||||
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://av.libreboot.org/dip8/adapter.jpg" /><span class="f"><img src="https://av.libreboot.org/dip8/adapter.jpg" /></span>
|
||||
<img tabindex=1 class="l" style="max-width:15%;" src="https://avgnu.vimuser.org/dip8/adapter.jpg" /><span class="f"><img src="https://avgnu.vimuser.org/dip8/adapter.jpg" /></span>
|
||||
|
||||
事实上,Libreboot 对每一块主板,都尽可能保持与*标准*的 coreboot 接近,但 Libreboot 构建系统也自动提供了许多不同类型的配置。
|
||||
事实上,nonGeNUine Boot 对每一块主板,都尽可能保持与*标准*的 coreboot 接近,但 nonGeNUine Boot 构建系统也自动提供了许多不同类型的配置。
|
||||
|
||||
Libreboot 是一个 *coreboot 发行版*,就好比 *Alpine Linux* 是一个 *Linux 发行版*。如果你想要从零开始构建 ROM 镜像,那你需要对 coreboot、GRUB 以及其他所需软件进行专业级别的配置,才能准备好 ROM 镜像。有了 *Libreboot*,你只需要下载 Git 仓库或者源代码归档,然后运行 `make`,接着就能构建整个 ROM 镜像。一套自动构建系统,名为 `lbmk`(Libreboot Make),将自动构建 ROM 镜像,而无需任何用户输入或干预。配置已经提前完成。
|
||||
nonGeNUine Boot 是一个 *coreboot 发行版*,就好比 *Trisquel GNU+Linux* 是一个 *GNU+Linux 发行版*。如果你想要从零开始构建 ROM 镜像,那你需要对 coreboot、GRUB 以及其他所需软件进行专业级别的配置,才能准备好 ROM 镜像。有了 *nonGeNUine Boot*,你只需要下载 Git 仓库或者源代码归档,然后运行 `make`,接着就能构建整个 ROM 镜像。一套自动构建系统,名为 `gbmk`(non**G**eNUine**B**oot**M**a**K**e),将自动构建 ROM 镜像,而无需任何用户输入或干预。配置已经提前完成。
|
||||
|
||||
如果你要构建常规的 coreboot,而不使用 Libreboot 的自动构建系统,那么需要有很多的干预以及相当的技术知识,才能写出一份能工作的配置。
|
||||
如果你要构建常规的 coreboot,而不使用 nonGeNUine Boot 的自动构建系统,那么需要有很多的干预以及相当的技术知识,才能写出一份能工作的配置。
|
||||
|
||||
Libreboot 的常规二进制版本,提供了这些预编译的 ROM 镜像。你可以轻松安装它们,而无需特别的知识和技能,只要能遵循[写给非技术用户的简单指南](docs/install/)。
|
||||
nonGeNUine Boot 的常规二进制版本,提供了这些预编译的 ROM 镜像。你可以轻松安装它们,而无需特别的知识和技能,只要能遵循[写给非技术用户的简单指南](docs/install/)。
|
||||
|
|
|
@ -3,22 +3,16 @@ title: License
|
|||
x-toc-enable: true
|
||||
...
|
||||
|
||||
Unless otherwise stated, every page and image (e.g. JPG/PNG files) on
|
||||
libreboot.org or in the repository that it is built on, is released under the
|
||||
Unless otherwise stated, every page and image (e.g. JPG/PNG files) on the GNU
|
||||
Boot website or in the repository that it is built on, is released under the
|
||||
terms of the GNU Free Documentation License, either version 1.3 or (at your
|
||||
option) any newer version as published by the Free Software
|
||||
Foundation, with no Invariant Sections, no Front Cover
|
||||
Texts and no Back Cover
|
||||
Texts.
|
||||
|
||||
The *logo* for libreboot is Copyright (C) 2014 Marcus Moeller, released under
|
||||
Creative Common Zero license, version 1.0:
|
||||
<https://creativecommons.org/share-your-work/public-domain/cc0/>
|
||||
|
||||
The original logo files are here: <https://av.libreboot.org/logo/>
|
||||
|
||||
You can download the logo files from `lbwww-img.git`. See:
|
||||
<https://libreboot.org/git.html>
|
||||
You can download the logo files from `gbwww-img.git`. See:
|
||||
[git.md](git.md)
|
||||
|
||||
These pages are static HTML, generated from Markdown files, which you can find
|
||||
a link to at the bottom of each HTML page, for the corresponding Markdown file.
|
||||
|
|
|
@ -1,18 +1,5 @@
|
|||
---
|
||||
title: Libreboot logo license
|
||||
title: nonGeNUine Boot logo license
|
||||
...
|
||||
|
||||
The Libreboot logo is copyright 2014 Marcus Moeller, and it was also created by
|
||||
that person. It is released under the terms of the Creative Commons Zero
|
||||
license, version 1.0.
|
||||
|
||||
The sticker files, based on that logo, are made by Patrick McDermott in 2015,
|
||||
released under the same license.
|
||||
|
||||
A copy of this license (CC-0 1.0) can be found at:
|
||||
<https://creativecommons.org/publicdomain/zero/1.0/legalcode>
|
||||
|
||||
The font on the sticker designs is `lato`. Install this, otherwise the vectors
|
||||
won't look correct for the text.
|
||||
|
||||
You can see the logo files here: <https://av.libreboot.org/logo/>
|
||||
There is no logo at the moment.
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
title: Ліцензія на логотип Libreboot
|
||||
...
|
||||
|
||||
Логотип Libreboot захищений авторським правом у 2014 році Маркусом Моллером, його також було створено
|
||||
цією особою. Він випущений згідно з умовами Creative Commons Zero license,
|
||||
version 1.0.
|
||||
|
||||
Файли наклейок, на основі цього логотипу, створені Патріком МакДермоттом у 2015 році,
|
||||
випущені за тією ж ліцензією.
|
||||
|
||||
A copy of this license (CC-0 1.0) can be found at:
|
||||
<https://creativecommons.org/publicdomain/zero/1.0/legalcode>
|
||||
|
||||
Шрифт на дизайні стікерів `lato`. Встановіть його, інакше вектори
|
||||
не виглядатимуть правильно для тексту.
|
||||
|
||||
Ви можете переглянути файли логотипів тут: <https://av.libreboot.org/logo/>
|
|
@ -1,37 +1 @@
|
|||
censored-libreboot20230710.md
|
||||
audit.md
|
||||
e6400.md
|
||||
mirrors.md
|
||||
codeberg.md
|
||||
kgpe-d16.md
|
||||
usa-libre-part3.md
|
||||
usa-libre-part2.md
|
||||
fedfree.md
|
||||
libreboot20220710.md
|
||||
usa-libre.md
|
||||
translations.md
|
||||
libreboot20211122.md
|
||||
libreboot20210522.md
|
||||
libreboot20160907.md
|
||||
libreboot20160902.md
|
||||
libreboot20160818.md
|
||||
libreboot20150518.md
|
||||
libreboot20150208.md
|
||||
libreboot20150126.md
|
||||
libreboot20150124.md
|
||||
libreboot20141015.md
|
||||
libreboot20140911.md
|
||||
libreboot20140903.md
|
||||
libreboot20140811.md
|
||||
libreboot20140729.md
|
||||
libreboot20140720.md
|
||||
libreboot20140716.md
|
||||
libreboot20140711.md
|
||||
libreboot20140622.md
|
||||
libreboot20140611.md
|
||||
libreboot20140605.md
|
||||
libreboot20140309.md
|
||||
libreboot20140221.md
|
||||
libreboot20131214.md
|
||||
libreboot20131213.md
|
||||
libreboot20131212.md
|
||||
nongenuineboot20230717.md
|
||||
|
|
|
@ -1,354 +0,0 @@
|
|||
% Libreboot build system audit
|
||||
% Leah Rowe
|
||||
% 13 June 2023
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
In recent weeks, Libreboot's build system has gone through an intense audit and
|
||||
until recent *days* has undergone extensive testing. There are still a few more
|
||||
things to be done. The purpose of this audit has been to:
|
||||
|
||||
* Look for and fix bugs
|
||||
* Improve code quality (nicer coding style)
|
||||
* Reduce code repetition
|
||||
|
||||
This concerns only *lbmk*, the [automated build system](../docs/maintain/) that
|
||||
Libreboot uses. This is what Libreboot uses to build coreboot, payloads,
|
||||
utilities, ROM images and, ultimately, Libreboot releases, so one could argue
|
||||
that lbmk *is* Libreboot. It automatically downloads, patches, pre-configures
|
||||
and compiles everything from scratch, but in a way that is simplified from the
|
||||
perspective of the end user (almost everything is just a single command, where
|
||||
users are typically not required to edit any files unless they want to).
|
||||
|
||||
Brief summary of changes
|
||||
------------------------
|
||||
|
||||
In short, the following work has been performed:
|
||||
|
||||
* [OpenBSD coding style](https://man.openbsd.org/style.9) more rigorously
|
||||
adopted, on some C utilities included in lbmk; though this was already the
|
||||
case for some of them.
|
||||
* That same BSD coding style has been *adapted* for use with shell scripts.
|
||||
* Vastly improved error handling, on some scripts (in many cases, errors that
|
||||
were previously unhandled are now handled fully).
|
||||
|
||||
Example of build system cleanup recently performed: all scripts in the main
|
||||
directory of lbmk are now consolidated into a *single* shell script. Similar
|
||||
cleanup is underway for other parts of the build system.
|
||||
|
||||
Libreboot's build system is already very efficient. It's *only* a few thousand
|
||||
source lines (about 2200, at the last count). Libreboot's build system provides
|
||||
the minimal glue necessary to download, patch, configure and build ROM images
|
||||
for end users. The mentality behind is is that every codebase on average
|
||||
probably has the same percentage of bugs, so *less code* means less bugs, so
|
||||
*less code* is *good*. Many people ask *how* but the most important question
|
||||
is usually *why* (or *when*). Libreboot's build system tries to avoid bloat
|
||||
and *feature creep* when possible, intentionally refusing to implement certain
|
||||
features that are considered superfluous.
|
||||
|
||||
Example of BSD coding style on shell scripts
|
||||
--------------------------------------------
|
||||
|
||||
One of the most common practises in BSD style in *top-down* logic, which
|
||||
makes programs much easier to read (in my opinion). Here is an example
|
||||
of the BSD coding style in use within *lbmk*. Here is the *old* coreboot
|
||||
download script in lbmk:
|
||||
|
||||
<https://browse.libreboot.org/lbmk.git/plain/resources/scripts/download/coreboot?id=7f5dfebf7d37c56d9c7993aaa17c59070cb5aec9>
|
||||
|
||||
And here is that same script, after auditing and cleanup with the BSD style
|
||||
adapted:
|
||||
|
||||
<https://browse.libreboot.org/lbmk.git/plain/resources/scripts/download/coreboot?id=52d87f5f086041c94340d460d74d77a2253e9d7f>
|
||||
|
||||
The trick is to have a `main()` at top, and add this line at the bottom of
|
||||
the script:
|
||||
|
||||
main $@
|
||||
|
||||
This will pass all arguments on the shell, to the `main()` function. Where
|
||||
possible, only *global* variables are written outside functions, with no
|
||||
other logic written (all logic is to be written inside functions).
|
||||
|
||||
Where feasible, and desirable, this style will now be used for all new scripts
|
||||
in the Libreboot build system, with existing scripts modified accordingly. This
|
||||
and other work is ongoing.
|
||||
|
||||
Auditing of utilities
|
||||
=====================
|
||||
|
||||
This process has *also* been applied to some of the utilities (written in C)
|
||||
that Libreboot includes as part of lbmk. The following utilities have been
|
||||
audited:
|
||||
|
||||
* `spkmodem-recv` (more on this in a moment)
|
||||
* `e6400-flash-unlock` (minor cleanup, basically removing one unused function)
|
||||
* `nvmutil` (massive code size reduction, minor fixes here and there)
|
||||
|
||||
Pledge
|
||||
------
|
||||
|
||||
The `nvmutil` program was already pledged, when compiled on OpenBSD, but it was
|
||||
not handled well. It is now handled correctly (correct ifdef rule), and it
|
||||
has been *hardened* greatly.
|
||||
|
||||
The code has also been unveiled. See manpages:
|
||||
|
||||
<https://man.openbsd.org/pledge.2>
|
||||
|
||||
<https://man.openbsd.org/unveil.2>
|
||||
|
||||
spkmodem-recv
|
||||
-------------
|
||||
|
||||
This utility was *added* to the build system. It was imported from coreboot,
|
||||
which in turn previously forked it from GNU GRUB. It is a receiving client for
|
||||
spkmodem, to provide a serial console via pulses on the standard *PC speaker*.
|
||||
|
||||
Libreboot's version is *heavily* re-factored, doing away with the GNU coding
|
||||
style and replacing it with a BSD coding style (the licensing is unchanged).
|
||||
|
||||
For reference, here is the original version from GRUB:
|
||||
|
||||
<https://git.savannah.gnu.org/cgit/grub.git/plain/util/spkmodem-recv.c?id=822b726b33b8dc07dd01b257a2dfcc7b07d12e2f>
|
||||
|
||||
And here is the version coreboot had, which Libreboot forked:
|
||||
|
||||
<https://raw.githubusercontent.com/coreboot/coreboot/8febc91b3041a1d027bf0d36d30ccb119496524f/util/spkmodem_recv/spkmodem-recv.c>
|
||||
|
||||
And here is the *Libreboot* version, as of today, 13 June 2023:
|
||||
|
||||
<https://browse.libreboot.org/lbmk.git/plain/util/spkmodem_recv/spkmodem-recv.c?id=5be3d67ced51236cb4e370d8ea755d905a905e1d>
|
||||
|
||||
In addition to code style changes, certain variables are renamed for clarity,
|
||||
and certain redundant variables removed. Logic split into functions, and the
|
||||
code is conditionally *pledged* if you compile it on OpenBSD (for OpenBSD),
|
||||
see: <https://man.openbsd.org/pledge.2>
|
||||
|
||||
FULL list of changes resulting from the audit
|
||||
==============================================
|
||||
|
||||
Not all patches are listed below, if they are patches not relevant, or patches
|
||||
not currently pushed to upstream Libreboot git mirrors. The following patches
|
||||
are available, live:
|
||||
|
||||
(time references such as "36 minutes ago" are relative to ~1.30am UK time
|
||||
on 13 June 2023)
|
||||
|
||||
```
|
||||
* dee8f44b - util/spkmodem-recv: fix regression (5 days ago) <Leah Rowe>
|
||||
* f2822db9 - util/spkmodem-recv: make ringpos a global variable (7 days ago) <Leah Rowe>
|
||||
* 334bfedf - util/spkmodem-recv: simplify sample_cnt/char reset (8 days ago) <Leah Rowe>
|
||||
* 4a6b5827 - util/spkmodem-recv: print stats in other function (8 days ago) <Leah Rowe>
|
||||
* 2652a1dd - util/spkmodem-recv: only print unhandled err on -d (8 days ago) <Leah Rowe>
|
||||
* 3fb99a01 - util/spkmodem-recv: make debug a runtime option (8 days ago) <Leah Rowe>
|
||||
* 264a31b9 - util/spkmodem-recv: always disable line buffering (8 days ago) <Leah Rowe>
|
||||
* 118bb19f - util/spkmodem-recv: simplify stdout flush logic (8 days ago) <Leah Rowe>
|
||||
* af36cc7f - util/spkmodem-recv: rename variables for clarity (8 days ago) <Leah Rowe>
|
||||
* f7fccb59 - util/spkmodem-recv: split print_char() up (8 days ago) <Leah Rowe>
|
||||
* b40a30b1 - util/spkmodem-recv: reduce indent in print_char() (8 days ago) <Leah Rowe>
|
||||
* b21c1dd5 - util/spkmodem-recv: squash a few code lines (8 days ago) <Leah Rowe>
|
||||
* 3401f287 - util/spkmodem-recv: bsd-style indent (8 days ago) <Leah Rowe>
|
||||
* 2a6ad971 - util/spkmodem-recv: order prototypes per function (8 days ago) <Leah Rowe>
|
||||
* 212ce3a8 - util/spkmodem-recv: warn on unhandled exit error (8 days ago) <Leah Rowe>
|
||||
* 9a6d2908 - util/spkmodem-recv: another minor code cleanup (8 days ago) <Leah Rowe>
|
||||
* a61ab37b - util/spkmodem-recv: always set errno on err() (8 days ago) <Leah Rowe>
|
||||
* e8889fd1 - util/spkmodem-recv: minor code cleanup (8 days ago) <Leah Rowe>
|
||||
* 3c2a287e - util/spkmodem-recv: handle sample errors correctly (8 days ago) <Leah Rowe>
|
||||
* 979db74c - util/spkmodem-recv: simplify pulse check (8 days ago) <Leah Rowe>
|
||||
* 94aa43d8 - util/nvmutil: call unveil earlier, and harden (9 days ago) <Leah Rowe>
|
||||
* db63fcff - util/nvmutil: hardening: reduce pledges earlier (9 days ago) <Leah Rowe>
|
||||
* dbd6defe - util/nvmutil: fix faulty arg check (9 days ago) <Leah Rowe>
|
||||
* 270693fc - util/nvmutil: cleanup: move logic out of main() (10 days ago) <Leah Rowe>
|
||||
* 46a9eea0 - util/nvmutil: major cleanup. simpler arg handling. (10 days ago) <Leah Rowe>
|
||||
* c9fdfce3 - util/nvmutil: simplify writeGbeFile() (11 days ago) <Leah Rowe>
|
||||
* bdccd7cb - util/nvmutil: don't call writeGbeFile if O_RDONLY (11 days ago) <Leah Rowe>
|
||||
* 99258a38 - util/nvmutil: code cleanup (pledge/unveil calls) (11 days ago) <Leah Rowe>
|
||||
* 69fa333e - util/nvmutil: harden pledge/unveil calls (OpenBSD) (12 days ago) <Leah Rowe>
|
||||
* adf3aece - util/nvmutil: fix faulty fd check (12 days ago) <Leah Rowe>
|
||||
* b49da12d - util/nvmutil: only swap/copy if checksum is valid (12 days ago) <Leah Rowe>
|
||||
* 9aa34f1e - util/nvmutil: use bsd-style indentation (12 days ago) <Leah Rowe>
|
||||
* 18f39ab6 - util/nvmutil: clean up rhex() (12 days ago) <Leah Rowe>
|
||||
* 4d91bcc2 - util/nvmutil: check correct return value on close() (12 days ago) <Leah Rowe>
|
||||
* c2c31677 - util/nvmutil: massive code cleanup (12 days ago) <Leah Rowe>
|
||||
* f0846134 - util/nvmutil: move includes to nvmutil.h (12 days ago) <Leah Rowe>
|
||||
* 2dabafe6 - util/nvmutil: move xpledge/xunveil to nvmutil.h (12 days ago) <Leah Rowe>
|
||||
* 9a3e6516 - util/nvmutil: use SPDX license headers (12 days ago) <Leah Rowe>
|
||||
* 5d6af06a - util/nvmutil: move non-functions to nvmutil.h (12 days ago) <Leah Rowe>
|
||||
* a2136933 - util/nvmutil: use even more macros (code cleanup) (12 days ago) <Leah Rowe>
|
||||
* 5a9fac2a - util/nvmutil: remove unnecessary parentheses (12 days ago) <Leah Rowe>
|
||||
* 6885200c - util/nvmutil: simplify setWord() with word() macro (12 days ago) <Leah Rowe>
|
||||
* 7ab209d5 - util/nvmutil: do xor swap in a macro (12 days ago) <Leah Rowe>
|
||||
* 293ca0fc - util/nvmutil pledge,unveil: use correct err string (12 days ago) <Leah Rowe>
|
||||
* a1df8fd1 - util/nvmutil: ensure that errno is set on err() (12 days ago) <Leah Rowe>
|
||||
* 1f548604 - util/nvmutil: minor code cleanup (12 days ago) <Leah Rowe>
|
||||
* 8f1e6d79 - util/nvmutil: simplified error handling in main (13 days ago) <Leah Rowe>
|
||||
* 78fc8935 - util/nvmutil: Use unveil, and harden pledges (13 days ago) <Leah Rowe>
|
||||
* c2cd1916 - util/nvmutil: Harden pledge promises (13 days ago) <Leah Rowe>
|
||||
* c759a7a0 - util/nvmutil: Simplify use of pledge (on OpenBSD) (13 days ago) <Leah Rowe>
|
||||
* f37bd759 - util/nvmutil: Use correct pledge promise (OpenBSD) (13 days ago) <Leah Rowe>
|
||||
* 83ecf268 - util/*: Properly detect OpenBSD for pledge() call (13 days ago) <Leah Rowe>
|
||||
* 8df2f809 - util/e6400-flash-unlock: clean up commented code (2 weeks ago) <Leah Rowe>
|
||||
* ff954c5b - unify download/build scripts (2 weeks ago) <Leah Rowe>
|
||||
* 092600d1 - unify these scripts: build, modify and update (2 weeks ago) <Leah Rowe>
|
||||
* 6344b196 - build/payload/seabios: reduced indentation (2 weeks ago) <Leah Rowe>
|
||||
* 2be1a8ea - download/coreboot: fix error handling in subshell (3 weeks ago) <Leah Rowe>
|
||||
* d0171eef - download/coreboot: don't needlessly re-download (3 weeks ago) <Leah Rowe>
|
||||
* c616930b - download/coreboot: remove unnecessary bloat (3 weeks ago) <Leah Rowe>
|
||||
* d1935c05 - build/clean/u-boot: remove unnecesssary check (3 weeks ago) <Leah Rowe>
|
||||
* 676efbb0 - build/clean/u-boot: improved coding style (3 weeks ago) <Leah Rowe>
|
||||
* 06a92f61 - build/clean/ich9utils: don't use subshell (3 weeks ago) <Leah Rowe>
|
||||
* 43e2dfe2 - build/u-boot: top-down, split-function code style (3 weeks ago) <Leah Rowe>
|
||||
* a8f0721a - build/payload/u-boot: 79 chars or less per line (3 weeks ago) <Leah Rowe>
|
||||
* 89ac1ea5 - build/payload/u-boot: fix wrong attributions (3 weeks ago) <Leah Rowe>
|
||||
* c973b959 - build/payload/grub: rename functions for clarity (3 weeks ago) <Leah Rowe>
|
||||
* 51e0e401 - build/payload/grub: remove unnecessary check (3 weeks ago) <Leah Rowe>
|
||||
* 8e206be7 - build/payload/grub: split logic into functions (3 weeks ago) <Leah Rowe>
|
||||
* db7e8161 - build/payload/grub: 79 chars or less per line (3 weeks ago) <Leah Rowe>
|
||||
* 92bd18c4 - build/release/roms: minor cleanup (3 weeks ago) <Leah Rowe>
|
||||
* ec3d1006 - build/release/roms: handle argument properly (3 weeks ago) <Leah Rowe>
|
||||
* e0b97660 - build/release/roms: remove superfluous comments (3 weeks ago) <Leah Rowe>
|
||||
* 681538a2 - build/release/roms: handle errors inside subshell (3 weeks ago) <Leah Rowe>
|
||||
* a9bd5442 - build/release/roms: split logic into functions (3 weeks ago) <Leah Rowe>
|
||||
* 29833090 - build/release/roms: use tabs for indentation (3 weeks ago) <Leah Rowe>
|
||||
* fff5fa53 - build/release/src: 79 chars or less per code line (3 weeks ago) <Leah Rowe>
|
||||
* 1cdf1c7c - build/release/src: handle errors in subshells (3 weeks ago) <Leah Rowe>
|
||||
* 16f878e8 - build/release/src: split logic into functions (3 weeks ago) <Leah Rowe>
|
||||
* 4e2ee58a - build/ich9utils: simplify, fix error handling (3 weeks ago) <Leah Rowe>
|
||||
* 93ec91e8 - build/memtest86plus: use tabs for indentation (3 weeks ago) <Leah Rowe>
|
||||
* 4b80f250 - build/clean/crossgcc: better code style (3 weeks ago) <Leah Rowe>
|
||||
* 187d5fa4 - build/descriptors: simplify and fix error handling (3 weeks ago) <Leah Rowe>
|
||||
* a05be169 - build/grub: fix inconsistent indentation (3 weeks ago) <Leah Rowe>
|
||||
* 02919c47 - build/grub: implement error handling (3 weeks ago) <Leah Rowe>
|
||||
* 5bab3bbc - build/grub: introduce main(), split it up (3 weeks ago) <Leah Rowe>
|
||||
* 277e1df0 - build/cbutils: remove unnecessary directory check (3 weeks ago) <Leah Rowe>
|
||||
* ed9eb462 - build/cbutils: rename function for clarity (3 weeks ago) <Leah Rowe>
|
||||
* b12dced4 - build/cbutil: avoid frivilous use of subshells (3 weeks ago) <Leah Rowe>
|
||||
* 355a45b4 - build/cbutils: top-down coding style, main on top (3 weeks ago) <Leah Rowe>
|
||||
* 9f58d4e4 - build/cbutils: 79 chars or less per line (3 weeks ago) <Leah Rowe>
|
||||
* 691f2664 - build/cbutils: use tabs for indendation (3 weeks ago) <Leah Rowe>
|
||||
* 3cbcfce9 - gitclone: add my copyright for recent changes (4 weeks ago) <Leah Rowe>
|
||||
* 01a2ab37 - use env in shell scripts (4 weeks ago) <Leah Rowe>
|
||||
* 1e8f2cc1 - gitclone: only rm the old directory at the end (4 weeks ago) <Leah Rowe>
|
||||
* 3da8d20c - gitclone: stricter error handling (4 weeks ago) <Leah Rowe>
|
||||
* e8048494 - gitclone: minor cleanup (4 weeks ago) <Leah Rowe>
|
||||
* fd2ca12e - gitclone: split logic out of main() (4 weeks ago) <Leah Rowe>
|
||||
* 08ad9eb1 - download/coreboot: minor cleanup (4 weeks ago) <Leah Rowe>
|
||||
* 8d9570b6 - gitclone: cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* 9fb489ac - modify: clean up duplicated code (4 weeks ago) <Leah Rowe>
|
||||
* f7f3aef1 - modify: cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* 34df727c - build: cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* 1a062bb6 - build: reduce code to less than 80 chars per line (4 weeks ago) <Leah Rowe>
|
||||
* c08e3258 - .gitcheck: exit 1 if unsupported argument given (4 weeks ago) <Leah Rowe>
|
||||
* c5122557 - .gitcheck: use subshells where appropriate (4 weeks ago) <Leah Rowe>
|
||||
* dd8fb524 - .gitcheck: re-add redirection to /dev/null (4 weeks ago) <Leah Rowe>
|
||||
* 82c4d7b2 - .gitcheck clean: clean coreboot directories too (4 weeks ago) <Leah Rowe>
|
||||
* 0f3c3ca6 - .gitcheck: reduce indentation level for loop (4 weeks ago) <Leah Rowe>
|
||||
* ecd7f1d1 - .gitcheck: move logic out of main() (4 weeks ago) <Leah Rowe>
|
||||
* 829bc02b - .gitcheck: *actually* check coreboot directories (4 weeks ago) <Leah Rowe>
|
||||
* 52bc07bc - .gitcheck: improved coding style (4 weeks ago) <Leah Rowe>
|
||||
* 83235fb9 - .gitcheck: check argv when running gitcheck-clean (4 weeks ago) <Leah Rowe>
|
||||
* 6ce77652 - .gitcheck: actually *run* gitcheck-clean (4 weeks ago) <Leah Rowe>
|
||||
* 8782bff8 - download: code cleanup (4 weeks ago) <Leah Rowe>
|
||||
* a232f9c5 - download: check for non-existent script in loop (4 weeks ago) <Leah Rowe>
|
||||
* b4f1804e - download script: bugfix: gitcheck clean didn't run (4 weeks ago) <Leah Rowe>
|
||||
* 62c88dfb - download script: improved coding style (4 weeks ago) <Leah Rowe>
|
||||
* 5b594909 - util/spkmodem_recv: Use pledge but only on OpenBSD (4 weeks ago) <Leah Rowe>
|
||||
* 25241ae2 - util/spkmodem_recv: Add -u flag (no line buffer) (4 weeks ago) <Leah Rowe>
|
||||
* 01fdfa3a - util/spkmodem_recv: Tidy up global variables (4 weeks ago) <Leah Rowe>
|
||||
* 50b35939 - util/spkmodem_recv: Make pulse variable global (4 weeks ago) <Leah Rowe>
|
||||
* 14190de9 - util/spkmodem_recv: Use parentheses on comparisons (4 weeks ago) <Leah Rowe>
|
||||
* c0f2bf30 - util/spkmodem_recv: Move global variable: pulse (4 weeks ago) <Leah Rowe>
|
||||
* 5d03598b - util/spkmodem_recv: Purge unused global: amplitude (4 weeks ago) <Leah Rowe>
|
||||
* 63e43819 - util/spkmodem_recv: Remove unused variable: pos (4 weeks ago) <Leah Rowe>
|
||||
* a0abcb9f - util/spkmodem_recv: Re-order functions for clarity (4 weeks ago) <Leah Rowe>
|
||||
* 93cc6642 - util/spkmodem_recv: Handle output in new function (4 weeks ago) <Leah Rowe>
|
||||
* 27866e65 - util/spkmodem_recv: Re-order prototypes (4 weeks ago) <Leah Rowe>
|
||||
* 8b851258 - util/spkmodem_recv: Rename functions for clarity (4 weeks ago) <Leah Rowe>
|
||||
* 6c1bf756 - util/spkmodem_recv: Return errno in main (4 weeks ago) <Leah Rowe>
|
||||
* c23806e1 - util/spkmodem_recv: Use correct printf specifier (4 weeks ago) <Leah Rowe>
|
||||
* 0cc23b23 - util/spkmodem_recv: Add error handling (4 weeks ago) <Leah Rowe>
|
||||
* 17932381 - util/spkmodem_recv: Move logic out of main (4 weeks ago) <Leah Rowe>
|
||||
* 3d554294 - util/spkmodem_recv: Rename variable for clarity (4 weeks ago) <Leah Rowe>
|
||||
* 697ae5e2 - util/spkmodem_recv: Remove use of static keyword (4 weeks ago) <Leah Rowe>
|
||||
* 2c12e70c - util/spkmodem_recv: Rename variable for clarity (4 weeks ago) <Leah Rowe>
|
||||
* 5b6f5cb0 - util/spkmodem_recv: Remove space in function calls (4 weeks ago) <Leah Rowe>
|
||||
* abc5cfd3 - util/spkmodem_recv: Say frame in English (4 weeks ago) <Leah Rowe>
|
||||
* e2864704 - util/spkmodem_recv: Top-down logic (main on top) (4 weeks ago) <Leah Rowe>
|
||||
* 3722c1e6 - util/spkmodem_recv: simplified pulse check (4 weeks ago) <Leah Rowe>
|
||||
* 88683b76 - util/spkmodem_recv: Define argc/argv in main (4 weeks ago) <Leah Rowe>
|
||||
* 83b34e2f - util/spkmodem_recv: Reduced indentation in loop (4 weeks ago) <Leah Rowe>
|
||||
* 22633e0d - util/spkmodem_recv: Use tabs for indentation (4 weeks ago) <Leah Rowe>
|
||||
* 9152d0f9 - util/spkmodem_recv: Add clean to the Makefile (4 weeks ago) <Leah Rowe>
|
||||
* 754410f2 - util/spkmodem_recv: Define CC in the Makefile (4 weeks ago) <Leah Rowe>
|
||||
* f2887e9b - util/spkmodem_recv: Add strict CFLAGS (4 weeks ago) <Leah Rowe>
|
||||
* b496ead7 - util/spkmodem_recv: Import from coreboot (4 weeks ago) <Leah Rowe>
|
||||
* 52d87f5f - download/coreboot: minor code cleanup (4 weeks ago) <Leah Rowe>
|
||||
* 7bd206b9 - download/coreboot: remove errant code (4 weeks ago) <Leah Rowe>
|
||||
* bd82d90f - download/coreboot: tidy up variable names (4 weeks ago) <Leah Rowe>
|
||||
* 66d06afd - download/coreboot: run extra.sh from cbtree (4 weeks ago) <Leah Rowe>
|
||||
* c4b0825c - download/coreboot: avoid variable conflict (4 weeks ago) <Leah Rowe>
|
||||
* 0e1e9c17 - download/coreboot: fix downloads without argument (4 weeks ago) <Leah Rowe>
|
||||
* bea67353 - download/coreboot: much cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* 2d69072a - download/coreboot: clone upstream via ./gitclone (4 weeks ago) <Leah Rowe>
|
||||
* c17423e4 - download/coreboot: simplify check (4 weeks ago) <Leah Rowe>
|
||||
* 00cafd70 - download/coreboot: fix misnamed function (4 weeks ago) <Leah Rowe>
|
||||
* 86512e84 - download/coreboot: simplify small if statements (4 weeks ago) <Leah Rowe>
|
||||
* d28584f3 - download/coreboot: fetch config in new function (4 weeks ago) <Leah Rowe>
|
||||
* 162f4bf5 - download/coreboot: use global variables (4 weeks ago) <Leah Rowe>
|
||||
* 56b80c0a - download/coreboot: rename function for clarity (4 weeks ago) <Leah Rowe>
|
||||
* ee79d8ba - download/coreboot: reduce indentation in loop (4 weeks ago) <Leah Rowe>
|
||||
* f858baea - download/coreboot allow downloading specific trees (4 weeks ago) <Leah Rowe>
|
||||
* a33e5c67 - download/coreboot: split config check to function (4 weeks ago) <Leah Rowe>
|
||||
* 62038f1d - download/coreboot: fix misnamed variable (4 weeks ago) <Leah Rowe>
|
||||
* 342e846f - download/coreboot: consistent function declaration (4 weeks ago) <Leah Rowe>
|
||||
* c32ae597 - download/coreboot: rename function for clarity (4 weeks ago) <Leah Rowe>
|
||||
* e47aaa8f - download/coreboot: prune errant comments (4 weeks ago) <Leah Rowe>
|
||||
* 31d8fcd3 - download/coreboot: split main() (4 weeks ago) <Leah Rowe>
|
||||
* 4c2cff5e - download/coreboot functions: rename board variable (4 weeks ago) <Leah Rowe>
|
||||
* 7a6f40fc - download/coreboot: top-down re-ordering (4 weeks ago) <Leah Rowe>
|
||||
* fd8b8084 - download/coreboot: simplified for loops (4 weeks ago) <Leah Rowe>
|
||||
* b24fbc74 - download/coreboot: move initial logic to main() (4 weeks ago) <Leah Rowe>
|
||||
* 2871db15 - download/coreboot: RFC 2646 compliance (4 weeks ago) <Leah Rowe>
|
||||
* 8b4c1c16 - download/coreboot: consistent tab indentation (4 weeks ago) <Leah Rowe>
|
||||
* 1388cccb - build/seabios: cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* ddad8f00 - build/seabios: simplify. stricter error handling (4 weeks ago) <Leah Rowe>
|
||||
* 557272fa - download/mrc: stricter error handling (4 weeks ago) <Leah Rowe>
|
||||
* 7b36ffc1 - download/mrc: handle exit status within subshell (4 weeks ago) <Leah Rowe>
|
||||
* 963b5247 - download/mrc: use cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* d89585fb - gitclone: check for invalid patch filename (4 weeks ago) <Leah Rowe>
|
||||
* db3c1d9c - download/grub: delete grub if gnulib cloning fails (4 weeks ago) <Leah Rowe>
|
||||
* d90dfb0a - build/dependencies/*: RFC 2646 compliance (4 weeks ago) <Leah Rowe>
|
||||
* 48bda9e0 - update/coreboot: top-down coding style (4 weeks ago) <Leah Rowe>
|
||||
* 17429788 - remove errant code lines from last commit (4 weeks ago) <Leah Rowe>
|
||||
* fdc9e444 - Remove warning for coreboot images build without a payload (4 weeks ago) <Nicholas Chin>
|
||||
* f2e31767 - modify/u-boot: cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* 71cac866 - modify/coreboot: cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* 174d3af7 - modify/seabios: cleaner coding style (4 weeks ago) <Leah Rowe>
|
||||
* c8dfc3cc - build/build/roms: simplify mkCoreboot() arguments (4 weeks ago) <Leah Rowe>
|
||||
* d8a8a1c6 - build/boot/roms: don't use subshells frivilously (4 weeks ago) <Leah Rowe>
|
||||
* 834be77c - build/boot/roms: remove errant debug line (4 weeks ago) <Leah Rowe>
|
||||
* 39c14398 - build/boot/roms: simplify build_rom_images() (4 weeks ago) <Leah Rowe>
|
||||
* 65dfdd56 - build/boot/roms: use fast dd command for ich9m ifd (4 weeks ago) <Leah Rowe>
|
||||
* 6a4ce66f - build/boot/roms: don't run ich9gen twice (4 weeks ago) <Leah Rowe>
|
||||
* 1e9ed989 - build/boot/roms: simplify moverom() (4 weeks ago) <Leah Rowe>
|
||||
* 5811e53e - build/boot/roms: remove unused legacy code (4 weeks ago) <Leah Rowe>
|
||||
* 3bd82b76 - build/boot/roms: reduced code indentation (4 weeks ago) <Leah Rowe>
|
||||
* 9eee0fb4 - build/boot/roms: split main() to topdown functions (4 weeks ago) <Leah Rowe>
|
||||
* bceb5f2e - build/roms_helper: move logic into main() (4 weeks ago) <Leah Rowe>
|
||||
* df611f9b - remove ga-g41m-es2l board for now (5 weeks ago) <Leah Rowe>
|
||||
* 3da0ee4f - remove python3 patches (5 weeks ago) <Leah Rowe>
|
||||
* 6290f999 - build/boot/roms_helper: further cleanup (5 weeks ago) <Leah Rowe>
|
||||
* 722c844e - build/boot/roms: top-down function order (5 weeks ago) <Leah Rowe>
|
||||
* 5f44556f - build/roms: general code style cleanup (5 weeks ago) <Leah Rowe>
|
||||
* d521fca7 - build/roms: fix faulty keymap list expansion (5 weeks ago) <Leah Rowe>
|
||||
* 67a607b8 - build/boot/roms*: RFC 2646 compliance (5 weeks ago) <Leah Rowe>
|
||||
* 79939f2f - Add devicetree patch for E6400 with Nvidia GPU (5 weeks ago) <Nicholas Chin>
|
||||
* 3f1ee015 - seabios: do normal config, disable oprom in vgarom (5 weeks ago) <Leah Rowe>
|
||||
* ee46c042 - update the makefile (5 weeks ago) <Leah Rowe>
|
||||
* f5150f26 - remove e6400_8mb and e6400_16mb (keep e6400_4mb) (5 weeks ago) <Leah Rowe>
|
||||
* f820e304 - add e6400_flash_unlock binary to .gitignore (5 weeks ago) <Leah Rowe>
|
||||
* f49eccee - util/e6400-flash-unlock: do void on ec_fdo_command (6 weeks ago) <Leah Rowe>
|
||||
* 6588be67 - don't force console mode in grub (7 weeks ago) <Leah Rowe>
|
||||
```
|
|
@ -1,99 +0,0 @@
|
|||
% Libreboot Git repositories now on Codeberg (RIP Notabug)
|
||||
% Leah Rowe
|
||||
% 8 April 2023
|
||||
|
||||
RIP Notabug
|
||||
===========
|
||||
|
||||
Git repositories provided by Libreboot are still available via Notabug, but
|
||||
the Notabug site has been quite unreliable for some time now. I notice it
|
||||
mostly in the evenings, when more people are likely using it. Essentially, the
|
||||
service is overloaded all the time and this results in regular HTTP 500 errors,
|
||||
causing pull requests, git clone, issue reports and other things to go
|
||||
offline at random times.
|
||||
|
||||
I kept Libreboot on Notabug for as long as possible, because I hoped that the
|
||||
admin (single) would fix issues, but I can't keep waiting.
|
||||
|
||||
Libreboot was originally a member of the Peers Community, which hosts Notabug.
|
||||
So I had an affinity for Notabug.
|
||||
|
||||
Libreboot repos now hosted by Codeberg
|
||||
--------------------------------------
|
||||
|
||||
I've decided to set up an account on Codeberg. You can find it here:
|
||||
|
||||
* <https://codeberg.org/libreboot>
|
||||
|
||||
On this day, 8 April 2023, the following repositories are available via
|
||||
Codeberg:
|
||||
|
||||
* Build system: <https://codeberg.org/libreboot/lbmk>
|
||||
* Website (markdown files): <https://codeberg.org/libreboot/lbwww>
|
||||
* Images (av.libreboot.org): <https://codeberg.org/libreboot/lbwww-img>
|
||||
|
||||
The `ich9utils` repository is now part of lbmk,
|
||||
under `util/ich9utils`, so the ich9utils repository was not
|
||||
needed on Codeberg (it still exists on Notabug). I'll add bucts
|
||||
to Libreboot's lbmk repo too (under `util/bucts/`).
|
||||
|
||||
Codeberg has nicer features
|
||||
---------------------------
|
||||
|
||||
Codeberg runs on forgejo, itself a fork of Gitea, which *itself* is a fork
|
||||
of Gogs. *Notabug* runs on an older, modified version of Gogs, which lacks a
|
||||
lot of nicer features like issue search.
|
||||
|
||||
Codeberg's forgejo instance has issue search, and it has a nice CI built in,
|
||||
namely *woodpecker*. All of this and more could be useful to Libreboot, and
|
||||
is being looked into.
|
||||
|
||||
The interface is virtually identical to that of Notabug, since it's based
|
||||
upon the same original codebase. Links on libreboot.org have been updated.
|
||||
You can send issue reports and pull requests in much the same way as before,
|
||||
but you will need to make a new account on codeberg.org if you don't already
|
||||
have one.
|
||||
|
||||
Notabug still available
|
||||
-----------------------
|
||||
|
||||
The notabug repositories are *still* available, and I'll still push new code
|
||||
to them. I push to several repositories, not just codeberg/notabug, but those
|
||||
are the ones that I openly advertise.
|
||||
|
||||
Notabug is *usually* available, but it is often overloaded in the evenings,
|
||||
so it's no longer viable for production use, but it's still viable as a backup.
|
||||
If codeberg is ever down, at least you'd be able to download from Notabug.
|
||||
|
||||
Why not self-host?
|
||||
==================
|
||||
|
||||
Forgejo, based on Gitea, is what runs on Codeberg. They host the project, on
|
||||
behalf of the developers. Forgejo is working on federating the git forge, so
|
||||
that mastodon-like features are available (pull requests, issues and such).
|
||||
|
||||
Until federated collaboration is possible in Git (via the web), it's simply
|
||||
not viable for a small project like Libreboot to provide a self-hosted
|
||||
instance, because it would mean that people have to make an account on the
|
||||
site *just* for Libreboot. This seems unreasonable as a request. Lots of
|
||||
people are on codeberg, and already have accounts.
|
||||
|
||||
Codeberg is run by a non-profit organisation that seems pretty solid, with
|
||||
donations infrastructure too, so they'll probably always have the resources
|
||||
to manage the service effectively.
|
||||
|
||||
When federation becomes available, I assume Codeberg's forgejo instance will
|
||||
become part of that, so it just makes practical sense for Libreboot to
|
||||
use Codeberg.
|
||||
|
||||
Why not sourcehut?
|
||||
------------------
|
||||
|
||||
I considered sourcehut. I like the concept of it (mailing lists made easier,
|
||||
email-based collaboration) but I don't think most people will want to use that.
|
||||
|
||||
Forgejo provides a web-based interface in a style that most people are used to.
|
||||
|
||||
Libreboot is *not* hosted on sourcehut, officially, in any capacity.
|
||||
|
||||
That is all.
|
|
@ -1,75 +0,0 @@
|
|||
% Dell Latitude E6400 added (blob-free, no disassembly)
|
||||
% Leah Rowe
|
||||
% 19 April 2023
|
||||
|
||||
NOTE: This pertains to the Intel GPU variant. Nvidia GPU variants are
|
||||
unsupported, for this class of machine.
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Today, Libreboot gained the Dell Latitude E6400 laptop port. This is a
|
||||
blob-less port, courtesy of Nicholas Chin (`nic3-14159` on Libreboot IRC).
|
||||
Nicholas has worked extensively on this port, for several years, and it's in
|
||||
a ready state for entry to Libreboot.
|
||||
|
||||
The hardware platform is GM45, similar to ThinkPad X200, T400 and so on that
|
||||
Libreboot already supports.
|
||||
|
||||
You can learn more on the E6400 [installation page](../docs/install/e6400.md)
|
||||
and the [hardware info page](../docs/hardware/e6400.md).
|
||||
|
||||
100% libre, blob-free
|
||||
---------------------
|
||||
|
||||
This is a *blob-free* board in the boot flash. No Intel ME firmware needed,
|
||||
and it boots without CPU microcode.
|
||||
|
||||
*But wait.* There's more. A lot more of *them*, that is.
|
||||
|
||||
Readily available on eBay etc, and cheap
|
||||
-----------------------------
|
||||
|
||||
Dells were much more popular than those ThinkPads, and more commonly used,
|
||||
so there are still *several* of these available on sites like eBay. Enough to
|
||||
keep people with an affinity for GM45 machines happy for a while longer (older
|
||||
GM45 ThinkPad X200, T400 etc are very hard to find nowadays).
|
||||
|
||||
This could very well replace X200, T400 etc, in terms of what certain people
|
||||
want to use - nice enough screen/keyboard, and easy of installation just makes
|
||||
this a very nice machine indeed.
|
||||
|
||||
But wait.... It gets better:
|
||||
|
||||
Software flashing possible! (no disassembly)
|
||||
---------------------------
|
||||
|
||||
tl;dr Nicholas is a genius, but he spent time studying the board, finding that
|
||||
the EC is hooked up to GPIO33 which allows for flash descriptor override. He
|
||||
successfully reverse engineered a command that can be used to disable IFD
|
||||
protections, and discovered that the SMM BIOS lock protection could be
|
||||
bypassed, allowing installation of Libreboot.
|
||||
|
||||
This is without needing to disassemble. No clip required.
|
||||
|
||||
**That is to say, you can install Libreboot on this board without
|
||||
taking it apart, and you can install it easily within 5 minutes.**
|
||||
|
||||
This is done with the following utility from Nicholas Chin, which I merged
|
||||
into lbmk:
|
||||
|
||||
<https://browse.libreboot.org/lbmk.git/tree/util/e6400-flash-unlock>
|
||||
|
||||
The original util, before Nicholas sent it to lbmk, is here (same util):
|
||||
|
||||
<https://gitlab.com/nic3-14159/e6400-flash-unlock/-/commits/base>
|
||||
|
||||
It merges some code changes that I made myself, after Nicholas published it,
|
||||
tidying up the code a bit (OpenBSD-like coding style adopted, for fun). See:
|
||||
|
||||
<https://codeberg.org/vimuser/e6400-flash-unlock/commits/branch/puffy>
|
||||
|
||||
Libreboot users should use the one in `util/` on Libreboot proper.
|
||||
|
||||
|
||||
That is all! Read the manuals to know more about this machine. Thank you!
|
|
@ -1,72 +0,0 @@
|
|||
% Dell Latitude E6400 додано (вільна від блобів конфігурація)
|
||||
% Лія Роу
|
||||
% 19 квітня 2023 року
|
||||
|
||||
Вступ
|
||||
============
|
||||
|
||||
Сьогодні, Libreboot отримав порт ноутбука Dell Latitude E6400. Цей порт
|
||||
є вільним від блобів, увічливість Ніколаса Чін (`nic3-14159` на Libreboot IRC).
|
||||
Ніколас працював розгорнуто над цим портом, протягом декількох років, і він в
|
||||
готовому стані для вступу до Libreboot.
|
||||
|
||||
Платформа апаратного забезпечення GM45, схоже на ThinkPad X200, T400 і так далі,
|
||||
що Libreboot вже підтримує.
|
||||
|
||||
Ви можете вивчити більше на [сторінці встановлення](../docs/install/e6400.md)
|
||||
E6400 та [сторінці інформації про апаратне забезпечення](../docs/hardware/e6400.md).
|
||||
|
||||
вільна від блобів конфігурація
|
||||
------------------------------
|
||||
|
||||
Це є *вільною від блобів* платою в завантажувальній флеш-пам'яті. Прошивка Intel ME
|
||||
не потрібна, та [мікрокод може бути видалено, якщо ви бажаєте].
|
||||
|
||||
*Але почекайте.* Є більше. Набагато більше *цього*, так ось.
|
||||
|
||||
Доступно на eBay і так далі, а також дешево
|
||||
-----------------------------
|
||||
|
||||
Dell були набагато більш популярні, ніж ті ThinkPad, та більш звичайно
|
||||
використовувались, тому існує досі *багато* цих в доступності на сайтах, подібних
|
||||
eBay. Достатньо, щоб тримати людей з симпатією до машин GM45 щасливими дещо довше
|
||||
(старіші GM45 ThinkPad X200, T400 і так далі є дуже складними для пошуку в ці дні).
|
||||
|
||||
Це могло би дуже добре замінити X200, T400 і так далі, стосовно того, що
|
||||
деякі люди хочуть використовувати - досить добрий екран/клавіатура, та легке
|
||||
встановлення просто робить це дуже доброю машиною звісно.
|
||||
|
||||
Але почекайте.... Стає ще краще:
|
||||
|
||||
Прошивка програмним забезпеченням можлива! (без розбору)
|
||||
---------------------------
|
||||
|
||||
tl;dr Ніколас геній, але він витратив час, вивчаючи плату, шукаючи, що
|
||||
EC з'єднана з GPIO33, що дозволяє пройти через flash descriptor. Він
|
||||
успішно провів зворотню розробку команди, яка може бути використана для вимкнення
|
||||
захистів, дозволяючи встановлення Libreboot.
|
||||
|
||||
Це без потреби розбирати. Кліпса не потрібна.
|
||||
|
||||
**Це означає, що ви можете встановити Libreboot на цій платі без
|
||||
розбору на запчастини, і ви можете встановити його легко протягом 5 хвилин.**
|
||||
|
||||
Це робиться з наступною утилітою від Ніколаса Чін, яку я злила
|
||||
в lbmk:
|
||||
|
||||
<https://browse.libreboot.org/lbmk.git/tree/util/e6400-flash-unlock>
|
||||
|
||||
Оригінальна утиліта, перед тим, як Ніколас відправив її в lbmk, тут (та сама утиліта):
|
||||
|
||||
<https://gitlab.com/nic3-14159/e6400-flash-unlock/-/commits/base>
|
||||
|
||||
Це поглинає деякі кодові зміни, які я зробила самостійно, після того, як Ніколас
|
||||
опублікував її, наводячи порядок в коді трохи (OpenBSD-подібний стиль коду взято,
|
||||
заради веселощів). Дивіться:
|
||||
|
||||
<https://codeberg.org/vimuser/e6400-flash-unlock/commits/branch/puffy>
|
||||
|
||||
Користувачам Libreboot варто використовувати той, що в `util/` на власне Libreboot.
|
||||
|
||||
|
||||
Це все! Читайте керівництва, щоб дізнатись більше про цю машину. Дякую!
|
|
@ -1,44 +0,0 @@
|
|||
% How libreboot.org is hosted
|
||||
% Leah Rowe
|
||||
% 8 January 2023
|
||||
|
||||
I've recently started a new project, which I call the *Federation of Freedom*.
|
||||
It is a website that teaches people how to self-host their own servers on the
|
||||
internet, on all libre software. You could actually do it all on Libreboot
|
||||
hardware.
|
||||
|
||||
When I say recently, I mean it; Fedfree launched on 25 December 2022. Today
|
||||
is 8 January 2023. Thus, Fedfree is just about two weeks old, on this day.
|
||||
|
||||
**This is the website: [fedfree.org](https://fedfree.org/)**
|
||||
|
||||
I'm basically starting out with it, documenting each part of libreboot.org in
|
||||
terms of hosting, but it will later expand. On that first part, it's still not
|
||||
complete; it lacks a mail server guide (libreboot.org has mail), rsync
|
||||
guide (ditto) and cgit guide (ditto) - I'm planning to host
|
||||
a [forgejo instance](https://forgejo.org/) for git, and that'll be yet
|
||||
another guide for Fedfree.
|
||||
|
||||
The guides it does currently have are:
|
||||
|
||||
* [L2TP tunnel router, with redundant
|
||||
routing](https://fedfree.org/docs/router/debian-l2tp-aaisp.html)
|
||||
* [Nginx web server on Debian with LetsEncrypt HTTPS and
|
||||
Certbot](https://fedfree.org/docs/http/debian-nginx.html)
|
||||
* [BIND9 authoritative name
|
||||
server](https://fedfree.org/docs/dns/debian-bind.html)
|
||||
|
||||
The setups described in those guides is exactly how libreboot.org is hosted,
|
||||
for the types of services described.
|
||||
|
||||
Help is greatly appreciated, if people want to submit their own guides. The
|
||||
basic premise behind it is this: hardware and software freedom are all well and
|
||||
good, but most people with good ideas don't know how to do hosting, so they
|
||||
default to using proprietary services like GitHub. I want to change that!
|
||||
|
||||
Basically, I want every website on the internet to be hosted in someone's
|
||||
living room. I'm only half-joking when I say that. That is literally how
|
||||
libreboot.org was hosted, for many years; the setup is still self-hosted, but
|
||||
it's not currently hosted in a *living room*.
|
||||
|
||||
More information is available on the [Fedfree website](https://fedfree.org/)
|
|
@ -1,59 +0,0 @@
|
|||
% ASUS KGPE-D16 hardware donation needed
|
||||
% Leah Rowe
|
||||
% 30 March 2023
|
||||
|
||||
**UPDATE: As of 25 April 2023, I've now ordered one myself. The issue was
|
||||
finding one with a decent cooler, which is rare, but I found one. 2 CPUs,
|
||||
some RAM, the cooler - and I'll get a case+PSU to put it in. Expect D16 in
|
||||
the next Libreboot release. Expect it.**
|
||||
|
||||
Please donate a D16 machine if you can
|
||||
======================================
|
||||
|
||||
If someone can donate one to me, that would be a great service to the Libreboot
|
||||
project. Preferably assembled, with CPU, cooler, working RAM (in coreboot), in
|
||||
a case with PSU... throw in a graphics card if you can.
|
||||
|
||||
ASUS KGPE-D16 support was removed from Libreboot a while ago, because I didn't
|
||||
have enough testers to be confident in providing ROM images for it.
|
||||
|
||||
I would like to re-add support for ASUS KGPE-D16 in a future Libreboot release,
|
||||
but this time I'd like to be able to test it myself.
|
||||
|
||||
I don't currently have a KGPE-D16 set up at my lab, because finding parts
|
||||
and (especially) the coolers is a challenge, to say the least.
|
||||
|
||||
If you would like to help, and have a machine to spare, please can you contact
|
||||
me at my email address: [info@minifree.org](mailto:info@minifree.org)
|
||||
|
||||
KCMA-D8 also needed
|
||||
-------------------
|
||||
|
||||
I'm also arranging for an assembled machine with KCMA-D8 in it to be sent to
|
||||
me - though I'm not yet sure if that will go through, so if you have one of
|
||||
those aswell, I'd be interested too.
|
||||
|
||||
How I plan to re-add
|
||||
====================
|
||||
|
||||
Dasharo produces updated coreboot images for KGPE-D16, with source code. They
|
||||
took coreboot from release 4.11 and updated the code. I plan to add support in
|
||||
lbmk (Libreboot's build system) for using other coreboot repositories besides
|
||||
the official one, when downloading, patching and compiling for each board.
|
||||
|
||||
In other words, I would integrate Dasharo's coreboot repository in Libreboot,
|
||||
alongside the default one on coreboot.org.
|
||||
|
||||
As far as I know, Dasharo does not yet work on KCMA-D8 (that was the case,
|
||||
last time I checked), but I could inspect code differences between D8/D16 in
|
||||
coreboot's branch `4.11_branch` and try to port those to Dasharo, to then put
|
||||
in Libreboot.
|
||||
|
||||
Failing that (for KCMA-D8), I would just use `4.11_branch` from coreboot.
|
||||
D8/D16 support was dropped in coreboot after release 4.11, but updated code
|
||||
mostly fixing compiler issues and such, is available in a branch off
|
||||
of 4.11 called `4.11_branch`.
|
||||
|
||||
When Libreboot dropped support for D8/D16, it wasn't using `4.11_branch`.
|
||||
Instead, it was using the normal 4.11 tag in coreboot.git, with some extra
|
||||
patches on top provided by Libreboot.
|
|
@ -1,20 +0,0 @@
|
|||
% Libreboot 20131212
|
||||
% Leah Rowe
|
||||
% 12 December 2013
|
||||
|
||||
r20131212 (1st release) {#release20131212}
|
||||
=======================
|
||||
|
||||
- 12th December 2013
|
||||
|
||||
Supported:
|
||||
----------
|
||||
|
||||
- ThinkPad X60
|
||||
- ThinkPad X60s
|
||||
|
||||
Development notes
|
||||
-----------------
|
||||
|
||||
- initial release
|
||||
- source code deblobbed
|
|
@ -1,23 +0,0 @@
|
|||
% Libreboot 20131213
|
||||
% Leah Rowe
|
||||
% 13 December 2013
|
||||
|
||||
r20131213 (2nd release) {#release20131213}
|
||||
=======================
|
||||
|
||||
- 13th December 2013
|
||||
|
||||
Supported:
|
||||
----------
|
||||
|
||||
- ThinkPad X60
|
||||
- ThinkPad X60s
|
||||
|
||||
Development notes
|
||||
-----------------
|
||||
|
||||
- added background image to GRUB2
|
||||
- added memtest86+ payload to grub2
|
||||
- improvements to the documentation
|
||||
- new grub.cfg
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
% Libreboot 20131214 release
|
||||
% Leah Rowe
|
||||
% 14 December 2013
|
||||
|
||||
r20131214 (3rd release) {#release20131214}
|
||||
=======================
|
||||
|
||||
- 14th December 2013
|
||||
|
||||
Supported:
|
||||
----------
|
||||
|
||||
- ThinkPad X60
|
||||
- ThinkPad X60s
|
||||
|
||||
Development notes
|
||||
-----------------
|
||||
|
||||
- Added SeaBIOS payload to GRUB2 (for booting USB drives)
|
||||
- new grub.cfg
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue