Try using Debian 12 βBookwormβ instead. PureOS does not provide proprietary drivers for graphics nor Wi-Fi/Bluetooth cards.
Regarding charging the phone: See: LED Colors and Charging Problems
Sometimes, I have also difficulties charging the L5, especially after it has been empty for longer times. Sometimes taking out the battery for a short while and putting it back helps. I cannot really explain, but this is my experience.
I am making progress.
I tried it from Ubuntu and got this:
$ ./scripts/librem5-flash-image --stable
2024-12-28 01:39:53 INFO Looking for librem5r4 luks byzantium image
2024-12-28 01:39:53 INFO Found disk image Build "stable" 'Last stable librem5r4 build' from Fri Jun 23 22:21:40 2023
2024-12-28 01:39:54 INFO Found uboot Build 85 from Thu Aug 25 06:22:41 2022
2024-12-28 01:39:54 INFO Downloading to ./tmp_librem5-flash-image_w0jxkh9n
2024-12-28 01:39:54 INFO Downloading image from https://storage.puri.sm/librem5/images/byzantium/latest/librem5r4/luks/artifact/librem5r4.img.xz
2024-12-28 01:46:40 INFO Calculating sha256sum of ./tmp_librem5-flash-image_w0jxkh9n/librem5r4.img
2024-12-28 01:46:43 INFO Downloading uboot from https://arm01.puri.sm/job/u-boot_builds/job/uboot_librem5_build/85/artifact/output/uboot-librem5/u-boot-librem5.imx
72%|βββββββββββββββββββββββββββ | 770048/1073880 [00:00<00:00, 2137090.99it/s]
Enter the flashing mode by holding volume-up button while turning the phone on.
If it's not detected, follow these steps:
- Ensure that the phone is powered off
- Turn all Hardware-Kill-Switches off
- Unplug the USB cable if connected
- Remove battery
- Hold volume-up button
- Insert the USB-C cable (red light blinks, no green light)
- Reinsert the battery (red and green lights constantly on, the script will continue)
- Release volume-up button
Searching...
uuu (Universal Update Utility) for nxp imx chips -- lib1.4.193
Success 0 Failure 1
3:3 3/ 5 [Bulk(R):LIBUSB_ERROR_TIMEOUT ] FB: flash -raw2sparse all librem5
100%|ββββββββββββββββββββββββββββββββββββ| 1073880/1073880 [00:20<00:00, 2137090.99it/s]
2024-12-28 01:47:41 INFO Cleaning up.
Traceback (most recent call last):
File "/home/pauldamianororke/pure-os/librem5-flash-image/./scripts/librem5-flash-image", line 546, in <module>
sys.exit(main())
File "/home/pauldamianororke/pure-os/librem5-flash-image/./scripts/librem5-flash-image", line 529, in main
flash_image(uuu_target, args.debug)
File "/home/pauldamianororke/pure-os/librem5-flash-image/./scripts/librem5-flash-image", line 359, in flash_image
subprocess.check_call(['uuu', uuu_target])
File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['uuu', './tmp_librem5-flash-image_w0jxkh9n/flash_librem5r4.lst']' returned non-zero exit status 255.
Trying the Debian 12 ISO
The error is a timeout while attempting to connect to USB, but it looks like the rest of the script works fine. You should be able to achieve success on Debian without my assistance.
Hmmm,
this has not worked out well for me.
-
I could not load or install Pure-OS because of missing packages or graphics drivers despite trying three different machines.
-
The script in Ubuntu times out
-
Debian didnβt have a βTryβ option I could find, only an install, I have now bjorked my kidsβ Windows box as it is now Debian 12 and Iβll have to reinstall Windows and their games.
-
With Debian 12 I get the exact same time out as I did in Ubuntu
-
The phone still doesnβt boot.
I am about to give up and contact sales again and ask them to do it for me.
I appreciate the help, but I just canβt get past this timeout.
Use a different USB port and/or cable.
After multiple attempts, each one making it further than the last, I eventually got it flashed I believe:
Summary
$ ./scripts/librem5-flash-image --dir ./images/ --skip-download --debug
2024-12-28 10:17:09 INFO Looking for librem5r4 luks byzantium image
2024-12-28 10:17:09 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2024-12-28 10:17:10 DEBUG https://arm01.puri.sm:443 "GET /crumbIssuer/api/json HTTP/1.1" 200 155
2024-12-28 10:17:10 DEBUG https://arm01.puri.sm:443 "GET /job/Images/job/Image%20Build/api/json?depth=0 HTTP/1.1" 200 1070
2024-12-28 10:17:10 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2024-12-28 10:17:10 DEBUG https://arm01.puri.sm:443 "GET /job/Images/job/Image%20Build/18838//api/json HTTP/1.1" 200 944
2024-12-28 10:17:10 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2024-12-28 10:17:17 DEBUG https://arm01.puri.sm:443 "GET /job/Images/job/Image%20Build/18837//api/json HTTP/1.1" 200 950
2024-12-28 10:17:17 INFO Found disk image Build 18837 'luks librem5r4 byzantium image' from Fri Dec 27 20:09:57 2024
2024-12-28 10:17:17 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2024-12-28 10:17:17 DEBUG https://arm01.puri.sm:443 "GET /crumbIssuer/api/json HTTP/1.1" 200 153
2024-12-28 10:17:17 DEBUG https://arm01.puri.sm:443 "GET /job/u-boot_builds/job/uboot_librem5_build/api/json?depth=0 HTTP/1.1" 200 851
2024-12-28 10:17:17 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2024-12-28 10:17:18 DEBUG https://arm01.puri.sm:443 "GET /job/u-boot_builds/job/uboot_librem5_build/85//api/json HTTP/1.1" 200 936
2024-12-28 10:17:18 INFO Found uboot Build 85 from Thu Aug 25 06:22:41 2022
2024-12-28 10:17:18 INFO Downloading to ./images/
2024-12-28 10:17:18 INFO Skipping download and using local image './images/librem5r4.img'
Enter the flashing mode by holding volume-up button while turning the phone on.
If it's not detected, follow these steps:
- Ensure that the phone is powered off
- Turn all Hardware-Kill-Switches off
- Unplug the USB cable if connected
- Remove battery
- Hold volume-up button
- Insert the USB-C cable (red light blinks, no green light)
- Reinsert the battery (red and green lights constantly on, the script will continue)
- Release volume-up button
Searching...
uuu (Universal Update Utility) for nxp imx chips -- lib1.4.193
Build in config:
Pctl Chip Vid Pid BcdVersion
==================================================
SDPS: MX8QXP 0x1fc9 0x012f [0x0002..0xffff]
SDPS: MX8QM 0x1fc9 0x0129 [0x0002..0xffff]
SDPS: MX8DXL 0x1fc9 0x0147
SDPS: MX28 0x15a2 0x004f
SDPS: MX815 0x1fc9 0x013e
SDPS: MX865 0x1fc9 0x0146
SDPS: MX8ULP 0x1fc9 0x014a
SDPS: MX8ULP 0x1fc9 0x014b
SDP: MX7D 0x15a2 0x0076
SDP: MX6Q 0x15a2 0x0054
SDP: MX6D 0x15a2 0x0061
SDP: MX6SL 0x15a2 0x0063
SDP: MX6SX 0x15a2 0x0071
SDP: MX6UL 0x15a2 0x007d
SDP: MX6ULL 0x15a2 0x0080
SDP: MX6SLL 0x1fc9 0x0128
SDP: MX7ULP 0x1fc9 0x0126
SDP: MXRT106X 0x1fc9 0x0135
SDP: MX8MM 0x1fc9 0x0134
SDP: MX8MQ 0x1fc9 0x012b
SDPU: SPL 0x0525 0xb4a4 [0x0000..0x04ff]
SDPV: SPL1 0x0525 0xb4a4 [0x0500..0x9998]
SDPV: SPL1 0x1fc9 0x0151 [0x0500..0x9998]
SDPU: SPL 0x0525 0xb4a4 [0x9999..0x9999]
SDPU: SPL 0x3016 0x1001 [0x0000..0x04ff]
SDPV: SPL1 0x3016 0x1001 [0x0500..0x9998]
FBK: 0x066f 0x9afe
FBK: 0x066f 0x9bff
FBK: 0x1fc9 0x0153
FB: 0x0525 0xa4a5
FB: 0x18d1 0x0d02
FB: 0x3016 0x0001
FB: 0x1fc9 0x0152
Wait for Known USB Device Appear...
>Start Cmd:CFG: SDP: -chip MX8MQ -compatible MX8MQ -vid 0x316d -pid 0x4c05
>Okay (0s)
New USB Device Attached at 5:4
5:4>Start Cmd:SDP: boot -f u-boot-librem5.imx
100%5:4>Okay (0.344s)
New USB Device Attached at 5:4
5:4>Start Cmd:SDP: boot -f u-boot-librem5.imx
100%5:4>Okay (0.991s)
New USB Device Attached at 5:4
5:4>Start Cmd:SDPV: delay 1000
5:4>Okay (1s)
5:4>Start Cmd:SDPV: write -f u-boot-librem5.imx -skipspl
100%5:4>Okay (0.845s)
5:4>Start Cmd:SDPV: jump
100%5:4>Okay (0.177s)
New USB Device Attached at 5:4
5:4>Start Cmd:FB: ucmd setenv fastboot_dev mmc
5:4>Okay (0.195s)
5:4>Start Cmd:FB: ucmd setenv mmcdev 0
5:4>Okay (0.009s)
5:4>Start Cmd:FB: flash -raw2sparse all librem5r4.img
100%5:4>Okay (502.7s)
5:4>Start Cmd:FB: reboot
5:4>Okay (0.005s)
5:4>Start Cmd:FB: Done
5:4>Okay (0s)
Flashing complete.
Now I am prompted to enter my decryption passphrase. I tried the one I used to use, but I assume the flashing wiped everything, including that because it doesnβt accept my passphrase.
Would that have been changed or am I just not entering it correctly?
By default, the LUKS and user password are 123456
.
And it is done!
Thank you for your patience. I am not sure why it took so many attempts to flash, but I have a working phone again!
Thank you so much @FranklyFlawless for sticking with me. It really is appreciated.
(Noting that you did finally succeed, so for completeness only β¦)
The bottom line for any distro on the host computer is that lsusb
should
a) show the phone, and
b) critically important - show that the phone is in βserial download modeβ.
You can test that without bothering with downloading a disk image and without bothering with running the reflash script.
Until that works, you need to play around with USB port / USB port speed / USB port connector / cable / cable orientation.
Personally, if forced to use a Live Boot in order to reflash from a random host computer, I would use Ubuntu rather than PureOS, precisely because Ubuntu offers less privacy but works on more host computers. If you are already grumpy because you have to reflash the phone then the last thing you want is to have to sort out your host computer. So you either have a desktop / laptop that already runs PureOS well or I would suggest LiveBoot Ubuntu.
That is an ambiguous sentence because it does not make clear whether you mean - a functioning operating system on the Librem 5 or a functioning operating system on the desktop / laptop / host computer. While it is sort of true in either interpretation, that is for different reasons and with different qualifications.
Yes.
There are two main differences: 1. Boot choices 2. How you trigger boot choices and make your choice.
A typical PC offers two boot choices (internal disk which typically would be NVMe or SATA v. external USB disk) and the choice is triggered by pressing a specific key during early boot and the choice is made using other keys - so you need a keyboard - and booting from disk is the only option (although some PCs may also offer booting via ethernet).
The touchscreen-based Librem 5 may not support a keyboard in the early boot at all.
The Librem 5 offers two boot choices (eMMC internal disk i.e. basically SD v. uuu
boot via USB from a host computer i.e. serial download of an image to boot, downloaded from a host computer) and the choice is triggered and made by pressing buttons on the phone during power on.