Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) .. include:: <isonum.txt>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) .. _joystick-doc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) Introduction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) The joystick driver for Linux provides support for a variety of joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) and similar devices. It is based on a larger project aiming to support all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) input devices in Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) The mailing list for the project is:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 	linux-input@vger.kernel.org
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) send "subscribe linux-input" to majordomo@vger.kernel.org to subscribe to it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) Usage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) =====
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) For basic usage you just choose the right options in kernel config and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) you should be set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) Utilities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) ---------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) For testing and other purposes (for example serial devices), there is a set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) of utilities, such as ``jstest``, ``jscal``, and ``evtest``,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) usually packaged as ``joystick``, ``input-utils``, ``evtest``, and so on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) ``inputattach`` utility is required if your joystick is connected to a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) serial port.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) Device nodes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) For applications to be able to use the joysticks, device nodes should be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) created in /dev. Normally it is done automatically by the system, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) it can also be done by hand::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)     cd /dev
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)     rm js*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)     mkdir input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)     mknod input/js0 c 13 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)     mknod input/js1 c 13 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)     mknod input/js2 c 13 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)     mknod input/js3 c 13 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)     ln -s input/js0 js0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)     ln -s input/js1 js1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)     ln -s input/js2 js2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51)     ln -s input/js3 js3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) For testing with inpututils it's also convenient to create these::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)     mknod input/event0 c 13 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)     mknod input/event1 c 13 65
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)     mknod input/event2 c 13 66
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)     mknod input/event3 c 13 67
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) Modules needed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) --------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) For all joystick drivers to function, you'll need the userland interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) module in kernel, either loaded or compiled in::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	modprobe joydev
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) For gameport joysticks, you'll have to load the gameport driver as well::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	modprobe ns558
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) And for serial port joysticks, you'll need the serial input line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) discipline module loaded and the inputattach utility started::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	modprobe serport
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	inputattach -xxx /dev/tts/X &
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) In addition to that, you'll need the joystick driver module itself, most
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) usually you'll have an analog joystick::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	modprobe analog
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) For automatic module loading, something like this might work - tailor to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) your needs::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	alias tty-ldisc-2 serport
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	alias char-major-13 input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	above input joydev ns558 analog
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	options analog map=gamepad,none,2btn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) Verifying that it works
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) -----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) For testing the joystick driver functionality, there is the jstest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) program in the utilities package. You run it by typing::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	jstest /dev/input/js0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) And it should show a line with the joystick values, which update as you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) move the stick, and press its buttons. The axes should all be zero when the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) joystick is in the center position. They should not jitter by themselves to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) other close values, and they also should be steady in any other position of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) the stick. They should have the full range from -32767 to 32767. If all this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) is met, then it's all fine, and you can play the games. :)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) If it's not, then there might be a problem. Try to calibrate the joystick,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) and if it still doesn't work, read the drivers section of this file, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) troubleshooting section, and the FAQ.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) Calibration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) For most joysticks you won't need any manual calibration, since the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) joystick should be autocalibrated by the driver automagically. However, with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) some analog joysticks, that either do not use linear resistors, or if you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) want better precision, you can use the jscal program::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	jscal -c /dev/input/js0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) included in the joystick package to set better correction coefficients than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) what the driver would choose itself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) After calibrating the joystick you can verify if you like the new
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) calibration using the jstest command, and if you do, you then can save the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) correction coefficients into a file::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	jscal -p /dev/input/js0 > /etc/joystick.cal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) And add a line to your rc script executing that file::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	source /etc/joystick.cal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) This way, after the next reboot your joystick will remain calibrated. You
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) can also add the ``jscal -p`` line to your shutdown script.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) HW specific driver information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) ==============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) In this section each of the separate hardware specific drivers is described.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) Analog joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) The analog.c uses the standard analog inputs of the gameport, and thus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) supports all standard joysticks and gamepads. It uses a very advanced
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) routine for this, allowing for data precision that can't be found on any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) other system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) It also supports extensions like additional hats and buttons compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) with CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button gamepads. Saitek
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) Cyborg 'digital' joysticks are also supported by this driver, because
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) they're basically souped up CHF sticks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) However the only types that can be autodetected are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) * 2-axis, 4-button joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) * 3-axis, 4-button joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) * 4-axis, 4-button joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) * Saitek Cyborg 'digital' joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) For other joystick types (more/less axes, hats, and buttons) support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) you'll need to specify the types either on the kernel command line or on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) module command line, when inserting analog into the kernel. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) parameters are::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	analog.map=<type1>,<type2>,<type3>,....
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 'type' is type of the joystick from the table below, defining joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) present on gameports in the system, starting with gameport0, second 'type'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) entry defining joystick on gameport1 and so on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 	========= =====================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 	Type      Meaning
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 	========= =====================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 	none      No analog joystick on that port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	auto      Autodetect joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 	2btn      2-button n-axis joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 	y-joy     Two 2-button 2-axis joysticks on an Y-cable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 	y-pad     Two 2-button 2-axis gamepads on an Y-cable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 	fcs       Thrustmaster FCS compatible joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 	chf       Joystick with a CH Flightstick compatible hat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 	fullchf   CH Flightstick compatible with two hats and 6 buttons
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 	gamepad   4/6-button n-axis gamepad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	gamepad8  8-button 2-axis gamepad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 	========= =====================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) In case your joystick doesn't fit in any of the above categories, you can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) specify the type as a number by combining the bits in the table below. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) is not recommended unless you really know what are you doing. It's not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) dangerous, but not simple either.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 	==== =========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 	Bit  Meaning
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 	==== =========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 	 0   Axis X1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 	 1   Axis Y1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 	 2   Axis X2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 	 3   Axis Y2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 	 4   Button A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 	 5   Button B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 	 6   Button C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 	 7   Button D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	 8   CHF Buttons X and Y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	 9   CHF Hat 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 	10   CHF Hat 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 	11   FCS Hat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 	12   Pad Button X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 	13   Pad Button Y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 	14   Pad Button U
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 	15   Pad Button V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 	16   Saitek F1-F4 Buttons
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 	17   Saitek Digital Mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 	19   GamePad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	20   Joy2 Axis X1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 	21   Joy2 Axis Y1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 	22   Joy2 Axis X2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 	23   Joy2 Axis Y2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	24   Joy2 Button A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 	25   Joy2 Button B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 	26   Joy2 Button C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	27   Joy2 Button D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 	31   Joy2 GamePad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 	==== =========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) Microsoft SideWinder joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) ------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) Microsoft 'Digital Overdrive' protocol is supported by the sidewinder.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) module. All currently supported joysticks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) * Microsoft SideWinder 3D Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) * Microsoft SideWinder Force Feedback Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) * Microsoft SideWinder Force Feedback Wheel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) * Microsoft SideWinder FreeStyle Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) * Microsoft SideWinder GamePad (up to four, chained)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) * Microsoft SideWinder Precision Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) * Microsoft SideWinder Precision Pro USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) are autodetected, and thus no module parameters are needed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) There is one caveat with the 3D Pro. There are 9 buttons reported,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) although the joystick has only 8. The 9th button is the mode switch on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) rear side of the joystick. However, moving it, you'll reset the joystick,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) and make it unresponsive for about a one third of a second. Furthermore, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) joystick will also re-center itself, taking the position it was in during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) this time as a new center position. Use it if you want, but think first.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) The SideWinder Standard is not a digital joystick, and thus is supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) by the analog driver described above.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) Logitech ADI devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) --------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) Logitech ADI protocol is supported by the adi.c module. It should support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) any Logitech device using this protocol. This includes, but is not limited
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) to:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) * Logitech CyberMan 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) * Logitech ThunderPad Digital
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) * Logitech WingMan Extreme Digital
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) * Logitech WingMan Formula
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) * Logitech WingMan Interceptor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) * Logitech WingMan GamePad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) * Logitech WingMan GamePad USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) * Logitech WingMan GamePad Extreme
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) * Logitech WingMan Extreme Digital 3D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) ADI devices are autodetected, and the driver supports up to two (any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) combination of) devices on a single gameport, using an Y-cable or chained
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) together.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) Logitech WingMan Joystick, Logitech WingMan Attack, Logitech WingMan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) Extreme and Logitech WingMan ThunderPad are not digital joysticks and are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) handled by the analog driver described above. Logitech WingMan Warrior and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) Logitech Magellan are supported by serial drivers described below.  Logitech
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) WingMan Force and Logitech WingMan Formula Force are supported by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) I-Force driver described below. Logitech CyberMan is not supported yet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) Gravis GrIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) Gravis GrIP protocol is supported by the grip.c module. It currently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) supports:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) * Gravis GamePad Pro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) * Gravis BlackHawk Digital
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) * Gravis Xterminator
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) * Gravis Xterminator DualControl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) All these devices are autodetected, and you can even use any combination
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) of up to two of these pads either chained together or using an Y-cable on a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) single gameport.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) GrIP MultiPort isn't supported yet. Gravis Stinger is a serial device and is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) supported by the stinger driver. Other Gravis joysticks are supported by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) analog driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) FPGaming A3D and MadCatz A3D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) ----------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) The Assassin 3D protocol created by FPGaming, is used both by FPGaming
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) themselves and is licensed to MadCatz. A3D devices are supported by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) a3d.c module. It currently supports:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) * FPGaming Assassin 3D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) * MadCatz Panther
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) * MadCatz Panther XL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) All these devices are autodetected. Because the Assassin 3D and the Panther
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) allow connecting analog joysticks to them, you'll need to load the analog
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) driver as well to handle the attached joysticks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) The trackball should work with USB mousedev module as a normal mouse. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) the USB documentation for how to setup an USB mouse.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) ThrustMaster DirectConnect (BSP)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) --------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) The TM DirectConnect (BSP) protocol is supported by the tmdc.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) module. This includes, but is not limited to:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) * ThrustMaster Millennium 3D Interceptor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) * ThrustMaster 3D Rage Pad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) * ThrustMaster Fusion Digital Game Pad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) Devices not directly supported, but hopefully working are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) * ThrustMaster FragMaster
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) * ThrustMaster Attack Throttle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) If you have one of these, contact me.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) TMDC devices are autodetected, and thus no parameters to the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) are needed. Up to two TMDC devices can be connected to one gameport, using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) an Y-cable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) Creative Labs Blaster
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) ---------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) The Blaster protocol is supported by the cobra.c module. It supports only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) the:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) * Creative Blaster GamePad Cobra
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) Up to two of these can be used on a single gameport, using an Y-cable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) Genius Digital joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) ------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) The Genius digitally communicating joysticks are supported by the gf2k.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) module. This includes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) * Genius Flight2000 F-23 joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) * Genius Flight2000 F-31 joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) * Genius G-09D gamepad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) Other Genius digital joysticks are not supported yet, but support can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) added fairly easily.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) InterAct Digital joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) --------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) The InterAct digitally communicating joysticks are supported by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) interact.c module. This includes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) * InterAct HammerHead/FX gamepad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) * InterAct ProPad8 gamepad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) Other InterAct digital joysticks are not supported yet, but support can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) added fairly easily.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) PDPI Lightning 4 gamecards
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) --------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) PDPI Lightning 4 gamecards are supported by the lightning.c module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) Once the module is loaded, the analog driver can be used to handle the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) joysticks. Digitally communicating joystick will work only on port 0, while
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) using Y-cables, you can connect up to 8 analog joysticks to a single L4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) card, 16 in case you have two in your system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) Trident 4DWave / Aureal Vortex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) ------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) Soundcards with a Trident 4DWave DX/NX or Aureal Vortex/Vortex2 chipsets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) provide an "Enhanced Game Port" mode where the soundcard handles polling the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) joystick.  This mode is supported by the pcigame.c module. Once loaded the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) analog driver can use the enhanced features of these gameports..
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) Crystal SoundFusion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) -------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) Soundcards with Crystal SoundFusion chipsets provide an "Enhanced Game
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) Port", much like the 4DWave or Vortex above. This, and also the normal mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) for the port of the SoundFusion is supported by the cs461x.c module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) SoundBlaster Live!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) The Live! has a special PCI gameport, which, although it doesn't provide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) any "Enhanced" stuff like 4DWave and friends, is quite a bit faster than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) its ISA counterparts. It also requires special support, hence the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) emu10k1-gp.c module for it instead of the normal ns558.c one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) SoundBlaster 64 and 128 - ES1370 and ES1371, ESS Solo1 and S3 SonicVibes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) ------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) These PCI soundcards have specific gameports. They are handled by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) sound drivers themselves. Make sure you select gameport support in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) joystick menu and sound card support in the sound menu for your appropriate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) card.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) Amiga
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) -----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) Amiga joysticks, connected to an Amiga, are supported by the amijoy.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) driver. Since they can't be autodetected, the driver has a command line:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 	amijoy.map=<a>,<b>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) a and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) the Amiga.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 	====== ===========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 	Value  Joystick type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) 	====== ===========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 	  0    None
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) 	  1    1-button digital joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 	====== ===========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) No more joystick types are supported now, but that should change in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) future if I get an Amiga in the reach of my fingers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) Game console and 8-bit pads and joysticks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) -----------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) These pads and joysticks are not designed for PCs and other computers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) Linux runs on, and usually require a special connector for attaching
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) them through a parallel port.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) See :ref:`joystick-parport` for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) SpaceTec/LabTec devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) -----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) SpaceTec serial devices communicate using the SpaceWare protocol. It is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) supported by the spaceorb.c and spaceball.c drivers. The devices currently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) supported by spaceorb.c are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) * SpaceTec SpaceBall Avenger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) * SpaceTec SpaceOrb 360
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) Devices currently supported by spaceball.c are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) * SpaceTec SpaceBall 4000 FLX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) In addition to having the spaceorb/spaceball and serport modules in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) kernel, you also need to attach a serial port to it. to do that, run the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) inputattach program::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) 	inputattach --spaceorb /dev/tts/x &
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) or::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) 	inputattach --spaceball /dev/tts/x &
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) where /dev/tts/x is the serial port which the device is connected to. After
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) doing this, the device will be reported and will start working.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) There is one caveat with the SpaceOrb. The button #6, the on the bottom
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) side of the orb, although reported as an ordinary button, causes internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) recentering of the spaceorb, moving the zero point to the position in which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) the ball is at the moment of pressing the button. So, think first before
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) you bind it to some other function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) SpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) Logitech SWIFT devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) The SWIFT serial protocol is supported by the warrior.c module. It
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) currently supports only the:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) * Logitech WingMan Warrior
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) but in the future, Logitech CyberMan (the original one, not CM2) could be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) supported as well. To use the module, you need to run inputattach after you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) insert/compile the module into your kernel::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) 	inputattach --warrior /dev/tts/x &
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) /dev/tts/x is the serial port your Warrior is attached to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) Magellan / Space Mouse
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) The Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) Systems), for many other companies (Logitech, HP, ...) is supported by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) joy-magellan module. It currently supports only the:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) * Magellan 3D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) * Space Mouse
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) models, the additional buttons on the 'Plus' versions are not supported yet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) To use it, you need to attach the serial port to the driver using the::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) 	inputattach --magellan /dev/tts/x &
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) command. After that the Magellan will be detected, initialized, will beep,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) and the /dev/input/jsX device should become usable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) I-Force devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) All I-Force devices are supported by the iforce module. This includes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) * AVB Mag Turbo Force
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) * AVB Top Shot Pegasus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) * AVB Top Shot Force Feedback Racing Wheel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) * Logitech WingMan Force
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) * Logitech WingMan Force Wheel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) * Guillemot Race Leader Force Feedback
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) * Guillemot Force Feedback Racing Wheel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) * Thrustmaster Motor Sport GT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) To use it, you need to attach the serial port to the driver using the::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) 	inputattach --iforce /dev/tts/x &
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) command. After that the I-Force device will be detected, and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) /dev/input/jsX device should become usable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) In case you're using the device via the USB port, the inputattach command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) isn't needed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) The I-Force driver now supports force feedback via the event interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) Please note that Logitech WingMan 3D devices are _not_ supported by this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) module, rather by hid. Force feedback is not supported for those devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) Logitech gamepads are also hid devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) Gravis Stinger gamepad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) The Gravis Stinger serial port gamepad, designed for use with laptop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) computers, is supported by the stinger.c module. To use it, attach the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) serial port to the driver using::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 	inputattach --stinger /dev/tty/x &
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) where x is the number of the serial port.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) Troubleshooting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) ===============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) There is quite a high probability that you run into some problems. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) testing whether the driver works, if in doubt, use the jstest utility in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) some of its modes. The most useful modes are "normal" - for the 1.x
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) interface, and "old" for the "0.x" interface. You run it by typing::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) 	jstest --normal /dev/input/js0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) 	jstest --old    /dev/input/js0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) Additionally you can do a test with the evtest utility::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) 	evtest /dev/input/event0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) Oh, and read the FAQ! :)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) FAQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) ===
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) :Q: Running 'jstest /dev/input/js0' results in "File not found" error. What's the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574)     cause?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) :A: The device files don't exist. Create them (see section 2.2).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) :Q: Is it possible to connect my old Atari/Commodore/Amiga/console joystick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578)     or pad that uses a 9-pin D-type cannon connector to the serial port of my
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579)     PC?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) :A: Yes, it is possible, but it'll burn your serial port or the pad. It
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)     won't work, of course.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) :Q: My joystick doesn't work with Quake / Quake 2. What's the cause?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) :A: Quake / Quake 2 don't support joystick. Use joy2key to simulate keypresses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585)     for them.