Sunday, December 2, 2007

Backlight & Brightness Fix

The brightness controls (Fn+the up and down arrows) don't seem to be working for many people in Gutsy. There is a very easy fix for this, use BIOS 1.70.

You Can Find BIOS Version 1.70 on Dell's Driver Website Here

The bad news is that it is a Windows process, meaning you have to do it in Windows. The good news is that it a completely automated process and impossible to mess up. All you have to remember is that you need to have your Inspiron plugged in when you update the BIOS. If your not plugged in, you'll brick your laptop.

There are other ways to update your BIOS, but I don't feel comfortable writing a guide or recommending them to my readers. So many things can go wrong, especially when updating via the DOS command line.
edited by pHreaksYcle

31 comments:

Mihai Balan said...

still, I think that there should be some other way to fix it (since it worked VERY well in Feisty). Especially when this fix means downgrading such an important part of the system (I'm not very much into upgrading/downgrading BIOS-es since I ruined a motherboard because of a failed BIOS upgrade :( )

Miguel said...

Nice... It works without troble.

Pablo Olmos de Aguilera Corradini said...

I don't have windows. So I can't do it. Anyway, I'd like to say that Sabayon recognize them without problems. So I'd say the solution is to compile the kernel.

Alexandre said...

It should be noted that dell's .exe to downgrade the bios only works in xp, not in vista. I had to install xp before being able to do this even though my computer came with vista.

Moe said...

I have the 2.4 BIOS version, it's safe to downgrade to the 1.7 version????

redDEAD said...

yes it is completely safe to downgrade your BIOS

Igor said...

Is there any way to downgrade bios without windows? I can experiment on my laptop.

redDEAD said...

Igor,

BIOS are not something you want to experiment with, if they mess up or do not get flashed properly your computer becomes a useless brick. It won't turn on, won't load anything, impossible to fix on your own.

I DO NOT RECOMMEND ANY OTHER METHOD BESIDES THE WINDOW METHOD FOR FLASHING YOUR BIOS.

caleb said...

You can run this command to change the brightness without downgrading your BIOS.

sudo -s
echo -n 50 > /proc/acpi/video/VGA/LCD/brightness
exit

You can replace the 50 with:
37 12 25 37 50 62 75 87 100

100 is full brightness 50 is half brightness ect.

Christopher said...

Has anyone tried BIOS v. 2.6.1?

Igor said...

I've downgrade my BIOS without installing Windows :) I've just used so-called WinXP LiveCD to load Windows and start Flash Updater from flash drive :) All works and perfect :)
I've used iNFR@CD, but it's russian release. I believe english wersion can be easily found in Google :)

redDEAD said...

Igor,

sounds like a lot of work but glad it worked for you.

Brian said...

while downgrading your bios seems to fix the backlight issue upgrading to the latest version fixes the suspend and hibernate issue

Shane said...

I wrote a small GUI (that uses zenity) to adjust the screen brightness without downgrading the BIOS. This must be run with su or sudo.

save the following in an executable file called set-brightness (for example) in /usr/bin and create a new item in the menu that runs 'sudo set-brightness'.

----------------------
#!/bin/sh

ans=$(zenity --width=40 --height=230 --title="Set Screen Brightness" --list --text "Brightness Level" --radiolist --column "Select" --column "Action" FALSE Low FALSE Normal FALSE Bright FALSE "Very Bright";)
if [ "$ans" = "Low" ] ; then
echo -n 25 > /proc/acpi/video/VGA/LCD/brightness
fi
if [ "$ans" = "Normal" ] ; then
echo -n 50 > /proc/acpi/video/VGA/LCD/brightness
fi
if [ "$ans" = "Bright" ]; then
echo -n 75 > /proc/acpi/video/VGA/LCD/brightness
fi
if [ "$ans" = "Very Bright" ]; then
echo -n 100 > /proc/acpi/video/VGA/LCD/brightness
fi
-------------------------------

hope this helps!

Violinista en el tejado said...

Did somebody try µswsusp? You can find it here: http://suspend.sourceforge.net/ I didn't because I'm using linux for 5 days, and I'm not sure if I would do it well...
...and Happy New Year ;-)

demian said...

I finally managed to downgrade to bios version 1.7 without having to install windows. It's pretty easy with Bart's Preinstalled Environment (BartPE) bootable live windows CD/DVD.

That's what I did:
First I built a bootable live cd with the PEBuilder (http://www.nu2.nu/pebuilder/). It requires a Windows-Installation-CD. Afterwards I runned the downloades bios-flash-utility (downloaded from dell homepage) from a fat-partition of the hd (i should work with a flash-stick too). Every thing worked allright. I'm so glad that I didn't need to install Windows only in order to downgrade the bios!
So I hope it helps!

Anyway I got one question: is it necessary to reinstall ubuntu after downgrading bios to version 1.7? Ubuntu seems to work fine (the brightness-Buttons finally work!), but I still got this bios-bug-message right after booting.

caleb said...

Here is a gui way to change the brightness without rolling back the bios.

Make sure zenity is installed, go to Synaptic Package Manager and search for Zenity.
Thanks to Shane for the script, I modified it slightly.

1. Download files from here: http://tp-txdp4282.content-type.com/48395805/68030/1408338/1/screenbrightness.zip
2. Extract files.
3. Go to Applications -> Accessories -> Terminal
4. Type in: sudo nautilus
5. Click Go -> Location (Ctrl+L)
6. Enter /usr/bin
7. Paste set-brightness into /usr/bin
8. Press reload to make sure the script is there.

Optional
1. "Put Set Brightness Icon" on the desktop.
2. Rightclick the icon -> properties
3. Click the image in the upper left hand corner, find the icon image.

Rex said...

Try typing the following command in a terminal:

xgamma -gamma 0.75

If that doesn't work you need to install xgamma from the repos.

I have posted my own solution here on setting it up:

http://ubuntuforums.org/showthread.php?p=4168042#post4168042

Rex said...

Try typing the following command in a terminal:

xgamma -gamma 0.75

If that doesn't work you need to install xgamma from the repos.

I have posted my own solution here on setting it up:

http://ubuntuforums.org/showthread.php?p=4168042#post4168042

Marcelo said...

I coded two functions in C for changing the brightness of the screen using the
echo -n XX > /proc/acpi/video/VGA/LCD/brightness

so you can run it using Ctrl-UP or Ctrl-Down by configuring Compiz

Remember that this should be run using gksu

http://iie.fing.edu.uy/~mdavid/1501brightness.tar.gz

You will see some lame programming in these functions... advises are welcome ;)

Samer said...

The brightness keys (fn+up/down) work with the new 2.6.24.1 kernel and Gutsy. I have bios version 2.6.2.

Apparently, the "video" kernel modules responsible for the brightness were rewritten in the latest kernel release.
I think hardy heron is going to have the 2.6.24 kernel, so the brightness keys should work by default on the next Ubuntu release.

In addition, suspend and hibernate work with the fglrx drivers.

malek said...

If fn+up/down don't work, you need to replace 2 files.
Look here.
http://habrahabr.ru/blog/ubuntu/35013.html
It works!

d00d said...

Very nice Malek.
In case you cant read russian:

1. backup /etc/acpi/video_brightnessup.sh
and /etc/acpi/videobrightnessdown.sh

2. sudo gedit the first one

3. replace everything in it with:

#!/bin/bash

CURRENT=$(grep "current:" /proc/acpi/video/VGA/LCD/brightness |awk '{print $2}')


case "$CURRENT" in

100)
echo -n 100 > /proc/acpi/video/VGA/LCD/brightness;
;;
87)
echo -n 100 > /proc/acpi/video/VGA/LCD/brightness;
;;
75)
echo -n 87 > /proc/acpi/video/VGA/LCD/brightness;
;;
62)
echo -n 75 > /proc/acpi/video/VGA/LCD/brightness;
;;
50)
echo -n 62 > /proc/acpi/video/VGA/LCD/brightness;
;;
37)
echo -n 50 > /proc/acpi/video/VGA/LCD/brightness;
;;
25)
echo -n 37 > /proc/acpi/video/VGA/LCD/brightness;
;;
12)
echo -n 25 > /proc/acpi/video/VGA/LCD/brightness;
;;
*)
echo -n 100 > /proc/acpi/video/VGA/LCD/brightness ;
;;
esac


4. sudo gedit the second one (brightnessdown) and add:
#!/bin/bash

CURRENT=$(grep "current:" /proc/acpi/video/VGA/LCD/brightness |awk '{print $2}')


case "$CURRENT" in

12)
echo -n 12 > /proc/acpi/video/VGA/LCD/brightness;
;;
25)
echo -n 12 > /proc/acpi/video/VGA/LCD/brightness;
;;
37)
echo -n 25 > /proc/acpi/video/VGA/LCD/brightness;
;;
50)
echo -n 37 > /proc/acpi/video/VGA/LCD/brightness;
;;
62)
echo -n 50 > /proc/acpi/video/VGA/LCD/brightness;
;;
75)
echo -n 62 > /proc/acpi/video/VGA/LCD/brightness;
;;
87)
echo -n 75 > /proc/acpi/video/VGA/LCD/brightness;
;;
100)
echo -n 87 > /proc/acpi/video/VGA/LCD/brightness;
;;
*)
echo -n 50 > /proc/acpi/video/VGA/LCD/brightness ;
;;
esac



5.save and now your fn+up and down work great.

Drew said...

I need to upgrade my bios but now I can't. Some error I get. ;(

Drew said...

How do you upgrade your BIOS back? I get some error every time I try going from 1.7 to latest.

Shane said...

hi drew,

there is a utility to upgrade the BIOS... read these instructions here:

http://direct2dell.com/one2one/archive/2007/12/05/37446.aspx

http://www.ubuntu-unleashed.com/2007/09/howto-easily-upgrade-dell-bios-in.html

its pretty easy.

Derek Berner said...

For what it's worth, I threw together a ruby-gtk version of the gnome-brightness-applet that works using Shane and Marcelo's techniques:

http://dcberner.blogspot.com/2008/04/its-rubygtk-time-again.html

Enjoy.

Michael Blondin said...

I'm having Ubuntu 8.04 with BIOS ver 2.6.1 and brightness, suspend and hibernate do not work

José Héctor said...

Millions of thanks to malek and d00d!!

Can't believe could exist such an elegant and easy solution to this entangled problem...

No need of downgrading BIOS, no need of any trouble; in a couple of minutes brightness keys work just fine.

Again, thank you very much malek and d00d; you deserve a big hooray!!

BRAVO!

a said...

Thanks a lot dOOd

I followed your instructions. Now my brighteness controls work properly.

Robin said...

thanks, the last fix works for me (editing videobrightness*.sh), but what about when we unplug/replug AC ? I can see that Ubuntu tries to set the brightness level to the minimum, but it has no effect. I guess it as to do with power.sh. What needs to be done?