diff --git a/src/_header.html b/src/_header.html index ed2a253..18d2109 100644 --- a/src/_header.html +++ b/src/_header.html @@ -1,10 +1,11 @@ -
- me -
- +

+ Author: Alessandro Mauri + alemauri001@tuta.io +
+ The content of this site is licensed under the + + Creative Commons CC0 Public Domain Dedication +
+ Special thanks to Pavel Pertsev + for creating Gruvbox +

diff --git a/src/x301/software.md b/src/x301/software.md index 8981480..6c8a8db 100644 --- a/src/x301/software.md +++ b/src/x301/software.md @@ -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