External battery charger for Librem5

Before flash the librem 5 make sure that your device it is on flash mode. I going to flash my second librem 5 tomorrow then i can helping more for you, i going to using a GNU Operating System and Thinkpad X200 to flashing.

lsusb and uuu -lsusb correctly shows phone in flash mode.
Also LED status is showing flash mode.

After SDP: boot phone tries to go out of flash mode though

1 Like

This might easily be just regular behavior (as I was thinking too much yesterday). Please ensure following (as mandatory):

sudo apt install build-dep build-essential python debos bmap-tools f2fs-tools
sudo apt install git
git clone https://source.puri.sm/Librem5/librem5-flash-image.git
cd librem5-flash-image
./scripts/librem5-flash-image --udev

If above still not working:
sudo apt install python3-pip
sudo pip install tqdm yaml pyyaml python3-jenkins
./scripts/librem5-flash-image --udev

@librem5, please change above CLI command into:
sudo ./scripts/librem5r4-flash-image --variant luks (if plain option isn’t …)

in accordance with this main article: https://puri.sm/posts/reflashing-the-librem-5/.

Yes I’ve followed those exact directions, everything worked correctly.
I’m assuming EMMC has issue. Both jumpdrive and flashing gets stuck around EMMC mounting (just thinking in terms of steps).

Can phone boot from SD card alone? if yes, how ?

1 Like

Yes, but we need to search through this Forum for this particular instruction.

Otherwise (before installing new PureOS onto microSD), I would erase everything on this eMMC and try again … as above.

Please post here output of:
sudo fdisk --list /dev/sdb −− the one referring to eMMC, after L5 mounted with JumpDrive

At least make sure to umount those two L5 partitions before proceeding with flashing.

My above post edited to:
git clone https://source.puri.sm/Librem5/librem5-flash-image.git

@librem5, please post this output here.

Anyway and if not about to erase your L5 eMMC by using JumpDrive we do not need this tool at all, not for our intended flashing purpose here, I think, therefore I would like to either propose or introduce to you another method (without involving JumpDrive tool, kind of old school method, after ensured that your L5 already connected through: uuu -lsusb).

Perhaps, I hope so, you would like, @librem5, to follow this official guide/reference and rename respectively, actually use flash_librem5r4.lst (instead of using flash_devkit.lst or, here just for example, purism-librem5.lst from within JumpDrive extract folder)?

If your answer is yes (as I didn’t test this because I need to make backup first, but not today) please proceed with (above linked guide adjusted from my side so double check for eventual errors):

Please make fresh (as of today) download of uuu Scripts:
mkdir Librem5_uuu_files

Note, no need to download the Recovery Image while it be included afterwards within Flash_Librem5 folder:
https://arm01.puri.sm/job/u-boot_builds/job/uboot_librem5-recovery_build/

Second note, there is, as well, no need to download the Latest Image:
luks Build 10655: https://arm01.puri.sm/job/Images/job/Image%20Build/10655/
or plain Build 10652: https://arm01.puri.sm/job/Images/job/Image%20Build/10652/

Now it is time for me to make above long story shorter (as partially tested it) and get it done:
cd /home/path-to-your-workspace/Downloads
mkdir Flash_Librem5
cd /home/path-to-your-workspace/.../librem5-flash-image/
sudo ./scripts/librem5r4-flash-image --variant plain --dir /home/path-to-your-workspace/Downloads/Flash_Librem5 --skip-cleanup --skip-flash
cd /home/path-to-your-workspace/Downloads/Flash_Librem5
ls -la
As present there (shown): librem5r4.img is ready to be used as is (no need to “unpack the image”).

It is time to connect your Librem 5 and proof if everything ready:
uuu -lsusb

Now, actually only when you are ready, please execute:
uuu flash_librem5r4.lst
or (if required and probably preferably):
sudo uuu flash_librem5r4.lst

P.S. @librem5, if your Librem 5 survive this procedure (non-torture), I’ll follow your live environment steps gladly :grinning:!?

P.P.S. Partial proof of above from my side:
sudo ./scripts/librem5r4-flash-image --variant plain --dir /home/path_of_yours/Downloads/Flash_Librem5 --skip-cleanup --skip-flash
2022-03-19 10:33:35,352 INFO Looking for librem5r4 plain byzantium image
2022-03-19 10:33:38,771 INFO Found disk image Build 10652 ‘plain librem5r4 byzantium image’ from Sat Mar 19 01:49:27 2022
2022-03-19 10:33:40,446 INFO Found uboot Build 82 from Fri Sep 10 20:19:03 2021
2022-03-19 10:33:40,446 INFO Downloading to /home/path_of_yours/Downloads/Flash_Librem5
2022-03-19 10:33:41,021 INFO Downloading image from https://arm01.puri.sm/job/Images/job/Image%20Build/10652/artifact/librem5r4.img.xz
2022-03-19 10:38:10,350 INFO Calculating sha256sum of /home/path_of_yours/Downloads/Flash_Librem5/librem5r4.img
2022-03-19 10:38:58,816 INFO Downloading uboot from https://arm01.puri.sm/job/u-boot_builds/job/uboot_librem5_build/82/artifact/output/uboot-librem5/u-boot-librem5.imx

@librem5 ok it seems that your eMMC of L5 it corrupted, so to fix it you need reach the eMMC to perform a “clean” or reformating the emmc.
Jumpdrive or sd card with a SO can helping you.

2 Likes

I agree with your kind proposal as probably very necessary, thank you! Please write in advance to @librem5 on how to do this by using JumpDrive. Only reliable command that I know of and would propose is dd.

This one will do (besides another one to erase the whole eMMC), as important one:

1 Like

jumpdrive doesn’t work, in both cases (jumpdrive and flashing) process just gets stuck after SDP: boot

uuu (Universal Update Utility) for nxp imx chips -- lib1.4.77

Connected Known USB Devices
	Path	 Chip	 Pro	 Vid	 Pid	 BcdVersion
	==================================================
	1:1	 MX8MQ	 SDP:	 0x1FC9	0x012B	 0x0001

and
Bus 001 Device 005: ID 1fc9:012b NXP Semiconductors i.MX 8M Dual/8M QuadLite/8M Quad Serial Downloader

Image download and creation

../librem5-flash-image/scripts/librem5-flash-image --variant plain --dir ./ --skip-cleanup --skip-flash
2022-03-19 12:29:49 INFO Looking for librem5r4 plain byzantium image
2022-03-19 12:29:52 INFO Found disk image Build 10652 'plain librem5r4 byzantium image' from Fri Mar 18 17:49:27 2022
2022-03-19 12:29:54 INFO Found uboot Build 82 from Fri Sep 10 11:19:03 2021
2022-03-19 12:29:54 INFO Downloading to ./
2022-03-19 12:29:54 INFO Calculating sha256sum of ./librem5r4.img
2022-03-19 12:30:05 INFO Downloading image from https://arm01.puri.sm/job/Images/job/Image%20Build/10652/artifact/librem5r4.img.xz
                                                                               2022-03-19 12:33:31 INFO Calculating sha256sum of ./librem5r4.img                
2022-03-19 12:33:42 INFO Downloading uboot from https://arm01.puri.sm/job/u-boot_builds/job/uboot_librem5_build/82/artifact/output/uboot-librem5/u-boot-librem5.imx
drwxr-xr-x 2 monkey monkey       4096 Mar 19 12:33 .
drwxr-xr-x 6 monkey monkey       4096 Mar 19 12:25 ..
-rw-r--r-- 1 monkey monkey        561 Mar 19 12:33 flash_librem5r4.lst
-rw-r--r-- 1 monkey monkey 4500000256 Mar 19 12:33 librem5r4.img
-rw-r--r-- 1 monkey monkey    1073880 Mar 19 12:33 u-boot-librem5.imx

This gets stuck at
uuu flash_librem5r4.lst
uuu (Universal Update Utility) for nxp imx chips – lib1.4.77

Success 0    Failure 0                                                         
                                                                                
                                                                                
1:1      1/ 1 [=================100%=================] SDP: boot -f u-boot-libre

As I’ve mentioned in previous post.
Following command from lst never finishes:
SDP: boot -f u-boot-librem5.imx

After that PC just keeps waiting.

sudo has same behavior

Som more info (Commands run in uuu shell)

U>CFG: SDP: -chip MX8MQ -compatible MX8MQ -vid 0x316d -pid 0x4c05
>Start Cmd:CFG: SDP: -chip MX8MQ -compatible MX8MQ -vid 0x316d -pid 0x4c05
Okay
U>SDP: boot -f u-boot-librem5.imx
>Start Cmd:SDP: boot -f u-boot-librem5.imx
New USB Device Attached at 1:1
6400%1:1>Okay (0.349s)
Okay
U>SDPU: delay 1000
1:1>Start Cmd:SDPU: delay 1000
Wait for Known USB \

Should vid and pid be what’s listed in lsusb?

1 Like

I think that you gave your best to recover your Librem 5 from cannot power on state, please reach out for professional help at support@puri.sm, as you and @carlosgonz supposed already it seems like some particular hardware issue (I just hoped it isn’t).

Didn’t check yet, but I think it should.

uuu -lsusb
uuu (Universal Update Utility) for nxp imx chips – lib1.4.193

Connected Known USB Devices
Path Chip Pro Vid Pid BcdVersion
==================================================
2:1 MX8MQ SDP: 0x1FC9 0x012B 0x0001

1 Like

Yes checking with support as well.

And looks like vid and pid can be different, thanks for checking.

1 Like

jumpdrive is not really able to mount eMMC.
Can you point to SD card with SO steps or something?

I do not agree at this point as my phone VID and PID are the very same ones as yours.

Sorry I meant vid and pid mentioned in .lst file:
U>CFG: SDP: -chip MX8MQ -compatible MX8MQ -vid 0x316d -pid 0x4c05

1 Like

USB Vendor ID 316D recognizes Purism, SPC as the USB Vendor and manufacturer of devices. For example Librem key PID is 4C4B.

It fine that Jumpdrive can not mount the eMMC because the eMMC it CORRUPTED, but Jumpdrive can expose the memory(eMMC) for gnu-tools “parted” to formating to clean.
I not sure how Jumpdrice work on Librem 5, because i never needed. give me some time then i can troubleshooting .

1 Like

Yes I hope that too:

sudo parted /dev/sdb
GNU Parted 3.4
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) p
Model: JumpDriv e eMMC (scsi)
Disk /dev/sdb: 31.3GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 5243kB 493MB 488MB primary ext2 boot
2 493MB 31.3GB 30.8GB primary ext4

(parted) q

1 Like

Wow good job! Thank you @Quarnero
@librem5 you can use too the app “gparted” for easy for you, just delete all partitions to clean of the emmc-L5

1 Like

@librem5, please check out if this page helps to you any further: https://arm01.puri.sm/job/u-boot_builds/.

1 Like

Should jumpdrive finish with success ?

It never shows eMMC. (same with gparted)

sudo fdisk --list /dev/sdb
fdisk: cannot open /dev/sdb: No medium found
1 Like