I have a horrible suspicion that Win 10 worked fine and Win 11 brought the issue to the front
Possibly, but we definitely have people running into the issue on linux as well.
Iām on an 11th gen FW13 and the 3.19 BIOS, just tried s2idle with four USB-C cards and the nvme.noacpi=1
option, and I calculate around 0.7 W/h consumed during suspend over the last three hours or so. Iāll try a more scientifical calculation overnight, but thatās about double what you reported. Have any tips?
11th gen, 3.20, Ubuntu 24.04.1 LTS, s2idle, 4 x USB-Cā¦suspended for 8 hours and 15 minutes, depleted 8.1Wh. So burning at just under 1W.
I did not set the nvme.noacpi=1 optionā¦Donāt see that from the Framework guides. Thereās this where @Matt_Hartley mentioned the nvme.noacpi=1 hasnāt been required for quite sometime now: Ubuntu 24.04 on the Framework Laptop 13 - #36 by Matt_Hartley
Update with additional details:
Memory: 2 x 32GB (HX432S20IBK2/64)
SSD: Adata SX8200 1TB
Due to differences in configuration (memory brand and amount, brand of SSD) I suspect there will be differences in base line power use. I image it will depend on the type of SSD if the nvme.noacpi=1
option makes a difference. I havenāt tested for a while. I might try and see what results I presently get with 3.20 BIOS and fedora 40.
I donāt have those. I only have the original RTC battery. Maybe it is worth checking on the voltage and put a fresh one in or request that module from framework.
Good point, Iām updating the post above your with the additional details.
Iām now going to do a sleep test in Windows 11, again. See if thereās any changes now (vs when it was on BIOS 3.19).
By just taking the battery charge readings before and after s2idle sleep, I recently measured:
0.4 W with just USB-C and 0.93W with an HDMI and a USBA expansion card. This is for an 11th gen i7 with 16Gb memory. The laptop is running fedora 40 and I have TLP activated (and PowerProfile disabled). So it looks like nothing much has changed in terms of the software support and the expansion cards still take a very significant toll. It is a power use where on a 55Wh battery the laptop can survive for about 2 days in suspended state at a minimum. If youāre used to having the laptop plugged in frequently, that is quite workable.
What are you thinking about the nvme.noacpi=1 argument now? I saw a while back that it was taken out of Frameworkās Fedora installation guide, along with the recommendation to use TLP, and somewhere Kieran (I think) said it hasnāt been necessary for a long time.
However, when nvme.noacpi=1 was first recommended in 2022, nrp said that it shouldnāt be necessary if we had the latest SN750 firmware, yet I was still measuring a significant difference despite having that latest firmware.
What are you thinking about the nvme.noacpi=1 argument now?
Nothing. I put it there originally when it had an enormous effect and havenāt had a reason to remove it. As far as I know, the SN730 hasnāt received firmware updates from what I received it with.
Iāve been measuring reduction in battery level every time I put the laptop to sleep the past couple days (calculating Wh from charge level * voltage level, not accounting for the voltage curve, but, close enough, I figure). Thereās something about my numbers that doesnāt add up. It doesnāt seem like rebooting the laptop with different kernel parameters is sufficient to reliably commit the changes implied by the different kernel parameters. Maybe I need to reboot twice, or shut the laptop down fully instead of rebooting.
So far, s2idle w/o nvme.noacpi seems to use around 1.5 watts and deep sleep with or without nvme.noacpi uses either 0.9 watts or 0.5 watts, but I havenāt got reproducible numbers yet. I got that 0.5 watt number just now, but the laptop woke up too fast, without making me type in my password, for it to have been deep sleep. /sys/power/mem_sleep
says itās deep
though.
s2idle w/o nvme.noacpi ā¦deep sleep with or without nvme.noacpiā¦
I donāt think the nvme.noacpi argument was ever expected or measured to have any effect on deep sleep. The key test should be with and without the argument in s2idle.
People were using deep because s2idle was draining the battery, but the wake up time from deep was upwards of 10 seconds. The nvme.noacpi argument made s2idle on par with deep, so we could have instant wake up without the extra battery drain.