1
0
Fork 0
Notes on Purism Librem devices https://spacecruft.org/librem/LibremLibre
  • Shell 87.9%
  • Rust 12.1%
Find a file
2026-10-28 17:56:26 -06:00
docs SIMCom doc tweaks 2026-10-28 17:56:26 -06:00
librem5-rust-gtk4-starter Multi language rust app example, mas 2026-10-25 12:48:18 -06:00
usbnet-autostart USB net setup scripts 2026-10-24 12:47:35 -06:00
usbnet-on-demand USB net setup scripts 2026-10-24 12:47:35 -06:00
.gitignore git ignores 2026-10-24 12:47:07 -06:00
AGENTS.md Agents 2026-10-24 12:47:22 -06:00
README.md modem note 2026-10-24 15:52:45 -06:00

LibremLibre

Notes on Purism Librem5 devices.

Flash Firmware

To do a complete fresh flash/reinstall/upgrade to Crimson.

On workstation:

I have Chestnut phone (librem5r2) and Librem5 USA Evergreen (librem5r4).

To find out what version of hardware the phone is, run:

tr -d '\0' </proc/device-tree/model; echo

librem5r2 Chestnut; also the software target used for Birch librem5r3 Dogwood librem5r4 Evergreen, including Librem 5 USA

git clone https://source.puri.sm/Librem5/librem5-flash-image
cd librem5-flash-image/
sudo apt install uuu
sudo apt build-dep .
sudo ./scripts/librem5-flash-image --udev

# ./scripts/librem5-flash-image --stable
# For Chestnut (older version I have)
# ./scripts/librem5-flash-image --board librem5r2
# ./scripts/librem5-flash-image --board librem5r2 --skip-flash --dist crimson --variant luks --skip-cleanup
# XXX Chestnut
# ./scripts/librem5-flash-image --board librem5r2 --dist crimson --variant luks --skip-cleanup
# Auto should see Evergreen librem5r4
# ./scripts/librem5-flash-image --board auto --dist crimson --variant luks --skip-cleanup
# For older Chestnut:
./scripts/librem5-flash-image --stable --board librem5r2

# Use --skip-cleanup or you have to download the image again!

# For Evergreen (Librem5 USA):
./scripts/librem5-flash-image --stable --skip-cleanup

# Use --dir tmp_librem5-flash_image-XXX where XXX is unique stamp to re-use download.

Steps from Purism docs:

Wait for a notification to attach the phone for flashing once the script downloads the image. The phone will not provide an indication of the boot mode.
Ensure that the phone is switched off.
Set all hardware kill switches to the disabled position.
Remove the battery.
Press and hold the Volume Up button while performing the following actions:
Connect the phone to the computer using a USB-A to USB-C cable. A successful connection will cause a red notification LED to blink, but will not show a green notification LED.
Reinsert the battery. The red notification LED will remain on, and the script will continue.
Release the Volume Up button.
Allow the script to continue. Successful output will look something like:
uuu (Universal Update Utility) for nxp imx chips -- libpureos/1.2.91+0git6b465-62-g9c56e46
Success 1    Failure 0
Remove the USB-C cable from the phone.
Hold down the power button for 15-18 seconds to reset the phone. The phone should now be running the latest image.

LUKS password 123456

To build:

Need this first:

git clone https://source.puri.sm/Librem5/vmdeboostrap
cd vmdeboostrap/
sudo apt install dh-python python3-sphinx python3-all python3-dev python3-all-dev python3-setuptools

git clone git@source.puri.sm:Librem5/image-builder.git
cd image-builder/
# for Chestnut:
./build-image -b librem5r2 -d crimson
# For Evergreen:
./build-image -b librem5r4 -d crimson

Date

# Set date, like
sudo date -u --set="20261024 20:26:57"
# Save it so it stays after reboot:
sudo hwclock --systohc

Kernel Selection

If you want to use a different kernel, like an older one when you have multiple kernels installed, thusly:

sudo flash-kernel --force <installed-kernel-release>
# Like:
sudo flash-kernel --force 6.12.0-1-librem5

Modem

My Librem5 came with BM818-A1.

My Librem5 USA came with BM818-E1.