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.