2.0.34 psaux and Logitech Pilot

Geert Uytterhoeven (Geert.Uytterhoeven@cs.kuleuven.ac.be)
Sat, 20 Jun 1998 15:07:40 +0200 (MET DST)


Hi,

This problem is only partly kernel related (kernel oops). Sorry for that.

I have two Logitech Pilot mice. They both have DB9 serial connectors and work
fine as serial mice. The oldest was sold as a Pilot Serial, while the newest
one was sold as a Pilot PS/2 and came with a DB9-to-PS/2 convertor. Both have
the same model (M/N M-M35) and part (P/N 811313-01) numbers.

I wanted to free a serial port so I can use my terminal and modem at the same
time. Since my motherboard (A/Open AP53) has a header for a PS/2 mouse
connector cable, I got a bracket with PS/2 connector for it and moved the Pilot
to the PS/2 connector, using the DB9-to-PS/2 connector that came with the Pilot
PS/2. However, none of my two Logitech mice work when used as PS/2 mice.

I tried a Compaq native-PS/2 2-button (yup) mouse, and that works.

Problems:

- When I start gpm, it causes the following oops because the psaux.o module
initialization (loaded by kerneld) fails. This is definitely a kernel bug.

--------------------------------------------------------------------------------
Unable to handle kernel paging request at virtual address c2829077
current->tss.cr3 = 00aea000, %cr3 = 00aea000
*pde = 0009e067
*pte = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<02829077>]
EFLAGS: 00010216
eax: 000000ff ebx: 00b91f44 ecx: 00227bb0 edx: 00227000
esi: 00000001 edi: 00b91f54 ebp: 0137c7f8 esp: 00b91f1c
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process gpm (pid: 467, process nr: 20, stackpage=00b91000)
Stack: 00000002 80000000 0000000f 00b91f44 00000000 00000000 0137c7f8 009bc500
00000004 0012459e 72616863 6a616d2d 312d726f 00312d30 00190e34 001248d6
009bc500 0137c7f8 0137c7f8 00000000 01b7b000 00122b37 009bc500 0137c7f8
Call Trace: [<0012459e>] [<001248d6>] [<00122b37>] [<00122c4f>] [<0010a655>]
Code: <1>Unable to handle kernel paging request at virtual address c2829077
current->tss.cr3 = 00aea000, %cr3 = 00aea000
*pde = 0009e067
*pte = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<0010abcc>]
EFLAGS: 00010206
eax: 00000010 ebx: 0000002b ecx: 02829077 edx: 01c57018
esi: 00000000 edi: 00b92000 ebp: 00b91ee0 esp: 00b91e84
ds: 0018 es: 0018 fs: 0010 gs: 002b ss: 0018
Process gpm (pid: 467, process nr: 20, stackpage=00b91000)
Stack: 0000002b 00000000 00029000 00b91ee0 016da018 02800000 03000000 02800000
016d0018 00111696 0017e1b5 00b91ee0 00000000 001113c8 00000001 00b91f54
0137c7f8 00227bb8 00f4e698 00000000 0010a7e0 00b91ee0 00000000 00b91f44
Call Trace: [<02800000>] [<03000000>] [<02800000>] [<00111696>] [<001113c8>] [<0010a7e0>] [<02829077>]
[<0012459e>] [<001248d6>] [<00122b37>] [<00122c4f>] [<0010a655>]
Code: 64 8a 04 0e 0f a1 88 c2 81 e2 ff 00 00 00 89 54 24 10 52 68
--------------------------------------------------------------------------------
Using `/usr/src/native-2.0.34/System.map' to map addresses to symbols.

Trace: 12459e <get_chrfops+1e/24>
Trace: 1248d6 <chrdev_open+3e/4c>
Trace: 122b37 <do_open+c7/124>
Trace: 122c4f <sys_open+3f/78>
Trace: 10a655 <system_call+55/80>

Code:
--------------------------------------------------------------------------------
Using `/usr/src/native-2.0.34/System.map' to map addresses to symbols.

>>EIP: 10abcc <die_if_kernel+280/2c0>
Trace: 2800000
Trace: 3000000
Trace: 2800000
Trace: 111696 <do_page_fault+2ce/2e0>
Trace: 111696 <do_page_fault+2ce/2e0>
Trace: 10a7e0 <error_code+40/50>
Trace: 2829077
Trace: 12459e <get_chrfops+1e/24>
Trace: 1248d6 <chrdev_open+3e/4c>
Trace: 122b37 <do_open+c7/124>
Trace: 122c4f <sys_open+3f/78>
Trace: 10a655 <system_call+55/80>

Code: 10abcc <die_if_kernel+280/2c0> movb %fs:(%esi,%ecx,1),%al
Code: 10abd0 <die_if_kernel+284/2c0> popl %fs
Code: 10abd2 <die_if_kernel+286/2c0> movb %al,%dl
Code: 10abd4 <die_if_kernel+288/2c0> andl $0xff,%edx
Code: 10abda <die_if_kernel+28e/2c0> movl %edx,0x10(%esp,1)
Code: 10abde <die_if_kernel+292/2c0> pushl %edx
Code: 10abdf <die_if_kernel+293/2c0> pushl $0x90909000
--------------------------------------------------------------------------------

- psaux.o can't be initialized because the BIOS doesn't see the presence of a
PS/2 mouse when I boot up without the Compaq mouse connected. I fooled the
driver by setting `aux_device_present = 0xaa;' in psaux.c and then the
driver loads, and the Compaq mouse works. But not the Logitech.

- Defining INITIALIZE_DEVICE in psaux.c doesn't make a difference.

Someone with a clue to solve this? Perhaps I got Logitech mices that don't
support DB9-to-PS/2? Thx!

Greetings,

Geert

--
Geert Uytterhoeven                     Geert.Uytterhoeven@cs.kuleuven.ac.be
Wavelets, Linux/{m68k~Amiga,PPC~CHRP}  http://www.cs.kuleuven.ac.be/~geert/
Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu