* Re:Re: Linux 2.6.0-test4
@ 2003-08-30 14:13 Chris Heath
2003-08-30 14:59 ` Ralf Hildebrandt
0 siblings, 1 reply; 5+ messages in thread
From: Chris Heath @ 2003-08-30 14:13 UTC (permalink / raw)
To: Ralf.Hildebrandt; +Cc: linux-kernel
> I still have issues with the keyboard -- sometimes when typing in the
> frambuffer console I get an "unknown scancode" and after that the CTRL
> key is stuck forever, which forces me to reboot.
Please post the full error message. Does the error message always
contain the same scancode?
My guess is you can get out of that without a reboot. Next time it
happens, try this:
1. Press and release each Ctrl key. (This makes sure the key_down
array is correct.)
2. Switch to another console and back again. (This executes the
compute_shiftstate function, which recalculates the shift
state from the key_down array.)
Chris
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: Re:Re: Linux 2.6.0-test4
2003-08-30 14:13 Re:Re: Linux 2.6.0-test4 Chris Heath
@ 2003-08-30 14:59 ` Ralf Hildebrandt
0 siblings, 0 replies; 5+ messages in thread
From: Ralf Hildebrandt @ 2003-08-30 14:59 UTC (permalink / raw)
To: linux-kernel
* Chris Heath <chris@heathens.co.nz>:
> > I still have issues with the keyboard -- sometimes when typing in the
> > frambuffer console I get an "unknown scancode" and after that the CTRL
> > key is stuck forever, which forces me to reboot.
>
> Please post the full error message. Does the error message always
> contain the same scancode?
I'll do that.
Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Basically, CTRL was stuck. Even when I switched to X11.
> My guess is you can get out of that without a reboot. Next time it
> happens, try this:
> 1. Press and release each Ctrl key. (This makes sure the key_down
> array is correct.)
> 2. Switch to another console and back again. (This executes the
> compute_shiftstate function, which recalculates the shift
> state from the key_down array.)
Ah, good idea.
--
Ralf Hildebrandt (Im Auftrag des Referat V a) Ralf.Hildebrandt@charite.de
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re:Re: Linux 2.6.0-test4
@ 2003-08-31 16:22 Chris Heath
2003-09-01 16:01 ` Ralf Hildebrandt
2003-09-02 8:07 ` Ralf Hildebrandt
0 siblings, 2 replies; 5+ messages in thread
From: Chris Heath @ 2003-08-31 16:22 UTC (permalink / raw)
To: Ralf.Hildebrandt; +Cc: linux-kernel
> Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
>
> Basically, CTRL was stuck. Even when I switched to X11.
Well, this completely baffles me. I thought X11 maintains its own
keydown array.
Anyway, I've included a patch that should hopefully give us better
debugging information. When you get an unknown key error, it will also
dump the last 16 bytes that were sent from the keyboard. Be careful
with this one. If you post any errors to the list, make sure it doesn't
contain any sensitive passwords. :-)
Chris
--- a/drivers/input/serio/i8042.c 2003-08-09 11:58:10.000000000 -0400
+++ b/drivers/input/serio/i8042.c 2003-08-31 10:16:55.000000000 -0400
@@ -62,6 +62,7 @@
static unsigned char i8042_last_release;
static unsigned char i8042_mux_open;
struct timer_list i8042_timer;
+unsigned char i8042_history[16];
/*
* Shared IRQ's require a device pointer, but this driver doesn't support
@@ -334,6 +335,14 @@
static char i8042_mux_short[4][16];
static char i8042_mux_phys[4][32];
+void dump_i8042_history(void) {
+ int i;
+ printk(KERN_WARNING "i8042 history: ");
+ for (i=0; i<sizeof(i8042_history); i++)
+ printk("%02x ", i8042_history[i]);
+ printk("\n");
+}
+
/*
* i8042_interrupt() is the most important function in this driver -
* it handles the interrupts from the i8042, and sends incoming bytes
@@ -405,6 +414,8 @@
continue;
}
+ memmove(i8042_history, &i8042_history[1], sizeof(i8042_history)-1);
+ i8042_history[sizeof(i8042_history)-1] = data;
if (data > 0x7f) {
unsigned char index = (data & 0x7f) | (i8042_last_e0 << 7);
/* work around hardware that doubles key releases */
--- a/drivers/input/keyboard/atkbd.c 2003-06-22 18:45:06.000000000 -0400
+++ b/drivers/input/keyboard/atkbd.c 2003-08-31 10:11:51.000000000 -0400
@@ -131,6 +131,7 @@
* atkbd_interrupt(). Here takes place processing of data received from
* the keyboard into events.
*/
+void dump_i8042_history(void);
static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
unsigned int flags, struct pt_regs *regs)
@@ -193,6 +194,7 @@
case ATKBD_KEY_UNKNOWN:
printk(KERN_WARNING "atkbd.c: Unknown key (set %d, scancode %#x, on %s) %s.\n",
atkbd->set, code, serio->phys, atkbd->release ? "released" : "pressed");
+ dump_i8042_history();
break;
default:
input_regs(&atkbd->dev, regs);
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: Re:Re: Linux 2.6.0-test4
2003-08-31 16:22 Chris Heath
@ 2003-09-01 16:01 ` Ralf Hildebrandt
2003-09-02 8:07 ` Ralf Hildebrandt
1 sibling, 0 replies; 5+ messages in thread
From: Ralf Hildebrandt @ 2003-09-01 16:01 UTC (permalink / raw)
To: linux-kernel
* Chris Heath <chris@heathens.co.nz>:
> > Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> > Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> >
> > Basically, CTRL was stuck. Even when I switched to X11.
>
> Well, this completely baffles me. I thought X11 maintains its own
> keydown array.
>
> Anyway, I've included a patch that should hopefully give us better
> debugging information. When you get an unknown key error, it will also
> dump the last 16 bytes that were sent from the keyboard. Be careful
> with this one. If you post any errors to the list, make sure it doesn't
> contain any sensitive passwords. :-)
I applied your patch, and alas:
Sep 1 16:12:19 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Sep 1 16:12:19 hummus2 kernel: i8042 history: ae 9d e0 48 e0 c8 e0 38 56 d6 e0 b8 e0 b8 39 b9
--
Ralf Hildebrandt (Im Auftrag des Referat V a) Ralf.Hildebrandt@charite.de
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re:Re: Linux 2.6.0-test4
2003-08-31 16:22 Chris Heath
2003-09-01 16:01 ` Ralf Hildebrandt
@ 2003-09-02 8:07 ` Ralf Hildebrandt
1 sibling, 0 replies; 5+ messages in thread
From: Ralf Hildebrandt @ 2003-09-02 8:07 UTC (permalink / raw)
To: linux-kernel
* Chris Heath <chris@heathens.co.nz>:
> > Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> > Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> >
> > Basically, CTRL was stuck. Even when I switched to X11.
>
> Well, this completely baffles me. I thought X11 maintains its own
> keydown array.
>
> Anyway, I've included a patch that should hopefully give us better
> debugging information. When you get an unknown key error, it will also
> dump the last 16 bytes that were sent from the keyboard. Be careful
> with this one. If you post any errors to the list, make sure it doesn't
> contain any sensitive passwords. :-)
I got some more events, and today I even was able to reproduc the
"CTRL-is-stuck" problem.
I was able to get the key unstuck by switching back and forth between
dirrerent FB consoles and by pushing and releaseing CTRL in them...
Sep 2 09:10:01 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9c, on isa0060/serio0) pressed.
Sep 2 09:10:01 hummus2 kernel: i8042 history: e0 d0 1c 9c 2e ae 10 90 e0 50 e0 d0 e0 d0 1c 9c
Sep 2 09:10:06 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xa0, on isa0060/serio0) pressed.
Sep 2 09:10:06 hummus2 kernel: i8042 history: 1c 9c 1c 9c e0 50 e0 d0 e0 50 e0 d0 e0 d0 20 a0
Sep 2 09:14:54 hummus2 kernel: input: AT Set 2 keyboard on isa0060/serio0
Sep 2 09:25:44 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Sep 2 09:25:44 hummus2 kernel: i8042 history: e0 50 e0 d0 e0 50 e0 d0 e0 d0 1d 2d ad 1f 9f 9d
Sep 2 09:30:34 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Sep 2 09:30:34 hummus2 kernel: i8042 history: e0 48 e0 c8 39 b9 e0 38 56 d6 e0 b8 e0 b8 39 b9
Sep 2 09:35:51 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Sep 2 09:35:51 hummus2 kernel: i8042 history: a0 20 a0 9d e0 4d e0 cd e0 4d e0 cd e0 cd 39 b9
--
Ralf Hildebrandt (Im Auftrag des Referat V a) Ralf.Hildebrandt@charite.de
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2003-09-02 8:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-30 14:13 Re:Re: Linux 2.6.0-test4 Chris Heath
2003-08-30 14:59 ` Ralf Hildebrandt
2003-08-31 16:22 Chris Heath
2003-09-01 16:01 ` Ralf Hildebrandt
2003-09-02 8:07 ` Ralf Hildebrandt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®