Hot battery and now won't boot or turn on

You can see it in this image (two pieces: cable + brick/plug):

1 Like

My Purism-supplied charger has the Purism logo on it - so it shouldn’t be too hard to work out whether I am using the official charger! My Purism-supplied cable (USB-C M to USB-C M) is black, not red. But I guess I can’t rule out that they changed livery / colour at some point. (The battery also has a Purism logo on it.)

I’m not saying “don’t use third party equipment” but if you were, say, looking for warranty / repair with Purism, I think you have a moral obligation to test first with all the official equipment.

If you can lay your hands on a USB power meter that supports USB-C then that is a way of verifying power negotiation even when the phone is as yet unable to boot.

1 Like

Found the charger and lead, it was still in the box. Weirdly though, the trick above doesn’t work at all with the supplied charger. It does with this red Pinephone lead though, and its a 1+ phone charger.

I had another go, it seemed to take 2-3 hours of charge, but again, no life won’t turn on.

I’m not sure whether to order a battery to gamble on that, but I think there are issues with Purism sending batteries abroad …

EDIT - just had a look at the Purism shop, and looks like I can’t buy a new battery … great.

1 Like

What happens if you use the official charger and with the battery removed? (and, as always when having problems, all kill switches in the OFF position)

What happens if you try the above but try to put the phone in serial download mode? i.e. as connected to a host computer. Does the phone show up in the output from lsusb? If so, with what description?

1 Like

With the official charger, nothing happens at all.

With my laptop, I can get the flashing red LED, but putting the battery in the LED just goes off.

lsusb shows …

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

2 Likes

You may be able to order an after-market replacement battery from one of the usual online marketplaces. Or, as @FranklyFlawless said, if you do end up sending in your L5 for repair, have Purism include a new battery when they return it to you.

1 Like

That is an excellent sign. It means that the phone is basically working.

In that case, I would boot Jumpdrive on the phone (via serial download mode) and examine the state of the phone’s eMMC disk i.e. examine its contents from the host computer.

1 Like

Yeah along same lines with support, they are saying try and reflash the phone as it will cost a lot to post back to America.

https://developer.puri.sm/Librem5/Development_Environment/Phone/Troubleshooting/Reflashing_the_Phone.html

I am trying to follow this. Does anyone know about that uuu tool for Fedora? I can’t find it in the repos.

dnf serach uuu
nothing
dnf search mfgtools
nothing

1 Like

You’ll only find uuu in the latest versions of Ubuntu or its derivatives. The abbreviation stands for “Universal Update Utility,” so you might also try looking for that in your software repo application.

In any case, you could just write the latest Ubuntu to a USB drive, and use that to perform the flash. It will have uuu available.

Or you can try building it yourself on Fedora: Building uuu and Jumpdrive · Wiki · Librem5 / Librem 5 Community Wiki · GitLab

1 Like

I tried running from Ubuntu stable on a live USB, it blew up with some exception about a timeout as soon as I ran the command.

Trying with Rhino Linux which says its more up to date than Ubuntu, as I searched the exception, and spotted something about Python Requests and a bug with an old version. Could be wild goose chase of course …

1 Like

You can use Debian 12 ‘Bookworm’ instead, which is upstream of Ubuntu.

1 Like

I manged to try on Bookworm. I now wonder if all these distros are too new with some Python package. But I’m guessing.

user@debian:~/librem5-flash-image$ ./scripts/librem5-flash-image --stable
2024-10-28 22:44:54 INFO Looking for librem5r4 luks byzantium image
2024-10-28 22:44:55 INFO Found disk image Build “stable” ‘Last stable librem5r4 build’ from Fri Jun 23 22:21:40 2023
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 462, in get_job_info
response = self.jenkins_open(requests.Request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 564, in jenkins_open
return self.jenkins_request(req, add_crumb, resolve_auth).text
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 580, in jenkins_request
self.maybe_add_crumb(req)
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 369, in maybe_add_crumb
response = self.jenkins_open(requests.Request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 564, in jenkins_open
return self.jenkins_request(req, add_crumb, resolve_auth).text
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 583, in jenkins_request
self._request(req))
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 557, in _request
return self._session.send(r, **_settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/requests/sessions.py”, line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/requests/adapters.py”, line 664, in send
timeout = TimeoutSauce(connect=timeout, read=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/urllib3/util/timeout.py”, line 119, in init
self._connect = self._validate_timeout(connect, “connect”)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/urllib3/util/timeout.py”, line 156, in _validate_timeout
raise ValueError(
ValueError: Timeout value connect was <object object at 0x7f6b449784c0>, but it must be an int, float or None.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/user/librem5-flash-image/./scripts/librem5-flash-image”, line 538, in
sys.exit(main())
^^^^^^
File “/home/user/librem5-flash-image/./scripts/librem5-flash-image”, line 478, in main
uboot_ref = find_uboot(UBOOT_JOB_NAME.format(uboot_board))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/user/librem5-flash-image/./scripts/librem5-flash-image”, line 282, in find_uboot
info = server.get_job_info(jobname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jenkins/init.py”, line 475, in get_job_info
raise JenkinsException(
jenkins.JenkinsException: Could not parse JSON info for job[u-boot_builds/uboot_librem5_build]

1 Like

Looks like Jenkins is broken again, but this time for uboot, so manually download it instead:

https://arm01.puri.sm/job/u-boot_builds/job/uboot_librem5_mainline_build/lastSuccessfulBuild/artifact/output/uboot-librem5/u-boot-librem5.imx

Since the steps are manual now, download the Evergreen Byzantium LUKS image as well:

https://storage.puri.sm/librem5/images/byzantium/2024.04/librem5r4/luks/artifact/librem5r4.img.xz

Extract it to ~/librem5-flash-image, move u-boot-librem5.imx to that directory, then execute this command within the directory instead:

./scripts/librem5-flash-image --stable --skip-download --dir ./

Thanks for the help everyone. Still struggling though sadly. What a faff.

Post there, somebody seems to be saying they had the same issue, and worked around it somehow or other. Need to read that lot and try and make sense of it.

1 Like

That post specifically refers to missing Python dependencies, but if you already used the sudo apt build-dep . command in the ~/librem5-flash-image directory, then you do not need to read it.

Yeah I did use that command, so okay, maybe its just because the build is broken then. Not sure why my manually copying the files in didn’t fix it though.

Sigh.

1 Like

There needs to be these two files within the ~/librem5-flash-image directory for the last command to work:

  1. librem5r4.img
  2. u-boot-librem5.imx

If you want to share more verbose, add the --debug argument to the command.

It may be too late now but have you ever successfully flashed your phone in the past?

I chose to keep the disk image and other needed files on my host computer so that I can at least reflash back to that exact state, regardless of whether I can download the latest disk image (or for that matter restore a backup image).

If you have all the right files already downloaded and processed and sitting on your host computer then you can reflash just by cd to the correct directory and then sudo uuu flash_librem5r4.lst but that is definitely going to be trickier if you are trying to do this from a Live Boot environment.

1 Like

Thanks mate, good thinking, bad sadly no, the phone has happily run and never needed it. Also as above, you can’t run this “uuu” thing on Fedora or seems.

1 Like

That’s why you would be doing it from a Live Boot environment. Or, alternatively, grab a flash drive and actually install Ubuntu, or other Debian-family distro, on the flash drive and then use that to boot from when you need to do host computer management tasks on your phone (like backup, restore or reflash). (In that scenario, you might want e.g. a 32 GB flash drive, to allow enough space for Ubuntu slash whatever itself, plus the unexpanded disk image, plus the expanded disk image, plus margin.)

2 Likes