MSI Afterburner has no Linux port and does not work usefully under Wine, because it leans on Windows drivers. On AMD the replacement is two separate tools: CoreCtrl for the hardware knobs, MangoHud for the on-screen display.
Installing both takes about a minute. The part that makes people give up is what happens next: you open CoreCtrl, switch Performance mode to Advanced expecting voltage and clock sliders, and find two controls. A power limit slider and a power profile dropdown. That is it.
CoreCtrl is not missing those features. Your kernel is hiding them. There are two locked doors here, and neither is obvious from the UI.
The split
yay -S corectrl # AUR, not in the official repos
sudo pacman -S mangohud
CoreCtrl talks directly to the amdgpu driver: fan curves, power limits, clocks, voltage, and per-application profiles. It has no in-game overlay at all.
MangoHud is that overlay, for Vulkan and OpenGL. FPS, frametime graph, GPU and CPU temps, clocks, usage. The Steam Deck ships it.
Afterburner on Windows is really Afterburner plus RTSS. This is the same division of labour, just with the seams visible.
Door 1: the kernel is withholding the controls
The amdgpu driver hides overclocking and voltage control by default, for stability. You unlock it with a kernel parameter.
sudo nano /etc/default/grub
Append to the existing GRUB_CMDLINE_LINUX_DEFAULT line, do not replace it:
amdgpu.ppfeaturemask=0xffffffff
So the line ends up looking something like:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.ppfeaturemask=0xffffffff"
Then regenerate and reboot:
sudo grub-mkconfig -o /boot/grub/grub.cfg
reboot
On systemd-boot or Limine the parameter goes into that bootloader's kernel command line instead, same value.
Confirm it actually took, because a typo here fails silently and you will spend twenty minutes blaming CoreCtrl:
cat /proc/cmdline | grep amdgpu.ppfeaturemask
Reopen CoreCtrl, Performance mode, Advanced. The full set of controls is there now.
What that hex is doing: ppfeaturemask is a bitmask of PowerPlay features the driver will expose. Setting it to all ones tells the driver to stop hiding things the hardware already supports. It is a disclosure switch, not an overclock. It works on RX 400 series and newer desktop cards, and can cause instability on some laptop GPUs, in which case you remove the parameter and reboot. Nothing is permanent.
Door 2: Polkit, or the password prompt forever
CoreCtrl needs root to touch GPU hardware, so it does not autostart cleanly. Adding the desktop entry is the easy half:
mkdir -p ~/.config/autostart
cp /usr/share/applications/org.corectrl.CoreCtrl.desktop ~/.config/autostart/
That mkdir is not optional padding. On a fresh install ~/.config/autostart often does not exist, and cp fails with a "No such file or directory" that reads like a missing CoreCtrl file rather than a missing folder.
Now it launches at login and immediately asks for your password. Every single boot. The fix depends on your Polkit version, so check first:
pkaction --version
106 or newer gets a rules file:
sudo nano /etc/polkit-1/rules.d/90-corectrl.rules
polkit.addRule(function(action, subject) {
if ((action.id == "org.corectrl.helper.init" ||
action.id == "org.corectrl.helperkiller.init") &&
subject.local == true &&
subject.active == true &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
Older than 106 gets a pkla file at /etc/polkit-1/localauthority/50-local.d/90-corectrl.pkla:
[User permissions]
Identity=unix-group:wheel
Action=org.corectrl.*
ResultActive=yes
Swap wheel for sudo if that is your admin group. Note what the rules version is actually checking: local session, active session, correct group. It is not a blanket "skip auth", which is why it is a reasonable thing to put on your own machine.
MangoHud, three ways
Unlike CoreCtrl, MangoHud is not persistent. You tell it to attach, per game.
Steam: right-click the game, Properties, Launch Options:
mangohud %command%
Bottles: Settings, Performance, enable Monitor Performance. No command needed.
Wine or a bare executable: prefix it.
mangohud WINEPREFIX=~/wine/my-games wine "/path/to/game.exe"
mangohud ./your-game
Vanilla MangoHud shows very little: CPU usage, GPU usage, API and FPS, frametime graph. Press Shift+F10 in-game to cycle preset layouts until you get the detail level you want, no restart required. For a permanent layout, write ~/.config/MangoHud/MangoHud.conf.
The honest part
I do not overclock. My card is an RX 580 8GB in an i5-4460 box, and there is no headroom worth chasing there.
What I actually use this stack for is a custom fan curve and a profile that activates automatically when Bottles launches. CoreCtrl's automatic activation takes an executable path and applies the profile when that binary runs, so the card is quiet at the desktop and aggressive when a game starts, with nothing to click.
That is the part worth the setup even if you never touch a voltage slider. Unlocking the kernel parameter is what makes the fan curve editor behave properly in the first place, which is why it is step one rather than an advanced extra.
The full walkthrough with screenshots of every CoreCtrl tab, the profile and fan curve setup in detail, and a longer FAQ is on my site: MSI Afterburner Alternative on Linux: CoreCtrl and MangoHud for AMD GPUs.
It sits alongside the rest of my Linux gaming series: Steam and Proton, Bottles, Wine, and a year of gaming on both Linux and Windows. The Linux Gaming Roadmap indexes all of it.
If you run LACT instead of CoreCtrl, I would like to hear why in the comments. It has a more modern interface and I keep meaning to give it a proper run.
Originally published on MusaBase.
Top comments (0)