Bug 50921

Summary: RFE: usb mouse on laptop with ps/2 touchpad
Product: [Retired] Red Hat Linux Reporter: teuben
Component: redhat-config-mouseAssignee: Brent Fox <bfox>
Status: CLOSED RAWHIDE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-12-23 06:55:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description teuben 2001-08-04 21:11:49 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.6-3.1 i686)

Description of problem:
nominally either USB or PS2 will work, not both. I tried it, but
was not happy that way. So, rebooted, let kudzu come up but despite
that i choose to keep USB (was a bad idea) and stuck the external
mouse in the PS2, X would not start and coredumped because /dev/mouse
was not present (thinking it was usb, also proven by /etc/sysconfig/mouse).
started X again (i was stupid) and then the
machine hung. The only way to get out of this to run manually
mouseconfig and tag it as PS2 again.
Basically USB external and touchpad PS2 together on laptops is
a problem which I'd love to solve, but don't see how yet.

How reproducible:
Always

Steps to Reproduce:
1. put mouse in usb port
2. reboot and let kudzu select usb mouse
3. start x, it will fail
4. start x, and my machine hung, needed to powerboot
5. run mousconfig, as kudzu would not detect change of hardware
	

Additional info:

Comment 1 Glen Foster 2001-08-06 22:41:23 UTC
We (Red Hat) should try to fix this for the next release.

Comment 2 Pete Zaitcev 2001-08-07 01:07:23 UTC
I do not see how and what I can fix here.

Glen, you marked this is "SHOULD", please tell me what
you want me to do.

If we are asked to pull PS/2 events into HID framework,
then I'd rather not do it for 7.2 (8.0 - perhaps).
Too much change too late into the release.


Comment 3 Byron Miller 2001-08-10 17:39:10 UTC
I have a DELL c600 with a similar type scenerio. I have  USB mouse when docked 
and luckily don't have the laptop open to touch the touchpad.  when undocked i 
have to run mouseconfig again to switch to the ps2 mouse (and reboot).

Is there a way to pass a parameter to the kernel or kudzu for docked/undocked 
profiles or something similar? docked i have USB mouse, passthrough video 
(which was another interesting thing to fix in the xfree86-4 config) and a scsi 
card.. undocked i'm on eth1 and ps2 mouse.. i have to manually reconfigure as 
kudzu only recognizes the changes the first time it happens.

Comment 4 Pete Zaitcev 2001-08-10 21:12:03 UTC
Thanks, it is getting clearer.

If kudzu cannot detect a change, it's a bug in kudzu.
In my testing it keeps detecting it indefinitely,
unless you say it "Keep Configuration" once, then it
goes deaf to changes. It think it is a bug that we
cannot make it "unstuck".

Things like putting PS/2 mouse into the HID framework
are done on R&D budget normally. For instance, keyboard
works exactly like you say: plug USB keyboard in and
you can type ON BOTH; pull it out and you can continue
typing on built-in keyboard. That work was sponsored
by SuSE Labs and done by Vojtech Pavlik.

In any case it's not something that I can fix easily
before 7.2 goes out. Let me bug Vojtech, he might have
a candidate patch - in that case we may stuff it into
the first errata, or as minimum Raw Hide.

Comment 5 Byron Miller 2001-08-12 17:31:19 UTC
Basically i think kudzu is finding the internal ps2 pointing devices when i
install (since i couldn't install docked because the monitor passthrough doesn't
work until i configure x to use bios and extern_disp).  


When adding or removing the PS2 external mouse or USB external mouse (ps2 at
home, USB on the docking station at work) it seems to confuse the system since
both devices have different paths under /dev.  If i use USB at work and ps2 was
used during last reboot the HID driver doesn't seem to get loaded (kept
configuration in kudzu for ps2??) and when i switch back to ps2 i have to run
mouseconfig to rebuild the links to /dev/psaux. anyway to unkeep both
configurations and have them noticed on boot?  I have an ethernet on the docking
station and an ethernet on the laptop that i use at home and at work, so i just
had kudzu keep both configurations and i setup dhcp to boot on both interfaces
to detect when i'm at home and work. this is impossible as it appears to be to
me because there doesn't seem to be anything that will detect which port the
mouse is listening on with both devices configured.

Is there any known configuration where by defualt the ineternal "eraser" mouse
and touchpad will work?  By default i can't get x to start without an external
mouse configured (no pointing devices error)  is there a way i can get x to
probe the inernal devices so they always work and then have kudzu or mod probe
determine which external device is install. (i guess a HAL for mice in a sense..)

if you have any clues on getting a base x configured to use internal mice that
would be a good starting point for me to work around it.

And if you can pass parameters on install  to use an external
display/passthrough display on a future release of redhat (or make it seemless
based on detecting the popular docking stations on bootup through kudzu hehe)
that would be excellent

Comment 6 Pete Zaitcev 2001-08-19 19:24:13 UTC
I think mouseconfig is the only answer right now.


Comment 7 Pete Zaitcev 2001-08-21 19:04:39 UTC
Track a SF project <http://www.sf.net/projects/linuxconsole>.
jsimmons says they have a mouse driver that feeds into Input/HID.

Comment 8 Pete Zaitcev 2001-12-23 08:23:58 UTC
A considerable debate is going on about the best means
to implement the workaround. Some people wish to pump
events through gpm.

Meanwhile, here's an elegant workaround by sct, for the
knowledge base (I think it requires XF86 4.x):

From: "Stephen C. Tweedie" sct
Subject: Re: hotplub, usb, mice
Date: Fri, 30 Nov 2001 10:36:08 +0000

> This set would make USB mice work *much* better; just plug it in and it'll
> work w/o restarting X

That's exactly how my laptop already works with the addition of the
trivial X config section below.  It's very very easy.

Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Device" "/dev/input/mice"
        Option      "Protocol" "IMPS/2"
        Option      "Emulate3Buttons" "on"
        Option      "ZAxisMapping" "4 5"
        Option      "AlwaysCore" "on"
EndSection

The Identifier "mouse1" distinguishes it from the primary pointer, but
the "alwayscore" option means that mouse1 always generates core
pointer events so you don't have to explicitly enable it with
xsetpointer.  The kernel does all the rest of the magic for you.  It
works whether or not there's a mouse plugged in when X starts.

Cheers,
 Stephen



Comment 9 Pete Zaitcev 2002-03-23 19:54:28 UTC
Same recipy, but more comprehensive:

----------------------------------------------
From: Owen Taylor
Date: 07 Jan 2002 11:37:51 -0500
Subject: Better support for mixed PS/2 and USB mice

Just noticed that Alex and I both had "fixed" our XF86Config in
the following way, when we were helping Jonathan to do the same
thing.

If you want to be able to hot-plug an external USB mouse in
confunction with the internal "mouse" of a laptop, instead
of having Kudzu rewrite the XF86Config when it detects
a USB mouse, set up both mice in the XF86Config:

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Device" "/dev/mouse"
        Option      "Protocol" "PS/2"
        Option      "Emulate3Buttons" "off"
        Option      "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Device" "/dev/input/mice"
        Option      "Protocol" "ImPS/2"
        Option      "Emulate3Buttons" "off"
        Option      "ZAxisMapping" "4 5"
EndSection

Then in the ServerLayout section put:

        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Mouse1" "SendCoreEvents"

I don't see why we can't always set up our XF86Config this way.

Regards,
                                        Owen


Comment 10 Pete Zaitcev 2002-06-19 18:10:29 UTC
Bill says we might need some kernel job after all;
See 67032 for justification and 35215 for actual patch.
Investigating.


Comment 11 Jos van den Oever 2002-08-24 09:45:39 UTC
This not entirely related but still...
I've installed (null) with an external IMPS/2 mouse attached to my laptop. Upon
rebooting without this mouse, the trackpad of my compaq presario 1926, which
only works with PS/2 despite the up/down arrow underneath, wasn't detected at
startup. 

I solved this by editing /etc/X11/XF86Config, it would be nicer if no user
intervention after a change of pointer device was necessary. Of course
hotplugging  the mouse would be really fantastic and foolproof.



Comment 12 Pete Zaitcev 2002-11-04 21:05:32 UTC
The fix is now implemented in RH8.0, but it hit a little snag.
If installation is done with PS/2, Anaconda uses /dev/mouse for the PS/2 part.
When a USB mouse is connected, kudzu replaces /dev/mouse symlink previously
pointing to /dev/psaux with /dev/input/mice. The X11 opens /dev/mouse
and /dev/input/mice, but they point to the same place.

Comment 13 Brent Fox 2002-12-12 19:22:39 UTC
I'm not sure why this was assigned to redhat-config-mouse.  All it does is edit
the /etc/sysconfig/mouse and /etc/X11/XF86Config files.  It doesn't change
anything in /dev/

Comment 14 Brent Fox 2002-12-23 06:55:46 UTC
I don't know about the links in /dev, but I do know that plugging in a USB mouse
into a system with a ps/2 mouse seems to "just work" in the latest tree as far
as X is concerned.  The USB mouse won't work in console mode until
redhat-config-mouse is run so that /etc/sysconfig/mouse is configured to enable
both mice.  Closing as 'Rawhide'