Lower GPU clock of ODROID-XU4 for headless servers to save energy

Per default the Mali-T628 GPU inside the ODROID-XU4 will run at maximum speed (600MHz) the whole time.
This doesn’t consume that much energy if there is no load on the GPU. But nevertheless you can tune this a little bit if you don’t need the GPU at all.

Your kernel needs the following commit: mali: restore sysfs entries
Newer 3.10 ODROID-XU4 kernels should have this activated. I tested this with my own custom build kernel. You can grab it here. Source.
To flash this kernel you can use a script like this one.

To lock the GPU frequency to the lowest frequency possible (177MHz) do the following. This will automatically lower the voltage as well (see cat /sys/devices/11800000.mali/vol  before and after the change).

I did some measurements with a power meter and this change reduced the power consumption by 0.7 – 0.8W. At first glance, this doesn’t sound that much, but it’s a reduction of about 20% compared to the idle power consumption of an ODROID-XU4 with ondemand governor, which is just 3-4W!
The SOC will be 1-3°C cooler as well 🙂 Perfect for headless servers.

10 thoughts on “Lower GPU clock of ODROID-XU4 for headless servers to save energy”

  1. Could you explain why you switch to your own custom Kernel ? Are there any advantages or did you customized it for a private project ?

    1. Back when I wrote this I wanted to have xfs support and kernel updates. Because OMV or debian don’t provide kernel updates for the XU4.

      The official hardkernel repo was kind of outdated, so I forked the official kernel, updated it, added xfs support, wrote a small script to automate the update process and compiled it with a newer toolchain. Now I can recompile it every time there is a new minor kernel release.

      Today the hardkernel repo is faster with updates and except xfs support my repo is the same.

  2. Hi there, I’m trying to change this but I don’t see the file “vol” in the directory /sys/devices/11800000.mali/. How did you acquire that file?

    Also, is there a way to show in real time the GPU frequency as well?

    Thanks!

  3. Thanks for your guides man !
    All others worked fine but this one seems to not working for me.
    Can you help me ?

Leave a Reply

Your email address will not be published. Required fields are marked *