I have a plain installation (no PPAs) of Ubuntustudio 26.04 and it is not possible to change the default CPU frequency scaling governor from “powersave” to “performance” at boot.
Are there any alternatives / workarounds for this problem?
It is possible to change the governor with cpupower-gui manually with the userspace program but it is not possible to use the “load profile at boot” option.
Looking at the errors it looks as if a service wants to connect to the display - very bad for a background service…
There seems to be a bug in cpupower-gui that crashes the services responsible for setting the governor at boot:
Aug 30 09:30:23 Alcyone cpupower-gui[1653]: Handy.init()
Aug 30 09:30:23 Alcyone cpupower-gui[1653]: /usr/share/cpupower-gui/cpupower_gui/window.py:127: Warning: g_object_get: assertion 'G_IS_OBJECT>
Aug 30 09:30:23 Alcyone cpupower-gui[1653]: Handy.init()
Aug 30 09:30:23 Alcyone cpupower-gui[1653]: gtk_style_context_add_provider_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
Aug 30 09:30:23 Alcyone cpupower-gui[1653]: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
Aug 30 09:30:23 Alcyone cpupower-gui[1653]: gtk_icon_theme_add_resource_path: assertion ‘GTK_IS_ICON_THEME (icon_theme)’ failed
Aug 30 09:30:23 Alcyone cpupower-gui[1653]: cannot open display:
Aug 30 09:30:23 Alcyone systemd[1]: cpupower-gui.service: Main process exited, code=exited, status=1/FAILURE
Aug 30 09:30:23 Alcyone systemd[1]: cpupower-gui.service: Failed with result ‘exit-code’.
Aug 30 09:30:23 Alcyone systemd[1]: Failed to start cpupower-gui.service - Apply cpupower-gui config at boot.
Do me a favor and report a bug by opening a terminal and typing ubuntu-bug cpupower-gui and filling out all appropriate fields. This certainly feels like a bug, especially considering there’s an upstream Github issue.
I filed the bug report. Can you return me a favor and help me with my original question?
I need a solution / workaround for this as it is very inconvenient to always have to set this manually.
Update to the above: the bug you filed ended up being a duplicate, which is fine because that shows us the original bug was simply being experienced by more than one person. I’m sad that I didn’t catch this when the initial report was made in May, so I’ve subscribed the Ubuntu Studio Bugs team to the package for future bugs as it hadn’t been previously.
That said, the package will be landing in Stonking Stingray first, but I already uploaded a backport of the fix to 26.04’s resolute-proposed pocket. Now we just need to wait for the SRU team to accept it, after which it will need testing for validation. The package must be in the -proposed pocket for 7 days before being released to resolute-updates, so these things can take more than a week to hit the stable release.
Thanks for the suggestion. Unfortunately it did not work. Here is the unit that I created in the end and that works but only when I start it manually with sudo systemctl start…. The odd thing is that after reboot the governor is still “powersave” although systemctl status cpu-performance service shows that it ran.
There must be something else that is always resetting the CPU governor. I have disabled the broken cpupower-gui services but that did not help.
[Unit]
Description=Set CPU governor to performance on startup
After=multi-user.target
I have been away for a couple of days but tested the proposed version this morning:
The good news: The services are starting now without any crash.
The bad news: The system is still not setting “performance” as governor.
My question: Is there any component in Ubuntu Studio 26.04 that could simply override any attempt to set the governor ?
Here are the latest service statuses:
markd@Alcyone:~$ sudo systemctl status cpupower-gui
[sudo: authenticate] Password:
○ cpupower-gui.service - Apply cpupower-gui config at boot
Loaded: loaded (/usr/lib/systemd/system/cpupower-gui.service; enabled; preset: enabled)
Active: inactive (dead) since Sun 2026-09-06 11:18:57 BST; 41s ago
Invocation: add21700317d4d85a35fd274fc5d8934
Docs: GitHub - vagnum08/cpupower-gui: cpupower-gui is a graphical program that is used to change the scaling frequency limits of the cpu, similar to cpupower. · GitHub
man:cpupower-gui(1)
Process: 1659 ExecStart=/usr/bin/cpupower-gui config -a (code=exited, status=0/SUCCESS)
Main PID: 1659 (code=exited, status=0/SUCCESS)
Mem peak: 20.1M
CPU: 241ms
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Minimum Frequency: 800.0 MHz, Maximum Frequency: 3500.0 MHz
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Governor: Powersave, Online: True
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Setting CPU: 6
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Minimum Frequency: 800.0 MHz, Maximum Frequency: 3500.0 MHz
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Governor: Powersave, Online: True
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Setting CPU: 7
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Minimum Frequency: 800.0 MHz, Maximum Frequency: 3500.0 MHz
Sep 06 11:18:57 Alcyone cpupower-gui[1659]: Governor: Powersave, Online: True
Sep 06 11:18:57 Alcyone systemd[1]: cpupower-gui.service: Deactivated successfully.
Sep 06 11:18:57 Alcyone systemd[1]: Finished cpupower-gui.service - Apply cpupower-gui config at boot.
markd@Alcyone:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave
markd@Alcyone:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave
markd@Alcyone:~$ sudo systemctl status cpupower-gui
cpupower-gui-helper.service cpupower-gui.service
markd@Alcyone:~$ sudo systemctl status cpupower-gui-helper.service
● cpupower-gui-helper.service - cpupower-gui system helper
Loaded: loaded (/usr/lib/systemd/system/cpupower-gui-helper.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-09-06 11:18:57 BST; 1min 41s ago
Invocation: d545745897ca4a66b0f4df91280556d4
Docs: GitHub - vagnum08/cpupower-gui: cpupower-gui is a graphical program that is used to change the scaling frequency limits of the cpu, similar to cpupower. · GitHub
Main PID: 1953 (cpupower-gui-he)
Tasks: 1 (limit: 17046)
Memory: 13.9M (peak: 14.4M)
CPU: 195ms
CGroup: /system.slice/cpupower-gui-helper.service
└─1953 /usr/bin/python3 /usr/lib/x86_64-linux-gnu/cpupower-gui/cpupower-gui-helper
Sep 06 11:18:57 Alcyone systemd[1]: Starting cpupower-gui-helper.service - cpupower-gui system helper…
Sep 06 11:18:57 Alcyone systemd[1]: Started cpupower-gui-helper.service - cpupower-gui system helper.
markd@Alcyone:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave
Erich’s patch works, but nobody is overriding your CPU - cpupower-gui is setting powersave itself:
cpupower-gui[1659]: Governor: Powersave
It blindly loads /etc/cpupower_gui.conf. Since you haven’t saved “performance” as default in the GUI yet, it dutifully applies factory powersave on boot.
Two ways to fix this:
The easiest way:
run:
powerprofilesctl set performance
Ubuntu’s built-in power daemon will permanently lock your CPU to performance across reboots.
Or if you want to stick with cpupower-gui:
Open cpupower-gui, set it to performance, and click Save as default profile
or set governor = performance in /etc/cpupower_gui.conf
Does it have any options to configure CPU performance? GNOME has it right in the system settings.
It sounds like something overrides whatever was set at boot later. Have you verified that the scaling governor is set after the service in question completes? Try adding ExecStartPost which prints the current governor. Or add a service to do the same after your service and before systemd-user-sessions.service - does it show the correct governor?
This is definitely the case.
systemctl status cpupower-gui shows “Governor: Performance, Online: True” for every core but the governor is still “powersave” at boot.
Restarting the service with “sudo systemctl restart cpupower-gui” after login will set the “performance” governor.
And I notice that cpupower-gui has a user service “cpupower-gui-user” that does not work at all. It simply calls “cpupower-gui config”. It is meant to set the governor at login but crashes with:
(cpupower-gui:4859): GLib-GIO-CRITICAL **: 15:39:28.481: This application can not open files.
I tried using “cpupower-gui config -a” but that results in “unable to authenticate” errors in the user service.
Now the trick is to find out who is meddling with the CPU scaling-governor. I already gave disabling the power-profile-daemon a try but that is not the problem.
Quick edit: Now that I have had a chance to check for myself, I’m noticing the same issues. However, it doesn’t appear as though anything else is overriding it (there’s nothing by default in Ubuntu Studio), just that it’s not reading the config for some reason. I have more investigating to do, but although upstream has done quite a bit of development since their last release, they haven’t actuallly done a realease. This means a lot of bugs that have popped-up unnoticed in the years haven’t been fixed. I’m doing more evaluation.
Edit 2: Upon examining the source code there appears to be two systemd .service files and they both need to be patched the same way. The good news is the main one passes. The bad news is the fix is only half-way done. I’ll take the appropriate measures on the bug.
Edit 3: Fix is uploaded awaiting approval. Again. sigh