Hi,
With the 2.6.35 released today, we finally have a slightly modified version of
the old Matt Callow's mailboard serio adapter driver included in the mainline
kernel.
A small fix for more stable LCD display blanking/unblanking has been
integrated as well.
Due to the changes requested by Dmitry Torokhov, the input subsystem
maintainer, who finally accepted the resulting serio code and integrated it
into his tree, we now need some extra userspace support to get the mailboard
working as expected. The preferred way is using a relatively new udev extras
utility called keymap. A proper keymap file still has to be created and
possibly submitted to the udev maintainer for inclusion.
Still using an older version of udev from the Ansgstrom distribution, I use a
different utility, called input-kbd, that is a part of input-utils. My udev
rule that automatically loads a required keys map for me looks like this:
ACTION=="add", KERNEL=="event[0-9]*", \
ATTRS{phys}=="GPIO/serio0/input[0-9]*", \
RUN+="/usr/bin/input-kbd -f /etc/mailboard-raw.map %n"
My /etc/mailboard-raw.map is appended below. The top row consists of Esc and
F1 - F10. Please modify the map to suit your taste.
This keys map is unidimensional, its purpose is to provide the driver with
correct physical keycaps layout. To get the keyboard producing correct
characters with shift, ctrl, alt, etc., loadkeys utility with a proper key
table must be used on top. I have not yet played with it.
It should be possible to use a standard AT or PS/2 keyboard connected to the
E3 instead of the mailboard (I have not tried, but I succesfully tested the
opposite, ie. the mailboard connected to a PC). For this, you have to build a
special adapter (you can use the gamepad cable if you don't play games on
your E3). Since a standard keyboard needs no keys map modifications, don't
put the above udev rule in your /etc/udev/rules.d/ if you decide to use it
instead of the mailboard. Unfortunately, it's not possible for the udev to
distinguish whether the mailboard or a standard keyboard is connected (they
respond exactly the same), so it's not possible to switch from one to another
without manually loading/unloading the mailboard specific keymap.
Happy typing.
Janusz
my /etc/mailboard-raw.map:
---
112 = KEY_ESC
122 = KEY_F1
70 = KEY_F2
124 = KEY_F3
119 = KEY_F4
114 = KEY_F5
105 = KEY_F6
26 = KEY_F7
42 = KEY_F8
28 = KEY_F9
21 = KEY_F10
113 = KEY_TAB
116 = KEY_1
115 = KEY_2
107 = KEY_3
34 = KEY_4
27 = KEY_5
29 = KEY_6
30 = KEY_7
121 = KEY_8
125 = KEY_9
117 = KEY_0
108 = KEY_BACKSPACE
33 = KEY_Q
35 = KEY_W
36 = KEY_E
38 = KEY_R
82 = KEY_T
93 = KEY_Y
13 = KEY_U
14 = KEY_I
50 = KEY_O
52 = KEY_P
44 = KEY_ENTER
49 = KEY_A
51 = KEY_S
53 = KEY_D
54 = KEY_F
41 = KEY_G
91 = KEY_H
3 = KEY_J
118 = KEY_K
58 = KEY_L
59 = KEY_APOSTROPHE
60 = KEY_LEFTSHIFT
61 = KEY_Z
78 = KEY_X
84 = KEY_C
11 = KEY_V
5 = KEY_B
65 = KEY_N
66 = KEY_M
67 = KEY_DOT
62 = KEY_UP
85 = KEY_RIGHTSHIFT
259 = KEY_LEFTCTRL
6 = KEY_LEFTALT
73 = KEY_RIGHTMETA
75 = KEY_SPACE
68 = KEY_COMMA
22 = KEY_LEFT
46 = KEY_DOWN
9 = KEY_RIGHT