Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Oct 2001 12:37:10 -0400
From:      Lee Nelson <jld123@pobox.com>
To:        freebsd-hardware@FreeBSD.ORG
Subject:   psm.c: KVM and Mouse Problems
Message-ID:  <3BD83FB6.FE111AB9@pobox.com>

next in thread | raw e-mail | index | archive | help
Hello,

  I am having trouble with a Microsoft Intellimouse-style mouse,
when it is connected through a KVM.  There is no trouble when the
mouse is connected directly to the PS/2 port.  A more complete
description follows.
 
  I've been digging through the source of psm.c for the last
few hours, and was wondering about the approach that FreeBSD
developers use for hardware drivers.  psm.c is a monolithic
mouse driver; I'm wondering if there is a technical reason
why different types of mice aren't represented by different
drivers.

Hardware:

  MOUSE: "Microsoft Wheel Mouse Optical USB and PS/2 Compatible"
         this is a USB mouse, boxed with a PS/2 adapter.  The PS/2
         adapter was used at all times.

  KVM:   "Linksys Proconnect 4 station CPU switch"  (rebadged ATEN)
  MB:    Asus P5A w/ AMD k6-III 500Mhz

Log Messages:

  Mouse connected directly to PS/2 port:
 
    psm0: <PS/2 Mouse> irq 12 on atkbdc0
    psm0: model Intellimouse, device ID 3

  Mouse connected through KVM:

    psm0: failed to get data.
    psm0: <PS/2 Mouse> irq 12 on atkbdc0
    psm0: model Generic PS/2 mouse, device ID 0

Symptoms:

  Mouse works fine when connected directly to PS/2 port.

  When connected through a KVM, the mouse initially works
fine in text mode, using moused.  When X is started, the
mouse works for a minute or two (of constant mousing), and
then the mouse pointer jumps all over the screen, and random
mouse button presses are registered.

  The mouse KVM combo works well with other OS's, specifically
Linux 2.2.x, Mac OS 9, and Windows 98.  Incidentally, the hardware
I am currently using for FreeBSD was previously running Linux,
and the mouse worked fine.

What I tried:

  I've tried using moused for X (/dev/sysmouse).  I've also
tried stopping moused and using /dev/psm0 directly, with
the PS/2 protocol.  The IMPS/2 protocol, which used to
work under XFree86 3.x, no longer is accepted as a valid
option.

What I think it is (100% conjecture):

  The KVM appears to not allow the computer to query the
mouse.  Instead, it responds for the mouse, claiming to
be a generic PS/2 device.  But the raw mouse data is sent 
to the computer, with no filtering.  FreeBSD believes that
a generic mouse is present, when in fact Intellimouse
type data is being sent, thus confusing the mouse driver.

  I assume the problem lies in psm.c.  I am looking at
that file to see if I can force it to use the Intellimouse
protocol, but I'd like to know if there is a better way.
Surely, a lot of people out there are using KVM's. :)

  Thanks so much in advance,

    Lee Nelson

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hardware" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3BD83FB6.FE111AB9>