0

I have a dual boot MacBook (late 2008) with Mac OS 10.9 and NixOS. I observe that under similar conditions, with only one or two applications open and not doing any computations, the CPU gets 5-10 °C hotter under NixOS than under Mac OS. This can even be felt on touch.

In my NixOS configuration, i have

powerManagement.enable = true
powerManagement.cpuFreqGovernor = "powersave";

Is this a result of some inefficiency of Linux kernel, or am i missing some configuration options under NixOS, or is it a NixOS bug?


Update 2018-09-02.

This energy consumption problem may be not specific to NixOS and be a general issue with Linux on MacBook, as mentioned in this "Linux on Mac?" reddit thread.

However, this looks strange: I have installed system-monitor GNOME shell extension and could observe that in idle condition the CPU usage is oscillating between 1% and 2%, while the CPU Core temperature still stays above 60 °C (at room temperature of about 25 °C), with the fan doing 2000 rpm.

What could be using so much power while the CPU is only 1-2% used?


Update 2019-02-03.

This turned out to be related to (the absence of) the proprietary NVidia driver.

  • 1
    could you compare that to some other linux distro? it might be a general linux on macboook problem, i think. – Rok Garbas Jun 22 '15 at 9:35
  • 1
    also maybe something like launchpad.net/macfanctld might help you configure fans properly – Rok Garbas Jun 22 '15 at 9:38
  • Thanks for the link. I do not know about other linux distros, currently i have this one and do not plan to install any other. – Alexey Jun 22 '15 at 12:23
  • Maybe you are right, and the problem is general to Linux distribution, that they cannot manage Apple hardware so efficiently and on such a low level, as Mac OS: reddit.com/r/linux/comments/20lqba/linux_on_a_mac/cg4hhpb – Alexey Jun 22 '15 at 12:30
0

I think I've understood the origin of the problem, though I did't manage to test my explanation properly.

First of all, I'd like to note that setting

powerManagement.cpuFreqGovernor = "powersave";

on my machine was an error. According to the output of

cpupower frequency-info

the only available governor on my machine were performance and schedutil. I've set

powerManagement.cpuFreqGovernor = "schedutil";

and it seems that this slightly reduced the CPU temperature.

It turned out that this was not the main issue, however.

I recently installed Linux Mint and Manjaro on this machine, and noticed that under both systems the CPU temperature stayed as low as under Mac OS, if not lower. It turned out that the difference was due to the proprietary NVidia driver. I did not have the nvidia driver on NixOS (because of having problems with it), but I installed it at first on Linux Mint and Manjaro. When I realised that nvidia driver breaks screen brightness keys and virtual consoles, I removed it, and the CPU temperature went up by 10 or 15 °C on an idle machine.

I conclude that on my machine some open source video drivers cause high power consumption.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.