You are not logged in.

#1 2010-07-11 01:57:33

Skilldrick
Member
Registered: 2010-07-11
Posts: 4

Not all special keys on keyboard working

Hi everybody

I've been using arch for a few weeks now, and a few days on my new laptop (Samsung R530). I'm having a problem with some of the special keys.

Fn + Left and Fn + Right do volume, and that works fine. However, Fn + Up and Fn + Down should do screen brightness, and those don't do anything.,

I've tried the steps in the Ubuntu hotkeys troubleshooter, and neither xev nor acpi_listen register anything for the brightness keys. Anyone have any ideas for what to try next?

Offline

#2 2010-07-11 02:50:19

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,739

Re: Not all special keys on keyboard working

Does the key generate a scancode?

You might look at this thread: http://bbs.archlinux.org/viewtopic.php?id=84978


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#3 2010-07-11 02:59:01

anonymous_user
Member
Registered: 2009-08-28
Posts: 3,059

Re: Not all special keys on keyboard working

Try adding "acpi_backlight=vendor" to the kernel line in your menu.lst. This may make your keys work.

Offline

#4 2010-07-11 07:03:14

PirateJonno
Forum Fellow
From: New Zealand
Registered: 2009-04-13
Posts: 372

Re: Not all special keys on keyboard working

Here is another good source of information


"You can watch for your administrator to install the latest kernel with watch uname -r" - From the watch man page

Offline

#5 2010-07-11 16:49:35

Skilldrick
Member
Registered: 2010-07-11
Posts: 4

Re: Not all special keys on keyboard working

Hi everybody, thanks for the tips.

Extra Keyboard Keys was really useful. I used dmesg to get the scancodes, then found that the samsung-other keymap in /lib/udev/keymaps/ had all the scancode -> keycode mappings I needed.

Since then I've had more problems though. After I've got the scancodes mapped, if I do xev and press Fn + Up (brightness up), I get this going continuously until I press escape. Often it's enough to crash X or KDE (screen goes blank but I can get to virtual terminal):


KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080829, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080829, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080862, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080862, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080896, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080896, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080929, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080929, (164,-11), root:(1340,12),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080962, (164,-11), root:(1340,12),
    state 0x100, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080962, (164,-11), root:(1340,12),
    state 0x100, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080995, (164,-11), root:(1340,12),
    state 0x100, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1080995, (164,-11), root:(1340,12),
    state 0x100, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb1, subw 0x0, time 1081028, (164,-11), root:(1340,12),
    state 0x100, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Offline

#6 2010-07-11 16:51:30

Skilldrick
Member
Registered: 2010-07-11
Posts: 4

Re: Not all special keys on keyboard working

Also, doing showkey and pressing Fn + Up or Fn + Down seems to be getting presses without the corresponding releases:

keycode 225 press
keycode 225 press
keycode 224 press
keycode 224 press
keycode 224 press
keycode 225 press
keycode 225 press

Offline

#7 2010-07-25 16:43:10

3cHeLoN
Member
Registered: 2009-08-05
Posts: 4

Re: Not all special keys on keyboard working

I have found a solution for this. You need the force-release patch. I added a udev rule in /etc/udev/rules.d/95-keyboard-force-release.rules I used the 95 so it loads after the keycode is set, which I do in 10-locale.rules. The rule I added was:

+ENV{DMIVENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]productname}=="*R522*", RUN+="keyboard-force-release.sh $devpath samsung-other"

where R522 is my model, substitute your own. Now after a reboot, when you press the brightness keys it detects a press and immediately a release, which is good enough.

To control the brightness I had to make a perl script, because xbacklight didn't work for me. The script is only valid for gnome, let me know if you want it.

Offline

Board footer

Powered by FluxBB