Hello, guys. Nvidia RTX5090 brightness control isn’t working on my laptop Asus ROG Zephyrus G16 GU605CX.
I installed nvidia drivers with nvidia-inst --prime (which installed nvidia-open-dkms 590.48.01-1). I’m running kernel 6.18.2-arch2-1. nvidia-smi output looks OK with driver version 590.48.01.
I also tried these following kernel parameters options, but they didn’t work:
I also tried icc-brightness since this laptop has an OLED display, but I couldn’t get it to work either and not sure if this is the right direction, is it?
icc-brightness 30 100
WARNING: Command '['colormgr', 'import-profile', '/tmp/brightness_30_100.icc']' timed out after 1 seconds
Do you guys have any suggestions or do you know anybody who has managed to get brightness control to work with nvidia with this laptop or similar nvidia graphics card?
If I use graphics card on integrated mode with envycontrol brightness control work, but hybrid or nvidia mode it doesn’t work.
1093i3511, yes, unfortunately it didn’t work for mine GU605CX (RTX 5090). I noticed Zephyrus GU605MZ listed there though is supposed to have a RTX 4080, so for newer graphics cards the first set of params don’t work.
ricklinux, I retried it, and confirmed that with supergfxctl -g (from asusctl tools) that it was in Hybrid mode, still, it didn’t work too unfortunately. When I tried with supergfxctl -s Integrated the brightness keys control started to work again.
If anybody else has any other pieces of advice that’s highly appreciated. Thanks, guys.
This is what most seem to be using to make it work. Are you using grub and running the grub update command after adding the parameters to the grub command line? Or are you using systemd-boot which is different and requires you to add them to /etc/kernel/cmdline and then run sudo reinstall-kernels
ricklinux, I’m using systemd-boot. Yes, I also ran sudo reinstall-kernels after updating /etc/kernel/cmdline and confirmed after login that the parameters where also set correctly on /proc/cmdline. It’s strange that it didn’t work, so now I’m wondering if brightness control isn’t still supported with this RTX 5090.
. Verify brightnessctl is using the correct device
First, you need to ensure brightnessctl is addressing the correct backlight interface. Use the list option to see available devices:
bash
brightnessctl --list
# or
brightnessctl -l
If multiple devices are listed (e.g., nvidia_wmi_ec_backlight and one for an integrated GPU like amdgpu_bl0 or intel_backlight), try forcing brightnessctl to use the Nvidia one:
bash
brightnessctl -d nvidia_wmi_ec_backlight set 50%
If this works, you can set the correct device as default in your configuration or use keybinds that specify the device.
Hello, @ricklinux, the command succeeded in the terminal, and tried to change the brightness value of nvidia, but the actual brightness in practice remained the same:
❯ brightnessctl -l
Available devices:
Device ‘nvidia_0’ of class ‘backlight’:
Current brightness: 40 (40%)
Max brightness: 100
Device ‘intel_backlight’ of class ‘backlight’:
Current brightness: 823 (40%)
Max brightness: 2047
❯ brightnessctl -d nvidia_0 set 30%
Updated device 'nvidia_0':
Device 'nvidia_0' of class 'backlight':
Current brightness: 30 (30%)
Max brightness: 100
~
❯ brightnessctl -d nvidia_0 set 10%
Updated device 'nvidia_0':
Device 'nvidia_0' of class 'backlight':
Current brightness: 10 (10%)
Max brightness: 100
~
❯ cat /sys/class/backlight/nvidia_0/brightness
10
❯ supergfxctl -g
Hybrid
❯ cat /proc/cmdline
... i915.enable_dpcd_backlight=1 nvidia
.NVreg_EnableBacklighthandler=0 nvidia.NVreg_RegistryDwords=EnableBrightnessControl=0
I wish this worked, I appreciate your help again @ricklinux.
If you or anybody has any other suggestions, please let me know, thanks.
You can still try this, if you hadn’t tried it yet.
And here they mention this.
On Nvidia Optimus laptops, the kernel parameter nomodeset can interfere with the ability to adjust the backlight.
On an Asus notebooks you might also need to load the asus-nb-wmikernel module.
Since Linux 6.1 the backlight subsystem was revamped, if your backlight does not work after an update first try to remove an existing acpi_backlight kernel parameter. On some Optimus laptops, you can try booting with acpi_backlight=nvidia_wmi_ec.
@Cphusion, I’ve just tried them all again, the only I hadn’t tried yet was acpi_backlight=nvidia_wmi_ec but that also didn’t make brightnessctl to work after reinstalling the kernels and rebooting, I appreciated your help though.
Does it work when you disable the integrated gpu and only use the Nvidia gpu, that way you can at least rule out it being one of the other, it being a dual-gpu problem or an Nvidia driver problem.
buwie on ArchLinux forum pointed out a workaround, although setting the brightness via fn keys won’t work, it’s possible to set the brightness with xcalib by loading a icc generated from icc-brightness.
For instance, to generate a icc-brightness file:
icc-brightness 55 100,this will generate /tmp/brightness_55_100.icc,
which you can load with:
xcalib /tmp/brightness_55_100.icc
Finally, if you want more than one config you just have to generate the rest of the brightness icc files, probably with 5-10% as you wish, and then later you just run xcalib passing the file.
Also, If you’re using i3wm then you just load the expected icc file: