backlight brighness control does not work (Samsung Q45 with Nvidia GForce 8400M)

Bug #146710 reported by Tillmann Heidsieck
76
This bug affects 7 people
Affects Status Importance Assigned to Milestone
HAL
Invalid
Undecided
Unassigned
hal (Ubuntu)
Invalid
Undecided
Unassigned
Nominated for Jaunty by Vassily Gavrilyak

Bug Description

Backlight brightness control does not work on my Samsung Q45 with Nvidia GForce 8400M. The Fn+Pg_up/Pg_down hotkey stops working after the acpi stuff is loaded. (Ok they do something but thats only switching between the both lowest brightness settings)
echo VALUE > /proc/acpi/video/NVID/LCD/brightness
does not change the brightness of the display but saves the value to /proc/acpi/video/NVID/LCD/brightness.
Update to the new nvidia driver does not help. But after the update pressing the hotkeys does really nothing under X. While working without X the behavior is still the same.

nvidia binary driver 100.14.11 and 100.14.19 and the actual acpi stuff.

Revision history for this message
damike (milehr) wrote :

Same problem for me - worked with 7.04

Revision history for this message
vak (khamenya) wrote :

My Samsung P35 laptop worked good with Ubuntu Feisty 7.04.

Now I've upgraded my working Ubuntu to the recently published Ubuntu 7.10. In a few seconds after log in my laptop stops to react to Fn+LightUp Fn-LightDown key combinations. Even worse: the screen starts to flicker badly several minutes. I see instantly the backlight adjustment mini-window.

cat /proc/acpi/video/VGA/LCD/brightness
<not supported>

Laptop became almost unusable, flickering makes me crazy.

Revision history for this message
Tillmann Heidsieck (theidsieck) wrote :

Forgot to mention the flickering of the display like in the post before.

Very funny thing:

If I got to the console (STRG+ALT+F1) I can use

echo -n VALUE > /proc/acpi/video/NVID/LCD/brightness

to change the display backlight brightness (this change only affects X if I did /etc/init.d/gdm stop before this)

Revision history for this message
lathiot (lathiot) wrote :

Same problems here... if I boot with acpi on,
I can change brightness only using the nvidia-settings. Other hotkeys
work fine (Fn sound up/down for example, or switch on off wireless).

I have the flickering with all gl applications so maybe its related to the
nvidia driver.

Revision history for this message
Eric BREHAULT (ebrehault) wrote :

same for me

Changed in hal:
status: New → Confirmed
Revision history for this message
Christophe Sauthier (christophe.sauthier) wrote :

I think it is not related to the nvidia driver since disabling it does not solve the problem.

Revision history for this message
JoshuaKersey (goodtimetribe) wrote :

I'm experiencing this problem on my Dell Inspiron 1520 with Intel and nVidia 8400 too. I've used Envy to update to the latest driver from nVidia and the problem still exists. I ran for a long time without restricted driver and the problem existed then too.

Revision history for this message
JoshuaKersey (goodtimetribe) wrote :

Can we get someone to assign an importance on this?

Revision history for this message
Jannes (iwashere) wrote :

Same problems here with a SAMSUNG R700-Aura.
FN-KEys to change the brightness doesn't work, also the backlight toggle (on/off) does not work. neither in x, nor in a console screen.
see attachement: lspci -vv

(same in gutsy/ 7.10, also with latest official nvidia drivers.)

Revision history for this message
Yvan Fournier (yvan-fournier) wrote :

Same problem on a Samsung Q45 with nVidia 8400, Ubuntu 8.04 LTS.

The hotkeys do not seem to generate ACPI events, but regular keycodes.
I tried setting keycodes (after sourcing . /usr/share/hotkey-setup/key-constants) in
/etc/rc.local):

setkeycodes e002 $KEY_VIDEOOUT # Fn-F4 External VGA toggle
setkeycodes e004 $KEY_LIGHT # Fn-F5 Backlight toggle
setkeycodes e008 $KEY_BRIGHTNESSUP # Fn--> LCD Brightness up
setkeycodes e009 $KEY_BRIGHTNESSDOWN # Fn--> LCD Brightness down

When I run "lshal -m", I see that the keycodes are correctly mapped, but the hotkeys still do nothing.

Also, switching from battery to power does not seem to change my screen brightness, and the Gnome brightness applet does not work either.

I have the same problems whether using the nVidia or Xorg driver, so I would suspect problems with the ACPI configuration:

"cat /proc/acpi/video/NVID/LCD/brightness" outputs
levels: 10 30 40 50 60 70 80 100
current: 0

"cat /proc/acpi/video/NVID/LCD/state" outputs
state: 0x1f
query: 0x00

"sudo echo 10 > /proc/acpi/video/NVID/LCD/brightness" gives me a "permission denied" error, even though the proc file seems writable for root, and adding "xhost +" (just in case) does not seem to change a thing.

I did not find any Samsung-ACPI module, so I wonder if the generic ACPI handling works for this machine.

Revision history for this message
janhoff (hoff-jan) wrote :

Experiencing the same behaviour on a Samsung r70 despina with a Geforce 8600m GS .
Using Ubuntu 8.04 LTS 32bit with the latest closed source Nvidia drivers. The bug persists with the latest beta drivers from nvidia 173.08.

The /var/log/acpid file print some information on the keypress fn+up (fn+down):

[Sat May 17 15:59:19 2008] received event "video LCD 00000086 00000000"
[Sat May 17 15:59:19 2008] notifying client 5856[110:122]
[Sat May 17 15:59:19 2008] notifying client 2345[0:0]
[Sat May 17 15:59:19 2008] notifying client 2345[0:0]
[Sat May 17 15:59:19 2008] executing action "/etc/acpi/video_brightnessup.sh"
[Sat May 17 15:59:19 2008] BEGIN HANDLER MESSAGES
[Sat May 17 15:59:19 2008] END HANDLER MESSAGES
[Sat May 17 15:59:19 2008] action exited with status 0
[Sat May 17 15:59:19 2008] completed event "video LCD 00000086 00000000"

the screen stays at maximum brightness though.
This bug only occurs with the "nvidia" drivers. Using not accelerated "nv" drivers the function keys work as they are supposed to do.
The fn+f5 screen-off works without problems, so do all other keys, so it seems this is a driver related problem.
If the x-server is not active, either killed or changed to a vt, brightness works without problems. The mentioned commandsin the comments before to echo in the acpi brightness works only if the terminal is not started out of X.

Revision history for this message
Marek Kubica (leonidas) wrote :

I've been experiencing this problem on my R60 Aura T5250 Deeloy ever since I updated from BIOS 01YI (WLAN, Backlight and Brightness not working anymore).

These keys work when one is in the BIOS setup and only get disabled when the system is booting in ACPI mode. On Windows, Samsung has a tool called Easy Display Manager (on the Samsung CD and also available online) which takes over the control of these settings. So this stuff does not work on Windows either, because Samsung has disabled that recently and supplies this tool only for Windows (speaking with the tech support does help to understand the problem).

So, in case these keys work for you in the BIOS and work with this Easy Display Manager, you have the exact same problem as I have. In case anyone has the original 01YI BIOS - please contact me, maybe there is a way to downgrade.

Revision history for this message
coulix (coulix) wrote :

Same problem Q45 nvidia 8400

Revision history for this message
LA (radiobuzzer) wrote :

Same problem Q45 with the Intel Graphics card. That's definitely not a graphics card/driver problem. Downgrading has been reported to work.

Revision history for this message
Johannes Ott (bugzilla-informatiker2k3) wrote :

I have same problem here with my Samsung R70 Aura

I have tested following things

1. In a xterm:
root@DarkAngel:/proc/acpi/video/NVID/LCD # cat brightness
levels: 10 30 40 50 60 70 80 100
current: 100

2. After this 2 times „FN+Arrow down“ -> no visible changes to lcd-brightness
Again in xterm:
root@DarkAngel:/proc/acpi/video/NVID/LCD # cat brightness
levels: 10 30 40 50 60 70 80 100
current: 70

3. Changed to console

4.1.1 Press "FN+arrow down" again -> LCD becomes very dark about 60% of before.
4.1.2 Control the brightness in console
root@DarkAngel:/proc/acpi/video/NVID/LCD # cat brightness
levels: 10 30 40 50 60 70 80 100
current: 60
4.1.3 Change back to X-Server brigthness although changed to 60%

Repeat steps 1-3:

4.2.1 Press "FN+arrow up" -> LCD becomes a bit darker about 80% of before.
4.2.2 Control the brightness in console
root@DarkAngel:/proc/acpi/video/NVID/LCD # cat brightness
levels: 10 30 40 50 60 70 80 100
current: 80
4.2.3 Change back to X-Server brigthness although changed to 80%

As a conclusion it seems that the FN-keys doing everything right but x-server or card-driver ("nvidia") are not reacting correctly to the values inside /proc/acpi/video/NVID/LCD/brightness

Revision history for this message
bananae supremacy (landro) wrote :

Same here on my Samsung R560 Aura Studentbook (NVIDIA GeForce 9600M GT) on Ubuntu 8.10 Beta.
Neither writing to /proc/acpi/video/NVID/LCD (which is the correct file on my machine) nor using the brightness function keys works.
Not even under outside of X.

Could anyone please investigate in this?
This seems to be not taken care of for quite some time now.

Revision history for this message
bananae supremacy (landro) wrote :

PS: Writing to /proc/acpi/video/NVID/LCD outside of X works, but the brightness keys do not work here as well.

Seems like the NVIDIA driver is blocking the brightness update via acpi somehow.
I am using driver version 177.80.

Revision history for this message
SonniesEdge (sonniesedge) wrote :

Can't add anything more useful than reporting similar errors on a Samsung Q210 with 8.10.

On this keyboard brightness up/down is access via <fn+arrow up> and <fn+arrow down>

dmesg reports the following when the brightness keys are pressed:

[ 6844.496982] atkbd.c: Unknown key pressed (translated set 2, code 0x88 on isa0060/serio0).
[ 6844.497001] atkbd.c: Use 'setkeycodes e008 <keycode>' to make it known.

[ 6851.537740] atkbd.c: Unknown key pressed (translated set 2, code 0x89 on isa0060/serio0).
[ 6851.537753] atkbd.c: Use 'setkeycodes e009 <keycode>' to make it known.

Revision history for this message
Marek Kubica (leonidas) wrote :

For me (on a R60+, as mentioned above) it is:

[ 114.681006] atkbd.c: Unknown key pressed (translated set 2, code 0x88 on isa0060/serio0).
[ 114.681006] atkbd.c: Use 'setkeycodes e008 <keycode>' to make it known.
[ 115.279328] atkbd.c: Unknown key pressed (translated set 2, code 0x89 on isa0060/serio0).
[ 115.279328] atkbd.c: Use 'setkeycodes e009 <keycode>' to make it known.

So Samsung seems to disable these keys also in other models. Do you have the "disable backlight button" (Fn+F4)? Does it work? For me it doesn't:

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

Or can you disable WLAN (Fn+F9) (there's also a led on the front of the laptop). For me, it's broken, too:

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

The brightness keys can be easily fixed, it only requires mapping these keys to a program which modifies the brightness (via writing to /proc/acpi/video/ATIM/LCD/brightness or whatver your display is), but the other features are not modifiable via /proc as far as I know.

Revision history for this message
SonniesEdge (sonniesedge) wrote :

Disable backlight (fn+F6 on mine) generates the same message for me in dmesg:

[11171.929802] atkbd.c: Unknown key pressed (translated set 2, code 0x84 on isa0060/serio0).
[11171.929815] atkbd.c: Use 'setkeycodes e004 <keycode>' to make it known.

Wlan button is also broken:

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

I've tried writing the values directly to /proc/acpi/video/NVID/LCD/brightness, but I get a permission error.

sudo echo -n 50 > /proc/acpi/video/NVID/LCD/brightness

HOWEVER, if change to root (and don't just sudo write the values) via "sudo su" then I can write in values that take. Sadly the changes are not reflected in the actual brightness of the screen...

BTW, graphics card on the Q210 is a Nvidia GeForce 9200M GS, and I'm using the nvidia drivers.

Revision history for this message
bananae supremacy (landro) wrote :

The backlight keys (fn+up/dwn), the wlan switch (fn+f9) and the brightness function keys (fn+f5/f6) as well generate "unknown key" events and have not the intended effect.

Writing to /proc/acpi/video/NVID/LCD/brightness under X has no effect (see SonniesEdge).
However, this works outside of X (e.g. ctrl+alt+f1 terminal).
This is obviously a bug in the NVIDIA driver, as with the default unaccelerated driver, this problem does not occur.
The NVIDIA driver somehow blocks changes to the proc location from having any effect.

Revision history for this message
SonniesEdge (sonniesedge) wrote :

Just tried Landro's suggestion and I can confrim their experience. Writing to /proc/acpi/video/NVID/LCD/brightness does not work under X, but DOES work outside it, via a terminal.

Now how do we get it fixed...? ;-)

Revision history for this message
bananae supremacy (landro) wrote :

It seems that as of now, the only option is to deactivate the nvidia driver (temporarily via switching to console mode).
This bug is known to NVIDIA for one year now at the very least, as can be seen in

http://www.nvnews.net/vbulletin/showthread.php?t=100494

Yesterday there was a post of someone who succeded in changing the brightness under X via a hardware hack:
http://www.nvnews.net/vbulletin/showpost.php?p=1815030&postcount=133

Revision history for this message
SonniesEdge (sonniesedge) wrote :

Bugger, looks like we're completely dependent on NVIDIA releasing a binary driver. :-(

Ho hum. In the meantime there are a few useful scripts on the thread mentioned above that can be used to change the screen brightness (by exiting to a terminal, inserting values in proc and then returning to X). As a result I've got a couple in my home dir called (imaginatively) low.sh and high.sh. They contain something like the following:

#!/bin/bash
chvt 1
echo -n 10 > /proc/acpi/video/NVID/LCD/brightness
chvt 7

Now to wait for NVIDIA to get a move on.

Revision history for this message
damike (milehr) wrote :

I've just send an email to the nvidia linux support and attached a link to this page.

Revision history for this message
ldm (lucky-dm-77) wrote :

I can confirm LA experience: identical problem on a Q45 with the X3100 integrated card.
 It's not a nvidia drivers problem!

Revision history for this message
Wei Li (lwcn) wrote :

I have the exactly same bug within my R560 with the GeForce 9600M GT Graphics Card. What's more the Fn+uparrow hotkey doesn't make any difference when pressed down, how to get the Fn hotkeys to work?

Revision history for this message
ingie (ing-ushtey) wrote :

Same issue with Samsung R700 c/w Nvidia 8400M

backlight okay with "nv" driver, but that's not as fun with compiz...

have used SonniesEdge's script [ see above at : https://bugs.launchpad.net/ubuntu/+bug/146710/comments/24 ]

which works sufficiently well for me to a) praise SonniesEdge b) live with it until the driver is fixed

the acpi seems to timeout on shutdown after running that script, but i haven't determined whether that's just a co-incidence and that i haven't otherwise broken something

Revision history for this message
Anton Mellit (mellit) wrote :

Same issue with Samsung q45 with Nvidia GForce 8400M. (nvidia proprietary driver)
I found that the cvs (!) version of nvclock (http://www.linuxhardware.org/nvclock/) supports brightness change.
I just followed instructions there to get the cvs version, compiled it, copied nvclock to /usr/bin and now 'nvclock -S 15' .. 'nvclock -S 100' work perfectly.
Then I made a workaround which makes hal to change brightness through nvclock. For this I modified '/usr/lib/scripts/linux/hal-system-lcd-set-brightness-linux' and '/usr/lib/scripts/linux/hal-system-lcd-get-brightness-linux'. I don't know the *correct* way to do this.
Now I can change brightness using gnome's Power Manager Brightness Applet. However when I press Fn-Up/Fn-Down it works like the corresponding key code gets emitted repeatedly, so the keyboard freezes until I press Alt-Ctrl-F1 and Alt-Ctrl-F7. It looks similar to what is discussed here: https://bugs.launchpad.net/bugs/212800 and I am going to try to downgrade bios - may be it fixes the problem.

Revision history for this message
Anton Mellit (mellit) wrote :
Revision history for this message
Cyril Buquet (cyril11) wrote :

Hello,

I think that this other bug is important for Samsung laptop users :
https://bugs.launchpad.net/bugs/295251

Samsung NC10 (and R60P, R70)
It discuss about kernel patch for Key Press / Key Release
It discuss about HAL quik for key mapping

Revision history for this message
JoelGrrr (joel-su3analytics) wrote :

 SonniesEdge solution worked absolutely fine for me.... finally I can see what I'm doing!

(Samsung Q210)

Revision history for this message
Jannes (iwashere) wrote :

Hi peeps,

I've got an update. I'm able to change the brightness now inside X (running gnome).
Running Ubuntu Jaunty and having the latest official nvidia drivers installed, you can set the brightness with the utility `nvclock` (got v0.8-Beta4).
All you have do do is

  nvclock -S <VALUE>

Where <VALUE> is between 15 and 100 or a delta like +10 or -10

Greetings!

PS: Anyone knows an applet program (for GNOME) where you can set a custom command to change the brightness. or even a brigthness applet that has support for nvclock adjustments?

Revision history for this message
adj198631 (adam-james6) wrote :

Jannes- if you no your model and make go onto samsung website and go onto download centre and look for Easy Display Manager that's what i have done as i had the same problem, and it has worked for me, i am now able to adjust my brightness etc.

Revision history for this message
LA (radiobuzzer) wrote :

adj198631: I don't understand. First of all this program is not available for the model NP- Q45 . Then what I see for other models is not available for linux, just for windows. How did you make it work for linux?

Revision history for this message
Jannes (iwashere) wrote : Re: [Bug 146710] Re: backlight brighness control does not work (Samsung Q45 with Nvidia GForce 8400M)

Hi.
right, that program Easy Display manager is just the original Samsung
Software for Windows. It has nothing to do with this bug nor with this
report.
But thanks for your effort, trying to help, Adam James

bye

On Sat, Feb 6, 2010 at 10:26 PM, LA <email address hidden> wrote:

> adj198631: I don't understand. First of all this program is not
> available for the model NP- Q45 . Then what I see for other models is
> not available for linux, just for windows. How did you make it work for
> linux?
>
> --
> backlight brighness control does not work (Samsung Q45 with Nvidia GForce
> 8400M)
> https://bugs.launchpad.net/bugs/146710
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in “hal” package in Ubuntu: Confirmed
>
> Bug description:
> Backlight brightness control does not work on my Samsung Q45 with Nvidia
> GForce 8400M. The Fn+Pg_up/Pg_down hotkey stops working after the acpi stuff
> is loaded. (Ok they do something but thats only switching between the both
> lowest brightness settings)
> echo VALUE > /proc/acpi/video/NVID/LCD/brightness
> does not change the brightness of the display but saves the value to
> /proc/acpi/video/NVID/LCD/brightness.
> Update to the new nvidia driver does not help. But after the update
> pressing the hotkeys does really nothing under X. While working without X
> the behavior is still the same.
>
> nvidia binary driver 100.14.11 and 100.14.19 and the actual acpi stuff.
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/ubuntu/+source/hal/+bug/146710/+subscribe
>

Revision history for this message
dino99 (9d9) wrote :
Changed in hal (Ubuntu):
status: Confirmed → Invalid
Changed in hal:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.