Reflashing the Phone

This guide describes how to reflash the system image on your Librem 5 phone from a workstation, using a USB-A to USB-C cable. A video walkthrough is also available on our blog.

Overview

To erase the existing image on the internal eMMC and install a new image, you need to download the following items:

Then you will need to run the flashing script to reflash the phone’s system software.

These steps are covered in the sections below.

Download the Flashing Scripts

Files from the librem5-flash-image repository are responsible for downloading the image files and transferring them to the phone. Other scripts are used to help with building tools.

In a terminal, clone the librem5-flash-image repository before proceeding:

git clone https://source.puri.sm/Librem5/librem5-flash-image.git

The librem5-flash-image directory will be created. Make this directory the current directory:

cd librem5-flash-image

You are now ready to install uuu.

Install uuu

Note

The uuu tool requires a 64-bit host to run and is packaged as an amd64 binary.

If you are using PureOS, Debian, or a recent Ubuntu derivative, install uuu by opening a terminal and entering the following command:

sudo apt install uuu

Flash the Image

You should now be ready to flash a new image.

This will erase the contents of the phone’s eMMC, including user data.

First, check that everything is ready:

  • Check that the librem5-flash-image directory is the current directory.

  • Make sure you have installed all python dependencies sudo apt build-dep ..

  • Install the udev rules sudo ./scripts/librem5-flash-image --udev

Run the following script to download and flash the latest image. By default, the script will assume it’s flashing Evergreen; however, you can pass in the different version to the --board option. Use librem5r2 for Birch and Chestnut series phones, librem5r3 for Dogwood.

$ ./scripts/librem5-flash-image

Once the script downloads the image, you’ll be prompted to attach the Librem 5 for flashing. The phone itself will not provide an indication of the boot mode – the script will simply continue once you follow these steps:

  1. Ensure that the phone is switched off.

  2. Turn all Hardware-Kill-Switches off

  3. Remove battery

  4. Hold volume-up

  5. Insert the USB-c cable: (red light blinks, no green light)

  6. Reinsert the battery: (red light is constantly on, the script will continue)

  7. Release volume-up

Note

Some USB-C cables may need to be plugged into the phone with a particular orientation. If the instructions above do not appear to work, try flipping the USB-C end of the cable over and replugging it into the phone.

Successful output will look something like this:

uuu (Universal Update Utility) for nxp imx chips -- libpureos/1.2.91+0git6b465-62-g9c56e46

Success 1    Failure 0

Remove the USB C cable and hold down the power button for 15-18 seconds to reset the phone.

Your phone should now be running the latest image.