This commit is contained in:
Alessandro Mauri 2021-11-23 00:08:54 +01:00
parent ebc89bc805
commit ea850b6416
2 changed files with 65 additions and 38 deletions

View File

@ -1,10 +1,11 @@
<div id="thumb-container"> <p>
<img src="//alemauri.eu/img/me.jpg" alt="me" id="thumb"> Author: Alessandro Mauri
</div> <a href="mailto:alemauri001@tuta.io">alemauri001@tuta.io</a>
<div id="links"> <br>
<a href="//alemauri.eu/index.html">Home</a> The content of this site is licensed under the
<a href="https://git.alemauri.eu/alema">Gitea</a> <a href="https://creativecommons.org/publicdomain/zero/1.0/">
<a href="https://github.com/gunboy001">Github</a> Creative Commons CC0 Public Domain Dedication</a>
<a href="https://liberapay.com/alemauri/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a> <br>
<a href="//alemauri.eu/atom.xml">Atom feed</a> Special thanks to <a href="https://github.com/morhetz">Pavel Pertsev</a>
</div> for creating <a href="https://github.com/morhetz/gruvbox">Gruvbox</a>
</p>

View File

@ -10,38 +10,64 @@ Windows 10 on it, it would just be an old slow laptop. But I want more, I want
lightning fast boot times, I want a good experience and most of all I want lightning fast boot times, I want a good experience and most of all I want
freedom where I can get it. freedom where I can get it.
## [Libreboot][lboot] ## [Coreboot][cboot]
Yes! After some 5 years of dormancy the Libreboot project came out with a > coreboot is an extended firmware platform that delivers a lightning fast and
[new beta release][newboot] that [adds support for the x301][xboot]. > secure boot experience on modern computers and embedded systems. As an Open
> Source project it provides auditability and maximum control over technology.
Basically Libreboot is a BIOS replacement, it completely replaces all of the Basically coreboot is a platform that provides basic hardware initialization
old BIOS stuff with a _libre_ alternative, which has many advantages: for other programs to run on and start your bootloader (or OS) of choice. Such
programs are called payloads, I decided to go with [SeaBIOS][sbios] a free
[BIOS][bios] implementation, but you can choose
[from a variety of available payloads][payloads], there's even a linux distro
in there!
1. MUCH faster boot times Now to the ones who know coreboot is a bit difficult to configure, that's why
2. Completely respects your freedom projects such as [Libreboot][lboot] and [Skulls][skulls] exist, but being the
3. Completely disables the intel ME and replaces all proprietary firmware with masochist I am, I decided to have a go at configuring it on my own and in the
libre software process also remove the [Intel Management Engine (ME)][ime] like Libreboot does.
4. While being simpler (no menu, no live configuration, etc.) it actually **I lied** this is not just software, unfortunately the flashing of the new BIOS
allows for much greater flexibility in the boot process cannot be done within the operating system, only official ones can be installed
that way (at least on this machine), so to do this you'll need some things, some
knownledge, and a lot of patience.
Oh and [here's the coreboot page for the x301][corex301].
Libreboot works by setting up a minimal environment, enough to load ### Getting the stuff you'll need
[GRUB][grub], then GRUB proceeds to load the OS or other things.
Libreboot has also other _payload_ options like [SeaBIOS][sbios] or
[Tianocore][tcore] (an open-source UEFI implementation), they allow to load
other operating systems normally (not via GRUB) but generally this is slower.
The method I will use is an hybrid, Libreboot will load GRUB, which when a key First of all one cannot go further in this intent witout some "basic" gear, what
is pressed like shift, during the boot process, will load a menu of options we need to do is find a chip on the mainboard of the laptop, access it's pins
containing all the operating systems, some diagnostic, Tianocore and SeaBIOS (in a way we're hijacking it), connect it to an external device called a
(everything needs to boot). Otherwise when no key is pressed it should boot programmer and load the new [firmware][fware] on that chip so that the machine
straight into the first available OS. can execute what's on it.
Disclaimer: I have not seen this elsewhere and although I think it should be There is one complication, the chip is in [WSON8][wson] package, which
possible, I don't really know. is not easy to work with since the pins do not exent to the side but on the
bottom making them almost impossible to attach an [IC clip][icclip] to.
Since if anything goes wrong during the next steps you'd want to reprogram
the chip, and that cannot be easily done without a clip, you really want that
old chip gone in favor of a new one. But that requires soldering.
[lboot]: https://libreboot.org/ So here's a handy list of everything you will need to proceed:
[newboot]: https://libreboot.org/docs/release/libreboot20210522.html
[xboot]: https://libreboot.org/docs/release/libreboot20210522.html#lenovo-thinkpad-x301 1. A [Raspberry Pi][rpi], used for the actual programming; it is not strictly
[grub]: https://www.gnu.org/software/grub/ necessary but if you have it already it is the easiest method.
An alternative method is by using a [CH341A][ch341a] programmer and applying
[this fix][ch341fix] to avoid burning the whole board.
2. A [SOIC8 IC clip][soicclip]
[cboot]: https://www.coreboot.org/
[sbios]: https://www.seabios.org/SeaBIOS [sbios]: https://www.seabios.org/SeaBIOS
[tcore]: https://www.tianocore.org/ [bios]: https://wikipedia.org/wiki/BIOS
[payloads]: https://www.coreboot.org/Payloads
[lboot]: https://libreboot.org/
[skulls]: https://github.com/merge/skulls
[ime]: https://wikipedia.org/wiki/Intel_Management_Engine
[corex301]: https://doc.coreboot.org/mainboard/lenovo/x301.html
[fware]: https://en.wikipedia.org/wiki/Firmware
[wson]: https://blog.mbedded.ninja/pcb-design/component-packages/wson-component-package/
[icclip]: https://www.sparkfun.com/products/13153
[rpi]: https://www.raspberrypi.org/
[ch341a]: https://www.amazon.it/Programmatore-Youmile-CH341A-Burner-EEPROM/dp/B07YDFNYDS
[ch341fix]: https://www.eevblog.com/forum/repair/ch341a-serial-memory-programmer-power-supply-fix/
[soicclip]: https://www.amazon.it/WINGONEER-eeprom-programmazione-circuit-adattatori/dp/B012VSGQ0Q