Package: udev
Version: 164-3
Severity: minor

-- System Information:
Debian Release: 6.0
  APT prefers squeeze-updates
  APT policy: (500, 'squeeze-updates'), (500, 'proposed-updates'), (500, 
'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.37-ksamd64 (SMP w/8 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Keyboard configuration in /etc/default/keyboard:
...
XKBMODEL="pc105"
XKBLAYOUT="de"
XKBVARIANT="nodeadkeys"
XKBOPTIONS=""
...


I send this bug because information in /usr/share/doc/udev/README.keymap.txt 
give the advice for fixing broken keys by sending a bug report to 
https://bugs.launchpad.net/udev/+bugs

this leads to an error page on the bug system. So I give the information on 
this way and hope it will reach the maintainer.

Nethertheless, I have some broken keys on my laptop Acer Aspire 8930 sourced 
by the multimedia extension part of the keyboard called 'Cine Dash Multimedia' 
by Acer.

I take a look how udev handle keymap for hotkeys and found that in squeeze
by udev system an additional keymap is loaded by rule
/lib/udev/95-kemap.rules. Additional keymap loaded on this machine is by 
default debian system: /lib/udev/keymaps/acer.


Platform information:
$cat /sys/class/dmi/id/sys_vendor
Acer

$ cat /sys/class/dmi/id/product_name
Aspire 8930

end of Platform information

Broken keys (all on Cine Dash Multimedia Area, kernel scan code):
0xCA, 0x83, 0x89, 0x92, 0x9E


My solution: 
1) adding a keymap file /etc/udev/keymaps/acer-aspire-8930

## begin of file /etc/udev/keymaps/acer-aspire-8930
## additionals for Acer Aspire 8930
## if acer keymap (part of distribution debian squeeze) is load too,
## this are additional kernel scan code -> kernel key code mappings
0xCA prog3            # key 'HOLD' on cine dash media console
                              # normally need no system/programm function,
                              # because only disable touch events on
                              # cine dash keys 
0x83 rewind          # key 'FAST REWIND' on cine dash media console
0x89 fastforward  # key 'FAST FORWARD' on cine dash media console
0x92 media           # key 'ARCADE' on cine dash media console
0x9E back             # key 'BACK' on cine dash media console
## end of file /etc/udev/keymaps/acer-aspire-8930

2) adding a local rule /etc/udev/rules.d/96-keymap-local.rules taking same 
structure than found in /lib/udev/rules.d/95-keymap.rules:

## begin of file /etc/udev/rules.d/96-keymap-local.rules
...
LABEL="keyboard_vendorcheck"
ENV{DMI_VENDOR}=="Acer*", \
  ATTR{[dmi/id]product_name}=="Aspire 8930", \
  RUN+="/lib/udev/keymap $name /etc/udev/keymaps/acer-aspire-8930"
...
## end of file /etc/udev/rules.d/96-keymap-local.rules


forcing reload of udev rules and trigger change event for input give new keys: 
$ /etc/init.d/udev reload
$ udevadm trigger --subsystem-match=input --action=change


In X (with above keyboard configuration!) new keys can be found now
with X keysms:
XF86Launch3         # key 'HOLD' on cine dash media console
XF86AudioRewind  # key 'FAST REWIND' on cine dash media console
XF86AudioForward # key 'FAST FORWARD' on cine dash media consol 
XF86AudioMedia     # key 'ARCADE' on cine dash media console
XF86Back               # key 'BACK' on cine dash media console

With default behaviour of the system (loading keymap /lib/udev/keymaps/acer) 
and my modifications all keys work now as expcted.

Perhaps you can include this additionals in further updates or this may be 
helpfull for something else.

Some remarks: it would be helpfull if there can be found more information 
about adding custom rules to the distributions udev system without breaking 
updates by aptitude or similar. Google around don't help here, bringing up 
only very old informations about how to make a local manipulation of system 
behaviour.


Thanks
Jürgen Kaiser



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to