usb mouse support update plans
psionic at csh.rit.edu
Tue Jan 3 15:23:49 PST 2006
On my grande circuit of trying to make mouse support better for FreeBSD,
I've finally come about to working on usb mice. I've done a bit of
research about usb hid, and I need some feedback on where I should take
usb mouse support.
In case you didn't read my previous post about a new moused and psm
driver: The reengineered psm(4) exists to provide moused with a userland
interface for talking to the mouse. Thusly, all functionality (specific
mouse support) is provided through userland drivers.
Back to usb mice...
I've been playing some with usbhidctl(1) and usbhidaction(1)
aswell as perusing the ums(4) sourcecode. It looks like ums(4) just
talks uhid (looking up hid usage pages, etc). Turns out you can do this
from the userland aswell.
The immediate question is should I follow my psm work by turning usb
mouse support into a userland driver for moused? That is, ums(4) would
go away and usb mouse support would be provided by moused alone.
Alternatively, instead of tossing out ums, I could work on
fixing it so known-broken mice work properly with it. USB HID seems to
be a very set standard, though some manufs decide to provide nonstandard
data in hid usage pages.
Moral of this story is that I want to make known-broken mice work with
FreeBSD. This includes *several* Microsoft USB models, many ps/2 mice
(including usb->ps2 adapted mice), and probably others.
I'm willing to do either option for ums - turn it into a userland driver
for moused or just fix what's broken with it as is. Either way, I need
to know what mice don't work properly. Ideally going for a more unified
mouse driver structure (userland moused drivers, for example) would be
best in my opinion.
How can you help? If you are having issues with mouse support in
FreeBSD I need to know the following:
- Mouse model and brand (as specific as possible would help)
- Symptoms of strange behavior
- Environment (moused+ums? plain ums in X? plain psm in X? moused
with serial mice?)
More information about the freebsd-current