boh
This commit is contained in:
parent
ebc89bc805
commit
ea850b6416
@ -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]
|
||||
## [Coreboot][cboot]
|
||||
|
||||
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].
|
||||
> 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 Libreboot is a BIOS replacement, it completely replaces all of the
|
||||
old BIOS stuff with a _libre_ alternative, which has many advantages:
|
||||
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!
|
||||
|
||||
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
|
||||
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].
|
||||
|
||||
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.
|
||||
### Getting the stuff you'll need
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
[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/
|
||||
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…
Reference in New Issue
Block a user