Cooreboot a ThinkPad X230 with 1vyrain

June 7, 2025

Always consult the official documentation. BIOS flashing entails some risks.

The stock BIOS of the ThinkPad X230 has a hardware whitelist, but I need to upgrade my Wi-Fi card. Thus, I flashed a Skulls coreboot BIOS image.

This is usually done physically with a hardware programmer. However, the BIOS chip of the ThinkPad X230 with a vulnerable BIOS version can be flashed using the software-based "jailbreak" 1vyrain.

Preparation

Fortunately, I had the vulnerable BIOS version 2.60, so I didn't need to downgrade. I just had to reset the BIOS settings, set the startup mode to UEFI and disable Secure Boot.

Once booted up, I verified the existence of the file /sys/firmware/efi. Then, I created a backup of the bios region:

# flashrom -p internal -r bios_backup.rom --ifd -i bios

If anything goes wrong, I can use this backup file to externally flash the BIOS chip.

I downloaded the 1vyrain image and verified its checksum using md5sum. I also downloaded the latest Skulls release for the ThinkPad X230 with SeaVGABIOS. Similarly, I verified its checksum and its signature using sha256sum and gpg, respectively.

Next, I used dd to burn the 1vyrain image onto a flash drive. I also verified that the size of the x230_coreboot_seabios_xxxxxxxxxx_top.rom image was 4MB. At last, I hosted it on a local HTTP server.

Installation

First, I charged the laptop battery and connected the power adapter and Ethernet cable. Then, I booted from the flash drive via an onboard USB port. Finally, I followed the on-screen instructions and entered the URL for the Skulls image when prompted.

Notes

Consider using an external programmer to disable the Intel Management Engine. You may also choose to build the Skulls image or use another coreboot distribution, such as Heads. If so, you may also want to check out Libreboot.

After flashing, I booted into a LUKS encrypted Linux Mint system. The password input screen was not visible. However, I could still enter the password and continue. I did not encounter this problem after a few reboots.

Resources

RSS
https://ctrleon.page/posts/feed.xml