Battery drain while suspended

I believe I’ve found the problem. At boot pureOS attempts to start a service called pureos-power-optimisations this fails with exit code 203. This means that the directory where it thinks the program is stored is not there. Specifically it tries /usr/lib/pureos-power-optimisations/apply if we check this we do indeed find that there is no such thing. However there is a /usr/lib/purism-power-optimisations/purism-power-optimisations . so this will be an easy fix.
Make your way to the terminal and…

before you start check if you have this issue

systemctl status purism-power-optimisations.service

if that returns with a failed, then continue, if not (wich would be an big green active) then ignore this

sudo nano /lib/systemd/system/purism-power-optimisations.service

If you want make a note of everything on the screen in case you press the wrong key.
Find the line that starts with ExecStart and make sure it reads (edit if necessary)

ExecStart=/usr/lib/purism-power-optimisations/purism-power-optimisations 

Then ctrl+x and y to save and exit
Then type

systemctl daemon-reload

Followed by

systemctl start purism-power-optimisations.service 

If this doesn’t work post

systemctl status purism-power-optimisations.service 

Here

P.S sorry if this suggestions already been made but recently used this to solve the issue on my librem 13 v2

9 Likes

I’m seeing the same drain as @mpc both before and after.

@tasty the RAM swap seems to have totally solved my drain-while-suspended issues. I don’t see a file at /lib/systemd/system/purism-power-optimisations , nor do I have the service running. This is on a 15v3. I wonder what’s up

1 Like

Mmm What files are in /lib/systemd/system
Also look through sudo nano /var/log/boot.log for power optimisation errors

@tasty that is very interesting :slight_smile: You have a small typo, please edit and add .service to the sudo line. (That’s @mpc’s problem.

For completeness’ sake:
https://tracker.pureos.net/T530

I’m wondering if this quick fix is all, or if there’s more to do. Waiting for comments on the issue there.

Also, as a side-note: I think I lose like <20% of battery per day on standby. That is surely not the same thing that people with certain RAM experience. I guess it’s two distinct issues.

1 Like

Ok fixed the typo thx @Caliga

I also reckon its two distinct issues, as a note my laptop also gets quite hot. Am going to investigate further. although I reckon the reason that the battery was draining when the lid closes was that ‘suspend’ wasn’t actually working like it should but its possible the ram was keeping the processor awake doing crap, maybe check cpu wakes in power statistics

so power statistics is broken :frowning:

and on that note does anyone know of a tool to check what wakes a cpu/see long term resource usage stats

@tasty Perhaps powertop can deliver some statistics

I have the same issue with a Librem 15v3 bought in May 2018. When I suspend the laptop at night when the battery has been fulled charged, it has become ~75% in the morning.

I also tried to install the extension “Hibernate status button” as I read that Suspend still consumes a bit of energy while Hibernate should not. When I try to Hibernate the laptop, the screen goes black for 2 to 3 seconds before automatically waking up on its own. So I am currently stuck with only the option to Suspend and the drain associatied with it on my Librem.

My RAM is 16G and the Part Number is 16ATF2G64HZ-2G3B1, simlar to veggies and Russ. Is it ok to return the RAM directly to Crucial, or is Purism able to handle this for their customers?

More importantly, which new RAM should I buy to solve the power drain issue? Does the Purism team have a recommendation here?

I was thinking that drain of ~1%/hour was excessive (it’s what I see with my Kingston memory from Purism) but it looks like that’s what everyone sees.

Is ~1%/hour drain during sleep normal for everyone?

I can confirm the about 1 % power drain per hour during suspend (in my case 20 % per 24 hours).

IMHO this is still too high but good enough for mobile working “on the read”.

Background:

I have replaced my original RAM from Crucial CT16G4SFD8213.C16HF1 (see picture) with a new Samsung RAM (M471A2K43CB1-CRC) since the original RAM had a massive power drain during suspend (I don’t know who to blame but the problem seems limited to one special Crucial RAM type - I did not send my librem 13v2 to purism since I want to support them and treat this as a “donation”).

The new RAM is DDR4-2400 though the librem 13v2 supports only 2133 MHz but higher rated modules will clock down to lower speeds without any issues.

I still have not used powertop to try to optimize the power consumption and I am still not using the most recent “BIOS” update (coreboot) so I expect an improvement (lowering power drain) in the future.

Edit:

I forgot to mention

  • I am using Ubuntu 18.04.01 (point release 1)
  • kill switches are set to switch off the the camera and wifi (so the power consumption could be higher if switched on)
2 Likes

I think there is no (easy) option to minimize the power consumption during suspend since the Intel ME firmware has been stripped down to the minimum for the librem 13v2 (as we wanted it to avoid BLOB back boxes and risks of backdoors).

For Linux there is a grub cmd option to optimize the power settings but the script from the link does not find a matching firmware entry for the optimization.

For more background see:

http://iam.tj/prototype/enhancements/Windows-acpi_osi.html

Notebook and tablet PCs have been customising the Advanced Configuration and Power Interface (ACPI) in the firmware (BIOS or UEFI) for versions of Microsoft Windows operating system (OS).
In particular, the Differentiated System Description Table (DSDT), which contains byte-code that the active operating system executes,
is written such that unless the running OS reports itself as Windows many functions are disabled or severely restricted.

DSDT enables many functions based on the name/version of the operating system that is running (known as the Operating System Interface (OSI) name).
Depressingly, the OSI code that tests which operating system version is running almost always only checks for versions of Microsoft Windows.

If the code doesn’t recognise the running operating system it only enables a bare minimum of functionality and leaves many functions and embedded devices
(such as built-in WiFi, Bluetooth, Memory-Card, Fingerprint, Multimedia buttons, extended Function keys, external monitor ports) disabled or not completely configured.

Fortunately this issue was recognised by the Linux developers early on and they provided an option, acpi_osi=,
that allows Linux to report itself as some other operating system in order to have the DSDT code enable the same functionality as it does for Microsoft Windows.

Hi all,

I had the same issue and was very happy to see @tasty’s post help solve it. My issue now is that the mouse goes to sleep after a very short period of inactivity…

Did you figure out how to solve the mouse issue?

Nevermind, I just played around with powertop and figured out I needed to set the mouse to bad…

FYI https://tracker.pureos.net/T530 has been resolved.

2 Likes

For Linux there is a grub cmd option to optimize the power settings but the script from the link does not find a matching firmware entry for the optimization.

For more background see:

http://iam.tj/prototype/enhancements/Windows-acpi_osi.html

Linux already reports itself as compatible with all versions of Windows and that method would be used if the DSDT flags a particular OSI string as incompatible and acts on it.

https://www.kernel.org/doc/Documentation/acpi/osi.txt

Since this laptop was not built for windows and probably not tested on it is why searching for a Windows string within the DSDT is unsuccessful.

I still have awful standby drain. I’m running NixOS with all powertop options enabled. Is there some secret sauce I’m missing?

Powertop gave me a list of commands I should execute. Let’s see if this will help me on the Dell XPS 13.

So still did not help ;(
So keeping the lid closed for a day depletes the battery. Did not happen on Ubuntu. So I am wondering where the difference is.

Is the output of powertop:
I2C Adapter i2c-6 has no runtime power management

and I have to do settings again for the tunings e.g.:
echo ‘0’ > ‘/proc/sys/kernel/nmi_watchdog’;

Why is that?

1 Like