You are not logged in.
OS: Arch Linux x86_64
Host: 82JQ Lenovo Legion R9000P2021H
Kernel: 5.16.12-arch1-1
DE: GNOME 41.4
WM: Mutter
CPU: AMD Ryzen 7 5800H with Radeon Graphics (16) @ 3.200GHz
GPU: NVIDIA GeForce RTX 3060 Mobile / Max-Q
Nvidia: 510.54
In the BIOS of the Laptop, the graphics card has dynamic and discrete mode.
The discrete mode completely disable the iGPU.
Backlight control work well in dynamic mode(controlled by iGPU),
not work in discrete mode(The values of /sys/class/backlight/nvidia_0/actual_brightness and /sys/class/backlight/nvidia_0/brightness change, but the screen keep max brightness)
Updating kernel parameters with different options for acpi_backlight
doesn't work
On boot
BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PB2], AE_NOT_FOUND (20210930/dswload2-162)
ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20210930/psobject-220)/etc/X11/xorg.conf.d/21-nvidia.conf
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVIDIA GeForce RTX 3060 Laptop GPU"
Option "RegistryDwords" "EnableBrightnessControl=1"
Option "NoLogo" "True"
EndSectionLast edited by onlymash (2022-03-10 04:01:57)
Offline
The underlying issue is that the backlight is logically/physically attached to and controlled by the internal GPU. When in discrete mode, either the backlight isn't available or your de is defaulting to the wrong card. I see a similar thing using optimus-manager. When set to hybrid or integrated mode the backlight works fine from the DE, but when set to nvidia mode backlight is uncontrollable via my DE. Checking in
/sys/class/backlight/I get two devices created, one for internal (amdgpu_bl0), one external (nvidia_0) . The internal one is able to control the backlight, but the external not. Also when changing from within my DE in nvidia mode the external one is changed, but the internal one isn't. For other modes, the internal one is used. I guess in discrete/nvidia mode the DE sees nvidia as the default driver, so assumes that is where the backlight will be attached.
Does
/sys/class/backlight/amdgpu_bl0/get created? If so, can you control it with:
# echo 100 > /sys/class/backlight/amdgpu_bl0/backlightYou may want to tweak the 100 relative to the contents of
/sys/class/backlight/amdgpu_bl0/max_brightnessOffline
The underlying issue is that the backlight is logically/physically attached to and controlled by the internal GPU. When in discrete mode, either the backlight isn't available or your de is defaulting to the wrong card. I see a similar thing using optimus-manager. When set to hybrid or integrated mode the backlight works fine from the DE, but when set to nvidia mode backlight is uncontrollable via my DE. Checking in
/sys/class/backlight/I get two devices created, one for internal (amdgpu_bl0), one external (nvidia_0) . The internal one is able to control the backlight, but the external not. Also when changing from within my DE in nvidia mode the external one is changed, but the internal one isn't. For other modes, the internal one is used. I guess in discrete/nvidia mode the DE sees nvidia as the default driver, so assumes that is where the backlight will be attached.
Does
/sys/class/backlight/amdgpu_bl0/get created? If so, can you control it with:
# echo 100 > /sys/class/backlight/amdgpu_bl0/backlightYou may want to tweak the 100 relative to the contents of
/sys/class/backlight/amdgpu_bl0/max_brightness
The discrete mode completely disable the iGPU, so
/sys/class/backlight/amdgpu_bl0not created.
In discrete mode, backlight control is normal in Windows.
Around October last year, discrete mode backlight could be controlled. After that, I used the external monitor for a long time and disabled the internal monitor. Recently I started using the internal monitor again and found that it was out of control. During this period, I updated the kernel and drivers many times.
Offline
Seems to be an nvidia driver issue. I went back to version 495.46, the backlight can be controlled, but it brings new issue, GDM has no wayland option, even if the kernel parameter adds nvidia-drm.modeset=1
Offline
Certainly looks like it. Check out https://forums.developer.nvidia.com/t/l … -02/175585 there may be something useful in there, or one of the other backlight related threads that exist on that forum.
As far as GDM not allowing wayland, did you try enabling GBM in https://wiki.archlinux.org/title/Wayland#Requirements?
Offline
Certainly looks like it. Check out https://forums.developer.nvidia.com/t/l … -02/175585 there may be something useful in there, or one of the other backlight related threads that exist on that forum.
As far as GDM not allowing wayland, did you try enabling GBM in https://wiki.archlinux.org/title/Wayland#Requirements?
Wayland can already be used in 495.46, if the new driver does not fix this problem in the future, I have to stay at 495.46 forever
cat /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options root="LABEL=system" rootflags=subvol=root rw
options nvidia-drm.modeset=1
options acpi_backlight=native
options nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1Offline