Hello again.
I just reverted my atkbd.c code to your version (Linus's tree) and
unfortunately have 4 keys 'missing' from my HP Omnibook XE3GC extra "internet
keys".
Question 1: Can I fix the table from userland, using some utility? That is,
can I upload an updated table into the kernel, so that I don't have to
reboot?
Q 2: Do you have any HowTo/QA for that?
Q 3: Will that work under X? (which AFAIK reads the 'raw' codes)
Q 4: It has been rather difficult for me to compute the scancodes needed for
the table. Could you put the "formula" onto the HowTo?
Thanks.
FYI, the codes are:
"www": Unknown key pressed (translated set 2, code 0xf3 on isa0060/serio0).
"Mail": Unknown key pressed (translated set 2, code 0xf4 on isa0060/serio0).
"Launch": Unknown key pressed (translated set 2, code 0xf2 on isa0060/serio0).
"Help": Unknown key pressed (translated set 2, code 0xf1 on isa0060/serio0).
On Fri, Jan 23, 2004 at 10:04:27PM +0200, P. Christeas wrote:
> Hello again.
> I just reverted my atkbd.c code to your version (Linus's tree) and
> unfortunately have 4 keys 'missing' from my HP Omnibook XE3GC extra "internet
> keys".
> Question 1: Can I fix the table from userland, using some utility? That is,
> can I upload an updated table into the kernel, so that I don't have to
> reboot?
'setkeycodes' can do that.
> Q 2: Do you have any HowTo/QA for that?
Not yet, but I'll have to write one.
> Q 3: Will that work under X? (which AFAIK reads the 'raw' codes)
X needs to be set up as well. In 2.6, X doesn't get real raw codes but
instead simulated raw codes generated by the kernel.
> Q 4: It has been rather difficult for me to compute the scancodes needed for
> the table. Could you put the "formula" onto the HowTo?
> FYI, the codes are:
> "www": Unknown key pressed (translated set 2, code 0xf3 on isa0060/serio0).
> "Mail": Unknown key pressed (translated set 2, code 0xf4 on isa0060/serio0).
> "Launch": Unknown key pressed (translated set 2, code 0xf2 on isa0060/serio0).
> "Help": Unknown key pressed (translated set 2, code 0xf1 on isa0060/serio0).
The formula for setkeycodes is:
if (code > 0x100)
you're out of luck, setkeycodes doesn't handle this yet;
else if (code > 0x80)
result = code - 0x80 + 0xe000;
else
result = code;
And then you use 'setkeycodes result keycode',
where keycode you find in include/linux/input.h.
--
Vojtech Pavlik
SuSE Labs, SuSE CR
After spending my evening on it :-( I managed to find the correct keys for
the Omnibook XE3:
(I could only reverse-engineer the previous hack I 've had for it)
Download and hack the 'console-tools' package (from sourceforge, project
"lct") so that 'setkeycodes' does accept keycodes >127.
Vojtech, is 512 the upper bound for <keycode> at setkeycodes?
Using 2.6.2-rc1, issue:
setkeycodes e071 236
setkeycodes e072 237
setkeycodes e073 238
setkeycodes e074 239
so that the upper (near the screen) row of "internet" buttons is assigned to
the keys X expect to receive.
e071 etc. can be found using 'showkey -s'
I still don't get where 236 came from (so that I could help other kbds, as
well).
> On Fri, Jan 23, 2004 at 10:04:27PM +0200, P. Christeas wrote:
> > Hello again.
> > I just reverted my atkbd.c code to your version (Linus's tree) and
> > unfortunately have 4 keys 'missing' from my HP Omnibook XE3GC extra
> > "internet keys".
> > Question 1: Can I fix the table from userland, using some utility? That
> > is, can I upload an updated table into the kernel, so that I don't have
> > to reboot?
>
> 'setkeycodes' can do that.
>
> > Q 2: Do you have any HowTo/QA for that?
>
> Not yet, but I'll have to write one.
>
> > Q 3: Will that work under X? (which AFAIK reads the 'raw' codes)
>
> X needs to be set up as well. In 2.6, X doesn't get real raw codes but
> instead simulated raw codes generated by the kernel.
>
> > Q 4: It has been rather difficult for me to compute the scancodes needed
> > for the table. Could you put the "formula" onto the HowTo?
> >
> > FYI, the codes are:
> > "www": Unknown key pressed (translated set 2, code 0xf3 on
> > isa0060/serio0). "Mail": Unknown key pressed (translated set 2, code
> > 0xf4 on isa0060/serio0). "Launch": Unknown key pressed (translated set 2,
> > code 0xf2 on isa0060/serio0). "Help": Unknown key pressed (translated
> > set 2, code 0xf1 on isa0060/serio0).
>
> The formula for setkeycodes is:
>
> if (code > 0x100)
> you're out of luck, setkeycodes doesn't handle this yet;
> else if (code > 0x80)
> result = code - 0x80 + 0xe000;
> else
> result = code;
>
> And then you use 'setkeycodes result keycode',
>
> where keycode you find in include/linux/input.h.
On Sat, Jan 24, 2004 at 04:28:30AM +0200, P. Christeas wrote:
> After spending my evening on it :-( I managed to find the correct keys for
> the Omnibook XE3:
> (I could only reverse-engineer the previous hack I 've had for it)
> Download and hack the 'console-tools' package (from sourceforge, project
> "lct") so that 'setkeycodes' does accept keycodes >127.
>
> Vojtech, is 512 the upper bound for <keycode> at setkeycodes?
>
> Using 2.6.2-rc1, issue:
> setkeycodes e071 236
> setkeycodes e072 237
> setkeycodes e073 238
> setkeycodes e074 239
>
> so that the upper (near the screen) row of "internet" buttons is assigned to
> the keys X expect to receive.
> e071 etc. can be found using 'showkey -s'
> I still don't get where 236 came from (so that I could help other kbds, as
> well).
The almost right solution here would be to write an xkb keyboard
description that matches the 2.6 keycode->scancode mappings, so that
once you get the 'setkeycodes' command right, both the kernel and X will
understand the keys correctly.
With your approach you got the keys correct solely in X, not the kernel.
I'll take a look at this.
The completely right approach would be to teach X to either use the
event interface or at least the medium raw mode.
> > On Fri, Jan 23, 2004 at 10:04:27PM +0200, P. Christeas wrote:
> > > Hello again.
> > > I just reverted my atkbd.c code to your version (Linus's tree) and
> > > unfortunately have 4 keys 'missing' from my HP Omnibook XE3GC extra
> > > "internet keys".
> > > Question 1: Can I fix the table from userland, using some utility? That
> > > is, can I upload an updated table into the kernel, so that I don't have
> > > to reboot?
> >
> > 'setkeycodes' can do that.
> >
> > > Q 2: Do you have any HowTo/QA for that?
> >
> > Not yet, but I'll have to write one.
> >
> > > Q 3: Will that work under X? (which AFAIK reads the 'raw' codes)
> >
> > X needs to be set up as well. In 2.6, X doesn't get real raw codes but
> > instead simulated raw codes generated by the kernel.
> >
> > > Q 4: It has been rather difficult for me to compute the scancodes needed
> > > for the table. Could you put the "formula" onto the HowTo?
> > >
> > > FYI, the codes are:
> > > "www": Unknown key pressed (translated set 2, code 0xf3 on
> > > isa0060/serio0). "Mail": Unknown key pressed (translated set 2, code
> > > 0xf4 on isa0060/serio0). "Launch": Unknown key pressed (translated set 2,
> > > code 0xf2 on isa0060/serio0). "Help": Unknown key pressed (translated
> > > set 2, code 0xf1 on isa0060/serio0).
> >
> > The formula for setkeycodes is:
> >
> > if (code > 0x100)
> > you're out of luck, setkeycodes doesn't handle this yet;
> > else if (code > 0x80)
> > result = code - 0x80 + 0xe000;
> > else
> > result = code;
> >
> > And then you use 'setkeycodes result keycode',
> >
> > where keycode you find in include/linux/input.h.
--
Vojtech Pavlik
SuSE Labs, SuSE CR
On Sat, Jan 24, 2004 at 04:28:30AM +0200, P. Christeas wrote:
> Download and hack the 'console-tools' package (from sourceforge, project
> "lct") so that 'setkeycodes' does accept keycodes >127.
It sounds as if you think that the kbd setkeycodes does not handle keycodes
above 127, but it does. No hacking required.
There is an Omnibook module on Sourceforge that contains all the key
information for a variety of models. Furthermore, utilities such as
hotkeys will let you use the keys from within X with very little
configuration. No hacking required there either.
Regards,
Nigel
On Sun, 2004-01-25 at 07:37, Andries Brouwer wrote:
> On Sat, Jan 24, 2004 at 04:28:30AM +0200, P. Christeas wrote:
>
> > Download and hack the 'console-tools' package (from sourceforge, project
> > "lct") so that 'setkeycodes' does accept keycodes >127.
>
> It sounds as if you think that the kbd setkeycodes does not handle keycodes
> above 127, but it does. No hacking required.
>
> _______________________________________________
> OmniBook mailing list
> [email protected]
> http://zurich.csail.mit.edu/mailman/listinfo/omnibook
--
My work on Software Suspend is graciously brought to you by
LinuxFund.org.