Battery drain while suspended


Woops, I have the same ram as veggies.
Part Number: 16ATF2G64HZ-2G3B1


On my Librem 15v2, the RAM is DDR3L from Crucial, with the following specs and part number (2 sticks, so I have 16G):
8GB DDR3L, 1600 Sodimm, 1.35V
CT102464BF 160B.M16FP

PS: If this is indeed the RAM sticks that are at fault, should we try to get a return from Crucial or should it go through Purism (or should Purism inform Crucial of this issue first)? (the online return form from Crucial is very simple, But I don’t want to ship my ram, hear that I can not return it directly and spend a few weeks without a working laptop for nothing)


I used Crucial’s excellent cross-shipping process (so you don’t have any down time, you pay them for the RAM–> they ship you the ram --> you swap old/new RAM --> you ship them the old ram -->they receive the old RAM and you get a refund). I used their online chat to complain, and pointed them to evidence of the problem elsewhere online.

My new RAM is CT16G4SFD824A C16FE
My old RAM was CT16G4SFD8213 C16FH1

An overnight suspend of ~8h resulted in 86%–>79%, or ~7% battery charge loss, a marked improvement from the ~60% I was seeing. This is only one data point, we’ll see how it goes.


I can confirm that with Samsung memory, the issue is fixed.

Part number M471A2K43CB1-CRC.


@devnull can you say how much your battery is drained within one night (roughly 8 hours) to get a comparison to post of mpc?


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)


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 


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

PureOS wakes up after a few seconds of suspend
Fan full blast after sleep, coreboot and Intel ME
USB port not working + kworker crazyness

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


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:

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.


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”.


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.


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)


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:

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…