• Support
  • Optimizing Solus for Battery Life

One issue I found on Solus with tlp is that there are no packages for the kernel modules acpi_call and tp-smapi in the Solus repository. This seems to limit the battery management capabilities.

❯ sudo tlp-stat -b
Passwort:
--- TLP 1.3.1 --------------------------------------------

+++ Battery Features: Charge Thresholds and Recalibrate
natacpi    = active (data, thresholds)
tpacpi-bat = inactive (kernel module 'acpi_call' not installed)
tp-smapi   = inactive (kernel module 'tp_smapi' not installed)

I managed to locally build the acpi_call for previous 5.x kernel but not fully sure if it provides significant improvement. Need to rebuild it now for new 6.x kernel.
Could not compile the tp-smapi module because the compiler complains that the kernel is not supporting PIC mode.

    palto42 One issue I found on Solus with tlp is that there are no packages for the kernel modules acpi_call and tp-smapi in the Solus repository. This seems to limit the battery management capabilities.

    Do you actually know that this limits the battery management capabilities? Or is this just your assumption based off the output of that command? I think those kernel modules are options, so long as one of them is present (and natacpi seems to be) then it's sufficient.

      ReillyBrogan As far as I understand from tlp documentation, the acpi_call and tp_smapi are mainly required to properly calibrate the battery level, so not really improving power consumption. But incorrectly calibrated battery levels may provide wrong impression of the power state and consumption.

      Just re-compiled it and this is the output with module available:

      ❯ sudo tlp-stat -b
      --- TLP 1.3.1 --------------------------------------------
      
      +++ Battery Features: Charge Thresholds and Recalibrate
      natacpi    = active (data, thresholds)
      tpacpi-bat = active (recalibrate)
      tp-smapi   = inactive (kernel module 'tp_smapi' not installed)

        palto42 I did some more research and you're right, one of those kernel modules is required for "recalibration" on Thinkpad devices. However, kernel 5.17 added recalibration support for natacpi though it needs a newer TLP to activate it. I'll look into updating it hopefully this sync cycle and after that point everything should work on your device.

          7 days later

          ReillyBrogan

          ... it needs a newer TLP to activate it. I'll look into updating it ...

          I tried latest TLP 1.5.0 locally and it works fine with current kernel using natacpi.
          To build the new version I had to change the patches applied for version 1.3.1 and during this review I was wondering why the SOlus packages modifies lots of the default seetings in /etc/tlp.conf?
          As per this older post [Tip to improve battery life]Amazing battery after setting some tlp options! it seems that this modifications are not optimal anyway. Unfortunately the links to the settinsg file in that post currently doesn't work, so not able to compare. But as I checked the recent Ubuntu TLP package, I found that this just provides the unmodified default tlp.conf.
          So shouldn't the Solus tlp package also better stick to the defaults and remove the patch?

          8 days later

          Having messed around with TLP settings and CPU governors on an Intel-only laptop, I began to suspect the real culprits were budgie-panel and especially budgie-wm. They consistently demand more CPU than the equivalent components of lightweight DEs like XFCE (tested Zorin OS Lite 16.04), even when idling. I haven't tested other Solus MATE or Plasma to see how they fare in comparison.

          Of course there are also third-party applications that may be the cause of diminished battery life; of browsers I've found Chrome to be the worst of these.

            • [deleted]

            laurker In that case I would think MATE is your best bet.

              laurker Having messed around with TLP settings and CPU governors on an Intel-only laptop, I began to suspect the real culprits were budgie-panel and especially budgie-wm. They consistently demand more CPU than the equivalent components of lightweight DEs like XFCE (tested Zorin OS Lite 16.04), even when idling. I haven't tested other Solus MATE or Plasma to see how they fare in comparison.

              You might want to take a look at the Gnome system monitor. I've noticed that with htop, budgie-wm is typically around 5-10%, but when I look at CPU usage with Gnome system monitor running, CPU usage across all the cores fluctuates from 30-50% utilization.

              [deleted] In that case I would think MATE is your best bet.

              Do you have any experience with MATE in a laptop? Once I saw on a forum (I thought I had bookmarked it, but can't find it now) someone claim that he had had a better battery experience with MATE than with XFCE, despite the fact that XFCE is supposedly lighter.

              I have a laptop with Solus KDE, and sometimes I think I should move to Solus MATE, and save more battery.

                • [deleted]

                • Edited

                joluveba Well, Solus doesn't provide XFCE desktop so MATE would still be the most lightweight option.

                joluveba I have a laptop with Solus KDE, and sometimes I think I should move to Solus MATE, and save more battery.

                The question is what you are willing to sacrifice to get better battery life, and whether the increase in battery life is worth the sacrifice.

                The boards suggest that many Linux users get 50-60% of Windows battery life. Using relatively recent Intel laptops, with chipsets/drivers tuned to optimize power management, coupled with an array of common-sense energy savings habits, I get 70% (maybe 75% when the planets align). My goal has always been 80% but I have no expectation of getting to that point. I'm pretty sure I know how to squeeze another percent or two out of the system, but doing so would demand changes in the way I use my laptops that I'm not willing to make.

                I don't know whether MATE will give better results than Plasma. Might, might not. You can track to establish a Plasma baseline over the course of a few weeks, switch, and then see whether the MATE results are significantly different. IF so, then you can make a call about whether the difference is worth it to you.

                  joluveba I have a laptop with Solus KDE, and sometimes I think I should move to Solus MATE, and save more battery.

                  Is Plasma's fractional scaling important to you? MATE offers 100% and 200%, like Budgie. Its auto detect setting (according to MATE tweaks) changes to 200% if it detects an HIDPI monitor. I thought I'd mention this, because some folks choose Plasma specifically for its fractional scaling ability.

                  tomscharbach I've been able to get mine to around 80%-85% of Windows battery life on Plasma. I'm on a Ryzen 3 3200 with integrated graphics, using TLP and Powertop. To be fair, battery life has been my goal and getting back to the 4~ hour mark that this machine had on Windows was always a target. I also haven't used Windows on this machine other than to install BIOS updates occasionally, so I'm not really sure what the sacrifices are I'm making in terms of performance on Linux and how it compares. I just know I'm over the 3 hour mark now, and the machine still does everything I want and need without a hiccup.
                  Edit
                  I'm not sacrificing WiFi or Bluetooth. It's always connected to the internet and I use KDE connect for my phone whenever I use the laptop, so there's that.

                    Axios Amd has always been a better power user than Intel

                    I think that's true during the Ryzen era. However, there is a trade-off, as always.

                    AMD and Intel make different assumptions about consumer experience, and different design philosophies about battery performance/life. In a nutshell, AMD basically detects that the laptop is on battery, and dampens performance to maximize battery life across the board (including turning off boost), but Intel does not, using boost when needed, spiking up clock speeds and battery drain in short bursts.

                    It gets down to what is important to users, in the end. AMD's approach is better for users who want to extend battery life as much as possible. Intel's approach is better for users who favor increased performance at some cost to battery life. The reports I've seen don't suggest dramatic differences between the approaches, although all report that Ryzen battery life is better at some sacrifice of performance or perceived performance.

                    The relevant question is whether AMD's approach makes a difference when it comes to comparative battery life between Linux and Windows. Do Ryzen users get equivalent Linux/Windows battery life because AMD's approach, or not? I don't know.

                    Brucehankins I've been able to get mine to around 80%-85% of Windows battery life on Plasma.

                    I'm not sure how 3-hours (Plasma) compared to 4-hours (Windows) equates to 80-85%, but I'm consistently getting 70-75% across the board on two laptops. On the 11-3180 (Kubuntu) I get 3 +/- hours out of a 4-hour battery. On the 7390 (Solus Plasma) I get 6 +/- hours out of an 8-hour battery. Both are consistent with my earlier testing, and both meet my needs.

                    I installed TLP at one point in my testing, but did not see a material gain in battery life, perhaps because I was already "implementing" some TLP policies just by the way I use the laptop when on battery.

                    I've decided that I'm content with 70-75%. I've stopped looking for the Holy Grail of battery life.

                      tomscharbach it's right around 80-85% of the battery life I got out of Windows on the same machine. Again, this could be less now. That was on 10, I've since upgraded it to 11, but I only boot into Windows once every 3-6 months, and it's typically only doing some updates, not actually using the laptop.
                      I should have also noted, I'm running Wayland exclusively. There are some performance trade-offs with X11 and some small bugs still that don't happen on X11, but I'm okay with those trades as I think Wayland will eventually be the standard.
                      I've dreamed of having something that will get M1-M2 type performance and battery life, but I just don't want to spend that much money and choose to use Linux over other OS options.

                      I played around with settings using boost and it was interesting I have it set to ultra with boost turned on
                      seems doing best which is interesting. Below is discharge curve flat spots are where i just shut the lid of the laptop the other is when I am using it.

                      After looking at it dont think the discharge curve could be any better,sitting still no programs open dual core
                      cpu usage around 5-8% (Budgie) My battery is around 85.9% of new capacity how much charge its holding
                      2017 laptop

                      gnome-power-statistic (I dont Hibernate or suspend)

                        • [deleted]

                        • Edited

                        Axios

                        Amd has always been a better power user than Intel

                        True, they really know how to use power

                        Axios So would you suggest that it doesn't improve battery life if boost is disabled?
                        My understanding would be that the boost takes more power but get things done quicker, so that the CPU can go back to idle faster, making average power consumption similar.