Lenovo Legion 5 Pro display brightness not working

Hey there,

I’m on a Lenovo Legion laptop with an AMD CPU and NVIDIA GPU, running nvidia drivers version 515 and Kernel 5.18.

$ inxi -Fxz
System:
  Kernel: 5.18.12-3-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.1.0
    Desktop: Xfce v: 4.16.0 Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 82JQ v: Legion 5 Pro 16ACH6H
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: NO DPK serial: <superuser required>
    UEFI: LENOVO v: GKCN50WW date: 11/24/2021
Battery:
  ID-1: BAT0 charge: 82.4 Wh (100.0%) condition: 82.4/80.0 Wh (103.0%)
    volts: 17.5 min: 15.4 model: Sunwoda L20D4PC1 status: full
  Device-1: hidpp_battery_0 model: Logitech Wireless Mouse MX Master 3
    charge: 100% (should be ignored) status: discharging
CPU:
  Info: 8-core model: AMD Ryzen 7 5800H with Radeon Graphics bits: 64
    type: MT MCP arch: Zen 3 rev: 0 cache: L1: 512 KiB L2: 4 MiB L3: 16 MiB
  Speed (MHz): avg: 1816 high: 3073 min/max: 1200/4462 boost: enabled
    cores: 1: 2114 2: 1197 3: 3073 4: 1356 5: 2325 6: 2434 7: 1780 8: 1537
    9: 1837 10: 2023 11: 1479 12: 1396 13: 1396 14: 1395 15: 2285 16: 1430
    bogomips: 102241
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
  Device-1: NVIDIA GA104M [GeForce RTX 3070 Mobile / Max-Q] vendor: Lenovo
    driver: nvidia v: 515.57 arch: Ampere bus-ID: 01:00.0
  Display: x11 server: X.Org v: 21.1.4 driver: X: loaded: nvidia
    gpu: nvidia resolution: 2560x1600
  OpenGL: renderer: NVIDIA GeForce RTX 3070 Laptop GPU/PCIe/SSE2
    v: 4.6.0 NVIDIA 515.57 direct render: Yes
Audio:
  Device-1: NVIDIA GA104 High Definition Audio driver: snd_hda_intel
    v: kernel bus-ID: 01:00.1
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: Lenovo
    driver: N/A bus-ID: 05:00.5
  Device-3: AMD Family 17h/19h HD Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel bus-ID: 05:00.6
  Sound Server-1: ALSA v: k5.18.12-3-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.21 running: no
  Sound Server-3: PulseAudio v: 16.1 running: yes
  Sound Server-4: PipeWire v: 0.3.55 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Lenovo driver: r8169 v: kernel port: 1000 bus-ID: 03:00.0
  IF: eno1 state: down mac: <filter>
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel bus-ID: 04:00.0
  IF: wlp4s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8
    bus-ID: 3-4:2
  Report: rfkill ID: hci0 rfk-id: 3 state: up address: see --recommends
Drives:
  Local Storage: total: 953.87 GiB used: 423.27 GiB (44.4%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZVLB1T0HBLR-000L2
    size: 953.87 GiB temp: 44.9 C
Partition:
  ID-1: / size: 937.53 GiB used: 423.27 GiB (45.1%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 299.4 MiB used: 312 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p1
Swap:
  ID-1: swap-1 type: file size: 16 GiB used: 0 KiB (0.0%) file: /swapfile
Sensors:
  System Temperatures: cpu: N/A mobo: N/A gpu: nvidia temp: 40 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 354 Uptime: 32m Memory: 15.48 GiB used: 2.55 GiB (16.5%)
  Init: systemd Compilers: gcc: 12.1.0 clang: 14.0.6 Packages: 1293
  Shell: Bash v: 5.1.16 inxi: 3.3.19

The Fn + brightness keys display the slider when pressed, but do not actually change the brightness. The volume and other Fn keys do work, however. Manually changing the brightness with xrandr --output DP-4 --brightness does work, but manually editing /sys/class/backlight/nvidia_0/brightness does not. I’ve gone through numerous threads here but none seem to provide a solution to my problem. I did encounter a thread in the NVIDIA forums (“Laptop backlight control regression with 465.24.02”) but it appears to be very inconsistent with which versions of the driver work and which do not, with various users claiming the issue was fixed in different versions of the nvidia driver. So I’m kind of at a loss here, any help would be greatly appreciated!

1 Like

A short while ago

please post the output of

ls /sys/class/backlight/
Vortic:~ $ ls /sys/class/backlight/
nvidia_0

I stumbled accross this one but it did not work for me. I installed acpilight and added my user to the video group, but it is still not working, not even after reboot.

And the acpi daemon is enabled and active?

systemctl status acpid

add this to /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=Linux acpi_backlight=vendor"

don’t forget to update grub

sudo update-grub
sudo mkinitcpio -P

It was not, I started it but the brightness control is still not working:

Vortic:~ $ systemctl status acpid
● acpid.service - ACPI event daemon
     Loaded: loaded (/usr/lib/systemd/system/acpid.service; enabled; preset: disabled)
     Active: active (running) since Fri 2022-08-05 15:18:09 EEST; 1min 7s ago
       Docs: man:acpid(8)
   Main PID: 2747 (acpid)
      Tasks: 1 (limit: 19002)
     Memory: 344.0K
        CPU: 239ms
     CGroup: /system.slice/acpid.service
             └─2747 /usr/bin/acpid --foreground --netlink

Aug 05 15:18:09 vortic systemd[1]: Started ACPI event daemon.
Aug 05 15:18:09 vortic acpid[2747]: starting up with netlink and the input layer
Aug 05 15:18:09 vortic acpid[2747]: 1 rule loaded
Aug 05 15:18:09 vortic acpid[2747]: waiting for events: event logging is off

I added it:

Vortic:~ $ cat /etc/default/grub
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX="reboot=acpi"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video.use_native_backlight=1 usbcore.autosuspend = -1 idle = nomwait resume=UUID=b682322c-7788-4d26-b501-4103a30fa493 resume_offset=104855552 amdgpu.backlight=0 acpi_osi=Linux acpi_backlight=vendor"

Updated grub and rebooted, still not working through.

what’s the output of

ls /sys/class/backlight/

now ? any change ?

It changed

Vortic:~ $ ls /sys/class/backlight/
ideapad  nvidia_0

please delete

video.use_native_backlight=1

from your grub file, update grub as described above and reboot. after rebooting please post the output of

ls /sys/class/backlight/

again

Removed it:

Vortic:~ $ cat /etc/default/grub
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX="reboot=acpi"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend = -1 idle = nomwait resume=UUID=b682322c-7788-4d26-b501-4103a30fa493 resume_offset=104855552 amdgpu.backlight=0 acpi_osi=Linux acpi_backlight=vendor"

Updated grub, rebooted:

Vortic:~ $ ls /sys/class/backlight/
ideapad  nvidia_0

Hello,
Try this:

Neither of these options seem to be working for me.

Just that one option, no other acpi kernel boot parameter … Also, as always, i recommend updating the BIOS to the latest provided by the manufacturer.

is GKCN54WW 02 Jun 2022

Downgrade to linux-lts 5.15 kernel and nvidia-dkms 495.46.
add acpi_backlight=native and nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1 to kernel parameters.

I have the same device running archlinux, after the driver from nvidia 510.xx, the brightness adjustment in discrete mode is broken, so I can only roll back the driver to 495.46, which is not compatible with the new kernel, so must also Use lts kernel to downgrade kernel version

Tried with the following:

Vortic:~ $ cat /etc/default/grub
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX="reboot=acpi"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend = -1 idle = nomwait resume=UUID=b682322c-7788-4d26-b501-4103a30fa493 resume_offset=104855552 amdgpu.backlight=0 acpi_backlight=video"## Use geteltorito.pl on an Arch Linux ##
geteltorito -o {output-image-name.img {Bootable-CD.iso}
geteltorito -o x230.img g2uj28us.iso

Still not working, though.

put the “reboot=acpi” to the GRUB_CMD_LINUX_DEFAULT Section !!! it’s a different and only the default-section secures that it is loaded from the first moment.

Unfortunately, I already have a bunch of stuff installed on the laptop and downgrading drivers and kernel like that will surely break something. I don’t believe downgrading is a viable permanent solution to any problem, really, especially core software components.