Making brightness work on Linux
I recently switched entirely to Linux, specifically Arch, due to issues I had been facing as of late on Windows. When I tried reinstalling Windows, all my drivers were gone including wifi drivers and I couldn’t get them working again, so I decided to just use Linux where the drivers just worked. Funny, considering I use an NVIDIA GPU.
Anyways, even before this I had been trying Linux out in dual boot and stuff. I enjoyed it quite a bit, but there was one glaring issue: brightness couldn’t be adjusted. There didn’t seem to be any error or anything that described why this happened, so I just lived with it while using the AlphaTint GNOME extension to artificially change brightness.
That was until recently. I assume many of you know of systemd. It’s a suite of programs that basically opens from the bootloader and starts all necessary aspects of the system. Some like it, some hate it, I personally don’t care much. Regardless, the hackerman-like wall of text you get in some distros when they boot up and shut down is a log of what systemd is doing.
Within this wall of text, I, by accident, discovered a bit of text that said “backlight” and “nvidia”. I instantly realized that this might be a log of an error regarding the screen backlight, and of course it’s goddamn NVIDIA. I looked into this, and thankfully found a bit of info from the Arch Wiki about this. I had to set some kernel parameters to get it to work. Set one of these three and see which one works:
acpi_backlight=video
acpi_backlight=vendor
acpi_backlight=native
To set a kernel parameter, first find the configuration file for
your bootloader. In my case, for systemd-boot
, it should be in /boot/loader/entries
.
The bootloader config file’s name seems to depend on the distro. For Arch Linux,
most sites will say it’s named arch.conf
, but in my case I used archinstall
,
so the file was named something like YYYY-MM-DD_XX-XX-XX_linux.conf
, which includes
the date you installed Arch Linux and the X
s are replaced with some numbers
that I couldn’t really tell the meaning of. Perhaps they were the time or something.
In my case, the native
parameter was the one that worked. What a relief.
If it’s not working for you still, you can check out the whole backlight page on the Arch Wiki. Even if you don’t use Arch this may be of help.