Author: branden Date: 2004-09-22 03:50:51 -0500 (Wed, 22 Sep 2004) New Revision: 1849
Modified: branches/debconf-overhaul/debian/xserver-xfree86.config.in Log: Add support for ADB, Amiga, and Atari mice. Set more reasonable hardware-specific mouse port default even in the absence of mdetect. Modified: branches/debconf-overhaul/debian/xserver-xfree86.config.in =================================================================== --- branches/debconf-overhaul/debian/xserver-xfree86.config.in 2004-09-22 07:36:32 UTC (rev 1848) +++ branches/debconf-overhaul/debian/xserver-xfree86.config.in 2004-09-22 08:50:51 UTC (rev 1849) @@ -1075,7 +1075,8 @@ # section (using the "mouse" driver) of the XF86Config-4 file. local autodetected_port autodetected_protocol default_port default_protocol \ - func mdetect_output mouse_port_choices mouse_protocol_choices using_devfs + func mdetect_output mouse_port_choices mouse_protocol_choices subarch \ + using_devfs func="configure_mouse" @@ -1099,14 +1100,110 @@ if [ -n "$using_devfs" ]; then trace "$func(): devfs appears to be in use; using devfs names for mouse" \ "port choices" - mouse_port_choices="/dev/misc/psaux, /dev/tts/0, /dev/tts/1, /dev/tts/2, /dev/tts/3, /dev/input/mice, /dev/misc/atixl, /dev/gpmdata" - default_port="/dev/misc/psaux" + mouse_port_choices="/dev/misc/psaux, /dev/tts/0, /dev/tts/1, /dev/tts/2, /dev/tts/3, /dev/input/mice, /dev/adbmouse, /dev/amigamouse, /dev/atarimouse, /dev/misc/atixl, /dev/sunmouse, /dev/gpmdata" else trace "$func(): devfs does not appear to be in use" - mouse_port_choices="/dev/psaux, /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, /dev/ttyS3, /dev/input/mice, /dev/atibm, /dev/sunmouse, /dev/gpmdata" - default_port="/dev/psaux" + mouse_port_choices="/dev/psaux, /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, /dev/ttyS3, /dev/input/mice, /dev/adbmouse, /dev/amigamouse, /dev/atarimouse, /dev/atibm, /dev/sunmouse, /dev/gpmdata" fi + # Attempt to set a reasonable default for the mouse port in the event + # autodetection doesn't work. + case "$ARCH" in + alpha) + # Assume Alpha machines use PS/2 mice. + if [ -n "$using_devfs" ]; then + default_port="/dev/misc/psaux" + else + default_port="/dev/psaux" + fi + ;; + amd64) + # Assume AMD64 machines use USB mice. + default_port="/dev/input/mice" + ;; + arm) + trace "$func(): no good defaults known for ARM mouse configuration" + ;; + hppa) + trace "$func(): no good defaults known for PA-RISC mouse configuration" + ;; + hurd-i386) + ;; + i386) + # Assume Linux x86 machines use USB mice. + # TODO: We could attempt some parsing of /proc/cpuinfo to default to PS/2 + # for older x86 machines. + default_port="/dev/input/mice" + ;; + ia64) + # Assume IA-64 machines use USB mice. + default_port="/dev/input/mice" + ;; + m68k) + # A good default for m68k depends on which sub-architecure this is. + if [ -r /proc/hardware ]; then + subarch=$(grep -w "Model:" | sed 's/Model:[[:space:]]+//') + case "$subarch" in + Amiga*) + default_port="/dev/amigamouse" + ;; + Atari*) + default_port="/dev/atarimouse" + ;; + Macintosh*) + default_port="/dev/adbmouse" + ;; + Motorola*) # BVME/MVME + trace "$func(): no good defaults known for VME mouse" + "configuration" + ;; + Q40*) # Q40/Q60 + trace "$func(): no good defaults known for Q40/Q60 mouse" + "configuration" + ;; + esac + else + trace "$func(): cannot autodetect m68k sub-architecture;" \ + "/proc/hardware does not exist or is not readable" + fi + ;; + mips|mipsel) + trace "$func(): no good defaults known for MIPS mouse configuration" + ;; + powerpc) + # A good default for PowerPC depends on which sub-architecure this is. + if [ -r /proc/cpuinfo ]; then + subarch=$(grep "^machine" | sed 's/machine[[:space:]]+:[[:space:]]+//') + case "$subarch" in + PowerMac*) + # Old World Macs use ADB mice, and New World Macs use USB mice. + if grep -q 'pmac-generation.*OldWorld'; then + default_port="/dev/adbmouse" + elif grep -q 'pmac-generation.*NewWorld'; then + default_port="/dev/input/mice" + else + trace "$func(): cannot autodetect whether Power Macintosh is" \ + "OldWorld or NewWorld; something amiss with /proc/cpuinfo?" + fi + ;; + *) + trace "$func(): no good defaults known for non-PowerMac PowerPC" \ + "mouse configuration" + ;; + esac + else + trace "$func(): cannot autodetect PowerPC sub-architecture;" \ + "/proc/cpuinfo does not exist or is not readable" + fi + ;; + sparc) + # Assume SPARC machines use Sun (bus) mice. + # TODO: It would be good to be able to detect Ultra AXe motherboards, + # which use PS/2 peripherals, but I don't know if that is possible. + default_port="/dev/sunmouse" + ;; + esac + # if configuring for the first time, ask if user wants to autodetect if [ -z "$RECONFIGURE" ]; then while :; do @@ -1166,6 +1263,14 @@ trace "$func(): not prompting for mouse autodetection; reconfiguring" fi + # XXX: commented out until BR knows for sure that this is correct + # If using Linux kernel 2.6, force /dev/input/mice to be the default. + # if dpkg --compare-versions "$(uname -r)" gt "2.6"; then + # trace "$func(): Linux 2.6 or later detected; forcing default mouse port" \ + # "to /dev/input/mice" + # default_port="/dev/input/mice" + # fi + db_subst xserver-xfree86/config/inputdevice/mouse/port choices \ "$mouse_port_choices" auto_answer db_input "$PRIORITY" \