Messages in this thread Patch in this message | | | Date | Fri, 24 Mar 2000 14:33:53 +0100 | From | Christian Gennerat <> | Subject | RE-mapping sysrq on extra keys |
| |
I don't exactly who is the maintainer for keyboard drivers, I hope he will receive this mail..
The joined patch (on 2.2.14) is used to be able to map sysreq on an unused (and unknown) key on a Compaq Armada 1700
1-sysrq-) You define a command with 'm' key which depend on the keyboard type. I suggest a patch in pc_keybd.c, with one new CONFIG parameter. So config scripts must to be updated! And maybe other keyboards are to be defined... Other solutions for this problem are: -Use only for the sysrq commands key common for most keyboards -say in sysrq documentation something as "the keyname refers to the key position in the standard US keyboard" (sysrq is a debug feature)..
2-extra-keys) On a laptop Sysreq needs 3 keys: Fn,Alt,Impr with the command key, you need 4 fingers! and on Compaq Fn-T has a special meaning. so I want to use one among the 4 extra keys. So the second patch. Maybe it would be better with a new CONFIG parameter!
3-) I have updated my keyboard.h with '#define SYSRQ_KEY 124' and I have a smart access to sysrq features.--- /src/linux/drivers/char/pc_keyb.c Mon Aug 9 21:04:39 1999 +++ pc_keyb.c Wed Mar 22 22:24:00 2000 @@ -44,6 +44,16 @@ /* Simple translation table for the SysRq keys */ #ifdef CONFIG_MAGIC_SYSRQ +#ifdef CONFIG_KBD_FR +unsigned char pckbd_sysrq_xlate[128] = + "\000\0331234567890)=\177\t" /* 0x00 - 0x0f */ + "azertyuiop[]\r\000qs" /* 0x10 - 0x1f */ + "dfghjklm'`\000\\wxcv" /* 0x20 - 0x2f */ + "bn,;/!\000*\000 \000\201\202\203\204\205" /* 0x30 - 0x3f */ + "\206\207\210\211\212\000\000789-456+1" /* 0x40 - 0x4f */ + "230\177\000\000\213\214\000\000\000\000\000\000\000\000\000\000" /* 0x50 - 0x5f */ + "\r\000/"; /* 0x60 - 0x6f */ +#else unsigned char pckbd_sysrq_xlate[128] = "\000\0331234567890-=\177\t" /* 0x00 - 0x0f */ "qwertyuiop[]\r\000as" /* 0x10 - 0x1f */ @@ -53,6 +63,7 @@ "230\177\000\000\213\214\000\000\000\000\000\000\000\000\000\000" /* 0x50 - 0x5f */ "\r\000/"; /* 0x60 - 0x6f */ #endif +#endif static void kbd_write_command_w(int data); static void kbd_write_output_w(int data); @@ -181,10 +192,21 @@ #define RGN3 126 #define RGN4 127 +/* christian.gennerat@vz.cit.alcatel.fr + * The four keys are located over the Esc-F1..F12, + * and are labelled *1-*4. + * Laptop Compaq Armada + * Scancodes: 65, 67, 69, 6b. + */ +#define CPQ_X1 124 +#define CPQ_X2 125 +#define CPQ_X3 126 +#define CPQ_X4 127 + static unsigned char high_keys[128 - SC_LIM] = { RGN1, RGN2, RGN3, RGN4, 0, 0, 0, /* 0x59-0x5f */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60-0x67 */ - 0, 0, 0, 0, 0, FOCUS_PF11, 0, FOCUS_PF12, /* 0x68-0x6f */ + 0, 0, 0, 0, 0, CPQ_X1, 0, CPQ_X2, /* 0x60-0x67 */ + 0, CPQ_X3, 0, CPQ_X4, 0, FOCUS_PF11, 0, FOCUS_PF12,/* 0x68-0x6f */ 0, 0, 0, FOCUS_PF2, FOCUS_PF9, 0, 0, FOCUS_PF3, /* 0x70-0x77 */ FOCUS_PF4, FOCUS_PF5, FOCUS_PF6, FOCUS_PF7, /* 0x78-0x7b */ FOCUS_PF8, JAP_86, FOCUS_PF10, 0 /* 0x7c-0x7f */ | |