[HowTo] Alternate way of saving battery when using 4G/LTE
-
This script is useful indeed, but it currently has its limits : don't forget to stop it (STOP script name) when cellular data must remain activated in continuous screen off : RADIO app, OTA update, download.... And then restart it (START script name) when you want to use it again.
Maybe the script can be improved ?
-
@yoni
Maybe it was something to do with TELEports or RC image because now it's without problem and before the latest test I updated both.
I think it's some kind of bug because I forgot to turn off script and that's why it was saving battery. In my case when 4G is set and turned off cellular data - it's not saving battery. When 2G is set and turned off cellular data - it's saving battery. I think it shouldn't matter what is set.@domubpkm I'm not going to do that. Use the first or second script if you need connection.
-
@c4pp4
That is very strange, turning off cellular data should save battery by reducing the amount of outgoing radio transmitions, therefore what you are describing is contrary to all of the tests I had made on every OS, are you able to check that cellular data is actually turned off in 4G? -
This seems to be a fine thing . Could one also execute VoLte with this script, of which I have no idea? The creation should not be a problem I think. But I'd better be careful before UT crashes again.
-
@yoni Yes, there is no connection in Morph.
-
@c4pp4
It just doesn't make sense. Could there be a script that turns it back on when you lock the phone? -
@yoni I'm not expert but I can imagine ubuntu system don't turn off cellular data on android side, so there is no connection within ubuntu, but there is connection in android layer.
-
@c4pp4 I'm not an expert too but maybe a total reflash (wipe option) of the smartphone and a reinstallation on a totally clean base would help so as to confirm or not your problem. In any case, in my case I had to do this several times and it solved some instabilities.
-
@c4pp4
It definitely turns the data connection off, and it is visible when I checked it with a RF meter.
Data on (4G):
Data off (4G):
And it is the reduced transmitions that saves the battery, so your situation does not make sense. -
@yoni
Without the full picture it's hard to judge what makes sense or not.
The radio is not the only power consumer.
Depending on the device and the firmware used the behavior can differ.Maybe a process is looping to find the modem and prevent the CPU to sleep.
Maybe also c4pp4's theory is right ; if on Ubuntu Touch's side we kill the data it doesn't kill the modem because you need calls and SMS.
So depending on vendor's firmware and specific port implementation experience may vary.
In a port I suppose that turning off the data can be implemented in several different ways with slightly different behaviors. -
@applee
Those graphs represent RF activity with and without the data connection, so calls and texts are still available in both scenarios, and on the mi A2 the battery lasted 4 times longer when just the data is turned off, and this principle is the same on Androids and iPhones, but at different battery savings levels.
There might be something that is causing the cpu to constantly work, thus preventing battery savings, but UT definitely has control over the data connectivity, and it does turn it off. -
@yoni
What I meant is unless you can produce the same graph with C4pp4's device you cannot draw any conclusion on what happens.
If it's the same model it would be really strange.
But with another device it's a whole different story.
No data received by the user (Morph or Teleports for example) does not mean the modem is not working way more than expected. -
-
-
Hello @c4pp4,
Thank you for the scripts.
I found out that if the device doesn't have 4G you have to put "umts" in "primary_preference". (My device is e4.5 - Krillin - )primary_preference="umts"
I've taken the liberty of sharing your scripts on my blog to reach more people, I hope you don't mind.
https://elcondonrotodegnu.wordpress.com/2022/04/25/scripts-para-ahorrar-bateria-en-ubuntu-touch/
Thanks again.
-
Hello @c4pp4 thank you VE-RY much for your script. Please, could you edit your 1st post just to inform about the following ?
->
Final step : Reboot the phone
Reason : I have done the script II and I could not come back to 4G (2G was OK), so I have used the "lte" modification in the script without success. Then I have reboot my phone and the script was working perfectly.
@yoni said in [HowTo] Alternate way of saving battery when using 4G/LTE:
Here are the battery tests, starting with 4G with data on:
2G with data on:
When I see you plots without / with script, it is a day and night ! My Nexus 5 has a battery drain (or the battery is not enough powerful), I just installed the script so I lack of time to feedback but I hope results like yours, it would be wonderful.
Again, thank you very much for your kind help, such a topic shall be pinned I think.
-
@prog-amateur said in [HowTo] Alternate way of saving battery when using 4G/LTE:
I have used the "lte" modification in the script without success. Then I have reboot my phone and the script was working perfectly.
Thank you for the report, you have to use "restart lte-battery-saver" to apply script changes. I will add a note about it. It looks like "lte" is more generic then "any" so I'll change the script.
-
-
-
Battery drain on standby with 4G is still a problem on focal, so I updated the script and created a small systemd service to automatically run the script at startup. Maybe this will be useful for some.
The greeter in focal is called "com.lomiri.LomiriGreeter" instead of "com.canonical.UnityGreeter". So i changed that in the script and tested that it indeed still works.
I placed the updated script in:
/home/phablet/.local/bin
#!/bin/bash primary_preference="lte" saving_preference="gsm" sim_slot="/ril_0" interface=org.freedesktop.DBus.Properties member=PropertiesChanged dbus-monitor --session "type=signal,interface='${interface}',member='${member}'" | while read -r line; do if [[ ${line} == *"com.lomiri.LomiriGreeter"* ]]; then read; read; read -r line if [[ ${line} == *"IsActive"* ]]; then read -r line [[ ${line} == *"true"* ]] && /usr/share/ofono/scripts/set-tech-preference "${sim_slot}" "${saving_preference}" 1>/dev/null [[ ${line} == *"false"* ]] && /usr/share/ofono/scripts/set-tech-preference "${sim_slot}" "${primary_preference}" 1>/dev/null fi fi done
Don't forget to make it executable:
chmod u+x /home/phablet/.local/bin/lte-battery-saver.sh
Ubuntu 20.04 uses systemd instead of upstart so I created a systemd user service in:
/home/phablet/.config/systemd/user/lte-battery-saver.service
[Unit] Description=LTE battery saver Requires=dbus.socket After=dbus.socket [Service] ExecStart=/home/phablet/.local/bin/lte-battery-saver.sh [Install] WantedBy=dbus.socket
Now to enable the service:
systemctl --user enable --now lte-battery-saver
Verify that it is running and up:
systemctl --user status lte-battery-saver
It should return active and enabled:
â—Ź lte-battery-saver.service - LTE battery saver Loaded: loaded (/home/phablet/.config/systemd/user/lte-battery-saver.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2023-04-29 18:44:27 CEST; 1h 11min ago
That's it, now everytime the phone is locked the connection will drop to 2G and back to 4G/LTE once unlocked.
I tested and verified it on my Oneplus 5T, but it should work on other devices running focal. -
-
[ Focal only ]
If anyone want my dirty hack ( when cellular data off -> then use 2G , when data on -> switch to LTE)You must have a focal device on devel channel, then
sudo ubports-qa install focal_-_PR_lomiri-system-settings-cellular_6
This will auto toggle LTE when cellular data requested , and back to 2G when off,
https://gitlab.com/ubports/development/core/lomiri-system-settings-cellular/-/merge_requests/6( only work when toggled from the settings, not the indicator )
-
@lduboeuf thanks for your 'dirty hack' !
after installing it says I have to upgrade, butsudo apt upgrade
returnsLecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Calcul de la mise à jour... Fait Get more security updates through Ubuntu Pro with 'esm-apps' enabled: libswresample3 libmediainfo0v5 libavcodec58 libavutil56 libopenexr24 libsdl2-2.0-0 Learn more about Ubuntu Pro at https://ubuntu.com/pro W: Verrou non utilisé pour le fichier /var/lib/dpkg/lock-frontend en lecture seule W: Verrou non utilisé pour le fichier /var/lib/dpkg/lock en lecture seule E: Le répertoire d'archive /var/cache/apt/archives/partial n'existe pas. - Acquire (30: Read-only file system)
Any idea how to resolve ?
Moreover, is it possible to add an exception when hotspot is on ?