2004-01-23 20:08:37

by P. Christeas

[permalink] [raw]
Subject: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

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).


2004-01-23 21:09:50

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

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

2004-01-24 02:36:25

by P. Christeas

[permalink] [raw]
Subject: Solved: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

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.

2004-01-24 08:39:53

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: Solved: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

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

2004-01-24 18:37:15

by Andries Brouwer

[permalink] [raw]
Subject: Re: Solved: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

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.

2004-01-26 19:31:20

by Nigel Cunningham

[permalink] [raw]
Subject: Re: [OmniBook] Re: Solved: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

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.


Attachments:
signature.asc (189.00 B)
This is a digitally signed message part