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

39 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?

legitneo said...

malek and d00d you are geniuses. Thank you for a simple fix to a simple problem

Asen Nenov said...

Great! It works, d00d. :-) Thanks a lot.

William said...

Thanks d00d for the awesome fix! I've been thinking about what robin said about unplugging/plugging in the laptop. I've found a way for it to automatically set the brightness to full when you plug it in. By using what caleb first said about setting it with the terminal.
Use 'sudo gedit' to edit /etc/acpi/ac.d/85-anacron.sh .
then add the following line:
sudo echo -n 100 > /proc/acpi/video/VGA/LCD/brightness
Save and close and you should be good to go!
I'll post back if I find a fix to unplugging.

Ubuntu for life!
-William

William said...

As a follow up to what I said earlier,

I found a way to have the brightness go all the way down when you unplug the laptop! This time, open /etc/acpi/battery.d/15-anacron.sh with 'sudo gedit'.
Add this line:
sudo echo -n 12 > /proc/acpi/video/VGA/LCD/brightness

It should be working now.
Email me at Techdude300[at]gmail[dot]com if you need any help/have any questions.

manish mahabir said...

how can i save my current screen brightness (around 30%) as my default screen brightness at startup?
i am using intrepid.
my /proc/acpi/video/VGA/LCD/brightness file is empty.

Shaun said...

William's fix for brightness changes when plugging/unplugging my 1501 works. I would suggest that one uses separate scripts rather than adding to the 85-anacron.sh or 15-anacron.sh files. In my case, I created 99-brightness.sh files in each directory and added the 'sudo echo' lines to that, rather than the anacron scripts. Not that it really matters as far as whether it works or not, it's just cleaner code that way.

Drew Martell said...

I think the latest kernel update broke the brightness =(

It's stuck a 100%, the command doesn't work either. Worked fine until I updated yesterday!

Shane said...

Ubuntu used to do that a lot for me... kernel updates breaking stuff... I now use Mint and Mint doesn't update the kernel until the next release. I prefer it that way because rarely does something break... Besides most kernel updates are trivial in the big picture...