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 Written steps with images:

Hardware upgrade method

Keep in mind this process will delete your onboard serial number; however, you can use a tool like cbfstool to inject it into your PureBoot rom.

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.

  • If you have not done so already, Download or build your PureBoot rom.

  • 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, pointing at the file PureBoot rom file
    • sudo flashrom -p ch341a_spi -w /home/purism/Downloads/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.

Summery

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.