2003-09-19 13:06:40

by Dan Van Derveer

[permalink] [raw]
Subject: PROBLEM: Logitech Wireless Elite Keyboard

The keyboard produces unknown scancodes and escape sequences at
(seemingly)random intervals. I receive this message when I am at the
console:
keyboard: unknown e1 escape sequence
keyboard: unknown e1 escape sequence
keyboard: unrecognized scancode (65) - ignored

This issue also manifests itself in Xfree86 as a q character.

Where should I start to begin to fix this?

Dan Van Derveer


2003-09-19 13:49:31

by Andries Brouwer

[permalink] [raw]
Subject: Re: PROBLEM: Logitech Wireless Elite Keyboard

On Fri, Sep 19, 2003 at 09:06:33AM -0400, Dan Van Derveer wrote:

> The keyboard produces unknown scancodes and escape sequences at
> (seemingly)random intervals. I receive this message when I am at the
> console:
> keyboard: unknown e1 escape sequence
> keyboard: unknown e1 escape sequence
> keyboard: unrecognized scancode (65) - ignored
>
> This issue also manifests itself in Xfree86 as a q character.
>
> Where should I start to begin to fix this?

First: always give the kernel version.

Second: if the keyboard produces some garbage every now and then
but otherwise functions well, just ignore. It the printk is
annoying, then look at the C code that produces the message
and comment it out. (For example, that code might live in
drivers/char/keyboard.c in the routine handle_scancode() -
details depend on your kernel version, grep for "keyboard: unknown e1".
In many kernel versions the printout is conditional on
#ifdef KBD_REPORT_UNKN, so you may silence the kernel by changing
#define KBD_REPORT_UNKN into #undef KBD_REPORT_UNKN.)

Third: if it is not garbage but some key or button that produces
a meaningful code that the kernel does not understand, report
what key or button you use and what code it produces.
You may check using the command "showkey -s".
If you do not know how to reproduce the problem you might add
a little bit more detail to the kernel message, for example
printk(KERN_INFO "keyboard: unknown e1 escape sequence 0x%02x 0x%02x\n",
prev_scancode, scancode);

Fourth: if a known key produces a scancode to which no keycode is attached,
use the setkeycodes utility to assign a keycode. Then use loadkeys to attach
some function to that keycode.

Andries