This is an informational post for those of you who are using Linux on a laptop and are having a hard time adjusting the display brightness. This is problem that can cause your laptop to become more or less useless, assuming you want to see the screen but the brightness is wrong (usually too low, i.e., not maximum or near maximum) so I don’t want to call it a low level problem, but it is low level in that it affects only a few people. Complaints about this problem are scattered thinly across the internet, and every person with this problem seems to have two things: 1) A different computer or system from every other person with this problem and 2) only lame answers that generally don’t work.

Well, I have a generalizable solution that should work on a wide range of configurations. This might even work on Windows computers, but who cares about them. Anyway, here it is:

How to adjust the brightness of the monitor of your laptop running Linux:

This assumes that the two usual methods are not working. Those methods are:

1) find an adjustment slider bar or something in the system configuration thingie and turn it up or down; or

2) press the blue fn key (lower left part of your keyboard somewhere) along with the appropriate brightness adjustment key (there is a pair of function keys next to each other that do this) to invoke an on-screen doohickie virtual slider bar and make it go up and down.

If those two obvious answers are not working for you, there is a third temporary method that works intermittantly on some computers but not the real answer:

3) Unplug the power supply to your computer, if it is plugged in, and see what happens. Not the power supply INSIDE your computer, silly, just the batter charger wire coming from the brick.

OK, so none of those things work which is why you are here. So, now try this method which should work. There are four steps:

i) Accept, and be happy with, the fact that your computer will have one brightness setting and you can’t change it.

ii) Go to the system settings (#1 above), and especially your Power Settings, and change everything around so that the display brightness slider switch is where you want it (or would want it if it worked), ie., maximum, AND (this is important) disable/turn off any settings that promise to change the display settings, such as “dim screen after 20 minutes of inactivity” or “dim screen when using battery” etc. In other words, get the settings like you want them, but referring back to item i above, that will not include allowing your system to change the display brightness.

iii) Turn off your computer, turn it back on again (or “restart” if you like) and hit F2 (or another key as needed) to invoke the BIOS screen.

iv) Now that you are at the BIOS screen, you’ll notice that there is no adjustment there for this problem, but that does not matter. The thing is, the function key buttons (see #2 above) should work while you have the BIOS screen up! So, adjust the brightness to where you want it, and hit F10 or whatever to exit out of BIOS and let your computer boot.

Then, it should stay fixed. If it breaks later, repeat.

__________________
Photo Credit: miguelavg via Compfight cc

Comments

  1. #1 dima
    June 22, 2013

    Well, I haven’t tryed that, but i’m using a different technique:
    I can set the raw value of brigthness in the running kernel!
    I know, it’s damn complicated, but here it is (Ubuntu works fine with fn buttons, my archlinux is the mad one)

    $ sudo cat /sys/class/backlight/intel_backlight/max_brightness
    [sudo] password for dimon:
    4296
    So, we have this value. That’s how far we can go.
    now, let’s insert that.
    $ echo 4296 | sudo tee /sys/class/backlight/intel_backlight/brightness
    4296

    Be aware that I have a intel chip. Your path can be different, but I hope you’ll figure it out.
    explanation of previous command:
    echo – puts on screen 4296
    ” | ” this symbol is a pipe; instead of outputting to the screen, we pass that number to the next command, and more precisely to the :
    tee – a utility that writes to file whatever you give to it, it this case that number. Notice that we call it with sudo, to give him super-powers (it’s the kernel, god dammit)

    Of course you can open that file with vim/gedit/nano and save the file. The effect is instant.
    Set lower values for lower brightness levels.

  2. #2 Greg Laden
    June 22, 2013

    Brilliant. But what use tee instead of cat?

  3. #3 Eric Lund
    June 22, 2013

    Dima apparently wants to see the output of his echo command when he does this. If he didn’t feel a need to see it, or pipe that output into some other command, then a simple file redirect would do. Of course, he still needs sudo to muck about with system files.

  4. #4 Greg Laden
    June 22, 2013

    Yeah, my mention of cat was just to see how many people would get mad at me.

    Anyway, the sudo in the first command, asking for the max number, is unnecessary, I think. It is probably important to get the number because that will vary by hardware (mine is 4882).

    Not sure what would happen if you put in the wrong number.

  5. #5 Greg Laden
    June 22, 2013

    Actually, you could probably do something like this:

    $ sudo cat /sys/class/backlight/intel_backlight/max_brightness > /sys/class/backlight/intel_backlight/brightness

    right?

  6. [...] GRUB_CMDLINE_LINUX="acpi_backlight=vendor" no change 4) i've tried the basic steps here: http://scienceblogs.com/gregladen/20…stay-upadjust/ 5) i've opened the brightness setting from the system settings and, though i can move the slider [...]