You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
alemauri.eu/src/x301/software.md

73 lines
3.7 KiB

Title: ThinkPad x301 Restoration: Software
Author: Alessandro Mauri
# ThinkPad x301 Restoration Project: Software Side
Of course me being me I can't just modify the hardware, I also have to do
something about the software side of things. After all if I just slapped
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.
## [Coreboot][cboot]
> 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
[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