This is a bit of a complicated issue. The optical PS/2-connected mouse on the laptop doesn't work. First of all, the basics: * UMID SE pocketable PC ** one of these: http://i.imgur.com/PmWs0.png ** The optical mouse in question is that small black rectangle on the right side of the screen below the windows sticker. The left/right mouse buttons are on the other side of the screen. * i686 Intel(R) Atom(TM) CPU Z530 @ 1.60GHz * Linux 3.2.14-1-ARCH #1 SMP PREEMPT (Archlinux) * Xorg-related versions: (It may look inconsistent but the results were exactly the same when I was using a consistent 1.11 setup) [root@lapfox shapeshifter]# pacman -Qi $(pacman -Qq | grep xorg) | grep -e '^Name' -e '^Version' Name : xorg-server Version : 1.11.4-1 Name : xorg-server-common Version : 1.12.0.901-1 Name : xorg-server-devel Version : 1.12.0.901-1 Name : xorg-xinit Version : 1.3.2-1 Name : xorg-xinput Version : 1.5.99.1-1 Name : xf86-input-evdev Version : 2.6.0-4 Name : xorg-xinput Version : 1.5.99.1-1 The laptop comes with: * A keyboard * A resistive touch screen * An 'optical mouse' which is a touch sensor on the right side of the screen The problem is that the optical mouse doesn't work, no matter what I try. There are different possible configurations that yield different results. The keyboard is working fine in all configurations: --- Configuration A: * Use some i8042 related kernel options: GRUB_CMDLINE_LINUX_DEFAULT="i8042.nomux=1 i8042.noloop=1 quiet" Results: 1) The touch screen works like a touch pad (relative movement) 2) The optical mouse doesn't work, and when trying to use it there are errors as below in dmesg. Trying to cat any of the input devices and using the mouse yields no character output [root@lapfox shapeshifter]# dmesg | tail [ 164.781517] psmouse serio1: bad data from KBC - timeout [ 164.790543] psmouse serio1: bad data from KBC - timeout [ 164.791575] psmouse serio1: bad data from KBC - timeout [ 164.792490] psmouse serio1: bad data from KBC - timeout [ 164.801813] psmouse serio1: bad data from KBC - timeout [ 164.802724] psmouse serio1: bad data from KBC - timeout [ 164.803751] psmouse serio1: bad data from KBC - timeout [ 164.813062] psmouse serio1: bad data from KBC - timeout [ 164.813954] psmouse serio1: bad data from KBC - timeout [ 164.815138] psmouse serio1: bad data from KBC - timeout 3) Only one KBD and one AUX port are listed in sys: [root@lapfox shapeshifter]# ls /sys/bus/serio/devices/ serio0 serio1 [root@lapfox shapeshifter]# cat /sys/bus/serio/devices/serio*/description i8042 KBD port i8042 AUX port 4) These are the input devices: [root@lapfox shapeshifter]# ls -R /dev/input/ /dev/input/: by-path event0 event1 event2 event3 event4 event5 event6 event7 mice mouse0 /dev/input/by-path: platform-i8042-serio-0-event-kbd platform-i8042-serio-1-mouse platform-i8042-serio-1-event-mouse platform-pcspkr-event-spkr [root@lapfox shapeshifter]# cat /proc/bus/input/devices at http://pastie.org/3739785 5) Some output from dmesg: [root@lapfox shapeshifter]# dmesg | grep -ie "error" -e "serio" -e "mouse" -e "kbd" -e "aux" | grep -v "bad data from KBC" [ 2.036888] serio: i8042 KBD port at 0x60,0x64 irq 1 [ 2.036987] serio: i8042 AUX port at 0x60,0x64 irq 12 [ 2.037319] mousedev: PS/2 mouse device common for all mice [ 2.062308] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 [ 2.092287] ioremap error for 0x3f69e000-0x3f6a1000, requested 0x10, got 0x0 [ 5.156825] psmouse serio1: hgpk: ID: 00 03 c8 [ 5.373059] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input6 6) xinput list: [root@lapfox shapeshifter]# DISPLAY=:0 xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ PS/2 Generic Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Video Bus id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)] --- Configuration B: * No kernel options (i.e. no i8042 options) * No serio_raw mode Results: 1) The touch screen works like a touch pad (relative movement) 2) The optical mouse doesn't work, and there are NO errors in dmesg. Trying to cat any of the input devices and using the mouse yields no character output. It's completely dead like this. 3) All i8042 ports are enumerated under sys: [root@lapfox shapeshifter]# ls /sys/bus/serio/devices/ serio0 serio1 serio2 serio3 serio4 [root@lapfox shapeshifter]# cat /sys/bus/serio/devices/serio*/description i8042 KBD port i8042 AUX0 port i8042 AUX1 port i8042 AUX2 port i8042 AUX3 port 4) These are the input devices: [root@lapfox shapeshifter]# ls -R /dev/input/ /dev/input/: by-path event1 event3 event5 event7 mice event0 event2 event4 event6 event8 mouse0 [root@lapfox shapeshifter]# cat /proc/bus/input/devices at http://pastie.org/3739803 /dev/input/by-path: platform-i8042-serio-0-event-kbd platform-i8042-serio-4-mouse platform-i8042-serio-4-event-mouse platform-pcspkr-event-spkr 5) Some output from dmesg: [root@lapfox shapeshifter]# dmesg | grep -ie "error" -e "serio" -e "mouse" -e "kbd" -e "aux" [ 2.068458] serio: i8042 KBD port at 0x60,0x64 irq 1 [ 2.068556] serio: i8042 AUX0 port at 0x60,0x64 irq 12 [ 2.068642] serio: i8042 AUX1 port at 0x60,0x64 irq 12 [ 2.068722] serio: i8042 AUX2 port at 0x60,0x64 irq 12 [ 2.068805] serio: i8042 AUX3 port at 0x60,0x64 irq 12 [ 2.069138] mousedev: PS/2 mouse device common for all mice [ 2.094164] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 [ 2.123453] ioremap error for 0x3f69e000-0x3f6a1000, requested 0x10, got 0x0 [ 5.301556] psmouse serio4: hgpk: ID: 00 03 c8 [ 5.546636] input: PS/2 Generic Mouse as /devices/platform/i8042/serio4/input/input8 [ 113.193493] atkbd serio0: Unknown key pressed (translated set 2, code 0xd9 on isa0060/serio0). [ 113.193511] atkbd serio0: Use 'setkeycodes e059 <keycode>' to make it known. [ 113.203740] atkbd serio0: Unknown key released (translated set 2, code 0xd9 on isa0060/serio0). [ 113.203758] atkbd serio0: Use 'setkeycodes e059 <keycode>' to make it known. 6) xinput list: [root@lapfox shapeshifter]# DISPLAY=:0 xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ PS/2 Generic Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Video Bus id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)] --- Configuration C: * Use some i8042 related kernel options: GRUB_CMDLINE_LINUX_DEFAULT="i8042.nomux=1 i8042.noloop=1 quiet" * Enable 'serio_raw' mode (note: this doesn't work without the kernel options): echo -n serio_raw>/sys/bus/serio/devices/serio1/drvctl & * Use the X-Input "eGalax Touch" driver provided by the touch screen manufacturer (EETI) from http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm [root@lapfox shapeshifter]# cat /etc/X11/xorg.conf Section "InputDevice" Identifier "EETI" Driver "egalax" Option "Device" "/dev/serio_raw0" Option "Parameters" "/var/lib/eeti.param" Option "ScreenNo" "0" EndSection Section "ServerLayout" Identifier "Default Layout" InputDevice "EETI" "SendCoreEvents" EndSection Results: 1) The touch screen works as intended with absolute positioning (nice!) 2) The optical mouse doesn't work, and there are only a few errors like those above, but only at a very early stage, where the eGalax driver hasn't taken over. Trying to cat any of the input devices and using the mouse yields no character output, BUT using cat /dev/serio_raw0, interesting output is yielded: [root@lapfox shapeshifter]# cat /dev/serio_raw0 # going to swipe up/down/left/right on the touch screen at http://pastie.org/3739586 [root@lapfox shapeshifter]# cat /dev/serio_raw0 # going to swipe up/down/left/right on the optical mouse at http://pastie.org/3739597 Noting that going up or right will actually move the text cursor backwards most of the time In any case I'm not sure if this is telling you anything. 3) Only one KBD and one AUX port are listed in sys: [root@lapfox shapeshifter]# ls /sys/bus/serio/devices/ serio0 serio1 [root@lapfox shapeshifter]# cat /sys/bus/serio/devices/serio*/description i8042 KBD port i8042 AUX port 4) These are the input devices: [root@lapfox shapeshifter]# ls -R /dev/input/ /dev/input/: by-path event0 event1 event2 event3 event4 event5 event6 event7 mice /dev/input/by-path: platform-i8042-serio-0-event-kbd platform-pcspkr-event-spkr [root@lapfox shapeshifter]# cat /proc/bus/input/devices at http://pastie.org/3739821 5) Some output from dmesg: [root@lapfox shapeshifter]# dmesg | grep -ie "error" -e "serio" -e "mouse" -e "kbd" -e "aux" [ 2.030523] serio: i8042 KBD port at 0x60,0x64 irq 1 [ 2.030622] serio: i8042 AUX port at 0x60,0x64 irq 12 [ 2.030955] mousedev: PS/2 mouse device common for all mice [ 2.063277] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 [ 2.085795] ioremap error for 0x3f69e000-0x3f6a1000, requested 0x10, got 0x0 [ 5.114025] psmouse serio1: hgpk: ID: 00 03 c8 [ 5.336168] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input8 [ 6.205085] psmouse serio1: bad data from KBC - timeout [ 6.206110] psmouse serio1: bad data from KBC - timeout [ 6.207155] psmouse serio1: bad data from KBC - timeout [ 6.669916] serio_raw serio1: raw access enabled on isa0060/serio1 (serio_raw0, minor 58) 6) xinput list: [root@lapfox shapeshifter]# DISPLAY=:0 xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ eGalaxTouch Controller id=6 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] --- Additional Notes: * Kernel options like pci=noacpi or acpi=off had no effect. * I don't know what's going on with the ioremap error but I think it's due to the GMA500/Poulsbo chip and hence unrelated. * Using the other, 'newer' eGTouch Daemon driver is impossible, it only supports USB, not PS/2. * I tried a bunch of psmouse proto options but I was taking stabs at the dark, none of them worked (e.g. psmouse proto=imps etc.) * I installed Windows XP to see what happens and there: ** The optical mouse works perfectly without any additional drivers ** The touch screen works like a touch pad (relative movement) ** The mouse is registered as a "Mircosoft PS/2 Mouse" under ACPI\PNP0F03, IRQ 12 * Similar info as in XP can be gathered in linux like this: [root@lapfox shapeshifter]# cat /sys/devices/pnp0/00\:04/{id,options,resources,uevent} PNP0f03 PNP0f13 state = active irq 12 DRIVER=i8042 aux --- So in Essence, no matter what I try, I see that: * The input device (hardware) works as demonstrated by using XP or the eGalax driver and catting /dev/serio_raw0 * The optical mouse *should* be a very simple PS/2 mouse * No combination of configurations, reloading psmouse or anything else yields a useful result. I'm not sure if the optical mouse would ever work when using the eGalax driver (which is needed for a absolute touch screen device) but I wouldn't even care too much. I'd just really like to have that 'simple' optical PS/2 mouse working. If I can provide any more specific information, I'd be more than happy to supply it.
Maybe I should mention which version of Linux this is... Name : linux Version : 3.2.14-1 Name : linux-api-headers Version : 3.3-1 Name : linux-firmware Version : 20120227-1 Name : util-linux Version : 2.21.1-2
I have the same problem as Tim Bauer but with a different PC. I have a tablet Archos 9 (Link: http://www.archos.com/products/tw/archos_9/index.html) Also as Tim Bauer, it has a resistive touch screen (eGalax touch screen by eeti manufacturer)connected to the PS / 2 port. Again as Tim Bauer, it has a optical PS /2 mouse. I have contacted EETI developers (http://home.eeti.com.tw/web20/eg/Touch_Division.html). I tried they make public the source code of their drivers for windows, but they refuse. They tell me "There's Some know-how in source code, so we can not release it to client." The biggest problem is I'm trying to put on this computer Android for x86 processors (www.android-x86.org). As you know, Android is like Linux but do not use the X Windows graphics engine (use the framebuffer). The manufacturer eeti has 2 types of drivers for Linux: - One that uses X-windows (does not work on Android) - A new one that does not use X-windows (not supported devices PS / 2). I can help as needed. Thanks.
Hmm, there is a kernel driver for eGalax PS/2 touchscreen, do you have CONFIG_MOUSE_PS2_TOUCHKIT enabled?
Yes, Yes, I have tried in the past compiling the kernel with CONFIG_MOUSE_PS2_TOUCHKIT enabled. But does not work. The driver touchkit_ps2.c(http://lxr.linux.no/linux+v3.5/drivers/input/mouse/touchkit_ps2.c) is correct. I know it is correct because EETI programmers confirmed (I send a email and they read the source code of touchkit_ps2.c). Is correct! They did not know that code existed !!! I think the problem is the chip i8042 of our PC and the ps/2 multiplexed mode. In Windows the driver works in multiplexed mode, that is why touchscreen and optical mouse work well in Windows. The problem is that when I don't put the boot parameter i8042.nomux=1 and I put i8042.debug=1 in linux logs I found: "MUX error, status is 35, data is fe" PS/2 Multiplexed mode is not working.
Created attachment 76011 [details] i8042.debug=1 log file This is the log file with i8042.debug=1 parameter.
Created attachment 76131 [details] dmesg | grep i8042 I'm glad to see I'm not the only one with this problem. Similarily to Jose Luis Varela, I see MUX errors in dmesg when adding the i8042.debug=1 parameter. Attached is the output of dmesg | grep i8042. The output in the second half is from using the touch screen. I see different MUX errors: [ 1.836928] i8042: [17] MUX error, status is 35, data is fe [ 1.880323] i8042: [30] MUX error, status is 75, data is fe [ 1.923735] i8042: [43] MUX error, status is b5, data is fe
These MUX errors mean simply that nothing is connected to ports 0 and 3 of the MUX (or that these ports are not implemented at all) - nothing important.
These are the interesting parts: [ 11.831664] i8042: [20] 91 -> i8042 (command) [ 11.831732] i8042: [20] f2 -> i8042 (parameter) [ 11.832053] i8042: [21] fa <- i8042 (interrupt, 4, 12) [ 12.028134] i8042: [70] 91 -> i8042 (command) [ 12.028206] i8042: [70] ed -> i8042 (parameter) [ 12.028566] i8042: [70] fa <- i8042 (interrupt, 4, 12) The devices do not return any ID when requested.
Do the reporters still have the problematic devices? It’d be great, if you could verify the problem still occurs with the current mainline Linux series.
I don't have this device anymore (the UMID SE pocketable PC from my initial report).