The old version of the software will remain here for reference purposes.
Joymap - joystick programming for Linux
The standard Linux joystick driver supports several axes and buttons. However, not all software supports all axes and buttons. The current disadvantages of the Linux joystick driver include:
The Joymap driver and software allows the joystick subsystem to be programmed by installing virtual joysticks, a virtual keyboard and virtual mouse. Existing joysticks are identified by product and vendor so that the mapping is always correct even if the joysticks are unplugged and reinserted.
- If several joysticks are available on a platform, then it may not be possible to use all of the joysticks in a particular application. Applications often allow only one joystick to be selected as a controller.
- Not all buttons or joystick axes can be assigned to actions within the program.
- For USB joysticks, the order of detection of the joystick determines which joystick number the joystick is assigned to. If the joysticks need to be unplugged and then reinserted, the joystick numbering may differ.
The driver and software is in an early alpha stage, but it has been used successfully on the authors machine. No warranty is supplied whatsoever. Several sections of the code do not perform sanity checks to ensure the correct working of the system and the compiler has been used, but is not comlpetely tested.
If you have problems you can contact me via email at alexandre.hardygmail.com. However, writing software is not my primary job! So it may be some time before I can provide a satisfactory solution to your problem. I would be interested to hear from anyone who wishes to take over maintenance of the driver and related software.
The Joymap driver has been designed for kernel 2.6.19. If you wish to provide patches for different kernels, please let me know! Instructions for installing follow below (there are NO autoconf/automake scripts or any such pleasantries!)
- Download joymap-0.0.1.tar.gz
- Extract the files
tar xvzf joymap-0.0.1.tar.gz
- cd driver
- cp joymap.ko /lib/modules/`uname -r`/kernel/drivers/input (as root)
- depmod -a (as root)
- cd ../joymap
- If you use udev, cp 70-joymap.rules /etc/udev/rules.d (as root)
- Otherwise (no udev) make the device node for programming
mknod /dev/mapper c 240 0 (as root)
- Copy loadmap and unmap to somewhere accessible in your path
- Copy the manual pages to an appropriate location
- Make sure that joymap is loaded before other joystick drivers. On my Slackware system with USB joysticks I modified /etc/rc.d/rc.local to begin with
A configuration file is required to define the mapping. The details of this configuration file are described in config.pdf.
The mapping can be extended by writing short programs to control a virtual joystick, whose output can then be mapped through the joystick mapping driver again. The details of this programming langauge, with a few short examples are described in program.pdf.