You are not logged in.
Hello, guys. Nvidia RTX 5090 brightness control isn’t working on my laptop Asus ROG Zephyrus G16 GU605CX.
I installed nvidia driver 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:
1) i915.enable_dpcd_backlight=1 acpi_backlight=native
2) i915.enable_dpcd_backlight=1 nvidia.NVreg_EnableBacklighthandler=0 nvidia.NVreg_RegistryDwords=EnableBrightnessControl=0I 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 secondsDo 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?
Thanks
Offline
Can anyone help? Thanks
Offline
i915.enable_dpcd_backlight=1
Is this a hybrid graphics system?
https://bbs.archlinux.org/viewtopic.php?id=311360
lspci -k
brightnessctl -lOffline
i915.enable_dpcd_backlight=1
Is this a hybrid graphics system?
https://bbs.archlinux.org/viewtopic.php?id=311360lspci -k brightnessctl -l
Hello, seth. Yes, It's a hybrid graphics system. Nvidia RTX 5090 + Intel Arc Pro 130T:
❯ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation Arrow Lake-P [Arc Pro 130T/140T] (rev 03)
DeviceName: Onboard - Video
Subsystem: ASUSTeK Computer Inc. Device 3778
Kernel driver in use: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GB203M / GN22-X11 [GeForce RTX 5090 Max-Q / Mobile] (rev a1)
Subsystem: ASUSTeK Computer Inc. Device 3a28
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia❯ 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: 2047When trying to set brightnessctl on nvidia_0, the command succeeds, but the actual brightness in practice keeps the same:
❯ brightnessctl -d nvidia_0 set 10%
Updated device 'nvidia_0':
Device 'nvidia_0' of class 'backlight':
Current brightness: 10 (10%)
Max brightness: 100I also checked out the linked thread, but I haven't found a solution yet. If you have any other advice, that's appreciated. Thanks.
Offline
You're however using it in hybrid mode - is the output attached to the intel or the nvidia GPU (for a notebook panel it's the intel chip)
If you skip the kernel parameters from your OP and try to set the brightness of intel_backlight, does that have any impact whatsoever (visually or by changing the value)?
Can you switch the system between hybrid and nvidia only mode (in the uefi)?
Intel Corporation Arrow Lake-P [Arc Pro 130T/140T]
Have you tried the https://wiki.archlinux.org/title/Intel_ … _Xe_driver ?
Offline
I have the ROG Zephyrus G16 GU605CR and i'm running into the same problems. Installed colord and colord-brightness, colord-brightness just segfaults.
Installed icc-brightness and got the same result as the OP, icc-brightness times out.
$ ./icc-brightness 20 100
WARNING: Command '['colormgr', 'import-profile', '/tmp/brightness_20_100.icc']' timed out after 1 secondsBUT if i load the created file, /tmp/brightness_20_100.icc via kde's SystemSettings it works!! It dims my screen to 20% (yay!!)
Its a bit cumbersome but i can at least save my eyes and dim my screen now in the evenings!
@seth, also
$ lspci -k -d ::03xx
00:02.0 VGA compatible controller: Intel Corporation Arrow Lake-P [Arc Pro 130T/140T] (rev 03)
DeviceName: Onboard - Video
Subsystem: ASUSTeK Computer Inc. Device 3778
Kernel driver in use: xe
Kernel modules: i915, xe
01:00.0 VGA compatible controller: NVIDIA Corporation GB205M [GeForce RTX 5070 Ti Mobile] (rev a1)
Subsystem: ASUSTeK Computer Inc. Device 3a08
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidiaUsing the xe driver does nothing visually noticable.
To be clear, the screen on my and OP's laptop is an OLED screen!
The buttons on the keyboard are doing whats expected, they change the backlight brightness value for the intel gpu. icc-brightness is a python script which runs a bunch of colormgr commands.
What we need is what icc-brightness wants to do, watching the backlight brightness value (which does not work on oled screens since there is no backlight) and according to changes in brightness load another icc profile which tones down/up the brightness of the leds. icc-brightness uses colord/colormgr to accomplish this, but the switching of the profiles using colormgr does not work as we need it to work, a bit frustrating is that loading the, by icc-brightness generated icc profile, accomplishes exactly what we need. So the problem is, how do i get colord to load a profile like kscreen (which is used in kde's SystemSettings). All i see in the journal is powerdevil registering pushing the buttons on the keyboard and changing hte brightness value, nothing more.
What we need is a way to (via cli) change the active icc-profile and make icc-brightness use that instead of colord.
Last edited by buwie (2026-01-11 22:09:37)
Offline
I have the ROG Zephyrus G16 GU605CR and i'm running into the same problems. Installed colord and colord-brightness, colord-brightness just segfaults.
Installed icc-brightness and got the same result as the OP, icc-brightness times out.$ ./icc-brightness 20 100 WARNING: Command '['colormgr', 'import-profile', '/tmp/brightness_20_100.icc']' timed out after 1 secondsBUT if i load the created file, /tmp/brightness_20_100.icc via kde's SystemSettings it works!! It dims my screen to 20% (yay!!)
Its a bit cumbersome but i can at least save my eyes and dim my screen now in the evenings!
@seth, also
$ lspci -k -d ::03xx 00:02.0 VGA compatible controller: Intel Corporation Arrow Lake-P [Arc Pro 130T/140T] (rev 03) DeviceName: Onboard - Video Subsystem: ASUSTeK Computer Inc. Device 3778 Kernel driver in use: xe Kernel modules: i915, xe 01:00.0 VGA compatible controller: NVIDIA Corporation GB205M [GeForce RTX 5070 Ti Mobile] (rev a1) Subsystem: ASUSTeK Computer Inc. Device 3a08 Kernel driver in use: nvidia Kernel modules: nouveau, nvidia_drm, nvidiaUsing the xe driver does nothing visually noticable.
To be clear, the screen on my and OP's laptop is an OLED screen!
The buttons on the keyboard are doing whats expected, they change the backlight brightness value for the intel gpu. icc-brightness is a python script which runs a bunch of colormgr commands.
What we need is what icc-brightness wants to do, watching the backlight brightness value (which does not work on oled screens since there is no backlight) and according to changes in brightness load another icc profile which tones down/up the brightness of the leds. icc-brightness uses colord/colormgr to accomplish this, but the switching of the profiles using colormgr does not work as we need it to work, a bit frustrating is that loading the, by icc-brightness generated icc profile, accomplishes exactly what we need. So the problem is, how do i get colord to load a profile like kscreen (which is used in kde's SystemSettings). All i see in the journal is powerdevil registering pushing the buttons on the keyboard and changing hte brightness value, nothing more.What we need is a way to (via cli) change the active icc-profile and make icc-brightness use that instead of colord.
buwie, man, thanks so much for sharing this, when I use xcalib with the given icc-brightness file, for instance, `xcalib ~/.brightness/brightness_50_100.icc` now it works too. But, ultimately colord/colormgr should work too (let's see if more people can chime in), but as you said, the workaround loading the icc file will save our eyes at least. buwie, I had a U$ 100 bounty to whoever managed to help with finding a solution, do you have a PayPal account, if you do, send me a dm and I'll give to you my id to send a U$ 100 invoice.
Offline
@viniusck Keep the money (or donate to some open source project), our laptops were expensive enough
I can't count the times info on the internet has helped me, consider this my small contribution to the community! I guess you already found 'asusctl slash -d'!
My search brought me as far as getting icc-brightness to not error out, but nothing visually happening.
$ colormgr get-devices
$ systemctl --user start xiccd
$ ps ax|grep xiccd
1390 ? Ssl 0:00 /usr/bin/xiccd
$ colormgr get-devices
Object Path: /org/freedesktop/ColorManager/devices/xrandr_eDP_2_<username>_1000
Owner: <username>
Created: January 12 2026, 01:33:16 PM
Modified: January 13 2026, 11:51:12 AM
Type: display
Enabled: Yes
Embedded: Yes
Scope: temp
Colorspace: rgb
Device ID: xrandr-eDP-2
Profile 1: icc-d0d45ba4b9b7486e08b8574fa8064e5a
/usr/share/color/icc/colord/GU605CR_8086_834C41A3_CMDEF.icm
Metadata: OutputPriority=primary
Metadata: XRANDR_name=eDP-2
$ colormgr device-get-default-profile xrandr-eDP-2
Object Path: /org/freedesktop/ColorManager/profiles/icc_d0d45ba4b9b7486e08b8574fa8064e5a
Owner: root
Format: ColorSpace..
Title: ASUS GU605CR 8086 834C41A3 CMDEF
Qualifier: RGB..
Type: display-device
Colorspace: rgb
Gamma Table: No
System Wide: Yes
Filename: /usr/share/color/icc/colord/GU605CR_8086_834C41A3_CMDEF.icm
Profile ID: icc-d0d45ba4b9b7486e08b8574fa8064e5a
Metadata: FILE_checksum=d0d45ba4b9b7486e08b8574fa8064e5a
$ ./icc-brightness 40 100
$ colormgr get-devices
Object Path: /org/freedesktop/ColorManager/devices/xrandr_eDP_2_<username>_1000
Owner: <username>
Created: January 12 2026, 01:33:16 PM
Modified: January 13 2026, 11:53:07 AM
Type: display
Enabled: Yes
Embedded: Yes
Scope: temp
Colorspace: rgb
Device ID: xrandr-eDP-2
Profile 1: icc-920793d60cec21ce36a6714a2dbf6907
/home/<username>/.local/share/icc/brightness_40_100.icc
Profile 2: icc-d0d45ba4b9b7486e08b8574fa8064e5a
/usr/share/color/icc/colord/GU605CR_8086_834C41A3_CMDEF.icm
Metadata: OutputPriority=primary
Metadata: XRANDR_name=eDP-2
$ colormgr device-get-default-profile xrandr-eDP-2
Object Path: /org/freedesktop/ColorManager/profiles/icc_920793d60cec21ce36a6714a2dbf6907_<username>_1000
Owner: <username>
Format: ColorSpace..
Title: Brightness 0.40
Qualifier: RGB..
Type: display-device
Colorspace: rgb
Scope: temp
Gamma Table: Yes
System Wide: No
Filename: /home/<username>/.local/share/icc/brightness_40_100.icc
Profile ID: icc-920793d60cec21ce36a6714a2dbf6907
Metadata: FILE_checksum=920793d60cec21ce36a6714a2dbf6907
$ ./icc-brightness apply
$I copied the icm for my model from my windows install , somewhere under C:\ProgramData, then https://wiki.archlinux.org/title/ICC_profiles#Wayland
xiccd gives me a device for colord, icc-brightness adds the profile for the device (and sets it as the default) but nothing visually happens after the 'icc-brightness apply' ![]()
Last edited by buwie (2026-01-13 15:45:49)
Offline
@viniusck Keep the money (or donate to some open source project), our laptops were expensive enough
I can't count the times info on the internet has helped me, consider this my small contribution to the community! I guess you already found 'asusctl slash -d'!
My search brought me as far as getting icc-brightness to not error out, but nothing visually happening.
xiccd gives me a device for colord, icc-brightness adds the profile for the device (and sets it as the default) but nothing visually happens after the 'icc-brightness apply'
I wish we manage to get icc-brightness to not error out directly. Right, buwie, I'll make a donation to archlinux, consider it done on your behalf. Thanks.
If I also find out how to make icc-brightness not to timeout directly I'll post an update here.
Last edited by viniusck (2026-01-13 17:16:01)
Offline
@ viniusck I thought it was time to search for a solution again, maybe i missed something and its time to fully update!!
Added the kernel commandline "i915.enable_dpcd_backlight=1 nvidia.NVreg_EnableBacklighthandler=0 nvidia.NVreg_RegistryDwords=EnableBrightnessControl=0" again and the buttons (Fn+F7/F8) work for me now with the latest arch updates!!!!!!
I use nvidia's prime-run when i want to use my nvdia gpu and even then it works.
Last edited by buwie (2026-02-15 20:31:04)
Offline