Skip to contentSkip to conversation

atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

DISCUSSION P. Christeas 4 participants 6 messages Jan 23, 2004 – Jan 26, 2004

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
Quoted 7 lines · P. Christeas

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.

Quoted 1 line

Q 2: Do you have any HowTo/QA for that?

Not yet, but I'll have to write one.

Quoted 1 line

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.

Quoted 8 lines

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.

Signature · 2 lines
Vojtech Pavlik
SuSE Labs, SuSE CR
#2 lore raw

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

Quoted 42 lines · P. Christeas
Quoted 7 lines

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.

Quoted 1 line

Q 2: Do you have any HowTo/QA for that?

Not yet, but I'll have to write one.

Quoted 1 line

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.

Quoted 9 lines

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.

#3 lore raw

Re: Solved: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

Quoted 14 lines · P. Christeas

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

Quoted 5 lines

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.

Quoted 42 lines
Quoted 42 lines · P. Christeas
Quoted 7 lines

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.

Quoted 1 line

Q 2: Do you have any HowTo/QA for that?

Not yet, but I'll have to write one.

Quoted 1 line

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.

Quoted 9 lines

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.

Signature · 2 lines
Vojtech Pavlik
SuSE Labs, SuSE CR
#4 lore raw

Re: Solved: atkbd w 2.6.2rc1 : HowTo for extra (inet) keys ?

In reply to P. Christeas
Quoted 2 lines · P. Christeas

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.

#5 lore raw

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

Quoted 12 lines · Andries Brouwer
Quoted 2 lines · P. Christeas

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

Signature · 2 lines
My work on Software Suspend is graciously brought to you by
LinuxFund.org.