--- hw/xfree86/common/xf86Configure.c.orig 2007-09-29 15:44:40.095702000 +0200 +++ hw/xfree86/common/xf86Configure.c 2007-09-29 15:50:35.625921250 +0200 @@ -267,23 +267,36 @@ /* Crude mechanism to auto-detect mouse (os dependent) */ { - int fd; + int fd = -1; + #ifdef WSCONS_SUPPORT - fd = open("/dev/wsmouse", 0); - if (fd > 0) { - DFLT_MOUSE_DEV = "/dev/wsmouse"; - DFLT_MOUSE_PROTO = "wsmouse"; - close(fd); - } else { - ErrorF("cannot open /dev/wsmouse\n"); + if (fd == -1) { + fd = open("/dev/wsmouse", 0); + if (fd != -1) { + DFLT_MOUSE_DEV = "/dev/wsmouse"; + DFLT_MOUSE_PROTO = "wsmouse"; + close(fd); + } else { + ErrorF("cannot open /dev/wsmouse\n"); + } } #endif #ifndef __SCO__ - fd = open(DFLT_MOUSE_DEV, 0); - if (fd != -1) { - foundMouse = TRUE; - close(fd); + if (fd == -1) { + fd = open(DFLT_MOUSE_DEV, 0); +# ifdef linux + if (fd == -1) { + char *name = "/dev/input/mice"; + fd = open(name, 0); + if (fd != -1) + DFLT_MOUSE_DEV = name; + } +# endif + if (fd != -1) { + foundMouse = TRUE; + close(fd); + } } #else foundMouse = TRUE;