Pages
  • Homepage
  • Queztaz/Tech Inventory
  • Emacs/EWW Hacks
  • Emacs/Emacs With BiDirectional Google Calendar Sync
  • Emacs/Setting up Mu4e and Multiple Gmail Accounts
  • Linux/Creating an Offline Debian Mirror Repository
  • Linux/Migrate Wiki.js to Another Server
  • Linux/Adding Bitwarden to the Pinephone Pro
  • Linux/Corebooting Thinkpad X220 With CH341A Programmer
  • Pinebook Pro/Custom Kernel
  • Pinebook Pro/Keyboard Firmware Update
  • Pinebook Pro/Netbsd Installation
  • Pinebook Pro/Setting Up Zram
  • Pinebook Troubleshooting/Pro Common Issues
  • Pinebook Pro/Use NVME as Root
  • Pinebook Pro/Write to SPI Flash
  • Qemu/Chroot Into a Different Architecture
  • Qemu/Choot Into an Img File
  • Qemu/Mount Virtual Images
  • Qemu/Windows Xp Fix Smb Not Working
  • Qemu/Windows Xp Installation
  • Misc/Finding the Default Wireless Password to TG1672G Routers
  • Misc/Running Ollama Portably
  • Misc/Resetting Unifi Controller Password with MongoDB CLI
  • Misc/Turning an Amazon FireStick into a Portable Computer
  • Windows/Cloning a Bios Boot Drive to Disimilar Hardware with UEFI
  • Windows/Automatic CHKDSK Scans Using Powershell & Email Alerts
  • Windows/Creating a Decent Portable Terminal
  • Windows/Merging HyperV Snapshots With Powershell
  • Windows/Simulating Bad Blocks on NTFS Filesystems
  • Windows/Creating and Viewing a Storport on Windows Server
  • Windows/Windows 11 PowerShell Upgrade Script
  • Mikrotik/Creating a Client to Site VPN With
  • Mikrotik/Securing Router With Firewall
  • Mikrotik Setup Dynamically Changing IP With No-IP Api
Homepage
  • Homepage
  • Queztaz/Tech Inventory
  • Emacs/EWW Hacks
  • Emacs/Emacs With BiDirectional Google Calendar Sync
  • Emacs/Setting up Mu4e and Multiple Gmail Accounts
  • Linux/Creating an Offline Debian Mirror Repository
  • Linux/Migrate Wiki.js to Another Server
  • Linux/Adding Bitwarden to the Pinephone Pro
  • Linux/Corebooting Thinkpad X220 With CH341A Programmer
  • Pinebook Pro/Custom Kernel
  • Pinebook Pro/Keyboard Firmware Update
  • Pinebook Pro/Netbsd Installation
  • Pinebook Pro/Setting Up Zram
  • Pinebook Troubleshooting/Pro Common Issues
  • Pinebook Pro/Use NVME as Root
  • Pinebook Pro/Write to SPI Flash
  • Qemu/Chroot Into a Different Architecture
  • Qemu/Choot Into an Img File
  • Qemu/Mount Virtual Images
  • Qemu/Windows Xp Fix Smb Not Working
  • Qemu/Windows Xp Installation
  • Misc/Finding the Default Wireless Password to TG1672G Routers
  • Misc/Running Ollama Portably
  • Misc/Resetting Unifi Controller Password with MongoDB CLI
  • Misc/Turning an Amazon FireStick into a Portable Computer
  • Windows/Cloning a Bios Boot Drive to Disimilar Hardware with UEFI
  • Windows/Automatic CHKDSK Scans Using Powershell & Email Alerts
  • Windows/Creating a Decent Portable Terminal
  • Windows/Merging HyperV Snapshots With Powershell
  • Windows/Simulating Bad Blocks on NTFS Filesystems
  • Windows/Creating and Viewing a Storport on Windows Server
  • Windows/Windows 11 PowerShell Upgrade Script
  • Mikrotik/Creating a Client to Site VPN With
  • Mikrotik/Securing Router With Firewall
  • Mikrotik Setup Dynamically Changing IP With No-IP Api

Linux/Corebooting Thinkpad X220 With CH341A Programmer

Table of content
  • Step 1 - Buy the flasher
  • Step 2 - Install the Drivers
  • Step 3 - Connecting to the BIOS
  • Step 4 - Installing Coreboot
  • Image of original BIOS

This isn't going to be a walkthrough of corebooting your Thinkpad X220. These are the steps you need to get the flasher working and connected to your system

Fyi: My host system is Windows 11 and a virtual machine with USB redirection was used to flash the system

I exported the factory default ROMS to my PC

Step 1 - Buy the flasher

I purchased the following CH341A programmer with the clip from Amazon. If you google this online, some people will report that the clip fried there chip because it runs at 5volts instead of 3.3v. I read some post online debunking this. The chip will start at 5volts and then move to 3.3v. The user reported that the fried chips were likely caused by improper placement of the clip.

This clip worked fine

KeeYees SOP8 SOIC8 Test Clip and CH341A USB Programmer Flash for Most of 24 25 Series BIOS Chip with PDF Tutorial

Step 2 - Install the Drivers

I'm running this on Windows 11 and using a virtualbox to do the flashing. I installed these drivers on the host machine and then installed "AsProgrammer" to test if the connection between the programmer and the bios was working.

Driver: https://github.com/KrisKasprzak/CH341/ AsProgrammer: https://github.com/nofeletru/UsbAsp-flash/

Step 3 - Connecting to the BIOS

With the driver installed, I opened ASProgrammer and had it attempt to read the data from the BIOS. I was getting an error saying "Check Settings". This was because the clip wasn't properly seated on the bios chip.

Here are the images of how I have things connected. Make sure the positioning of the red cable matches below. This will be the exact setup you need to flash the BIOS. Check your hardware connections and even

12Fz

6PIP

3vEA

Step 4 - Installing Coreboot

I followed Bryce's guide for the rest. The only important thing I did was install "flashrom" from the Ubuntu Repos. I didn't bother figuring out how to compile flashrom with support for the CH341A. It worked great. I did see that I had two different chips to flash from. I chose the one with the longer name ("w25q64bv-w25q64cv-w25q64fv"). I don't think it would have made a difference since reading both flash chips had the same filehash.

I used the github repo from nenadstoisavljevic and copied the bootsplash image and any settings in the configuration of coreboot. The only thing I didn't copy from that github repo were all the additional payloads that were selected.

https://brycevandegrift.xyz/blog/corebooting-a-thinkpad-x220/

https://github.com/nenadstoisavljevic/x220-coreboot-guide

My flashing failed once because the virtual machine was freaking out. I reset the system and reseated the USB (leaving the clip untouched). It worked after : )

VWip

Image of original BIOS

View my github below with the original BIOS images I took prior to corebooting.

https://github.com/peterunix/ThinkpadX220BIOS

PREVRANDOMNEXT