I have just posted a reply in [GUIDE] Linux battery life tuning.
So far, my battery life is worse with my Ryzen 5 7640U than with my i5-1135G7.
Especially in FHD video playback, I’m looking at 4-5h instead of 5-6h.
At the moment, I hope it’s some sort of driver thing on Linux and that it will get better.
Mostly, because it does not correlate with the overall observations of significantly better battery life.
I see between 10 and 15W on FHD playback as well on YouTube, I would say that fits. So, other than a smaller battery, it would come down to the power saving features of your distro and how they are setup.
@Shijikori In that case, I perhaps set my expectations too high. I was anticipating longer battery life than with my 11th gen Intel mainboard, which supposedly isn’t very energy efficient.
Thanks for the insight!
No your expectations aren’t high. There are driver issues IMHO. My wife’s 2-3 year old laptop with a Ryzen 5900HS uses less power during YouTube playback on Linux.
Windows 1080P YouTube playback for me is around 7-8 Watts, Linux is 11-13 Watts even with VA-API working correctly. For offline 4k30 h.264 mp4 videos Windows is 6-7 watts and Linux is 10-12 using va-api. This is literally a 50%+ increase. That increase could half your video playback battery life.
I think we need to collect some logs and submit them to AMD, because the battery performance on Linux should be much better than what it is. This is not as intended by a 4nm cutting edge chip IMHO. It should not perform worse than their 7nm chip produced years ago.
I do agree but I don’t see this as terrible battery life coming from a brand new platform. I already get 2 hours more than my ThinkPad E595 with a Ryzen 5 3500U and worlds better performance.
I’m experiencing the same poor battery performance as you. I think it’s driver issues, since a lot of people and reviews are reporting much better efficiency than any of the previous intel gens - and 11th gen is the worst.
My battery life on the AMD running windows 10 also didn’t seem better than my 1135g7 framework. The newer (I think) beta drivers from framework didn’t seem to help but drivers directly from AMD’s website based on my admittedly somewhat limited initial testing have.
The laptop seems somewhat cooler now, and sleep power usage according to sleep report seemed to decrease from around 2.5W+ (at one point being over 9W in sleep) to perhaps half that with the previous major offenders no longer seeming to show up. Still not ideal (and perhaps twice as high as I’m getting for sleep on the 1135 (at least on the times the audio drivers aren’t keeping the 1135 active)), but an improvement I think. But it’s unclear at this point what else might be using so much power.
The GNOME Power Statistics application shows an average of ~6 hours to bring the battery from 90% to around 15% charge. Nearly all web browsing, some remote desktop connections, and only a small amount of video playback and video calls.
I do notice that the Framework chassis becomes warm to the touch during these basic activities, whereas my Surface Laptop 3 with a 10th gen Intel i7 will stay cool until I push it with extended media playback, or if I try and send/receive a chat message in that ogre of a program they call Teams.
So it feels like the Ryzen 7640 in my Framework is having to work a lot harder to do basic tasks as it stands now. I’m hopeful AMD can make improvements here as time goes on. I feel like on paper, we should be seeing much better power performance.
Got to keep in mind that you don’t get both the performance and power consumption advantages with a node shrink. It’s one or the other. Depends what AMD chose to do but it would be quite a shot in their own foot to node shrink and do worse power efficiency and I don’t mean better performance for same power consumption but just worse efficiency overall. The platform is new and definitely needs some firmware and driver improvements to give it’s full benefits but what we have now, to me, looks to be pretty good already.
Same. I tried Powertop when new to Linux and saw that all it was doing was writing settings to sysfs, so I just configured udev rules to do that for me without any extra tools needed. That and a nice undervolt got Linux to have better battery life than Windows on my current non-Framework laptop.
Doing casual web browsing tasks with stuff open in the background (vpn, mail client, spotify, etc)
5h 10min estimated time remaining at 66% battery. So that puts battery life at about 7-8 hours.
I’ve found fedora battery life is marginally worse for causal tasks (half an hour to an hour worse), though it’s significantly lower while watching video because of the poor hardware acceleration situation on linux.
Overall I’d rate the battery life as not particularly excellent on Linux (~4-6hrs if in light use), not that that is unexpected. That said, given the modern processor, I find that for light tasks I can keep the laptop on Power Saver with pretty much no noticeable performance hit. My past experience on older Intel this mode would have made the system sluggish.
Drawing ~8W on Power Saver mode, light browsing in Firefox.
I have managed to improve the battery life expectancy by using a little script.
When on battery, I set KDE to execute a script containing the following line :
echo power | tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference
With AMD P-States, no matter what you set the governor to be (powersave or performance) it doesn’t change much the amount of power used by the CPU cores. The powersave setting just seems to less aggressively boost. Though the energy performance preference setting, in conjunction with the governor, defines the behaviour of the CPU. The EPP profiles that can be used are default (whatever that is), performance (that was what it was set to for me), balance_performance, balance_power and power.
The profile power is the one that gives me the most aggressive energy saving with most cores being parked/at 400MHz most of the time. Depending on the balance of battery life and performance you’re aiming for you can go for other profiles and see what the results are for you.
My battery life expectancy with power as the profile and a charge of 95% with nothing but effectively web browsing going on is above 10 hours. With YouTube video playback I gained about an extra expected hour of playback.
With mostly web browsing and light gaming (BTD6) as tasks for today, I have managed to go through my day in a single charge (though I did use my device only for a bit more than 4 hours) and I still have over 40% battery left.
I am looking into what can be done with the GPU as this seems to still drain a bit of power during YouTube playback. Though, energy consumption while watching YouTube still decreased to 8.5-9W compared to 10-12W. Also, idle is looking pretty good at around 5W.
So, I’m having some issues related to powerdevil. It doesn’t seem to escalate to root/doesn’t have the permissions to apply the EPP profile… Though, the script itself does work when ran as sudo. That does not impact in anyway the results I had. It’s just a little trouble with the automation.
Figured it out. If you want to use my solution and avoid having a bash script looping infinitely and looking at your battery status, you can set udev rules to run the script when your laptop is getting connected to AC power and when it is not.
The udev rules are as simple as this :
Of course, simply replace the RUN part with the path to your own power management script(s). The delay for the rules applying is very small though it does work for the automation.