I have a Lenovo Legion 7 16ACHg6 (2021) which was only released recently. It has AMD 5800H with NVIDIA RTX 3060 GPU. One of the issues I found is that backlight brightness control is not working. I.e. the shortcut keyboard buttons bring up the brightness control widget, and the brightness value in that widget does get adjusted, so I guess the keyboard shortcuts/buttons are ok. But the backlight is not controlled. When I try to control the backlight through sysfs, I find a nvidia folder and achoing into the actual_brightness file adjusts that value but nothing happens.
I've setup the BIOS to use DISCRETE GRAPHICS. I've tried using both proprietary and open-source (Nouveau) drivers, but no luck. I've tried with installing newer drivers from NVIDIA (version 465 downloaded from their site), but that didn't help. I've tried running the mainline tool to update to the 5.12 kernel but that didn't help either. I've also tried the suggestion of adding Option "RegistryDwords" "EnableBrightnessControl=1"
to the xorg config but without success.
I've tried with acpi_backlight=vendor
kernel arg, in this case adjusting the brightness completely turns off the display and I need to reboot to get it back. Setting the amdgpu.brightness=0
kernel arg has no impact. I've messed with different live-cd's (Fedora 34, Garuda, Ubuntu 20.04 LTS) but it was not working with any of them. On Windows obviously it is working.
Using xrandr
works, but that doesn't however really control the brightness of the backlight.
At this point I've ran out of options that I could find around on the internet. I guess deeper analyses needs to be done. However I have no clue where to start. My first though is that brightness is controlled through a PWM signal. On embedded ARM devices their is mostly a dedicated SOC pin for that, but I'm not sure how this goes on x86. Is the AMD cpu able to do that directly? Is it under control of the GPU? Is there some sort of in-between display controller that get's controlled through I2C?
EDIT: I've added some key parts of the output of dmesg:
[ 0.000000] Linux version 5.12.1-051201-generic (kernel@gloin) (gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0, GNU ld (GNU Binutils for Ubuntu) 2.36.1) #202105021030 SMP Sun May 2 10:34:08 UTC 2021
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.12.1-051201-generic root=UUID=99416551-f8bc-413e-a118-d9c4845e7fa6 ro quiet splash vt.handoff=7
...
[ 0.000000] efi: EFI v2.70 by INSYDE Corp.
[ 0.000000] efi: ACPI=0xceffe000 ACPI 2.0=0xceffe014 TPMFinalLog=0xcef3f000 SMBIOS=0xcc70a000 SMBIOS 3.0=0xcc708000 MEMATTR=0xb65fc018 ESRT=0xb65e8418 MOKvar=0xcc6d0000 RNG=0xcc705d18 TPMEventLog=0xb652c018
[ 0.000000] efi: seeding entropy pool
[ 0.000000] random: fast init done
[ 0.000000] SMBIOS 3.3.0 present.
[ 0.000000] DMI: LENOVO 82N6/LNVNB161216, BIOS GKCN24WW 02/03/2021
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] tsc: Detected 3193.968 MHz processor
...
[ 0.311851] ACPI: EC: interrupt unblocked
[ 0.311852] ACPI: EC: event unblocked
[ 0.313133] ACPI: EC: EC_CMD/EC_SC=0x66, EC_DATA=0x62
[ 0.313133] ACPI: EC: GPE=0x3
[ 0.313133] ACPI: \_SB_.PCI0.LPC0.EC0_: Boot DSDT EC initialization complete
[ 0.313133] ACPI: \_SB_.PCI0.LPC0.EC0_: EC: Used to handle transactions and events
[ 0.313169] iommu: Default domain type: Translated
[ 0.313169] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[ 0.313169] pci 0000:01:00.0: vgaarb: bridge control possible
[ 0.313169] pci 0000:01:00.0: vgaarb: setting as boot device
[ 0.313169] vgaarb: loaded
...
[ 0.534844] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 0.534871] efifb: probing for efifb
[ 0.534882] efifb: showing boot graphics
[ 0.537785] efifb: framebuffer at 0xfa00000000, using 25600k, total 25600k
[ 0.537787] efifb: mode is 2560x1600x32, linelength=16384, pages=1
[ 0.537788] efifb: scrolling: redraw
[ 0.537788] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 0.537845] Console: switching to colour frame buffer device 160x50
[ 0.541740] fb0: EFI VGA frame buffer device
[ 0.543342] ACPI: AC: AC Adapter [ADP0] (off-line)
[ 0.543378] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
[ 0.543390] ACPI: button: Power Button [PWRB]
[ 0.543409] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
[ 0.543417] ACPI: button: Lid Switch [LID0]
[ 0.543430] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[ 0.543457] ACPI: button: Power Button [PWRF]
[ 0.543508] Monitor-Mwait will be used to enter C-1 state
...
[ 0.806995] acpi device:01: registered as cooling_device16
[ 0.807027] acpi PNP0C14:03: duplicate WMI GUID 05901221-D566-11D1-B2F0-00A0C9062910 (first instance was on PNP0C14:00)
[ 0.807067] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/LNXVIDEO:00/input/input4
[ 0.807191] ACPI: video: Video Device [VGA] (multi-head: yes rom: no post: no)
[ 0.807316] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GP17.VGA.LCD._BCM.AFN7], AE_NOT_FOUND (20210105/psargs-330)
[ 0.807499]
Initialized Local Variables for Method [_BCM]:
[ 0.807500] Local0: 0000000038713046 <Obj> Integer 00000000000000FF
[ 0.807505] Local1: 0000000029383804 <Obj> Integer 0000000000000000
[ 0.807508] Initialized Arguments for Method [_BCM]: (1 arguments defined for method invocation)
[ 0.807508] Arg0: 00000000ceb92cb1 <Obj> Integer 0000000000000064
[ 0.807513] ACPI Error: Aborting method _SB.PCI0.GP17.VGA.LCD.BCM due to previous error (AE_NOT_FOUND) (20210105/psparse-529)
[ 0.807609] ACPI: _SB.PCI0.GP17.VGA_.LCD_: _BCM evaluation failed
[ 0.807641] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:13/LNXVIDEO:01/input/input5
...
[ 2.692008] input: Ideapad extra buttons as /devices/pci0000:00/0000:00:14.3/PNP0C09:00/VPC2004:00/input/input11
[ 2.692077] ideapad_acpi VPC2004:00: Keyboard backlight control not available
[ 2.698741] ccp 0000:05:00.2: enabling device (0000 -> 0002)
[ 2.699039] ccp 0000:05:00.2: ccp: unable to access the device: you might be running a broken BIOS.
[ 2.703452] ideapad_acpi VPC2004:00: DYTC interface is not available
...
[ 4.424514] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input16
[ 4.424562] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input17
[ 4.424591] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input18
[ 4.424619] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input19
[ 4.424646] input: HDA NVidia HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input20
[ 4.424676] input: HDA NVidia HDMI/DP,pcm=11 as /devices/pci0000:00/0000:00:01.1/0000:01:00.1/sound/card0/input21
[ 4.466797] input: HD-Audio Generic Mic as /devices/pci0000:00/0000:00:08.1/0000:05:00.6/sound/card1/input22
[ 4.466857] input: HD-Audio Generic Headphone as /devices/pci0000:00/0000:00:08.1/0000:05:00.6/sound/card1/input23
[ 4.498362] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 460.73.01 Thu Apr 1 21:40:36 UTC 2021
[ 4.504877] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 460.73.01 Thu Apr 1 21:32:31 UTC 2021
[ 4.537322] r8169 0000:03:00.0 eno1: Link is Down
[ 4.599300] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[ 4.599303] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 0
[ 4.607340] nvidia_uvm: module uses symbols from proprietary module nvidia, inheriting taint.
[ 4.609244] nvidia-uvm: Loaded the UVM driver, major device number 507.
[ 4.781539] ACPI: : failed to evaluate _DSM (0x1001)
[ 4.781546] ACPI: : failed to evaluate _DSM (0x1001)
[ 4.850308] ACPI Warning: _SB.PCI0.GPP0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20210105/nsarguments-61)
...
xrandr
and how it "doesn't ... really control the brightness of the backlight"? There is a--brightness
option which should allow you to manually set brightness to a value between 0 and 1, with 0.75 being a good place to start ... – matigo May 05 '21 at 12:16nvidia_wmi_ec_backlight
through which I am able to control the brightness. The caveat, though, is that brightness control only works after the system resumes from sleep (i.e. on a clean boot it does not work).Here are my findings so far: https://forum.manjaro.org/t/changing-brightness-only-works-after-system-resumes-from-sleep/104447
– Alexandru Dinu Mar 05 '22 at 18:18