14c79e98bSDmitry Torokhov.. include:: <isonum.txt> 24c79e98bSDmitry Torokhov 3ad649380SDmitry Torokhov.. _joystick-doc: 4ad649380SDmitry Torokhov 54c79e98bSDmitry TorokhovIntroduction 64c79e98bSDmitry Torokhov============ 74c79e98bSDmitry Torokhov 84c79e98bSDmitry TorokhovThe joystick driver for Linux provides support for a variety of joysticks 94c79e98bSDmitry Torokhovand similar devices. It is based on a larger project aiming to support all 104c79e98bSDmitry Torokhovinput devices in Linux. 114c79e98bSDmitry Torokhov 124c79e98bSDmitry TorokhovThe mailing list for the project is: 134c79e98bSDmitry Torokhov 144c79e98bSDmitry Torokhov linux-input@vger.kernel.org 154c79e98bSDmitry Torokhov 164c79e98bSDmitry Torokhovsend "subscribe linux-input" to majordomo@vger.kernel.org to subscribe to it. 174c79e98bSDmitry Torokhov 184c79e98bSDmitry TorokhovUsage 194c79e98bSDmitry Torokhov===== 204c79e98bSDmitry Torokhov 214c79e98bSDmitry TorokhovFor basic usage you just choose the right options in kernel config and 224c79e98bSDmitry Torokhovyou should be set. 234c79e98bSDmitry Torokhov 244c79e98bSDmitry TorokhovUtilities 254c79e98bSDmitry Torokhov--------- 264c79e98bSDmitry Torokhov 274c79e98bSDmitry TorokhovFor testing and other purposes (for example serial devices), there is a set 284c79e98bSDmitry Torokhovof utilities, such as ``jstest``, ``jscal``, and ``evtest``, 294c79e98bSDmitry Torokhovusually packaged as ``joystick``, ``input-utils``, ``evtest``, and so on. 304c79e98bSDmitry Torokhov 314c79e98bSDmitry Torokhov``inputattach`` utility is required if your joystick is connected to a 324c79e98bSDmitry Torokhovserial port. 334c79e98bSDmitry Torokhov 344c79e98bSDmitry TorokhovDevice nodes 354c79e98bSDmitry Torokhov------------ 364c79e98bSDmitry Torokhov 374c79e98bSDmitry TorokhovFor applications to be able to use the joysticks, device nodes should be 384c79e98bSDmitry Torokhovcreated in /dev. Normally it is done automatically by the system, but 394c79e98bSDmitry Torokhovit can also be done by hand:: 404c79e98bSDmitry Torokhov 414c79e98bSDmitry Torokhov cd /dev 424c79e98bSDmitry Torokhov rm js* 434c79e98bSDmitry Torokhov mkdir input 444c79e98bSDmitry Torokhov mknod input/js0 c 13 0 454c79e98bSDmitry Torokhov mknod input/js1 c 13 1 464c79e98bSDmitry Torokhov mknod input/js2 c 13 2 474c79e98bSDmitry Torokhov mknod input/js3 c 13 3 484c79e98bSDmitry Torokhov ln -s input/js0 js0 494c79e98bSDmitry Torokhov ln -s input/js1 js1 504c79e98bSDmitry Torokhov ln -s input/js2 js2 514c79e98bSDmitry Torokhov ln -s input/js3 js3 524c79e98bSDmitry Torokhov 534c79e98bSDmitry TorokhovFor testing with inpututils it's also convenient to create these:: 544c79e98bSDmitry Torokhov 554c79e98bSDmitry Torokhov mknod input/event0 c 13 64 564c79e98bSDmitry Torokhov mknod input/event1 c 13 65 574c79e98bSDmitry Torokhov mknod input/event2 c 13 66 584c79e98bSDmitry Torokhov mknod input/event3 c 13 67 594c79e98bSDmitry Torokhov 604c79e98bSDmitry TorokhovModules needed 614c79e98bSDmitry Torokhov-------------- 624c79e98bSDmitry Torokhov 634c79e98bSDmitry TorokhovFor all joystick drivers to function, you'll need the userland interface 644c79e98bSDmitry Torokhovmodule in kernel, either loaded or compiled in:: 654c79e98bSDmitry Torokhov 664c79e98bSDmitry Torokhov modprobe joydev 674c79e98bSDmitry Torokhov 684c79e98bSDmitry TorokhovFor gameport joysticks, you'll have to load the gameport driver as well:: 694c79e98bSDmitry Torokhov 704c79e98bSDmitry Torokhov modprobe ns558 714c79e98bSDmitry Torokhov 724c79e98bSDmitry TorokhovAnd for serial port joysticks, you'll need the serial input line 734c79e98bSDmitry Torokhovdiscipline module loaded and the inputattach utility started:: 744c79e98bSDmitry Torokhov 754c79e98bSDmitry Torokhov modprobe serport 764c79e98bSDmitry Torokhov inputattach -xxx /dev/tts/X & 774c79e98bSDmitry Torokhov 784c79e98bSDmitry TorokhovIn addition to that, you'll need the joystick driver module itself, most 794c79e98bSDmitry Torokhovusually you'll have an analog joystick:: 804c79e98bSDmitry Torokhov 814c79e98bSDmitry Torokhov modprobe analog 824c79e98bSDmitry Torokhov 834c79e98bSDmitry TorokhovFor automatic module loading, something like this might work - tailor to 844c79e98bSDmitry Torokhovyour needs:: 854c79e98bSDmitry Torokhov 864c79e98bSDmitry Torokhov alias tty-ldisc-2 serport 874c79e98bSDmitry Torokhov alias char-major-13 input 884c79e98bSDmitry Torokhov above input joydev ns558 analog 894c79e98bSDmitry Torokhov options analog map=gamepad,none,2btn 904c79e98bSDmitry Torokhov 914c79e98bSDmitry TorokhovVerifying that it works 924c79e98bSDmitry Torokhov----------------------- 934c79e98bSDmitry Torokhov 944c79e98bSDmitry TorokhovFor testing the joystick driver functionality, there is the jstest 954c79e98bSDmitry Torokhovprogram in the utilities package. You run it by typing:: 964c79e98bSDmitry Torokhov 974c79e98bSDmitry Torokhov jstest /dev/input/js0 984c79e98bSDmitry Torokhov 994c79e98bSDmitry TorokhovAnd it should show a line with the joystick values, which update as you 1004c79e98bSDmitry Torokhovmove the stick, and press its buttons. The axes should all be zero when the 1014c79e98bSDmitry Torokhovjoystick is in the center position. They should not jitter by themselves to 1024c79e98bSDmitry Torokhovother close values, and they also should be steady in any other position of 1034c79e98bSDmitry Torokhovthe stick. They should have the full range from -32767 to 32767. If all this 1044c79e98bSDmitry Torokhovis met, then it's all fine, and you can play the games. :) 1054c79e98bSDmitry Torokhov 1064c79e98bSDmitry TorokhovIf it's not, then there might be a problem. Try to calibrate the joystick, 1074c79e98bSDmitry Torokhovand if it still doesn't work, read the drivers section of this file, the 1084c79e98bSDmitry Torokhovtroubleshooting section, and the FAQ. 1094c79e98bSDmitry Torokhov 1104c79e98bSDmitry TorokhovCalibration 1114c79e98bSDmitry Torokhov----------- 1124c79e98bSDmitry Torokhov 1134c79e98bSDmitry TorokhovFor most joysticks you won't need any manual calibration, since the 1144c79e98bSDmitry Torokhovjoystick should be autocalibrated by the driver automagically. However, with 1154c79e98bSDmitry Torokhovsome analog joysticks, that either do not use linear resistors, or if you 1164c79e98bSDmitry Torokhovwant better precision, you can use the jscal program:: 1174c79e98bSDmitry Torokhov 1184c79e98bSDmitry Torokhov jscal -c /dev/input/js0 1194c79e98bSDmitry Torokhov 1204c79e98bSDmitry Torokhovincluded in the joystick package to set better correction coefficients than 1214c79e98bSDmitry Torokhovwhat the driver would choose itself. 1224c79e98bSDmitry Torokhov 1234c79e98bSDmitry TorokhovAfter calibrating the joystick you can verify if you like the new 1244c79e98bSDmitry Torokhovcalibration using the jstest command, and if you do, you then can save the 1254c79e98bSDmitry Torokhovcorrection coefficients into a file:: 1264c79e98bSDmitry Torokhov 1274c79e98bSDmitry Torokhov jscal -p /dev/input/js0 > /etc/joystick.cal 1284c79e98bSDmitry Torokhov 1294c79e98bSDmitry TorokhovAnd add a line to your rc script executing that file:: 1304c79e98bSDmitry Torokhov 1314c79e98bSDmitry Torokhov source /etc/joystick.cal 1324c79e98bSDmitry Torokhov 1334c79e98bSDmitry TorokhovThis way, after the next reboot your joystick will remain calibrated. You 1344c79e98bSDmitry Torokhovcan also add the ``jscal -p`` line to your shutdown script. 1354c79e98bSDmitry Torokhov 136eef8abdaSRandy DunlapHardware-specific driver information 137eef8abdaSRandy Dunlap==================================== 1384c79e98bSDmitry Torokhov 1394c79e98bSDmitry TorokhovIn this section each of the separate hardware specific drivers is described. 1404c79e98bSDmitry Torokhov 1414c79e98bSDmitry TorokhovAnalog joysticks 1424c79e98bSDmitry Torokhov---------------- 1434c79e98bSDmitry Torokhov 144eef8abdaSRandy DunlapThe analog.c driver uses the standard analog inputs of the gameport, and thus 1454c79e98bSDmitry Torokhovsupports all standard joysticks and gamepads. It uses a very advanced 1464c79e98bSDmitry Torokhovroutine for this, allowing for data precision that can't be found on any 1474c79e98bSDmitry Torokhovother system. 1484c79e98bSDmitry Torokhov 1494c79e98bSDmitry TorokhovIt also supports extensions like additional hats and buttons compatible 1504c79e98bSDmitry Torokhovwith CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button gamepads. Saitek 1514c79e98bSDmitry TorokhovCyborg 'digital' joysticks are also supported by this driver, because 1524c79e98bSDmitry Torokhovthey're basically souped up CHF sticks. 1534c79e98bSDmitry Torokhov 1544c79e98bSDmitry TorokhovHowever the only types that can be autodetected are: 1554c79e98bSDmitry Torokhov 1564c79e98bSDmitry Torokhov* 2-axis, 4-button joystick 1574c79e98bSDmitry Torokhov* 3-axis, 4-button joystick 1584c79e98bSDmitry Torokhov* 4-axis, 4-button joystick 1594c79e98bSDmitry Torokhov* Saitek Cyborg 'digital' joysticks 1604c79e98bSDmitry Torokhov 1614c79e98bSDmitry TorokhovFor other joystick types (more/less axes, hats, and buttons) support 1624c79e98bSDmitry Torokhovyou'll need to specify the types either on the kernel command line or on the 1634c79e98bSDmitry Torokhovmodule command line, when inserting analog into the kernel. The 1644c79e98bSDmitry Torokhovparameters are:: 1654c79e98bSDmitry Torokhov 1664c79e98bSDmitry Torokhov analog.map=<type1>,<type2>,<type3>,.... 1674c79e98bSDmitry Torokhov 1684c79e98bSDmitry Torokhov'type' is type of the joystick from the table below, defining joysticks 1694c79e98bSDmitry Torokhovpresent on gameports in the system, starting with gameport0, second 'type' 1704c79e98bSDmitry Torokhoventry defining joystick on gameport1 and so on. 1714c79e98bSDmitry Torokhov 1724c79e98bSDmitry Torokhov ========= ===================================================== 1734c79e98bSDmitry Torokhov Type Meaning 1744c79e98bSDmitry Torokhov ========= ===================================================== 1754c79e98bSDmitry Torokhov none No analog joystick on that port 1764c79e98bSDmitry Torokhov auto Autodetect joystick 1774c79e98bSDmitry Torokhov 2btn 2-button n-axis joystick 1784c79e98bSDmitry Torokhov y-joy Two 2-button 2-axis joysticks on an Y-cable 1794c79e98bSDmitry Torokhov y-pad Two 2-button 2-axis gamepads on an Y-cable 1804c79e98bSDmitry Torokhov fcs Thrustmaster FCS compatible joystick 1814c79e98bSDmitry Torokhov chf Joystick with a CH Flightstick compatible hat 1824c79e98bSDmitry Torokhov fullchf CH Flightstick compatible with two hats and 6 buttons 1834c79e98bSDmitry Torokhov gamepad 4/6-button n-axis gamepad 1844c79e98bSDmitry Torokhov gamepad8 8-button 2-axis gamepad 1854c79e98bSDmitry Torokhov ========= ===================================================== 1864c79e98bSDmitry Torokhov 1874c79e98bSDmitry TorokhovIn case your joystick doesn't fit in any of the above categories, you can 1884c79e98bSDmitry Torokhovspecify the type as a number by combining the bits in the table below. This 1894c79e98bSDmitry Torokhovis not recommended unless you really know what are you doing. It's not 1904c79e98bSDmitry Torokhovdangerous, but not simple either. 1914c79e98bSDmitry Torokhov 1924c79e98bSDmitry Torokhov ==== ========================= 1934c79e98bSDmitry Torokhov Bit Meaning 1944c79e98bSDmitry Torokhov ==== ========================= 1954c79e98bSDmitry Torokhov 0 Axis X1 1964c79e98bSDmitry Torokhov 1 Axis Y1 1974c79e98bSDmitry Torokhov 2 Axis X2 1984c79e98bSDmitry Torokhov 3 Axis Y2 1994c79e98bSDmitry Torokhov 4 Button A 2004c79e98bSDmitry Torokhov 5 Button B 2014c79e98bSDmitry Torokhov 6 Button C 2024c79e98bSDmitry Torokhov 7 Button D 2034c79e98bSDmitry Torokhov 8 CHF Buttons X and Y 2044c79e98bSDmitry Torokhov 9 CHF Hat 1 2054c79e98bSDmitry Torokhov 10 CHF Hat 2 2064c79e98bSDmitry Torokhov 11 FCS Hat 2074c79e98bSDmitry Torokhov 12 Pad Button X 2084c79e98bSDmitry Torokhov 13 Pad Button Y 2094c79e98bSDmitry Torokhov 14 Pad Button U 2104c79e98bSDmitry Torokhov 15 Pad Button V 2114c79e98bSDmitry Torokhov 16 Saitek F1-F4 Buttons 2124c79e98bSDmitry Torokhov 17 Saitek Digital Mode 2134c79e98bSDmitry Torokhov 19 GamePad 2144c79e98bSDmitry Torokhov 20 Joy2 Axis X1 2154c79e98bSDmitry Torokhov 21 Joy2 Axis Y1 2164c79e98bSDmitry Torokhov 22 Joy2 Axis X2 2174c79e98bSDmitry Torokhov 23 Joy2 Axis Y2 2184c79e98bSDmitry Torokhov 24 Joy2 Button A 2194c79e98bSDmitry Torokhov 25 Joy2 Button B 2204c79e98bSDmitry Torokhov 26 Joy2 Button C 2214c79e98bSDmitry Torokhov 27 Joy2 Button D 2224c79e98bSDmitry Torokhov 31 Joy2 GamePad 2234c79e98bSDmitry Torokhov ==== ========================= 2244c79e98bSDmitry Torokhov 2254c79e98bSDmitry TorokhovMicrosoft SideWinder joysticks 2264c79e98bSDmitry Torokhov------------------------------ 2274c79e98bSDmitry Torokhov 2284c79e98bSDmitry TorokhovMicrosoft 'Digital Overdrive' protocol is supported by the sidewinder.c 2294c79e98bSDmitry Torokhovmodule. All currently supported joysticks: 2304c79e98bSDmitry Torokhov 2314c79e98bSDmitry Torokhov* Microsoft SideWinder 3D Pro 2324c79e98bSDmitry Torokhov* Microsoft SideWinder Force Feedback Pro 2334c79e98bSDmitry Torokhov* Microsoft SideWinder Force Feedback Wheel 2344c79e98bSDmitry Torokhov* Microsoft SideWinder FreeStyle Pro 2354c79e98bSDmitry Torokhov* Microsoft SideWinder GamePad (up to four, chained) 2364c79e98bSDmitry Torokhov* Microsoft SideWinder Precision Pro 2374c79e98bSDmitry Torokhov* Microsoft SideWinder Precision Pro USB 2384c79e98bSDmitry Torokhov 2394c79e98bSDmitry Torokhovare autodetected, and thus no module parameters are needed. 2404c79e98bSDmitry Torokhov 2414c79e98bSDmitry TorokhovThere is one caveat with the 3D Pro. There are 9 buttons reported, 2424c79e98bSDmitry Torokhovalthough the joystick has only 8. The 9th button is the mode switch on the 2434c79e98bSDmitry Torokhovrear side of the joystick. However, moving it, you'll reset the joystick, 2444c79e98bSDmitry Torokhovand make it unresponsive for about a one third of a second. Furthermore, the 2454c79e98bSDmitry Torokhovjoystick will also re-center itself, taking the position it was in during 2464c79e98bSDmitry Torokhovthis time as a new center position. Use it if you want, but think first. 2474c79e98bSDmitry Torokhov 2484c79e98bSDmitry TorokhovThe SideWinder Standard is not a digital joystick, and thus is supported 2494c79e98bSDmitry Torokhovby the analog driver described above. 2504c79e98bSDmitry Torokhov 2514c79e98bSDmitry TorokhovLogitech ADI devices 2524c79e98bSDmitry Torokhov-------------------- 2534c79e98bSDmitry Torokhov 2544c79e98bSDmitry TorokhovLogitech ADI protocol is supported by the adi.c module. It should support 2554c79e98bSDmitry Torokhovany Logitech device using this protocol. This includes, but is not limited 2564c79e98bSDmitry Torokhovto: 2574c79e98bSDmitry Torokhov 2584c79e98bSDmitry Torokhov* Logitech CyberMan 2 2594c79e98bSDmitry Torokhov* Logitech ThunderPad Digital 2604c79e98bSDmitry Torokhov* Logitech WingMan Extreme Digital 2614c79e98bSDmitry Torokhov* Logitech WingMan Formula 2624c79e98bSDmitry Torokhov* Logitech WingMan Interceptor 2634c79e98bSDmitry Torokhov* Logitech WingMan GamePad 2644c79e98bSDmitry Torokhov* Logitech WingMan GamePad USB 2654c79e98bSDmitry Torokhov* Logitech WingMan GamePad Extreme 2664c79e98bSDmitry Torokhov* Logitech WingMan Extreme Digital 3D 2674c79e98bSDmitry Torokhov 2684c79e98bSDmitry TorokhovADI devices are autodetected, and the driver supports up to two (any 269eef8abdaSRandy Dunlapcombination of) devices on a single gameport, using a Y-cable or chained 2704c79e98bSDmitry Torokhovtogether. 2714c79e98bSDmitry Torokhov 2724c79e98bSDmitry TorokhovLogitech WingMan Joystick, Logitech WingMan Attack, Logitech WingMan 2734c79e98bSDmitry TorokhovExtreme and Logitech WingMan ThunderPad are not digital joysticks and are 2744c79e98bSDmitry Torokhovhandled by the analog driver described above. Logitech WingMan Warrior and 2754c79e98bSDmitry TorokhovLogitech Magellan are supported by serial drivers described below. Logitech 2764c79e98bSDmitry TorokhovWingMan Force and Logitech WingMan Formula Force are supported by the 2774c79e98bSDmitry TorokhovI-Force driver described below. Logitech CyberMan is not supported yet. 2784c79e98bSDmitry Torokhov 2794c79e98bSDmitry TorokhovGravis GrIP 2804c79e98bSDmitry Torokhov----------- 2814c79e98bSDmitry Torokhov 2824c79e98bSDmitry TorokhovGravis GrIP protocol is supported by the grip.c module. It currently 2834c79e98bSDmitry Torokhovsupports: 2844c79e98bSDmitry Torokhov 2854c79e98bSDmitry Torokhov* Gravis GamePad Pro 2864c79e98bSDmitry Torokhov* Gravis BlackHawk Digital 2874c79e98bSDmitry Torokhov* Gravis Xterminator 2884c79e98bSDmitry Torokhov* Gravis Xterminator DualControl 2894c79e98bSDmitry Torokhov 2904c79e98bSDmitry TorokhovAll these devices are autodetected, and you can even use any combination 291eef8abdaSRandy Dunlapof up to two of these pads either chained together or using a Y-cable on a 2924c79e98bSDmitry Torokhovsingle gameport. 2934c79e98bSDmitry Torokhov 2944c79e98bSDmitry TorokhovGrIP MultiPort isn't supported yet. Gravis Stinger is a serial device and is 2954c79e98bSDmitry Torokhovsupported by the stinger driver. Other Gravis joysticks are supported by the 2964c79e98bSDmitry Torokhovanalog driver. 2974c79e98bSDmitry Torokhov 2984c79e98bSDmitry TorokhovFPGaming A3D and MadCatz A3D 2994c79e98bSDmitry Torokhov---------------------------- 3004c79e98bSDmitry Torokhov 3014c79e98bSDmitry TorokhovThe Assassin 3D protocol created by FPGaming, is used both by FPGaming 3024c79e98bSDmitry Torokhovthemselves and is licensed to MadCatz. A3D devices are supported by the 3034c79e98bSDmitry Torokhova3d.c module. It currently supports: 3044c79e98bSDmitry Torokhov 3054c79e98bSDmitry Torokhov* FPGaming Assassin 3D 3064c79e98bSDmitry Torokhov* MadCatz Panther 3074c79e98bSDmitry Torokhov* MadCatz Panther XL 3084c79e98bSDmitry Torokhov 3094c79e98bSDmitry TorokhovAll these devices are autodetected. Because the Assassin 3D and the Panther 3104c79e98bSDmitry Torokhovallow connecting analog joysticks to them, you'll need to load the analog 3114c79e98bSDmitry Torokhovdriver as well to handle the attached joysticks. 3124c79e98bSDmitry Torokhov 3134c79e98bSDmitry TorokhovThe trackball should work with USB mousedev module as a normal mouse. See 314eef8abdaSRandy Dunlapthe USB documentation for how to setup a USB mouse. 3154c79e98bSDmitry Torokhov 3164c79e98bSDmitry TorokhovThrustMaster DirectConnect (BSP) 3174c79e98bSDmitry Torokhov-------------------------------- 3184c79e98bSDmitry Torokhov 3194c79e98bSDmitry TorokhovThe TM DirectConnect (BSP) protocol is supported by the tmdc.c 3204c79e98bSDmitry Torokhovmodule. This includes, but is not limited to: 3214c79e98bSDmitry Torokhov 3224c79e98bSDmitry Torokhov* ThrustMaster Millennium 3D Interceptor 3234c79e98bSDmitry Torokhov* ThrustMaster 3D Rage Pad 3244c79e98bSDmitry Torokhov* ThrustMaster Fusion Digital Game Pad 3254c79e98bSDmitry Torokhov 3264c79e98bSDmitry TorokhovDevices not directly supported, but hopefully working are: 3274c79e98bSDmitry Torokhov 3284c79e98bSDmitry Torokhov* ThrustMaster FragMaster 3294c79e98bSDmitry Torokhov* ThrustMaster Attack Throttle 3304c79e98bSDmitry Torokhov 3314c79e98bSDmitry TorokhovIf you have one of these, contact me. 3324c79e98bSDmitry Torokhov 3334c79e98bSDmitry TorokhovTMDC devices are autodetected, and thus no parameters to the module 3344c79e98bSDmitry Torokhovare needed. Up to two TMDC devices can be connected to one gameport, using 335eef8abdaSRandy Dunlapa Y-cable. 3364c79e98bSDmitry Torokhov 3374c79e98bSDmitry TorokhovCreative Labs Blaster 3384c79e98bSDmitry Torokhov--------------------- 3394c79e98bSDmitry Torokhov 3404c79e98bSDmitry TorokhovThe Blaster protocol is supported by the cobra.c module. It supports only 3414c79e98bSDmitry Torokhovthe: 3424c79e98bSDmitry Torokhov 3434c79e98bSDmitry Torokhov* Creative Blaster GamePad Cobra 3444c79e98bSDmitry Torokhov 345eef8abdaSRandy DunlapUp to two of these can be used on a single gameport, using a Y-cable. 3464c79e98bSDmitry Torokhov 3474c79e98bSDmitry TorokhovGenius Digital joysticks 3484c79e98bSDmitry Torokhov------------------------ 3494c79e98bSDmitry Torokhov 3504c79e98bSDmitry TorokhovThe Genius digitally communicating joysticks are supported by the gf2k.c 3514c79e98bSDmitry Torokhovmodule. This includes: 3524c79e98bSDmitry Torokhov 3534c79e98bSDmitry Torokhov* Genius Flight2000 F-23 joystick 3544c79e98bSDmitry Torokhov* Genius Flight2000 F-31 joystick 3554c79e98bSDmitry Torokhov* Genius G-09D gamepad 3564c79e98bSDmitry Torokhov 3574c79e98bSDmitry TorokhovOther Genius digital joysticks are not supported yet, but support can be 3584c79e98bSDmitry Torokhovadded fairly easily. 3594c79e98bSDmitry Torokhov 3604c79e98bSDmitry TorokhovInterAct Digital joysticks 3614c79e98bSDmitry Torokhov-------------------------- 3624c79e98bSDmitry Torokhov 3634c79e98bSDmitry TorokhovThe InterAct digitally communicating joysticks are supported by the 3644c79e98bSDmitry Torokhovinteract.c module. This includes: 3654c79e98bSDmitry Torokhov 3664c79e98bSDmitry Torokhov* InterAct HammerHead/FX gamepad 3674c79e98bSDmitry Torokhov* InterAct ProPad8 gamepad 3684c79e98bSDmitry Torokhov 3694c79e98bSDmitry TorokhovOther InterAct digital joysticks are not supported yet, but support can be 3704c79e98bSDmitry Torokhovadded fairly easily. 3714c79e98bSDmitry Torokhov 3724c79e98bSDmitry TorokhovPDPI Lightning 4 gamecards 3734c79e98bSDmitry Torokhov-------------------------- 3744c79e98bSDmitry Torokhov 3754c79e98bSDmitry TorokhovPDPI Lightning 4 gamecards are supported by the lightning.c module. 3764c79e98bSDmitry TorokhovOnce the module is loaded, the analog driver can be used to handle the 3774c79e98bSDmitry Torokhovjoysticks. Digitally communicating joystick will work only on port 0, while 3784c79e98bSDmitry Torokhovusing Y-cables, you can connect up to 8 analog joysticks to a single L4 3794c79e98bSDmitry Torokhovcard, 16 in case you have two in your system. 3804c79e98bSDmitry Torokhov 3814c79e98bSDmitry TorokhovTrident 4DWave / Aureal Vortex 3824c79e98bSDmitry Torokhov------------------------------ 3834c79e98bSDmitry Torokhov 384eef8abdaSRandy DunlapSoundcards with a Trident 4DWave DX/NX or Aureal Vortex/Vortex2 chipset 3854c79e98bSDmitry Torokhovprovide an "Enhanced Game Port" mode where the soundcard handles polling the 3864c79e98bSDmitry Torokhovjoystick. This mode is supported by the pcigame.c module. Once loaded the 3874c79e98bSDmitry Torokhovanalog driver can use the enhanced features of these gameports.. 3884c79e98bSDmitry Torokhov 3894c79e98bSDmitry TorokhovCrystal SoundFusion 3904c79e98bSDmitry Torokhov------------------- 3914c79e98bSDmitry Torokhov 3924c79e98bSDmitry TorokhovSoundcards with Crystal SoundFusion chipsets provide an "Enhanced Game 3934c79e98bSDmitry TorokhovPort", much like the 4DWave or Vortex above. This, and also the normal mode 3944c79e98bSDmitry Torokhovfor the port of the SoundFusion is supported by the cs461x.c module. 3954c79e98bSDmitry Torokhov 3964c79e98bSDmitry TorokhovSoundBlaster Live! 3974c79e98bSDmitry Torokhov------------------ 3984c79e98bSDmitry Torokhov 3994c79e98bSDmitry TorokhovThe Live! has a special PCI gameport, which, although it doesn't provide 4004c79e98bSDmitry Torokhovany "Enhanced" stuff like 4DWave and friends, is quite a bit faster than 4014c79e98bSDmitry Torokhovits ISA counterparts. It also requires special support, hence the 4024c79e98bSDmitry Torokhovemu10k1-gp.c module for it instead of the normal ns558.c one. 4034c79e98bSDmitry Torokhov 4044c79e98bSDmitry TorokhovSoundBlaster 64 and 128 - ES1370 and ES1371, ESS Solo1 and S3 SonicVibes 4054c79e98bSDmitry Torokhov------------------------------------------------------------------------ 4064c79e98bSDmitry Torokhov 4074c79e98bSDmitry TorokhovThese PCI soundcards have specific gameports. They are handled by the 4084c79e98bSDmitry Torokhovsound drivers themselves. Make sure you select gameport support in the 4094c79e98bSDmitry Torokhovjoystick menu and sound card support in the sound menu for your appropriate 4104c79e98bSDmitry Torokhovcard. 4114c79e98bSDmitry Torokhov 4124c79e98bSDmitry TorokhovAmiga 4134c79e98bSDmitry Torokhov----- 4144c79e98bSDmitry Torokhov 4154c79e98bSDmitry TorokhovAmiga joysticks, connected to an Amiga, are supported by the amijoy.c 4164c79e98bSDmitry Torokhovdriver. Since they can't be autodetected, the driver has a command line: 4174c79e98bSDmitry Torokhov 4184c79e98bSDmitry Torokhov amijoy.map=<a>,<b> 4194c79e98bSDmitry Torokhov 4204c79e98bSDmitry Torokhova and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of 4214c79e98bSDmitry Torokhovthe Amiga. 4224c79e98bSDmitry Torokhov 4234c79e98bSDmitry Torokhov ====== =========================== 4244c79e98bSDmitry Torokhov Value Joystick type 4254c79e98bSDmitry Torokhov ====== =========================== 4264c79e98bSDmitry Torokhov 0 None 4274c79e98bSDmitry Torokhov 1 1-button digital joystick 4284c79e98bSDmitry Torokhov ====== =========================== 4294c79e98bSDmitry Torokhov 4304c79e98bSDmitry TorokhovNo more joystick types are supported now, but that should change in the 4314c79e98bSDmitry Torokhovfuture if I get an Amiga in the reach of my fingers. 4324c79e98bSDmitry Torokhov 4334c79e98bSDmitry TorokhovGame console and 8-bit pads and joysticks 4344c79e98bSDmitry Torokhov----------------------------------------- 4354c79e98bSDmitry Torokhov 4364c79e98bSDmitry TorokhovThese pads and joysticks are not designed for PCs and other computers 4374c79e98bSDmitry TorokhovLinux runs on, and usually require a special connector for attaching 4384c79e98bSDmitry Torokhovthem through a parallel port. 4394c79e98bSDmitry Torokhov 4404c79e98bSDmitry TorokhovSee :ref:`joystick-parport` for more info. 4414c79e98bSDmitry Torokhov 4424c79e98bSDmitry TorokhovSpaceTec/LabTec devices 4434c79e98bSDmitry Torokhov----------------------- 4444c79e98bSDmitry Torokhov 4454c79e98bSDmitry TorokhovSpaceTec serial devices communicate using the SpaceWare protocol. It is 4464c79e98bSDmitry Torokhovsupported by the spaceorb.c and spaceball.c drivers. The devices currently 4474c79e98bSDmitry Torokhovsupported by spaceorb.c are: 4484c79e98bSDmitry Torokhov 4494c79e98bSDmitry Torokhov* SpaceTec SpaceBall Avenger 4504c79e98bSDmitry Torokhov* SpaceTec SpaceOrb 360 4514c79e98bSDmitry Torokhov 4524c79e98bSDmitry TorokhovDevices currently supported by spaceball.c are: 4534c79e98bSDmitry Torokhov 4544c79e98bSDmitry Torokhov* SpaceTec SpaceBall 4000 FLX 4554c79e98bSDmitry Torokhov 4564c79e98bSDmitry TorokhovIn addition to having the spaceorb/spaceball and serport modules in the 457eef8abdaSRandy Dunlapkernel, you also need to attach a serial port to it. To do that, run the 4584c79e98bSDmitry Torokhovinputattach program:: 4594c79e98bSDmitry Torokhov 4604c79e98bSDmitry Torokhov inputattach --spaceorb /dev/tts/x & 4614c79e98bSDmitry Torokhov 4624c79e98bSDmitry Torokhovor:: 4634c79e98bSDmitry Torokhov 4644c79e98bSDmitry Torokhov inputattach --spaceball /dev/tts/x & 4654c79e98bSDmitry Torokhov 4664c79e98bSDmitry Torokhovwhere /dev/tts/x is the serial port which the device is connected to. After 4674c79e98bSDmitry Torokhovdoing this, the device will be reported and will start working. 4684c79e98bSDmitry Torokhov 469eef8abdaSRandy DunlapThere is one caveat with the SpaceOrb. The button #6, the one on the bottom 4704c79e98bSDmitry Torokhovside of the orb, although reported as an ordinary button, causes internal 4714c79e98bSDmitry Torokhovrecentering of the spaceorb, moving the zero point to the position in which 4724c79e98bSDmitry Torokhovthe ball is at the moment of pressing the button. So, think first before 4734c79e98bSDmitry Torokhovyou bind it to some other function. 4744c79e98bSDmitry Torokhov 4754c79e98bSDmitry TorokhovSpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet. 4764c79e98bSDmitry Torokhov 4774c79e98bSDmitry TorokhovLogitech SWIFT devices 4784c79e98bSDmitry Torokhov---------------------- 4794c79e98bSDmitry Torokhov 4804c79e98bSDmitry TorokhovThe SWIFT serial protocol is supported by the warrior.c module. It 4814c79e98bSDmitry Torokhovcurrently supports only the: 4824c79e98bSDmitry Torokhov 4834c79e98bSDmitry Torokhov* Logitech WingMan Warrior 4844c79e98bSDmitry Torokhov 4854c79e98bSDmitry Torokhovbut in the future, Logitech CyberMan (the original one, not CM2) could be 4864c79e98bSDmitry Torokhovsupported as well. To use the module, you need to run inputattach after you 4874c79e98bSDmitry Torokhovinsert/compile the module into your kernel:: 4884c79e98bSDmitry Torokhov 4894c79e98bSDmitry Torokhov inputattach --warrior /dev/tts/x & 4904c79e98bSDmitry Torokhov 4914c79e98bSDmitry Torokhov/dev/tts/x is the serial port your Warrior is attached to. 4924c79e98bSDmitry Torokhov 4934c79e98bSDmitry TorokhovMagellan / Space Mouse 4944c79e98bSDmitry Torokhov---------------------- 4954c79e98bSDmitry Torokhov 4964c79e98bSDmitry TorokhovThe Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space 4974c79e98bSDmitry TorokhovSystems), for many other companies (Logitech, HP, ...) is supported by the 4984c79e98bSDmitry Torokhovjoy-magellan module. It currently supports only the: 4994c79e98bSDmitry Torokhov 5004c79e98bSDmitry Torokhov* Magellan 3D 5014c79e98bSDmitry Torokhov* Space Mouse 5024c79e98bSDmitry Torokhov 503eef8abdaSRandy Dunlapmodels; the additional buttons on the 'Plus' versions are not supported yet. 5044c79e98bSDmitry Torokhov 5054c79e98bSDmitry TorokhovTo use it, you need to attach the serial port to the driver using the:: 5064c79e98bSDmitry Torokhov 5074c79e98bSDmitry Torokhov inputattach --magellan /dev/tts/x & 5084c79e98bSDmitry Torokhov 5094c79e98bSDmitry Torokhovcommand. After that the Magellan will be detected, initialized, will beep, 5104c79e98bSDmitry Torokhovand the /dev/input/jsX device should become usable. 5114c79e98bSDmitry Torokhov 5124c79e98bSDmitry TorokhovI-Force devices 5134c79e98bSDmitry Torokhov--------------- 5144c79e98bSDmitry Torokhov 5154c79e98bSDmitry TorokhovAll I-Force devices are supported by the iforce module. This includes: 5164c79e98bSDmitry Torokhov 5174c79e98bSDmitry Torokhov* AVB Mag Turbo Force 5184c79e98bSDmitry Torokhov* AVB Top Shot Pegasus 5194c79e98bSDmitry Torokhov* AVB Top Shot Force Feedback Racing Wheel 520*9c9c7116SGreg Tulli* Boeder Force Feedback Wheel 5214c79e98bSDmitry Torokhov* Logitech WingMan Force 5224c79e98bSDmitry Torokhov* Logitech WingMan Force Wheel 5234c79e98bSDmitry Torokhov* Guillemot Race Leader Force Feedback 5244c79e98bSDmitry Torokhov* Guillemot Force Feedback Racing Wheel 5254c79e98bSDmitry Torokhov* Thrustmaster Motor Sport GT 5264c79e98bSDmitry Torokhov 5274c79e98bSDmitry TorokhovTo use it, you need to attach the serial port to the driver using the:: 5284c79e98bSDmitry Torokhov 5294c79e98bSDmitry Torokhov inputattach --iforce /dev/tts/x & 5304c79e98bSDmitry Torokhov 5314c79e98bSDmitry Torokhovcommand. After that the I-Force device will be detected, and the 5324c79e98bSDmitry Torokhov/dev/input/jsX device should become usable. 5334c79e98bSDmitry Torokhov 5344c79e98bSDmitry TorokhovIn case you're using the device via the USB port, the inputattach command 5354c79e98bSDmitry Torokhovisn't needed. 5364c79e98bSDmitry Torokhov 5374c79e98bSDmitry TorokhovThe I-Force driver now supports force feedback via the event interface. 5384c79e98bSDmitry Torokhov 5394c79e98bSDmitry TorokhovPlease note that Logitech WingMan 3D devices are _not_ supported by this 5404c79e98bSDmitry Torokhovmodule, rather by hid. Force feedback is not supported for those devices. 5414c79e98bSDmitry TorokhovLogitech gamepads are also hid devices. 5424c79e98bSDmitry Torokhov 5434c79e98bSDmitry TorokhovGravis Stinger gamepad 5444c79e98bSDmitry Torokhov---------------------- 5454c79e98bSDmitry Torokhov 5464c79e98bSDmitry TorokhovThe Gravis Stinger serial port gamepad, designed for use with laptop 5474c79e98bSDmitry Torokhovcomputers, is supported by the stinger.c module. To use it, attach the 5484c79e98bSDmitry Torokhovserial port to the driver using:: 5494c79e98bSDmitry Torokhov 5504c79e98bSDmitry Torokhov inputattach --stinger /dev/tty/x & 5514c79e98bSDmitry Torokhov 5524c79e98bSDmitry Torokhovwhere x is the number of the serial port. 5534c79e98bSDmitry Torokhov 5544c79e98bSDmitry TorokhovTroubleshooting 5554c79e98bSDmitry Torokhov=============== 5564c79e98bSDmitry Torokhov 5574c79e98bSDmitry TorokhovThere is quite a high probability that you run into some problems. For 5584c79e98bSDmitry Torokhovtesting whether the driver works, if in doubt, use the jstest utility in 5594c79e98bSDmitry Torokhovsome of its modes. The most useful modes are "normal" - for the 1.x 5604c79e98bSDmitry Torokhovinterface, and "old" for the "0.x" interface. You run it by typing:: 5614c79e98bSDmitry Torokhov 5624c79e98bSDmitry Torokhov jstest --normal /dev/input/js0 5634c79e98bSDmitry Torokhov jstest --old /dev/input/js0 5644c79e98bSDmitry Torokhov 5654c79e98bSDmitry TorokhovAdditionally you can do a test with the evtest utility:: 5664c79e98bSDmitry Torokhov 5674c79e98bSDmitry Torokhov evtest /dev/input/event0 5684c79e98bSDmitry Torokhov 5694c79e98bSDmitry TorokhovOh, and read the FAQ! :) 5704c79e98bSDmitry Torokhov 5714c79e98bSDmitry TorokhovFAQ 5724c79e98bSDmitry Torokhov=== 5734c79e98bSDmitry Torokhov 5744c79e98bSDmitry Torokhov:Q: Running 'jstest /dev/input/js0' results in "File not found" error. What's the 5754c79e98bSDmitry Torokhov cause? 5764c79e98bSDmitry Torokhov:A: The device files don't exist. Create them (see section 2.2). 5774c79e98bSDmitry Torokhov 5784c79e98bSDmitry Torokhov:Q: Is it possible to connect my old Atari/Commodore/Amiga/console joystick 579eef8abdaSRandy Dunlap or pad that uses a 9-pin D-type Cannon connector to the serial port of my 5804c79e98bSDmitry Torokhov PC? 5814c79e98bSDmitry Torokhov:A: Yes, it is possible, but it'll burn your serial port or the pad. It 5824c79e98bSDmitry Torokhov won't work, of course. 5834c79e98bSDmitry Torokhov 5844c79e98bSDmitry Torokhov:Q: My joystick doesn't work with Quake / Quake 2. What's the cause? 5854c79e98bSDmitry Torokhov:A: Quake / Quake 2 don't support joystick. Use joy2key to simulate keypresses 5864c79e98bSDmitry Torokhov for them. 587