Status of Suspend for Librem 5

I tested manual suspend yesterday (using the “mobile settings” app).
Today I tested the automatic suspend, and it did not run so well. Power settings are : black screen after 1 minute, auto suspend on battery only after 2 minutes. Wifi off by HKS.
image

On wake up, I add a lot of “orange exclamation mark on signal strength icon” situations.
image
Sometimes, it works again after toggling the mobile data, but often it did not recover until I toggle the modem HKS.
image

Sometimes, the exclamation mark disappears, but I do not have connectivity. In this situation, wwan is in an UNKNOWN state, and setting the interface up or down do not change anything:


In this situation :

  • SMS are received, but did not fire any ring/alert (I found them after reboot)
  • Call trigger a ring… but aborting the call after a few ring leads to endless ring on the librem5. It ends up after a long timeout, but cannot receive any call after. It shows cellular OFF in the top drop menu, and I cannot click the icon anymore. dmesg shows nothing.
    journalctl show that the modem was marked as invalid after the timeout…
Mar 08 22:44:40 pureos ModemManager[888]: <warn>  [modem1] couldn't load call list: Serial command timed out
Mar 08 22:44:40 pureos ModemManager[888]: <warn>  [modem1] port ttyUSB1 timed out 8 consecutive times
Mar 08 22:44:45 pureos ModemManager[888]: <warn>  [modem1] port ttyUSB1 timed out 9 consecutive times
Mar 08 22:44:48 pureos ModemManager[888]: <error> [modem1] port ttyUSB1 timed out 10 consecutive times, marking modem avalid
Mar 08 22:44:48 pureos NetworkManager[634]: <info>  [1678311888.3476] device (ttyUSB1): state change: prepare -> unmanaged (reason 'removed', sys-iface-state: 'removed')
Mar 08 22:44:48 pureos mmsdtng[938]: ../plugins/modemmanager.c:mmsd_modem_unavailable() Disabling Bearer Handler
Mar 08 22:44:48 pureos mmsdtng[938]: ../src/service.c:mms_service_set_bearer_handler() service 0xaaab084edd40 handler (nil)
Mar 08 22:44:48 pureos mmsdtng[938]: ../plugins/modemmanager.c:mmsd_disconnect_from_sms_wap() Stopping watching SMS WAPs
Mar 08 22:44:48 pureos mmsdtng[938]: ../plugins/modemmanager.c:mmsd_mm_state() Modem vanished, Disabling plugin
Mar 08 22:44:48 pureos mmsdtng[938]: ../plugins/modemmanager.c:mmsd_mm_state() MMSD_MM_STATE_NO_MODEM
Mar 08 22:44:48 pureos mmsdtng[938]: ../plugins/modemmanager.c:cb_object_removed() Modem removed: /org/freedesktop/ModemManager1/Modem/1
Mar 08 22:44:48 pureos NetworkManager[634]: <info>  [1678311888.3553] manager: NetworkManager state is now DISCONNECTED

After another sleep/resume, modem did reattach, but as Modem 2:

Mar 08 22:59:02 pureos mmsdtng[938]: ../plugins/modemmanager.c:mmsd_mm_add_object() Added device at: /org/freedesktop/ModemManager1/Modem/2

When exclamation mark is present, interface is DOWN, and it goes to UNKNOWN if I try to set it up:

  • What is the best way to contribute to solve / document / help this issue ?
  • Is there an automated “bug report” process, maybe a script or an application to collect all usefull logs ? (I saved the full journalctl, the most relevant)
  • What are all the related projects in puri.sm gitlab ? (I can fill an issue with as much debug information as needed)

Purism already know pretty much everything on modem issues, the problem is that any modem it is propietary blackbox hardcoded things, this modem come with obsolete linux version inside, so this blackbox modems complaints everything making a lot troubles in gnu+lnx ecosystems. that is why gnu fsf it recommend do not gaming with firmware blobs
I recommend keeping an updated das-uboot in ur Purism Librem 5 to kill some bugs.

At the moment suspend is still considered experimental and there’s little point in documenting all these issues as a lot still needs to be done for it to even have a chance to work reliably.

3 Likes

I pretty much have abandoned using it until it’s further along. I’m just being more cognizant of the battery state and managing it accordingly.

2 Likes

@dos Could you give us a rough outline of what there is still to be done for suspend to work properly?

I follow the suspend related issues on gitlab, but I’m positive that I’m not aware of all the missing pieces.

1 Like

Fixing modem’s USB resets, preventing QMI CID reset on suspend, adding more steps to MM’s quick sync (call and message list), solving caam_jr issue, getting modem’s USB device suspended with remote wakeup enabled to not reset upon resume, reducing MMC post-power up delay without breaking Redpine cards, letting Redpine cards shut down during suspend, having MM correctly handle modem enumeration with PDP context active, fixing NM autoconnect of WWAN profile after connection failure…

Some of them already have possible solutions, but they’re very very fresh (literally a product of last days) :wink:

12 Likes

If it were easy everyone would be doing it…lol.

2 Likes

Thank you!

So many things to do, yet not much manpower. I hope that you will be able to find adequaquate solutions in reasonable time without stressing yourself :upside_down_face:

2 Likes

Any news on the suspend function? It still says that it is experimental. But I am just curious how things are coming along…

1 Like

I have been using the suspend function for several month continuously (~6MO) and more recently (last month maybe) the cellular modem dropping out issues, or not being able to bring the modem back up have improved a lot. Occasionally the modem does not come back up, but when toggling the wwan modem switch it does. That said i am also running the watch modem script that will re-initiate the modem if it detects it disappearing and generate a warning audio notification, but i haven’t received as many notifications of the modem doing so lately, with phone suspended, or not suspended and just sitting there on a charger (where my suspend delay is much longer, than for battery suspend delay).

Getting SMS messages and message notifications while suspended i think almost works, not sure about calls.

3 Likes

Thanks, Captain. Maybe I will give it another try one of these days. It would be nice if it was totally reliable. Meanwhile battery life of the L5 is pretty decent by now as well. So I can live without suspend most of the time.

I have found it works but most people do not have the patience to wait until you answer your phone while it wakes from slumber so that’s an issue. I have found that SMS is mostly reliable but not sure about other things like Signal messages for example.

1 Like

I called my suspended L5 from another mobile sitting in 5cm distance to the L5. I let it ring 10 times, it just not woke up.

1 Like

I have experienced this as well. Still hit and miss so I do not currently use it.

If your phone does wake up correctly on power button press but it does not wake up from suspend at all on incoming call despite of the signal being heard on the calling side, it means you have to contact support to get the modem’s firmware updated.

Keep in mind that I’m not talking about anything else other than merely waking up on incoming calls/messages. It should wake up from sleep, but actually noticing and reacting to calls in timely manner is not exactly supposed to work reliably yet (although we should get there pretty soon now).

8 Likes

That one I can answer. No, gnome-clocks does not support waking up the phone from suspend yet. It is a permission issue where part of the solution was only just implemented in a still unreleased version of systemd.

3 Likes

Thanks. I’ll stick to my old phone for that functionality, then.

For those curious about the progress, I’m seeing under a debugging / testing kernel I was able to get through the community Librem 5 matrix channel (6.2.0.1) I have suspend working 95% of the time. My metrics for this measurement are that the phone comes back from suspend, and I can log in. (There was a bug that was creating a double log in screen which prevented you from ever getting past it previously. This was masterfully fixed in a recent phosh update.) My cellular connection is active and data connectivity happens usually within a few seconds. This happens about 80% of the time. When it doesn’t work, usually within the space of up to a minute, the modem will reset and then connectivity is restored. In some rare occassions the modem does not come back. Either suspending and resuming or restarting the phone will bring it back. This is very rare.

This is a debugging kernel not intended for byzantine. But I wanted to talk about it, because this is all very promising. As @dos has pointed out earlier, there is still a lot of work to be done, but they are making great progress.

This kernel has taken my Librem 5 from hardly being used to nearly being my main and daily.

10 Likes

Getting close

3 Likes

Well… the alarm does work for me. Maybe this is because the L5 is on the charger overnight?