I resolved this problem. It's the fault of the multiplexing on i8042. You must pass i8042_nomux=1 to the kernel for 2.4.X or 2.6.0 or you must modify
linux-2.6.x/drivers/input/serio/i8042.c by quoting many lines if > 2.6.0 because nomux doesn't work :


/*      if (!i8042_noaux && !i8042_check_aux(&i8042_aux_values)) {
                if (!i8042_nomux && !i8042_check_mux(&i8042_aux_values))
                        for (i = 0; i < 4; i++) {
                                i8042_init_mux_values(i8042_mux_values + i, i804
2_mux_port + i, i);
                                i8042_port_register(i8042_mux_values + i, i8042_
mux_port + i);
                        }
                else
*/                    
             i8042_port_register(&i8042_aux_values, &i8042_aux_port);
//      }

I know it's a very bad way to solve the problem but it's working and I don't have more time.


Vojtech Pavlik a écrit :
On Mon, Feb 09, 2004 at 12:03:14AM +0100, Bernd Schubert wrote:

  
On Sun, Feb 08, 2004 at 11:19:32PM +0100, aeriksson@fastmail.fm wrote:
    
Problem still occurs :-(
          
I have good news - I've managed to reliably reproduce the bug on my
machine and that means I now have a good chance to find and fix it.

        
Another data point. I just tried switching to a non-preempt kernel as
was suggested by someone. The problem still occurs.
      

  
Hello,

on IBM Thinkpads R31 this is also easiliy to reproduce:

For 2.6. one only needs to read from /proc/apm or /proc/acpic/...
and the mouse becomes crazy and one gets the throwing 2 bytes away
messages in the log files. By fast reading in an endless loop even
input from the keyboard is ignored.

For 2.4. this only happens on reading from /proc/apm, somehow acpi is not
affected in 2.4. kernel versions.

Well, for R31's it is said that it is the bad bios, but maybe its
related? Any ideas why it doesn't happen with acpi and 2.4.? 
    

There are many reasons why it can happen. I'm currently debugging the
one where no APM or ACPI or anything else is needed.

  
My knowlege of the kernel interals is quite low and pretty much limited
to the basic vfs area, so could you please give me some good advises how to
debug this?
    

You can enable DEBUG in i8042.c, and then look at 'dmesg' when the
problem happens. There will be a missing byte in the stream ...