Alessandro Mauri 2 years ago
parent ebc89bc805
commit ea850b6416
  1. 21
      src/_header.html
  2. 92
      src/x301/software.md

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

@ -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
freedom where I can get it.
## [Libreboot][lboot]
Yes! After some 5 years of dormancy the Libreboot project came out with a
[new beta release][newboot] that [adds support for the x301][xboot].
Basically Libreboot is a BIOS replacement, it completely replaces all of the
old BIOS stuff with a _libre_ alternative, which has many advantages:
1. MUCH faster boot times
2. Completely respects your freedom
3. Completely disables the intel ME and replaces all proprietary firmware with
libre software
4. While being simpler (no menu, no live configuration, etc.) it actually
allows for much greater flexibility in the boot process
Libreboot works by setting up a minimal environment, enough to load
[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
is pressed like shift, during the boot process, will load a menu of options
containing all the operating systems, some diagnostic, Tianocore and SeaBIOS
(everything needs to boot). Otherwise when no key is pressed it should boot
straight into the first available OS.
Disclaimer: I have not seen this elsewhere and although I think it should be
possible, I don't really know.
## [Coreboot][cboot]
[lboot]: https://libreboot.org/
[newboot]: https://libreboot.org/docs/release/libreboot20210522.html
[xboot]: https://libreboot.org/docs/release/libreboot20210522.html#lenovo-thinkpad-x301
[grub]: https://www.gnu.org/software/grub/
> coreboot is an extended firmware platform that delivers a lightning fast and
> secure boot experience on modern computers and embedded systems. As an Open
> Source project it provides auditability and maximum control over technology.
Basically coreboot is a platform that provides basic hardware initialization
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!
Now to the ones who know coreboot is a bit difficult to configure, that's why
projects such as [Libreboot][lboot] and [Skulls][skulls] exist, but being the
masochist I am, I decided to have a go at configuring it on my own and in the
process also remove the [Intel Management Engine (ME)][ime] like Libreboot does.
**I lied** this is not just software, unfortunately the flashing of the new BIOS
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].
### Getting the stuff you'll need
First of all one cannot go further in this intent witout some "basic" gear, what
we need to do is find a chip on the mainboard of the laptop, access it's pins
(in a way we're hijacking it), connect it to an external device called a
programmer and load the new [firmware][fware] on that chip so that the machine
can execute what's on it.
There is one complication, the chip is in [WSON8][wson] package, which
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.
So here's a handy list of everything you will need to proceed:
1. A [Raspberry Pi][rpi], used for the actual programming; it is not strictly
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
[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

Loading…
Cancel
Save