Hardware Flashing PureBoot¶
Of course, you can always flash your custom PureBoot using the built-in menu, but with development comes bugs, and flashing via the menu may not be an option if your custom build has an issue. Fortunately, you can recover from bugs that stop the boot firmware from loading on your Librem 14 by hardware flashing the BIOS with a chip flasher.
Download
How to hardware flash your Librem 14 boot firmware
Hardware upgrade method
- To get going, you’ll need:
CH341A spi chip programmer (Supplying 3.3v)
SOIC8 clip (Often sold together with the programmer.)
Screwdriver (To open the Librem 14)
Separate PureOS or Debian computer (As your Librem 14 will be offline for the upgrade)
- Once you have the needed items:
Remove any external power.
Unscrew and remove the backplate.
Unplug the battery from the motherboard.
Assemble a CH341a programmer. Attach your chip clip, making sure to line up pin 1 with the red stripe.
Locate your BIOS flash chip U49, between the CPU and the nearest fan.
Locate the depression on the BIOS chip; this indicates where pin 1 is.
Attach the chip clip making sure to align the red stripe again.
Attach to the programmer to a PureOS computer, like a laptop or even Librem 5.
- Use the coreboot utility to prepare a firmware image for your device:
mkdir ~/updates
cd ~/updates
wget https://source.puri.sm/firmware/utility/raw/master/coreboot_util.sh
sudo bash coreboot_util.sh
Select “Prepare firmware for manual flash”, then follow the prompts to prepare the firmware image.
When complete, the utility will show the name of the prepared firmware file.
- From the terminal, install flashrom.
sudo apt install flashrom
- If you’re flashing from a Librem 5, build flashrom using these commands
sudo apt install git make gcc libusb-1.0-0-dev libudev-dev
git clone https://github.com/flashrom/flashrom.git
cd flashrom/
make
sudo make install
- This command will check everything is connected correctly.
sudo flashrom -p ch341a_spi
Flashrom may detect two possible chips; if so add -c <chip> to all the remaining commands, pointing at the first chip found
- To begin the flash, run this command, using the path to the firmware image shown by the utility.
sudo flashrom -p ch341a_spi -w ~/updates/pureboot-librem_14-Release-23.rom -c GD25B128B/GD25Q128B
Make sure to replace GD25B128B/GD25Q128B with your chip ID. This will take several minutes to complete.
After a successful flash, unplug the chip programmer.
Once unplugged from the computer, remove the clip from the chip.
To boot your Librem 14, attach the battery and screw the backplate back on.
Summary
It’s always good to have multiple options to get yourself out of a jam, and this hardware method for flashing PureBoot is an excellent tool for anyone wanting to tinker with or improve their BIOS.