# Lcd brightness control [SOLVED]

## Confused fishcake

Hi, I just installed gentoo on a new laptop, and am having trouble getting the backlight controls to work. The laptop is an inspiron 1501, and I installed the amd64 version of gentoo. (I wasn't sure where to post this, but I think my problem is not related to architecture. I have set up most of the extra keys on the laptop, but the two backlight controls are being awkward. When pressed, dmesg shows:

video device notify

set_level status: 0

atkbd.c: Unknown key pressed (translated set 2, code 0x86 on isa0060/serio0).

atkbd.c: Use 'setkeycodes e006 <keycode>' to make it known.

for backlight-up, and:

video device notify

atkbd.c: Unknown key pressed (translated set 2, code 0x85 on isa0060/serio0).

atkbd.c: Use 'setkeycodes e005 <keycode>' to make it known.

for backlight-down.

I know I can control the backlight through /proc/acpi/video/VGA/LCD/brightness, and have set up a script to switch between brightnesses (I won't repeat it here, its quite long, and only echoes values to /proc/..../brightness) 

At the moment, the keys do nothing apart from the entry in dmesg. When I did what dmesg said and "setkeycodes e006 134" and "setkeycodes e005 133", I get the same output from dmesg except the omission of the atkbd.c entries.

This is all what I would expect, but here is the problem: xev does not recognize the keys being pressed. showkey will, but the numbers I got from showkey don't work in .Xmodmap. Before, showkey and xev have returned quite different numbers, so that gets me nowhere. I just need a way to be able to use the keys. There are no bios settings to change. Hope someone can help me.Last edited by Confused fishcake on Tue Jun 10, 2008 8:39 pm; edited 1 time in total

----------

## Confused fishcake

I just realised that the controls work in GRUB, but not when gentoo has booted. I don't know if this helps though.

----------

## Confused fishcake

My problem is sorted. Almost. It works if I disable acpi in the kernel completely, now to test how much acpi it can tolerate   :Very Happy: 

----------

## koolfy

Same problem here (Inspiron 1501 too).... And LCD fn-keys fully working when ACPI totally disabled from the kernel...

The only problem is that I need acpi (batteries, etc), so I can't just disable it completely..

how can I get acpi DO NOT TOUCH to LCD backlinght control and go normally with other functions ?

----------

## LonelyStar

Hi,

I am interested in the same thing, is there a way?

----------

## paranoidx

on lg w1 pro express dual, same prob

```
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)

00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03)

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)

00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)

00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)

00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)

00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)

00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)

00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)

00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)

00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)

01:00.0 VGA compatible controller: ATI Technologies Inc M56P [Radeon Mobility X1600]

02:00.0 Ethernet controller: Agere Systems ET-131x PCI-E Ethernet Controller (rev 02)

05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

06:00.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller

06:00.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller

06:00.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)

06:00.3 SD Host controller: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller
```

heres howto for gentoo-sources-2.6.24-r4:

i built both acpi/apm into kernel

then vim .config locate and modify according:

```
CONFIG_ACPI_BLACKLIST_YEAR=1

CONFIG_VIDEO_OUTPUT_CONTROL=m

```

then compile the new kernel and it all works now with acpi.

don't forget to re-emerge et131x/ipw3945 etc..

when i compile with disabled acpi, it was a disaster. the power button, specifically the power(short press) does not work which i use for system shutdown and when it goes into shutdown, after all the init 0 commands executed, it reports system halted so i had to manually press power to shutdown(unacceptable). but the brightness function works(fn-arrow up/down). didn't spend much time to see what else didnt work after that.

hope this helps.

----------

## koolfy

@paranoidx : I tried it, recompiled the modified kernel, and saw no effective change... at all !

ACPI working, but fn-controls for brightness and even gnome applet for it don't work...

----------

## GNUtoo

why not trying keytouch and keytouch-editor that are in portage

----------

## paranoidx

@koolfy, sorry havent been visiting lately.

can you be a bit more specific to what model laptop/kernel/lspci report pls as the debug was for a lg w1 pro express dual.

did you copy the newly compiled kernel back into your /boot? and config your grub/lilo accordingly?

 *koolfy wrote:*   

> ACPI working, but fn-controls for brightness and even gnome applet for it don't work...

 fn-controls should work even without any os installed, as you can boot into bios setup and try fn-control and it should change the brightness. but it seems that the linux kernel specifically the ACPI module has somehow disabled the function or caused a conflict somewhere rendering the fn-controls to not function once nix has started.

there are other alternatives using software brightness, but it looks really ugly as it only adjust the gamma of X windows rendering/console framebuffer.

having said that, there are functions key in say the w1 pro express dual which are customisable one(fn-f1,fn-f2,fn-f3) which requires drivers to access them from windows perspective, as i dont need them i didnt bother to look into.

----------

## koolfy

@ paranoid : Inspiron 1501 (dell) 

  same problem with kernels 2.6.23*, 2.6.24*, 2.6.25*

currently :

```
dotk ~ # uname -r

2.6.25-tuxonice-r4
```

lspci : 

```
dotk ~ # lspci

00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 10)

00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge

00:05.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge

00:06.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge

00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA

00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)

00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)

00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)

00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)

00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)

00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)

00:14.0 SMBus: ATI Technologies Inc SB600 SMBus (rev 14)

00:14.1 IDE interface: ATI Technologies Inc SB600 IDE

00:14.2 Audio device: ATI Technologies Inc SB600 Azalia

00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge

00:14.4 PCI bridge: ATI Technologies Inc SB600 PCI to PCI Bridge

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:05.0 VGA compatible controller: ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP]

05:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01)

08:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)

08:01.0 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)

08:01.1 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
```

You got it, it's acpi that blocks that normally-kernel-managed-function, disabling it in kernel configuration solved the problem, but is NOT a solution itself.

I'm looking for a way to disable brightness control in acpi, so it lets the way free to the bios to control it...

----------

## paranoidx

im using gentoo-source 2.6.24-r4.

within /usr/src/linux/.config:

```
CONFIG_DELL_RBU=y
```

compile and cp new kernel to /boot, then reboot to new kernel and:

Method 1(control freak method):

```
find /proc/acpi/video -iname brightness
```

then within the list e.g. say:

/proc/acpi/video/VGA/LCD/brightness

as it differs from laptop to laptop depending on hardware but definitely one of them.

make sure your kernel has acpi enabled and as root try this (replace the ../VGA/LCD/brightness with your results):

```
echo 25 > /proc/acpi/video/VGA/LCD/brightness
```

then 

```
echo 100 > /proc/acpi/video/VGA/LCD/brightness
```

if that doesnt work try with ranges between 1-9 (like LG).

```
echo 1 > /proc/acpi/video/VGA/LCD/brightness
```

if this changes the brightness then the problem is easily solved.

 *GNUtoo wrote:*   

> why not trying keytouch and keytouch-editor that are in portage

 as keytouch can map/recognise the extra/function keys to a script/command. from memory, i think there was a couple of dell laptop somewhere in there during the time when i was solving my laptop but there wasnt a single LG thats why i posted my soln. although you can manually map the fn keys, it can be painstaking.

once you get the fn keys to be recognise in nix, then you can easily write a bash script to increment/decrement the brightness if not provided by keytouch.

since keytouch can assign scripts you can make it to speak(e.g. espeak, for the visually impaired) do osd etc whenever you inc/dec brightness, thats why this is the control freak method.

Method 2(lazy method):

you can also try in your /usr/src/linux/.config:

```
CONFIG_VIDEO_OUTPUT_CONTROL is not set
```

so force kernel to not touch the video output control, handling it back to the bios to control it.

post back if you have further problems or writing the script.

----------

## pdw_hu

 *Confused fishcake wrote:*   

> atkbd.c: Unknown key pressed (translated set 2, code 0x86 on isa0060/serio0).
> 
> atkbd.c: Use 'setkeycodes e006 <keycode>' to make it known.
> 
> ...

 

Why don't you do what it suggests? setkeycodes does work you know :)

After you gave it a keycode you can see what X keycode it generates with xev and then bind it to the brightness changing commands.

----------

## koolfy

@ paranoidx :

I recompiled my kernel with those options, first de DELL_RBU was already in module, I compiled it as "Y" and not "m" anymore, but I changed nothing.

After that I recompiled it adding the CONFIG_VIDEO_OUTPUT_CONTROL is not set, but no change.

So the behavior is exactly the same, gnome recognizes the brightness toggles but the softwares that are in charge of the brightness control just cannot change it.

I have noting in /proc/acpi related to the LCD, or video control, I never had, including before and after the "CONFIG_VIDEO_OUTPUT_CONTROL is not set", before and after the DELL_RBU in module and integrated to the kernel.

thanks for the advices but I had already tried this... I tried it again just in case, but nothing changed.

------------SOLVED-----------------------------/!\------------------------------

EDIT : Solved with 2.6.25 kernel : I activated everything that has something to do with LCD control 

```
Device Drivers  ---> 

     Graphics support  ---> 

           <*> Lowlevel video output switch controls

           -*- Backlight & LCD device support  --->

                      <*>   Lowlevel LCD controls 

                       -*-   Lowlevel Backlight controls

                        (I activated two other specific drivers here but it looks useless)

              Display device support  --->  

                        <*> Display panel/monitor support
```

and in ACPI, a new option appeared like magic :

```
Power management options  --->

      [*] ACPI (Advanced Configuration and Power Interface) Support  --->

              <*>   Video [NEW]
```

compiled, rebooted on it, and now I have the brightness controll fully recognized and managed from the boot to gnome.

And of course, it's managed by ACPI itself, so no dirty hack, it just works the way it has to work.

----------

