Notes on Purism Librem devices
https://spacecruft.org/librem/LibremLibre
- Shell 87.9%
- Rust 12.1%
| docs | ||
| librem5-rust-gtk4-starter | ||
| usbnet-autostart | ||
| usbnet-on-demand | ||
| .gitignore | ||
| AGENTS.md | ||
| README.md | ||
LibremLibre
Notes on Purism Librem5 devices.
Flash Firmware
To do a complete fresh flash/reinstall/upgrade to Crimson.
- https://docs.puri.sm/Hardware/Librem_5/Maintenance/Reflashing.html
- https://developer.puri.sm/Librem5/Development_Environment/Phone/Troubleshooting/Reflashing_the_Phone.html
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.