Backlight/Brightness always at 100% NVIDIA RTX 2080 Mobile 535.154.05, Linux Mint 21.3 (Ubuntu 22.04)

The Backlight/Brightness of my Notebook is always at 100%. When I’m pressing FN+F8(-)/F9(+) to set the brightness, the on-screen indicator pop up but nothing happen. My Notebook has no Optimus. The RTX Card is the only build in.
After some researching, I checked several things.

  • BIOS is Up2Date

I can control the brightness with xandr.

xrandr -q
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 214mm
1920x1080 144.01*+ 60.06
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)

xrandr --output DP-2 --brightness 0.7 <<<— command is working!

ls /sys/class/backlight/ - nvidia_0

System:
Kernel: 6.5.0-15-generic x86_64 bits: 64 compiler: N/A
Desktop: Cinnamon 6.0.4 tk: GTK 3.24.33 wm: muffin vt: 7 dm: LightDM 1.30.0
Distro: Linux Mint 21.3 Virginia base: Ubuntu 22.04 jammy
Machine:
Type: Laptop System: Notebook product: P7xxTM1 v: N/A
serial: Chassis: No Enclosure type: 10
serial:
Mobo: Notebook model: P7xxTM1 serial:
UEFI: American Megatrends v: 1.07.29 date: 01/03/2020
CPU:
Info: 8-core model: Intel Core i7-9700K bits: 64 type: MCP
smt: arch: Coffee Lake rev: D cache: L1: 512 KiB L2: 2 MiB
L3: 12 MiB
Speed (MHz): avg: 800 min/max: 800/4900 cores: 1: 800 2: 800 3: 800
4: 800 5: 800 6: 800 7: 800 8: 800 bogomips: 57600
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: NVIDIA TU104BM [GeForce RTX 2080 Mobile] vendor: CLEVO/KAPOK
driver: nvidia v: 535.154.05 pcie: speed: 5 GT/s lanes: 16 ports:
active: none off: eDP-1 empty: DP-1,DP-2,HDMI-A-1 bus-ID: 01:00.0
chip-ID: 10de:1ed0 class-ID: 0300
Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: nvidia
unloaded: fbdev,modesetting,nouveau,vesa gpu: nvidia display-ID: :0
screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 128 s-size: 381x211mm (15.0x8.3")
s-diag: 436mm (17.1")
Monitor-1: DP-2 res: 1920x1080 hz: 144 dpi: 128
size: 382x214mm (15.0x8.4") diag: 438mm (17.2")
OpenGL: renderer: NVIDIA GeForce RTX 2080/PCIe/SSE2
v: 4.6.0 NVIDIA 535.154.05 direct render: Yes
Audio:
Device-1: Intel 200 Series PCH HD Audio vendor: CLEVO/KAPOK
driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a2f0
class-ID: 0403
Device-2: NVIDIA TU104 HD Audio vendor: CLEVO/KAPOK driver: snd_hda_intel
v: kernel pcie: speed: 8 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:10f8
class-ID: 0403
Sound Server-1: ALSA v: k6.5.0-15-generic running: yes
Sound Server-2: PulseAudio v: 15.99.1 running: yes
Sound Server-3: PipeWire v: 0.3.48 running: yes
Network:
Device-1: Qualcomm Atheros Killer E2500 Gigabit Ethernet
vendor: CLEVO/KAPOK driver: alx v: kernel pcie: speed: 2.5 GT/s lanes: 1
port: c000 bus-ID: 04:00.0 chip-ID: 1969:e0b1 class-ID: 0200
IF: enp4s0 state: down mac:
Device-2: Intel Wireless-AC 9260 driver: iwlwifi v: kernel pcie:
speed: 5 GT/s lanes: 1 bus-ID: 07:00.0 chip-ID: 8086:2526 class-ID: 0280
IF: wlp7s0 state: up mac:
Bluetooth:
Device-1: Intel Wireless-AC 9260 Bluetooth Adapter type: USB driver: btusb
v: 0.8 bus-ID: 1-11:5 chip-ID: 8087:0025 class-ID: e001
Report: hciconfig ID: hci0 rfk-id: 0 state: up address:
bt-v: 3.0 lmp-v: 5.1 sub-v: 100 hci-v: 5.1 rev: 100
Drives:
Local Storage: total: 2.73 TiB used: 236.69 GiB (8.5%)
ID-1: /dev/nvme0n1 vendor: Western Digital model: WDS100T3X0C-00SJG0
size: 931.51 GiB speed: 31.6 Gb/s lanes: 4 type: SSD serial:
rev: 111110WD temp: 58.9 C scheme: GPT
ID-2: /dev/nvme1n1 vendor: Western Digital model: WDS100T3X0C-00SJG0
size: 931.51 GiB speed: 31.6 Gb/s lanes: 4 type: SSD serial:
rev: 111110WD temp: 61.9 C scheme: GPT
ID-3: /dev/sda vendor: Samsung model: SSD 850 EVO 500GB size: 465.76 GiB
speed: 6.0 Gb/s type: SSD serial: rev: 3B6Q scheme: GPT
ID-4: /dev/sdb vendor: Samsung model: SSD 850 EVO 500GB size: 465.76 GiB
speed: 6.0 Gb/s type: SSD serial: rev: 2B6Q scheme: GPT
Partition:
ID-1: / size: 452.98 GiB used: 15.71 GiB (3.5%) fs: ext4 dev: /dev/sda3
ID-2: /boot/efi size: 760.5 MiB used: 6.1 MiB (0.8%) fs: vfat
dev: /dev/sda1
ID-3: /home size: 915.82 GiB used: 183.75 GiB (20.1%) fs: ext4
dev: /dev/nvme0n1p1
Swap:
ID-1: swap-1 type: partition size: 3.72 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/sda2
Sensors:
System Temperatures: cpu: 45.0 C mobo: N/A gpu: nvidia temp: 43 C
Fan Speeds (RPM): N/A
Repos:
Packages: 2436 apt: 2428 flatpak: 8
No active apt repos in: /etc/apt/sources.list
Active apt repos in: /etc/apt/sources.list.d/official-package-repositories.list
Links deletet because of nvidia restrictions.
No active apt repos in: /etc/apt/sources.list.d/steam-beta.list
Active apt repos in: /etc/apt/sources.list.d/steam-stable.list
1: deb [arch=amd64,i386 signed-by=/usr/share/keyrings/steam.gpg] Steam for Linux - launcher stable steam
2: deb-src [arch=amd64,i386 signed-by=/usr/share/keyrings/steam.gpg] Steam for Linux - launcher stable steam
Info:
Processes: 295 Uptime: 5m wakeups: 1 Memory: 31.27 GiB
used: 2.36 GiB (7.5%) Init: systemd v: 249 runlevel: 5 Compilers:
gcc: 11.4.0 alt: 11/12 Shell: Bash v: 5.1.16 running-in: gnome-terminal
inxi: 3.3.13

±--------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.05 Driver Version: 535.154.05 CUDA Version: 12.2 |
|-----------------------------------------±---------------------±---------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 2080 Off | 00000000:01:00.0 On | N/A |
| N/A 43C P8 10W / 150W | 316MiB / 8192MiB | 4% Default |
| | | N/A |
±----------------------------------------±---------------------±---------------------+

±--------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1118 G /usr/lib/xorg/Xorg 92MiB |
| 0 N/A N/A 2509 G cinnamon 38MiB |
| 0 N/A N/A 3062 G …AAAAAAAACAAAAAAAAAA= --shared-files 2MiB |
| 0 N/A N/A 4553 G /usr/lib/firefox/firefox 179MiB |
±--------------------------------------------------------------------------------------+

uname -r
6.5.0-15-generic

/sys/class/backlight/nvidia_0 ls
actual_brightness brightness max_brightness scale type
bl_power device power subsystem uevent

nvidia-bug-report.log.gz (334.1 KB)

If you need more Information. Please let me know.

Please check if setting kernel parameter
nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1
helps.

Unfortunately no change.

GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1”

I also tried

GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash acpi_osi= acpi_os_name=Linux i915.enable_dpcd_backlight”

With this settings, the Functions Keys are not working anymore and the Brightness control on the Taskbar disappear.

I installed Brightness Controller, so I can easily set the brightness and save the current settings as default.

When I open Nvidia Settings, the brightness will instantly going up to 100%. What is the problem with Nvidia and brightness control?

Your notebook is is built on a Clevo P7xxTM1 barebone and the nvidia driver’s backlight control doesn’t work on that (at least on newer drivers, you might test the 470 driver).
Brightness Controller doesn’t change the backlight brightness but instead changes the color profile to display darker colors. Nvidia-settings always resets the color profile on start, which is an unrelated, additional annoyance.

No luck.

I tried

  • another Linux OS with Kernel 6.7.1
  • 470 driver

So, I assume this will not be fixed in the future. This is not too bad, because I can also control the brightness with software. Better than nothing. ¯_(ツ)_/¯

After using the nouveau driver 1:1.0.17-2build1 with Kernel 5.15.0-92-generic, the brightness control is working. So my Notebook is supported at least with the open source driver.

How high is the chance to see this compatibility in the nvidia drivers?

Is it somehow possible to check how the brightness control is working with nouveau driver and using this in the nvidia drivers as a workaround?

Near to zero, I already played around with the nvidia glue code trying to work around a similar bug on a different notebook. As soon as the nvidia driver is loaded, it takes full control of the brightness locking any other ways.

That’s… disappointing.

Is there a open Ticket/Request at Nvidia? Or how can I open one?

Previous thread for the same notebook:
https://forums.developer.nvidia.com/t/brightness-control-still-not-working-since-465/238507

You could send your bug report with the log and an acpidump to linux-bugs[at]nvidia.com

1 Like

As a sidenote, previosly, the nvidia driver habe the module parameter nvidia.NVreg_EnableBacklightHandler=0 to turn off the backlight handler and fall back to the acpi backlight. Unfortunately, this parameter seems to be removed while still mentioned in the docs:
https://http.download.nvidia.com/XFree86/Linux-x86_64/550.40.07/README/configlaptop.html

I also tried this parameter. But it is not working for me.

It would be crazy when the parameter has no function but is still mentioned in the Installation and Configuration Instructions of the newest driver version.

I opened a Ticket/Request to linux-bugs. I also mentioned this parameter, which can be found in the official Installation and Configuration Instructions. Let’s see now, if they care about this.

I grepped through the nvidia sources and object files, it’s simply completely gone without notice and also the backlight handler code went from nvidia.ko to nvidia-modeset.ko module.
If you’re bored, you could try hacky thing (though didn’t work last time):
install the package linux-modules-extra to get the nvidia-wmi-ec-backlight module in case not already installed and the modify the nvidia driver sources by replacing
#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
with
#if 0
in nvidia-modeset/nvidia-modeset-linux.c
and then recompiling the driver.

Downloaded the Sources and replaced all entrys in nvidia-modeset/nvidia-modeset-linux.c as you mentioned.

I need now some assistance, please. Because I don´t know how to recompile the driver.
Is it the How to build guide on the Main Page?

You should rather modify the dkms sources in /usr/src/nvidia-535.154.05 and then use dkms remove/install to recompile, updating the initrd afterwards.

Thanks!

sudo apt install linux-modules-extra-5.15.0-94-generic

The newest Version is already installed.

cd /usr/src/nvidia-535.154.05/nvidia-modeset
sudo nano nvidia-modeset-linux.c

replacing

#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
with
#if 0 <<<— Zero

in file

Save file

sudo dkms remove nvidia/535.154.05
sudo dkms install nvidia/535.154.05
sudo update-initramfs -u

reboot

Didn’t work. :-(

Is there still a backlight handler available in /sys/class/backlight? Does setting kernel parameter acpi_backlight=video help?
Also, you could try to call the acpi methods using acpi_call module
echo '\_SB.PCI0.GFX0.LCD0._BCM 0x1e' > /proc/acpi/call
echo '\_SB.PCI0.PEG0.PEGP.LCD0._BCM 0x1e' > /proc/acpi/call

Before recompiling:

/sys/class/backlight$ ls
nvidia_0

/sys/class/backlight/nvidia_0$ ls -l
-r--r--r-- 1 root root 4096 Feb 27 07:18 actual_brightness
-rw-r--r-- 1 root root 4096 Feb 27 09:17 bl_power
-rw-r--r-- 1 root root 4096 Feb 27 07:18 brightness
lrwxrwxrwx 1 root root    0 Feb 27 09:17 device -> ../../../0000:01:00.0
-r--r--r-- 1 root root 4096 Feb 27 07:18 max_brightness
drwxr-xr-x 2 root root    0 Feb 27 09:17 power
-r--r--r-- 1 root root 4096 Feb 27 09:17 scale
lrwxrwxrwx 1 root root    0 Feb 27 07:18 subsystem -> ../../../../../../class/backlight
-r--r--r-- 1 root root 4096 Feb 27 07:18 type
-rw-r--r-- 1 root root 4096 Feb 27 08:17 uevent

/sys/class/backlight/nvidia_0$ cat brightness 
100

Brightness number is NOT changing when I control the brightness with the function keys. Screen brightness is not changing.

After recompiling with changes in nvidia-modeset-linux.c

/sys/class/backlight$ ls
acpi_video0

/sys/class/backlight/acpi_video0$ ls -l
-r--r--r-- 1 root root 4096 Feb 27 09:22 actual_brightness
-rw-r--r-- 1 root root 4096 Feb 27 09:24 bl_power
-rw-r--r-- 1 root root 4096 Feb 27 08:23 brightness
lrwxrwxrwx 1 root root    0 Feb 27 09:24 device -> ../../../0000:01:00.0
-r--r--r-- 1 root root 4096 Feb 27 08:23 max_brightness
drwxr-xr-x 2 root root    0 Feb 27 09:24 power
-r--r--r-- 1 root root 4096 Feb 27 09:24 scale
lrwxrwxrwx 1 root root    0 Feb 27 08:23 subsystem -> ../../../../../../class/backlight
-r--r--r-- 1 root root 4096 Feb 27 08:23 type
-rw-r--r-- 1 root root 4096 Feb 27 09:23 uevent

/sys/class/backlight/acpi_video0$ cat brightness 
56 

Brightness number IS changing when I control the brightness with the function keys. Screen brightness is not changing.

sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=video"
sudo update-grub

reboot

/sys/class/backlight/acpi_video0$ cat brightness 
20

Number still changes but not the screen brightness.


echo '\_SB.PCI0.GFX0.LCD0._BCM 0x1e' > /proc/acpi/call
echo '\_SB.PCI0.PEG0.PEGP.LCD0._BCM 0x1e' > /proc/acpi/call

These commands are not working because I don’t have a /call folder. bash: /proc/acpi/call: no such file or directory.

/proc/acpi$ ls
button  wakeup

Did you ever try to write values into it?

You need to install the acpi_call module for it. Ubuntu package acpi-call-dkms

Thank you!

When I open Nvidia Settings, the brightness will instantly going up to 100%. What is the problem with Nvidia and brightness control?

After making these changes, this does not happen anymore.

First I changed the number to 10.
Reboot.
Than 30.
Reboot.
No change on the screen brightness.

The package was not installed.
After I installed this package and run the commands I get the same message. The contents of the folder are still the same.