Introduction
The Linux Input Driver project is a project that replace the current handling of keyboards, mice and
joysticks in Linux. It's finally modular, and attempts to merge as much of architecture independent
code as possible. For mice, keyboards, joysticks and other input devices it tries to create a
simple, easy to program for and uniform API, with straightforward binding to XInput.
The project is progressing quite rapidly, already supporting all previously supported PC/x86
devices, and more. Support for other architectures is lagging a little, but that's going to be fixed
soon.
Many of the drivers were improved significantly during the proces of rewriting them for the Input
Driver project - for example serial MouseSystems mice have two times the refresh rate with the Input
Drivers (48 updates/sec), which makes them finally comfortable to use, AT keyboards and PS/2 mice
can be plugged in and out at runtime, without problems, analog joysticks have much better resolution
(9-12 bits). No more problems with autorepeat on Toshiba laptops, because autorepeat is done by
software. It will soon offer tighter integration with
ALSA
sound drivers for better gameport support. And more and more.
Parts of the Input Driver project are already integrated in the kernel - the core, userland
interface modules and USB input device drivers are a part of the
kernel USB support.
A patch was created to replace the in-kernel Joystick Driver project with new
Input Drivers. It adds significant benefits and fixes many bugs. Because the
joystick driver is self contained and because the existing USB input device
support will be use, there is a hope this change will happen in the 2.4 kernel
cycle. See
http://www.suse.cz/development/input/joystick.html.
Replacing current keyboard and mouse drivers is a much larger surgery to the kernel, although needed
badly. Because of that, integration of the rest of the Input Driver project will have to wait till
the release of a developmental 2.5 kernel. It will go together with the rest of the
Linux Console Project.
News
2000/08/19 - Fixed support for PSX pads
2000/08/19 - Added IM Explorer support, changed mousedev to emulate IM Ex instead of GenPS/2 for 5 buttons
2000/08/18 - Added support for IBM RapidAccess and Chicony multimedia keyboards
2000/08/17 - Fixed ns558 to correctly allocate its i/o region.
2000/08/17 - Added a link to Franz Sirl's
Input/PPC page
2000/08/17 - Merged in kernel USB fixes, fixed GenPS/2 emulation
2000/07/14 - Fixed direction gamepad in sidewinder
2000/06/25 - Fixed gamecon and db9
2000/06/24 - Fixed support for SpaceBall 4000 FLX
2000/06/23 - Fixed oops in joydev, evdev and mousedev
2000/06/22 - Joystick input drivers are in the 2.4.0-test2 kernel!
2000/06/21 - Created a joystick-only input patch, see
http://www.suse.cz/development/input/joystick.html
2000/06/21 - Added support for ESS Solo1 and S3 SonicVibes PCI gameports
2000/06/08 - Updated installation guidelines - see Quick Start
2000/06/08 - Added support for two ThrustMaster DirectConnect joysticks on one gameport, fully functional
2000/06/07 - Saitek Cyborg 3D support fully functional in the analog driver
2000/06/06 - Added support for Gravis Xterminator DualControl, better support for Xterminator Digital
Current version
The Input Drivers are still under heavy development. Because of that, it is not convenient to make
versioned tarball or even rpm/deb releases, because for them to be useful the releases would have to
be too frequent.
We are using CVS for keeping and distriubiting the drivers right now. As soon as the driver reach
some state where they wouldn't happen to be obsoleted by new versions every few days, I'll make a
bigger release - 1.0.0 - of the drivers. For now, the drivers are in the same CVS tree as the
Linux Console Project. This is because they
depend on each other a lot and thus it is useful to develop them together. Also, you might want to
take a look at the
SourceForge page of
the Console/Input project.
Documentation
You can find some documentation in the linux/Documentation/input directory in the CVS tree
- it's not much, but it should get you started. A lot of it will come later, when I'm finished with
writing the drivers. Anyway, using and configuring the drivers is very straightforward, so I
don't think you'll have any trouble with that. Should you have any, just mail me, the e-mail address
is at the end of this page.
Send any questions, comments, bug reports to:
Vojtech Pavlik <vojtech@suse.cz>



