Ubuntu – Screen Brightness Stuck on high on an HP dv7t laptop

12.04brightnesslaptopscreen

I have an otherwise fully-functioning install of Ubuntu 12.04 on my HPdv7t laptop.

When I press the 'brightness buttons' on the keyboard the associated images appear on my screen to say I am increasing/decreasing the screen brightness. When I go into "System Settings" I can move the 'brightness slider bar' up and down.

But none of that changes the fact that my screen is stuck on the highest brightness setting.

ANY clues on how to fix this would be greatly appreciated. This giant 17-inch monitor is blinding, and this is making it hard to code for any length of time.

Best Answer

I own an Acer Aspire 5755g and I had the same problem with backlight of my screen. My PC has Nvidia GT540M. I read previous answers and found out that on my pc this advice works but I need to run some different command instead of

echo n > /sys/class/backlight/acpi_video0/brightness 

I have to change it to

echo 250 > /sys/class/backlight/intel_backlight/brightness

for example, where 250 is my desired backlight value.

I think it is because of hybrid graphics in notebooks like mine, so backlight is controlled through intel builtin controller.

In such case do cat /sys/class/backlight/intel_backlight/brightness and you'll see your current value of brightness. In my case it was 976. You can also look for a max_brightness file in the same directory to get an idea of the scale of values. You should be able to adjust the backlight by changing this number. Be aware that if you set it to 0 your backlight will be turned off and you won't be able to see what you're typing! If you try to set value more than maximum it just returns an error and nothing changes.

To set backlight value at startup you may be able to add a line like this

echo 250 > /sys/class/backlight/intel_backlight/brightness

to your /etc/rc.local file before the line saying exit 0.

If that does not work for you, you can try using sysfsutils instead. You may need to install the package:

sudo apt install sysfsutils

and then modify the file /etc/sysfs.conf to add a line like this:

class/backlight/intel_backlight/brightness = 250

Also we can enable hotkeys to change backlight manually in a comfortable way. I made my hotkeys scripts of scripts for Asus laptops placed in /etc/acpi directory. You need 2 scripts - one to increase brightness, another for decreasing, both placed in /etc/acpi directory. Also we need to set these scripts to trigger on hotkeys events, which can be done by changing files in the /etc/acpi/events directory. In my case their names and contents are:

/etc/acpi/events/asus-brightness-down
event=video DD03 00000087 00000000 
action=/etc/acpi/asus-brn-down.sh
/etc/acpi/events/asus-brightness-up
event=video DD03 00000086 00000000
action=/etc/acpi/asus-brn-up.sh

Where /etc/acpi/asus-brn-down.sh and asus-brn-up.sh are names of our scripts to decrease and increase brightness.

Contents of my /etc/acpi/asus-brn-down.sh:

#!/bin/sh
# this is for acer aspire 5755G :)
KEYS_DIR=/sys/class/backlight/intel_backlight

test -d $KEYS_DIR || exit 0

MIN=1
# i set MIN to 1 to almost turn off backlight, but you can set a better one value, 50 for examlple
MAX=$(cat $KEYS_DIR/max_brightness)
VAL=$(cat $KEYS_DIR/brightness)

VAL=$((VAL-25))

if [ "$VAL" -lt $MIN ]; then
VAL=$MIN
fi

echo $VAL > $KEYS_DIR/brightness

And contents of my /etc/acpi/asus-brn-up.sh:

#!/bin/sh
# this is for acer aspire 5755G :)
KEYS_DIR=/sys/class/backlight/intel_backlight
test -d $KEYS_DIR || exit 0
MIN=1
MAX=$(cat $KEYS_DIR/max_brightness)
VAL=$(cat $KEYS_DIR/brightness)
# I decided to increase brightness by 25 per keypress but you can change it to 50 or even 1 if you like
    VAL=$((VAL+25))

if [ "$VAL" -gt $MAX ]; then
    VAL=$MAX
fi

echo $VAL > $KEYS_DIR/brightness

UPDATE: Same problem solved in Ubuntu 13.10 (additional solution found in this Ubuntu Forums post)

We need to create a file /usr/share/X11/xorg.conf.d/20-intel.conf with this content:

Section "Device"
       Identifier  "card0"
       Driver      "intel"
       Option      "Backlight"  "intel_backlight"
       BusID       "PCI:0:2:0"
EndSection

Then reboot. Thats all ;)

Related Question