asusctl & ROG Control Center
Guide for setting up ASUS ROG hardware controls on Fedora 43: fan curves, performance profiles, GPU switching, Slash LED, and battery management.
System Configuration:
- Model: ASUS ROG Zephyrus G16 GA605WV (2024)
- CPU: AMD Ryzen AI 9 HX 370
- GPU: NVIDIA GeForce RTX 4060 Laptop (Max-Q) + AMD Radeon 890M (iGPU)
- OS: Fedora 43
- Kernel: 6.18.9-200.fc43.x86_64
- Display Server: Wayland (GNOME 49)
- Secure Boot: Enabled
Package Information:
asusctl6.3.2-1 — CLI for fan curves, profiles, battery limit, RGB, Slash LEDasusctl-rog-gui6.3.2 — ROG Control Center GUIsupergfxctl5.2.7-8 — GPU mode switching- Source: lukenukem COPR (maintained by Luke Jones, primary asusctl developer)
Prerequisites
Why lukenukem COPR and not a regular repo
COPR is Fedora’s official community package hosting platform (similar to AUR for Arch). The lukenukem COPR is maintained by Luke Jones (flukejones), the primary developer of asusctl itself — not a random third party.
The packages are GPG-signed (gpgcheck=1) and this is the officially recommended installation method by the asus-linux project.
Note: If you search for “lukenukem COPR” on Reddit, you may find threads raising concerns. These are typically about the openSUSE repository going temporarily offline — not a security issue with the COPR itself.
Compatibility with tuned (power-profiles-daemon conflict) — Fedora-specific
asusctl requires the power-profiles-daemon D-Bus API to manage performance profiles (Silent/Balanced/Performance). On Arch Linux, you simply install power-profiles-daemon and it works. On Fedora however, this conflicts with tuned, which replaced power-profiles-daemon as the default power management daemon since Fedora 41.
The solution is tuned-ppd, a Fedora-provided compatibility layer that exposes the power-profiles-daemon D-Bus interface while using tuned internally. This allows asusctl to manage profiles without removing tuned.
Note: The asus-linux project does not document this because it is a Fedora-specific issue. Their FAQ and ArchWiki page only state that power-profiles-daemon must be running.
If you have tuned installed (Fedora default), you must switch to tuned-ppd before installing asusctl, otherwise profile switching will not work.
References:
Installation
Step 1: Add lukenukem COPR repository
sudo dnf copr enable lukenukem/asus-linuxStep 2: Switch from tuned to tuned-ppd (Fedora-specific)
asusctl needs the power-profiles-daemon D-Bus API. On Fedora 41+, tuned is the default and conflicts with power-profiles-daemon. Install tuned-ppd as the compatibility layer:
sudo dnf install tuned-ppd
sudo systemctl disable tuned.service
sudo systemctl enable --now tuned-ppd.servicetuned-ppd exposes the power-profiles-daemon D-Bus interface while using tuned profiles internally. asusctl talks to tuned-ppd as if it were power-profiles-daemon — no modifications needed.
Verify:
systemctl status tuned-ppdNote: On Arch Linux, install power-profiles-daemon directly instead. This step is only needed on Fedora.
Step 3: Install asusctl, ROG Control Center, and supergfxctl
sudo dnf install asusctl asusctl-rog-gui supergfxctlThis installs:
asusctl— main CLI daemon and clientasusctl-rog-gui— ROG Control Center GUIsupergfxctl— GPU mode switching daemon
Step 4: Enable services
sudo systemctl enable --now asusd.service
sudo systemctl enable supergfxd.serviceReboot to ensure all services start correctly:
sudo rebootStep 5: Verify hardware detection
After reboot, verify asusctl detected your hardware correctly:
asusctl infoExpected output should include:
Product family: ROG Zephyrus G16
Board name: GA605WVStep 6 (optional): Install monitoring tools
Useful utilities for monitoring hardware alongside asusctl:
sudo dnf install nvtop powertop s-tui lm_sensors i2c-tools| Package | Description |
|---|---|
nvtop | GPU process monitor (AMD + NVIDIA simultaneously) |
powertop | Power consumption analysis per process/device |
s-tui | TUI dashboard: CPU frequency, temperature, load, stress test |
lm_sensors | Hardware temperature sensor readout |
i2c-tools | Low-level hardware bus diagnostics |
Configuration
Set battery charge limit (recommended: 80%)
Limiting the charge to 80% significantly extends battery lifespan. The laptop runs normally on AC power regardless of this setting.
Set via CLI:
asusctl battery --charge-limit 80Set via GUI:
Open ROG Control Center (rog-control-center) → System Control → Battery Charge Limit.
Verify:
asusctl batteryThis setting persists across reboots and is managed by asusd.
Configure Slash LED (the light bar on the lid)
The Slash LED is the diagonal light bar on the lid of the G16. It supports multiple animations and can be configured to turn off on battery.
Show available animations:
asusctl slash --listAvailable animations: Static, Bounce, Slash, Loading, BitStream, Transmission, Flow, Flux, Phantom, Spectrum, Hazard, Interfacing, Ramp, GameOver, Start, Buzzer
Recommended setup (AC only, off on battery and during sleep):
asusctl slash --enable -b false -s falseWhat these flags do:
--enable— turn on the Slash LED-b false— disable on battery power-s false— disable during sleep
Set animation:
asusctl slash --mode SpectrumSet brightness (0–255):
asusctl slash -l 128Performance profiles
asusctl provides three performance profiles that control CPU/GPU power limits and fan behavior:
| Profile | Description |
|---|---|
Silent | Low power, quiet fans, throttled performance |
Balanced | Default. Moderate power and noise |
Performance | Maximum CPU/GPU power, aggressive fans |
Set a profile:
asusctl profile -P Balanced
asusctl profile -P Silent
asusctl profile -P PerformanceCycle through profiles:
asusctl profile --nextCheck current profile:
asusctl profileNote: Profile switching requires
tuned-ppdto be running. See the installation steps above.
GPU mode switching (supergfxctl)
The GA605WV has a hybrid GPU setup: the AMD Radeon 890M (iGPU) drives the internal display, and the NVIDIA RTX 4060 (dGPU) handles GPU workloads.
supergfxctl manages which GPU mode is active:
| Mode | Description |
|---|---|
Hybrid | Both GPUs active. NVIDIA handles GPU workloads, AMD drives the display. Best for gaming. |
Integrated | Only AMD iGPU. Lower power consumption, no NVIDIA. Good for battery. |
AsusMuxDgpu | NVIDIA directly drives the display via hardware MUX switch. Lowest latency for gaming. Requires reboot. |
Check current mode:
supergfxctl --modeSwitch mode:
supergfxctl --mode Hybrid
supergfxctl --mode IntegratedNote: Switching between Hybrid and Integrated requires a logout/login. Switching to AsusMuxDgpu requires a reboot.
Important:
nvidia-powerd.servicemust remain disabled and masked on this laptop. It conflicts with AMD ATPX power management and causes soft lockups and reboot hangs (black screen, backlights stay on). Masking is essential becausesupergfxddirectly callssystemctl start nvidia-powerd.serviceduring GPU mode switches —disablealone does not prevent this. The mask (symlink to/dev/null) blocks bothsupergfxdand NVIDIA driver updates from re-enabling it. GPU power is managed via ATPX (via ACPI). See NVIDIA Driver Installation Guide for diagnosis details and commands.
Keyboard RGB (Aura)
Set keyboard backlight brightness (0–100):
asusctl led-brighter
asusctl led-dimmerOpen Aura configuration in ROG Control Center:
rog-control-centerNavigate to the “Keyboard Aura” section for animation, color, and per-key configuration.
Custom fan curves
Fan curves can be configured per performance profile in ROG Control Center or via CLI.
Open ROG Control Center:
rog-control-centerNavigate to “Fan Curves” to set temperature/speed curves per profile (Silent, Balanced, Performance).
CLI fan curve format:
# Show current fan curve data for a profile
asusctl fan-curve -m Balanced
# Set a custom curve (8 temperature/speed pairs: temp:speed,temp:speed,...)
asusctl fan-curve -m Balanced -D 30:0,40:10,50:30,60:50,70:70,80:85,90:100,100:100Note: Fan curve customization requires the
asus-armourykernel driver. On kernel < 6.19, the driver is not available and curves set in the GUI may not persist as expected. See the Known Issues section below.
Monitoring
Hardware monitoring commands
GPU monitor (AMD + NVIDIA):
nvtopCPU frequency, temperature, load dashboard:
s-tuiPower consumption per process/device:
sudo powertopHardware temperatures:
sensorsCheck asusd service logs:
sudo journalctl -b -u asusdCheck supergfxd service logs:
sudo journalctl -b -u supergfxdKnown Issues
ROG Control Center warning: "The asus-armoury driver is not loaded"
Problem:
ROG Control Center shows a warning that the asus-armoury kernel driver is not loaded. Some advanced features (PPT power limits, APU memory allocation, MUX switch control) are unavailable.
Cause:
The asus-armoury driver was merged into the Linux mainline kernel in version 6.19. On kernel 6.18.x (current Fedora 43 default), the driver does not exist.
What still works without the driver:
- Fan curves (basic)
- Performance profiles (Silent / Balanced / Performance)
- Battery charge limit
- Slash LED
- Keyboard Aura / RGB
- GPU switching via supergfxctl
Solution:
Wait for Fedora 43 to ship kernel 6.19 via dnf update. No manual action required.
After the kernel update, verify the driver loaded:
lsmod | grep asus_armouryIf it loads, reopen ROG Control Center — the warning should be gone and advanced features will be available.
Note on GA605WV support: The initial 6.19 release lists GA403-series models explicitly. If the GA605WV is not yet in the DMI table, some model-specific features (PPT tuning, APU memory) may still not appear even on 6.19. This is expected to be resolved via follow-up kernel patches.
CLI Quick Reference
| Command | Description |
|---|---|
asusctl info | Show detected hardware |
asusctl battery --charge-limit 80 | Set battery charge limit to 80% |
asusctl battery | Show current charge limit |
asusctl profile | Show current performance profile |
asusctl profile -P Balanced | Set performance profile |
asusctl profile --next | Cycle to next profile |
asusctl slash --list | List available Slash LED animations |
asusctl slash --enable -b false -s false | Enable Slash LED, off on battery and sleep |
asusctl slash --mode Spectrum | Set Slash LED animation |
asusctl slash -l 128 | Set Slash LED brightness (0–255) |
supergfxctl --mode | Show current GPU mode |
supergfxctl --mode Hybrid | Switch to Hybrid GPU mode |
supergfxctl --mode Integrated | Switch to integrated GPU only |
rog-control-center | Open ROG Control Center GUI |
Additional Resources
- asus-linux.org — Official project site
- asusctl GitLab — Source code and issue tracker
- lukenukem COPR — Fedora package repository
- NVIDIA Driver Installation Guide — NVIDIA driver setup and known issues