sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget)/translations/zh_CN/input/joydev/joystickmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/zh_TW/input/joydev/joystickmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/it_IT/input/joydev/joystickmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/ja_JP/input/joydev/joystickmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/ko_KR/input/joydev/joystickmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/sp_SP/input/joydev/joystickmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h4This data file has been placed in the public domain.h]h4This data file has been placed in the public domain.}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhho/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txthKubh)}(hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .h]hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsubstitution_definition)}(h*.. |amp| unicode:: U+00026 .. AMPERSANDh]h&}hhsbah}(h]h ]h"]ampah$]h&]uh1hhhhKhhhhubh)}(h+.. |apos| unicode:: U+00027 .. APOSTROPHEh]h'}hhsbah}(h]h ]h"]aposah$]h&]uh1hhhhKhhhhubh)}(h).. |ast| unicode:: U+0002A .. ASTERISKh]h*}hhsbah}(h]h ]h"]astah$]h&]uh1hhhhK hhhhubh)}(h+.. |brvbar| unicode:: U+000A6 .. BROKEN BARh]h¦}hhsbah}(h]h ]h"]brvbarah$]h&]uh1hhhhK hhhhubh)}(h0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUSh]h\}hjsbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hjsbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hjsbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hj-sbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hj<sbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjKsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hjZsbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjisbah}(h]h ]h"]darrah$]h&]uh1hhhhKhhhhubh)}(h,.. |deg| unicode:: U+000B0 .. DEGREE SIGNh]h°}hjxsbah}(h]h ]h"]degah$]h&]uh1hhhhKhhhhubh)}(h... |divide| unicode:: U+000F7 .. DIVISION SIGNh]h÷}hjsbah}(h]h ]h"]divideah$]h&]uh1hhhhKhhhhubh)}(h,.. |dollar| unicode:: U+00024 .. DOLLAR SIGNh]h$}hjsbah}(h]h ]h"]dollarah$]h&]uh1hhhhKhhhhubh)}(h,.. |equals| unicode:: U+0003D .. EQUALS SIGNh]h=}hjsbah}(h]h ]h"]equalsah$]h&]uh1hhhhKhhhhubh)}(h1.. |excl| unicode:: U+00021 .. EXCLAMATION MARKh]h!}hjsbah}(h]h ]h"]exclah$]h&]uh1hhhhKhhhhubh)}(h9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjsbah}(h]h ]h"]frac12ah$]h&]uh1hhhhKhhhhubh)}(h<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTERh]h¼}hjsbah}(h]h ]h"]frac14ah$]h&]uh1hhhhKhhhhubh)}(h;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTHh]h⅛}hjsbah}(h]h ]h"]frac18ah$]h&]uh1hhhhKhhhhubh)}(h?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERSh]h¾}hjsbah}(h]h ]h"]frac34ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHSh]h⅜}hjsbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hjsbah}(h]h ]h"]frac58ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHSh]h⅞}hjsbah}(h]h ]h"]frac78ah$]h&]uh1hhhhKhhhhubh)}(h2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGNh]h>}hj,sbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hj;sbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjJsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hjYsbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjhsbah}(h]h ]h"]iexclah$]h&]uh1hhhhK#hhhhubh)}(h7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARKh]h¿}hjwsbah}(h]h ]h"]iquestah$]h&]uh1hhhhK$hhhhubh)}(hJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARKh]h«}hjsbah}(h]h ]h"]laquoah$]h&]uh1hhhhK%hhhhubh)}(h0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROWh]h←}hjsbah}(h]h ]h"]larrah$]h&]uh1hhhhK&hhhhubh)}(h3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKETh]h{}hjsbah}(h]h ]h"]lcubah$]h&]uh1hhhhK'hhhhubh)}(h;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARKh]h“}hjsbah}(h]h ]h"]ldquoah$]h&]uh1hhhhK(hhhhubh)}(h).. |lowbar| unicode:: U+0005F .. LOW LINEh]h_}hjsbah}(h]h ]h"]lowbarah$]h&]uh1hhhhK)hhhhubh)}(h1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESISh]h(}hjsbah}(h]h ]h"]lparah$]h&]uh1hhhhK*hhhhubh)}(h4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKETh]h[}hjsbah}(h]h ]h"]lsqbah$]h&]uh1hhhhK+hhhhubh)}(h;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARKh]h‘}hjsbah}(h]h ]h"]lsquoah$]h&]uh1hhhhK,hhhhubh)}(h/.. |lt| unicode:: U+0003C .. LESS-THAN SIGNh]h<}hjsbah}(h]h ]h"]ltah$]h&]uh1hhhhK-hhhhubh)}(h+.. |micro| unicode:: U+000B5 .. MICRO SIGNh]hµ}hj sbah}(h]h ]h"]microah$]h&]uh1hhhhK.hhhhubh)}(h+.. |middot| unicode:: U+000B7 .. MIDDLE DOTh]h·}hjsbah}(h]h ]h"]middotah$]h&]uh1hhhhK/hhhhubh)}(h/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACEh]h }hj+sbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hj:sbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjIsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hjXsbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjgsbah}(h]h ]h"]ordfah$]h&]uh1hhhhK4hhhhubh)}(h<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATORh]hº}hjvsbah}(h]h ]h"]ordmah$]h&]uh1hhhhK5hhhhubh)}(h-.. |para| unicode:: U+000B6 .. PILCROW SIGNh]h¶}hjsbah}(h]h ]h"]paraah$]h&]uh1hhhhK6hhhhubh)}(h-.. |percnt| unicode:: U+00025 .. PERCENT SIGNh]h%}hjsbah}(h]h ]h"]percntah$]h&]uh1hhhhK7hhhhubh)}(h*.. |period| unicode:: U+0002E .. FULL STOPh]h.}hjsbah}(h]h ]h"]periodah$]h&]uh1hhhhK8hhhhubh)}(h*.. |plus| unicode:: U+0002B .. PLUS SIGNh]h+}hjsbah}(h]h ]h"]plusah$]h&]uh1hhhhK9hhhhubh)}(h0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGNh]h±}hjsbah}(h]h ]h"]plusmnah$]h&]uh1hhhhK:hhhhubh)}(h+.. |pound| unicode:: U+000A3 .. POUND SIGNh]h£}hjsbah}(h]h ]h"]poundah$]h&]uh1hhhhK;hhhhubh)}(h... |quest| unicode:: U+0003F .. QUESTION MARKh]h?}hjsbah}(h]h ]h"]questah$]h&]uh1hhhhKhhhhubh)}(h1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROWh]h→}hj sbah}(h]h ]h"]rarrah$]h&]uh1hhhhK?hhhhubh)}(h4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKETh]h}}hjsbah}(h]h ]h"]rcubah$]h&]uh1hhhhK@hhhhubh)}(h<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARKh]h”}hj*sbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hj9sbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjHsbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjWsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjfsbah}(h]h ]h"]rsquoah$]h&]uh1hhhhKEhhhhubh)}(h-.. |sect| unicode:: U+000A7 .. SECTION SIGNh]h§}hjusbah}(h]h ]h"]sectah$]h&]uh1hhhhKFhhhhubh)}(h*.. |semi| unicode:: U+0003B .. SEMICOLONh]h;}hjsbah}(h]h ]h"]semiah$]h&]uh1hhhhKGhhhhubh)}(h,.. |shy| unicode:: U+000AD .. SOFT HYPHENh]h­}hjsbah}(h]h ]h"]shyah$]h&]uh1hhhhKHhhhhubh)}(h(.. |sol| unicode:: U+0002F .. SOLIDUSh]h/}hjsbah}(h]h ]h"]solah$]h&]uh1hhhhKIhhhhubh)}(h,.. |sung| unicode:: U+0266A .. EIGHTH NOTEh]h♪}hjsbah}(h]h ]h"]sungah$]h&]uh1hhhhKJhhhhubh)}(h0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONEh]h¹}hjsbah}(h]h ]h"]sup1ah$]h&]uh1hhhhKKhhhhubh)}(h0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWOh]h²}hjsbah}(h]h ]h"]sup2ah$]h&]uh1hhhhKLhhhhubh)}(h2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREEh]h³}hjsbah}(h]h ]h"]sup3ah$]h&]uh1hhhhKMhhhhubh)}(h4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGNh]h×}hjsbah}(h]h ]h"]timesah$]h&]uh1hhhhKNhhhhubh)}(h0.. |trade| unicode:: U+02122 .. TRADE MARK SIGNh]h™}hjsbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hj sbah}(h]h ]h"]uarrah$]h&]uh1hhhhKPhhhhubh)}(h... |verbar| unicode:: U+0007C .. VERTICAL LINEh]h|}hjsbah}(h]h ]h"]verbarah$]h&]uh1hhhhKQhhhhubh)}(h*.. |yen| unicode:: U+000A5 .. YEN SIGN h]h¥}hj)sbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhtarget)}(h.. _joystick-doc:h]h}(h]h ]h"]h$]h&]refid joystick-docuh1j8hKYhhhhhC/var/lib/git/docbuild/linux/Documentation/input/joydev/joystick.rstubhsection)}(hhh](htitle)}(h Introductionh]h Introduction}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjIhhhjFhKubh paragraph)}(hThe joystick driver for Linux provides support for a variety of joysticks and similar devices. It is based on a larger project aiming to support all input devices in Linux.h]hThe joystick driver for Linux provides support for a variety of joysticks and similar devices. It is based on a larger project aiming to support all input devices in Linux.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjIhhubj])}(h$The mailing list for the project is:h]h$The mailing list for the project is:}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhK hjIhhubh block_quote)}(hlinux-input@vger.kernel.org h]j])}(hlinux-input@vger.kernel.orgh]h reference)}(hjh]hlinux-input@vger.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:linux-input@vger.kernel.orguh1jhjubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj|ubah}(h]h ]h"]h$]h&]uh1jzhjFhKhjIhhubj])}(hMsend "subscribe linux-input" to majordomo@vger.kernel.org to subscribe to it.h](h$send “subscribe linux-input” to }(hjhhhNhNubj)}(hmajordomo@vger.kernel.orgh]hmajordomo@vger.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri mailto:majordomo@vger.kernel.orguh1jhjubh to subscribe to it.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hjFhKhjIhhubeh}(h]( introductionjEeh ]h"]( introduction joystick-doceh$]h&]uh1jGhhhhhjFhKexpect_referenced_by_name}jj:sexpect_referenced_by_id}jEj:subjH)}(hhh](jM)}(hUsageh]hUsage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhKubj])}(hYFor basic usage you just choose the right options in kernel config and you should be set.h]hYFor basic usage you just choose the right options in kernel config and you should be set.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubjH)}(hhh](jM)}(h Utilitiesh]h Utilities}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhKubj])}(hFor testing and other purposes (for example serial devices), there is a set of utilities, such as ``jstest``, ``jscal``, and ``evtest``, usually packaged as ``joystick``, ``input-utils``, ``evtest``, and so on.h](hbFor testing and other purposes (for example serial devices), there is a set of utilities, such as }(hjhhhNhNubhliteral)}(h ``jstest``h]hjstest}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h ``jscal``h]hjscal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, and }(hjhhhNhNubj )}(h ``evtest``h]hevtest}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, usually packaged as }(hjhhhNhNubj )}(h ``joystick``h]hjoystick}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }hjsbj )}(h``input-utils``h]h input-utils}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }hjsbj )}(h ``evtest``h]hevtest}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh , and so on.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj])}(hS``inputattach`` utility is required if your joystick is connected to a serial port.h](j )}(h``inputattach``h]h inputattach}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubhD utility is required if your joystick is connected to a serial port.}(hj|hhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubeh}(h] utilitiesah ]h"] utilitiesah$]h&]uh1jGhjhhhjFhKubjH)}(hhh](jM)}(h Device nodesh]h Device nodes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhK#ubj])}(hFor applications to be able to use the joysticks, device nodes should be created in /dev. Normally it is done automatically by the system, but it can also be done by hand::h]hFor applications to be able to use the joysticks, device nodes should be created in /dev. Normally it is done automatically by the system, but it can also be done by hand:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhK%hjhhubh literal_block)}(hcd /dev rm js* mkdir input mknod input/js0 c 13 0 mknod input/js1 c 13 1 mknod input/js2 c 13 2 mknod input/js3 c 13 3 ln -s input/js0 js0 ln -s input/js1 js1 ln -s input/js2 js2 ln -s input/js3 js3h]hcd /dev rm js* mkdir input mknod input/js0 c 13 0 mknod input/js1 c 13 1 mknod input/js2 c 13 2 mknod input/js3 c 13 3 ln -s input/js0 js0 ln -s input/js1 js1 ln -s input/js2 js2 ln -s input/js3 js3}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhK)hjhhubj])}(hBFor testing with inpututils it's also convenient to create these::h]hCFor testing with inpututils it’s also convenient to create these:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhK5hjhhubj)}(hkmknod input/event0 c 13 64 mknod input/event1 c 13 65 mknod input/event2 c 13 66 mknod input/event3 c 13 67h]hkmknod input/event0 c 13 64 mknod input/event1 c 13 65 mknod input/event2 c 13 66 mknod input/event3 c 13 67}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhK7hjhhubeh}(h] device-nodesah ]h"] device nodesah$]h&]uh1jGhjhhhjFhK#ubjH)}(hhh](jM)}(hModules neededh]hModules needed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhK=ubj])}(hyFor all joystick drivers to function, you'll need the userland interface module in kernel, either loaded or compiled in::h]hzFor all joystick drivers to function, you’ll need the userland interface module in kernel, either loaded or compiled in:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhK?hjhhubj)}(hmodprobe joydevh]hmodprobe joydev}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhKBhjhhubj])}(hIFor gameport joysticks, you'll have to load the gameport driver as well::h]hJFor gameport joysticks, you’ll have to load the gameport driver as well:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKDhjhhubj)}(hmodprobe ns558h]hmodprobe ns558}hj.sbah}(h]h ]h"]h$]h&]hhuh1jhjFhKFhjhhubj])}(hAnd for serial port joysticks, you'll need the serial input line discipline module loaded and the inputattach utility started::h]hAnd for serial port joysticks, you’ll need the serial input line discipline module loaded and the inputattach utility started:}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKHhjhhubj)}(h.modprobe serport inputattach -xxx /dev/tts/X &h]h.modprobe serport inputattach -xxx /dev/tts/X &}hjJsbah}(h]h ]h"]h$]h&]hhuh1jhjFhKKhjhhubj])}(hqIn addition to that, you'll need the joystick driver module itself, most usually you'll have an analog joystick::h]htIn addition to that, you’ll need the joystick driver module itself, most usually you’ll have an analog joystick:}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKNhjhhubj)}(hmodprobe analogh]hmodprobe analog}hjfsbah}(h]h ]h"]h$]h&]hhuh1jhjFhKQhjhhubj])}(hUFor automatic module loading, something like this might work - tailor to your needs::h]hTFor automatic module loading, something like this might work - tailor to your needs:}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKShjhhubj)}(hxalias tty-ldisc-2 serport alias char-major-13 input above input joydev ns558 analog options analog map=gamepad,none,2btnh]hxalias tty-ldisc-2 serport alias char-major-13 input above input joydev ns558 analog options analog map=gamepad,none,2btn}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhKVhjhhubeh}(h]modules-neededah ]h"]modules neededah$]h&]uh1jGhjhhhjFhK=ubjH)}(hhh](jM)}(hVerifying that it worksh]hVerifying that it works}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhK\ubj])}(h{For testing the joystick driver functionality, there is the jstest program in the utilities package. You run it by typing::h]hzFor testing the joystick driver functionality, there is the jstest program in the utilities package. You run it by typing:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhK^hjhhubj)}(hjstest /dev/input/js0h]hjstest /dev/input/js0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhKahjhhubj])}(hXAnd it should show a line with the joystick values, which update as you move the stick, and press its buttons. The axes should all be zero when the joystick is in the center position. They should not jitter by themselves to other close values, and they also should be steady in any other position of the stick. They should have the full range from -32767 to 32767. If all this is met, then it's all fine, and you can play the games. :)h]hXAnd it should show a line with the joystick values, which update as you move the stick, and press its buttons. The axes should all be zero when the joystick is in the center position. They should not jitter by themselves to other close values, and they also should be steady in any other position of the stick. They should have the full range from -32767 to 32767. If all this is met, then it’s all fine, and you can play the games. :)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKchjhhubj])}(hIf it's not, then there might be a problem. Try to calibrate the joystick, and if it still doesn't work, read the drivers section of this file, the troubleshooting section, and the FAQ.h]hIf it’s not, then there might be a problem. Try to calibrate the joystick, and if it still doesn’t work, read the drivers section of this file, the troubleshooting section, and the FAQ.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKjhjhhubeh}(h]verifying-that-it-worksah ]h"]verifying that it worksah$]h&]uh1jGhjhhhjFhK\ubjH)}(hhh](jM)}(h Calibrationh]h Calibration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhKoubj])}(hXFor most joysticks you won't need any manual calibration, since the joystick should be autocalibrated by the driver automagically. However, with some analog joysticks, that either do not use linear resistors, or if you want better precision, you can use the jscal program::h]hXFor most joysticks you won’t need any manual calibration, since the joystick should be autocalibrated by the driver automagically. However, with some analog joysticks, that either do not use linear resistors, or if you want better precision, you can use the jscal program:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKqhjhhubj)}(hjscal -c /dev/input/js0h]hjscal -c /dev/input/js0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhKvhjhhubj])}(hpincluded in the joystick package to set better correction coefficients than what the driver would choose itself.h]hpincluded in the joystick package to set better correction coefficients than what the driver would choose itself.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKxhjhhubj])}(hAfter calibrating the joystick you can verify if you like the new calibration using the jstest command, and if you do, you then can save the correction coefficients into a file::h]hAfter calibrating the joystick you can verify if you like the new calibration using the jstest command, and if you do, you then can save the correction coefficients into a file:}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhK{hjhhubj)}(h+jscal -p /dev/input/js0 > /etc/joystick.calh]h+jscal -p /dev/input/js0 > /etc/joystick.cal}hj2sbah}(h]h ]h"]h$]h&]hhuh1jhjFhKhjhhubj])}(h6And add a line to your rc script executing that file::h]h5And add a line to your rc script executing that file:}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj)}(hsource /etc/joystick.calh]hsource /etc/joystick.cal}hjNsbah}(h]h ]h"]h$]h&]hhuh1jhjFhKhjhhubj])}(hThis way, after the next reboot your joystick will remain calibrated. You can also add the ``jscal -p`` line to your shutdown script.h](h[This way, after the next reboot your joystick will remain calibrated. You can also add the }(hj\hhhNhNubj )}(h ``jscal -p``h]hjscal -p}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubh line to your shutdown script.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubeh}(h] calibrationah ]h"] calibrationah$]h&]uh1jGhjhhhjFhKoubeh}(h]usageah ]h"]usageah$]h&]uh1jGhhhhhjFhKubjH)}(hhh](jM)}(h$Hardware-specific driver informationh]h$Hardware-specific driver information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhKubj])}(hLIn this section each of the separate hardware specific drivers is described.h]hLIn this section each of the separate hardware specific drivers is described.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubjH)}(hhh](jM)}(hAnalog joysticksh]hAnalog joysticks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhKubj])}(hThe analog.c driver uses the standard analog inputs of the gameport, and thus supports all standard joysticks and gamepads. It uses a very advanced routine for this, allowing for data precision that can't be found on any other system.h]hThe analog.c driver uses the standard analog inputs of the gameport, and thus supports all standard joysticks and gamepads. It uses a very advanced routine for this, allowing for data precision that can’t be found on any other system.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj])}(hXIt also supports extensions like additional hats and buttons compatible with CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button gamepads. Saitek Cyborg 'digital' joysticks are also supported by this driver, because they're basically souped up CHF sticks.h]hXIt also supports extensions like additional hats and buttons compatible with CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button gamepads. Saitek Cyborg ‘digital’ joysticks are also supported by this driver, because they’re basically souped up CHF sticks.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj])}(h4However the only types that can be autodetected are:h]h4However the only types that can be autodetected are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubh bullet_list)}(hhh](h list_item)}(h2-axis, 4-button joystickh]j])}(hjh]h2-axis, 4-button joystick}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h3-axis, 4-button joystickh]j])}(hj h]h3-axis, 4-button joystick}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h4-axis, 4-button joystickh]j])}(hj h]h4-axis, 4-button joystick}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h"Saitek Cyborg 'digital' joysticks h]j])}(h!Saitek Cyborg 'digital' joysticksh]h%Saitek Cyborg ‘digital’ joysticks}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj2 ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]bullet*uh1jhjFhKhjhhubj])}(hFor other joystick types (more/less axes, hats, and buttons) support you'll need to specify the types either on the kernel command line or on the module command line, when inserting analog into the kernel. The parameters are::h]hFor other joystick types (more/less axes, hats, and buttons) support you’ll need to specify the types either on the kernel command line or on the module command line, when inserting analog into the kernel. The parameters are:}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj)}(h'analog.map=,,,....h]h'analog.map=,,,....}hj` sbah}(h]h ]h"]h$]h&]hhuh1jhjFhKhjhhubj])}(h'type' is type of the joystick from the table below, defining joysticks present on gameports in the system, starting with gameport0, second 'type' entry defining joystick on gameport1 and so on.h]h‘type’ is type of the joystick from the table below, defining joysticks present on gameports in the system, starting with gameport0, second ‘type’ entry defining joystick on gameport1 and so on.}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj{)}(hX========= ===================================================== Type Meaning ========= ===================================================== none No analog joystick on that port auto Autodetect joystick 2btn 2-button n-axis joystick y-joy Two 2-button 2-axis joysticks on an Y-cable y-pad Two 2-button 2-axis gamepads on an Y-cable fcs Thrustmaster FCS compatible joystick chf Joystick with a CH Flightstick compatible hat fullchf CH Flightstick compatible with two hats and 6 buttons gamepad 4/6-button n-axis gamepad gamepad8 8-button 2-axis gamepad ========= ===================================================== h]htable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthK5uh1j hj ubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]j])}(hTypeh]hType}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hMeaningh]hMeaning}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j hj ubhtbody)}(hhh](j )}(hhh](j )}(hhh]j])}(hnoneh]hnone}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hNo analog joystick on that porth]hNo analog joystick on that port}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hautoh]hauto}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj% ubah}(h]h ]h"]h$]h&]uh1j hj" ubj )}(hhh]j])}(hAutodetect joystickh]hAutodetect joystick}(hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj< ubah}(h]h ]h"]h$]h&]uh1j hj" ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h2btnh]h2btn}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj\ ubah}(h]h ]h"]h$]h&]uh1j hjY ubj )}(hhh]j])}(h2-button n-axis joystickh]h2-button n-axis joystick}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjs ubah}(h]h ]h"]h$]h&]uh1j hjY ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hy-joyh]hy-joy}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(h+Two 2-button 2-axis joysticks on an Y-cableh]h+Two 2-button 2-axis joysticks on an Y-cable}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hy-padh]hy-pad}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(h*Two 2-button 2-axis gamepads on an Y-cableh]h*Two 2-button 2-axis gamepads on an Y-cable}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hfcsh]hfcs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(h$Thrustmaster FCS compatible joystickh]h$Thrustmaster FCS compatible joystick}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hchfh]hchf}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj8 ubah}(h]h ]h"]h$]h&]uh1j hj5 ubj )}(hhh]j])}(h-Joystick with a CH Flightstick compatible hath]h-Joystick with a CH Flightstick compatible hat}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjO ubah}(h]h ]h"]h$]h&]uh1j hj5 ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hfullchfh]hfullchf}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjo ubah}(h]h ]h"]h$]h&]uh1j hjl ubj )}(hhh]j])}(h5CH Flightstick compatible with two hats and 6 buttonsh]h5CH Flightstick compatible with two hats and 6 buttons}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hjl ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hgamepadh]hgamepad}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(h4/6-button n-axis gamepadh]h4/6-button n-axis gamepad}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(hgamepad8h]hgamepad8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(h8-button 2-axis gamepadh]h8-button 2-axis gamepad}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]colsKuh1j hj ubah}(h]h ]h"]h$]h&]uh1j hj| ubah}(h]h ]h"]h$]h&]uh1jzhjFhKhjhhubj])}(hIn case your joystick doesn't fit in any of the above categories, you can specify the type as a number by combining the bits in the table below. This is not recommended unless you really know what are you doing. It's not dangerous, but not simple either.h]hXIn case your joystick doesn’t fit in any of the above categories, you can specify the type as a number by combining the bits in the table below. This is not recommended unless you really know what are you doing. It’s not dangerous, but not simple either.}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj{)}(hXH==== ========================= Bit Meaning ==== ========================= 0 Axis X1 1 Axis Y1 2 Axis X2 3 Axis Y2 4 Button A 5 Button B 6 Button C 7 Button D 8 CHF Buttons X and Y 9 CHF Hat 1 10 CHF Hat 2 11 FCS Hat 12 Pad Button X 13 Pad Button Y 14 Pad Button U 15 Pad Button V 16 Saitek F1-F4 Buttons 17 Saitek Digital Mode 19 GamePad 20 Joy2 Axis X1 21 Joy2 Axis Y1 22 Joy2 Axis X2 23 Joy2 Axis Y2 24 Joy2 Button A 25 Joy2 Button B 26 Joy2 Button C 27 Joy2 Button D 31 Joy2 GamePad ==== ========================= h]j )}(hhh]j )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj? ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj? ubj )}(hhh]j )}(hhh](j )}(hhh]j])}(hBith]hBit}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj\ ubah}(h]h ]h"]h$]h&]uh1j hjY ubj )}(hhh]j])}(hMeaningh]hMeaning}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjs ubah}(h]h ]h"]h$]h&]uh1j hjY ubeh}(h]h ]h"]h$]h&]uh1j hjV ubah}(h]h ]h"]h$]h&]uh1j hj? ubj )}(hhh](j )}(hhh](j )}(hhh]j])}(h0h]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hAxis X1h]hAxis X1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h1h]h1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hAxis Y1h]hAxis Y1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h2h]h2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hAxis X2h]hAxis X2}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj! ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h3h]h3}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjA ubah}(h]h ]h"]h$]h&]uh1j hj> ubj )}(hhh]j])}(hAxis Y2h]hAxis Y2}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjX ubah}(h]h ]h"]h$]h&]uh1j hj> ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h4h]h4}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjx ubah}(h]h ]h"]h$]h&]uh1j hju ubj )}(hhh]j])}(hButton Ah]hButton A}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hju ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h5h]h5}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hButton Bh]hButton B}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h6h]h6}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hButton Ch]hButton C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h7h]h7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(hButton Dh]hButton D}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj4ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h8h]h8}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjTubah}(h]h ]h"]h$]h&]uh1j hjQubj )}(hhh]j])}(hCHF Buttons X and Yh]hCHF Buttons X and Y}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjkubah}(h]h ]h"]h$]h&]uh1j hjQubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h9h]h9}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h CHF Hat 1h]h CHF Hat 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h10h]h10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h CHF Hat 2h]h CHF Hat 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h11h]h11}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(hFCS Hath]hFCS Hat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h12h]h12}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj0ubah}(h]h ]h"]h$]h&]uh1j hj-ubj )}(hhh]j])}(h Pad Button Xh]h Pad Button X}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjGubah}(h]h ]h"]h$]h&]uh1j hj-ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h13h]h13}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjgubah}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh]j])}(h Pad Button Yh]h Pad Button Y}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj~ubah}(h]h ]h"]h$]h&]uh1j hjdubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h14h]h14}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Pad Button Uh]h Pad Button U}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h15h]h15}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Pad Button Vh]h Pad Button V}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h16h]h16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j])}(hSaitek F1-F4 Buttonsh]hSaitek F1-F4 Buttons}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj#ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h17h]h17}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjCubah}(h]h ]h"]h$]h&]uh1j hj@ubj )}(hhh]j])}(hSaitek Digital Modeh]hSaitek Digital Mode}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjZubah}(h]h ]h"]h$]h&]uh1j hj@ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h19h]h19}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjzubah}(h]h ]h"]h$]h&]uh1j hjwubj )}(hhh]j])}(hGamePadh]hGamePad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjwubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h20h]h20}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Joy2 Axis X1h]h Joy2 Axis X1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h21h]h21}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Joy2 Axis Y1h]h Joy2 Axis Y1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h22h]h22}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Joy2 Axis X2h]h Joy2 Axis X2}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj6ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h23h]h23}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjVubah}(h]h ]h"]h$]h&]uh1j hjSubj )}(hhh]j])}(h Joy2 Axis Y2h]h Joy2 Axis Y2}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjmubah}(h]h ]h"]h$]h&]uh1j hjSubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h24h]h24}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Joy2 Button Ah]h Joy2 Button A}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h25h]h25}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Joy2 Button Bh]h Joy2 Button B}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h26h]h26}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h Joy2 Button Ch]h Joy2 Button C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h27h]h27}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj2ubah}(h]h ]h"]h$]h&]uh1j hj/ubj )}(hhh]j])}(h Joy2 Button Dh]h Joy2 Button D}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjIubah}(h]h ]h"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j])}(h31h]h31}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjiubah}(h]h ]h"]h$]h&]uh1j hjfubj )}(hhh]j])}(h Joy2 GamePadh]h Joy2 GamePad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1j hjfubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj? ubeh}(h]h ]h"]h$]h&]colsKuh1j hj< ubah}(h]h ]h"]h$]h&]uh1j hj8 ubah}(h]h ]h"]h$]h&]uh1jzhjFhKhjhhubeh}(h]analog-joysticksah ]h"]analog joysticksah$]h&]uh1jGhjhhhjFhKubjH)}(hhh](jM)}(hMicrosoft SideWinder joysticksh]hMicrosoft SideWinder joysticks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhKubj])}(hrMicrosoft 'Digital Overdrive' protocol is supported by the sidewinder.c module. All currently supported joysticks:h]hvMicrosoft ‘Digital Overdrive’ protocol is supported by the sidewinder.c module. All currently supported joysticks:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj)}(hhh](j)}(hMicrosoft SideWinder 3D Proh]j])}(hjh]hMicrosoft SideWinder 3D Pro}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h'Microsoft SideWinder Force Feedback Proh]j])}(hjh]h'Microsoft SideWinder Force Feedback Pro}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h)Microsoft SideWinder Force Feedback Wheelh]j])}(hjh]h)Microsoft SideWinder Force Feedback Wheel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h"Microsoft SideWinder FreeStyle Proh]j])}(hj'h]h"Microsoft SideWinder FreeStyle Pro}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj%ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h2Microsoft SideWinder GamePad (up to four, chained)h]j])}(hj>h]h2Microsoft SideWinder GamePad (up to four, chained)}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhj<ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h"Microsoft SideWinder Precision Proh]j])}(hjUh]h"Microsoft SideWinder Precision Pro}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjSubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h'Microsoft SideWinder Precision Pro USB h]j])}(h&Microsoft SideWinder Precision Pro USBh]h&Microsoft SideWinder Precision Pro USB}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhKhjhhubj])}(h;are autodetected, and thus no module parameters are needed.h]h;are autodetected, and thus no module parameters are needed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj])}(hXThere is one caveat with the 3D Pro. There are 9 buttons reported, although the joystick has only 8. The 9th button is the mode switch on the rear side of the joystick. However, moving it, you'll reset the joystick, and make it unresponsive for about a one third of a second. Furthermore, the joystick will also re-center itself, taking the position it was in during this time as a new center position. Use it if you want, but think first.h]hXThere is one caveat with the 3D Pro. There are 9 buttons reported, although the joystick has only 8. The 9th button is the mode switch on the rear side of the joystick. However, moving it, you’ll reset the joystick, and make it unresponsive for about a one third of a second. Furthermore, the joystick will also re-center itself, taking the position it was in during this time as a new center position. Use it if you want, but think first.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj])}(hnThe SideWinder Standard is not a digital joystick, and thus is supported by the analog driver described above.h]hnThe SideWinder Standard is not a digital joystick, and thus is supported by the analog driver described above.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubeh}(h]microsoft-sidewinder-joysticksah ]h"]microsoft sidewinder joysticksah$]h&]uh1jGhjhhhjFhKubjH)}(hhh](jM)}(hLogitech ADI devicesh]hLogitech ADI devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhKubj])}(hLogitech ADI protocol is supported by the adi.c module. It should support any Logitech device using this protocol. This includes, but is not limited to:h]hLogitech ADI protocol is supported by the adi.c module. It should support any Logitech device using this protocol. This includes, but is not limited to:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhKhjhhubj)}(hhh](j)}(hLogitech CyberMan 2h]j])}(hjh]hLogitech CyberMan 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hLogitech ThunderPad Digitalh]j])}(hjh]hLogitech ThunderPad Digital}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h Logitech WingMan Extreme Digitalh]j])}(hj h]h Logitech WingMan Extreme Digital}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hLogitech WingMan Formulah]j])}(hj#h]hLogitech WingMan Formula}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj!ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hLogitech WingMan Interceptorh]j])}(hj:h]hLogitech WingMan Interceptor}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj8ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hLogitech WingMan GamePadh]j])}(hjQh]hLogitech WingMan GamePad}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjOubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hLogitech WingMan GamePad USBh]j])}(hjhh]hLogitech WingMan GamePad USB}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjfubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h Logitech WingMan GamePad Extremeh]j])}(hjh]h Logitech WingMan GamePad Extreme}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hj}ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h$Logitech WingMan Extreme Digital 3D h]j])}(h#Logitech WingMan Extreme Digital 3Dh]h#Logitech WingMan Extreme Digital 3D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMhjhhubj])}(hADI devices are autodetected, and the driver supports up to two (any combination of) devices on a single gameport, using a Y-cable or chained together.h]hADI devices are autodetected, and the driver supports up to two (any combination of) devices on a single gameport, using a Y-cable or chained together.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hjhhubj])}(hXLogitech WingMan Joystick, Logitech WingMan Attack, Logitech WingMan Extreme and Logitech WingMan ThunderPad are not digital joysticks and are handled by the analog driver described above. Logitech WingMan Warrior and Logitech Magellan are supported by serial drivers described below. Logitech WingMan Force and Logitech WingMan Formula Force are supported by the I-Force driver described below. Logitech CyberMan is not supported yet.h]hXLogitech WingMan Joystick, Logitech WingMan Attack, Logitech WingMan Extreme and Logitech WingMan ThunderPad are not digital joysticks and are handled by the analog driver described above. Logitech WingMan Warrior and Logitech Magellan are supported by serial drivers described below. Logitech WingMan Force and Logitech WingMan Formula Force are supported by the I-Force driver described below. Logitech CyberMan is not supported yet.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]logitech-adi-devicesah ]h"]logitech adi devicesah$]h&]uh1jGhjhhhjFhKubjH)}(hhh](jM)}(h Gravis GrIPh]h Gravis GrIP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(hNGravis GrIP protocol is supported by the grip.c module. It currently supports:h]hNGravis GrIP protocol is supported by the grip.c module. It currently supports:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(hhh](j)}(hGravis GamePad Proh]j])}(hjh]hGravis GamePad Pro}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hGravis BlackHawk Digitalh]j])}(hjh]hGravis BlackHawk Digital}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hGravis Xterminatorh]j])}(hj(h]hGravis Xterminator}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj&ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hGravis Xterminator DualControl h]j])}(hGravis Xterminator DualControlh]hGravis Xterminator DualControl}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hj=ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMhjhhubj])}(hAll these devices are autodetected, and you can even use any combination of up to two of these pads either chained together or using a Y-cable on a single gameport.h]hAll these devices are autodetected, and you can even use any combination of up to two of these pads either chained together or using a Y-cable on a single gameport.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM"hjhhubj])}(hGrIP MultiPort isn't supported yet. Gravis Stinger is a serial device and is supported by the stinger driver. Other Gravis joysticks are supported by the analog driver.h]hGrIP MultiPort isn’t supported yet. Gravis Stinger is a serial device and is supported by the stinger driver. Other Gravis joysticks are supported by the analog driver.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM&hjhhubeh}(h] gravis-gripah ]h"] gravis gripah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hFPGaming A3D and MadCatz A3Dh]hFPGaming A3D and MadCatz A3D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhM+ubj])}(hThe Assassin 3D protocol created by FPGaming, is used both by FPGaming themselves and is licensed to MadCatz. A3D devices are supported by the a3d.c module. It currently supports:h]hThe Assassin 3D protocol created by FPGaming, is used both by FPGaming themselves and is licensed to MadCatz. A3D devices are supported by the a3d.c module. It currently supports:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM-hjhhubj)}(hhh](j)}(hFPGaming Assassin 3Dh]j])}(hjh]hFPGaming Assassin 3D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM1hjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hMadCatz Pantherh]j])}(hjh]hMadCatz Panther}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM2hjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hMadCatz Panther XL h]j])}(hMadCatz Panther XLh]hMadCatz Panther XL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM3hjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhM1hjhhubj])}(hAll these devices are autodetected. Because the Assassin 3D and the Panther allow connecting analog joysticks to them, you'll need to load the analog driver as well to handle the attached joysticks.h]hAll these devices are autodetected. Because the Assassin 3D and the Panther allow connecting analog joysticks to them, you’ll need to load the analog driver as well to handle the attached joysticks.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM5hjhhubj])}(h}The trackball should work with USB mousedev module as a normal mouse. See the USB documentation for how to setup a USB mouse.h]h}The trackball should work with USB mousedev module as a normal mouse. See the USB documentation for how to setup a USB mouse.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM9hjhhubeh}(h]fpgaming-a3d-and-madcatz-a3dah ]h"]fpgaming a3d and madcatz a3dah$]h&]uh1jGhjhhhjFhM+ubjH)}(hhh](jM)}(h ThrustMaster DirectConnect (BSP)h]h ThrustMaster DirectConnect (BSP)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhM=ubj])}(hlThe TM DirectConnect (BSP) protocol is supported by the tmdc.c module. This includes, but is not limited to:h]hlThe TM DirectConnect (BSP) protocol is supported by the tmdc.c module. This includes, but is not limited to:}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM?hjhhubj)}(hhh](j)}(h&ThrustMaster Millennium 3D Interceptorh]j])}(hj5h]h&ThrustMaster Millennium 3D Interceptor}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMBhj3ubah}(h]h ]h"]h$]h&]uh1jhj0hhhjFhNubj)}(hThrustMaster 3D Rage Padh]j])}(hjLh]hThrustMaster 3D Rage Pad}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMChjJubah}(h]h ]h"]h$]h&]uh1jhj0hhhjFhNubj)}(h%ThrustMaster Fusion Digital Game Pad h]j])}(h$ThrustMaster Fusion Digital Game Padh]h$ThrustMaster Fusion Digital Game Pad}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMDhjaubah}(h]h ]h"]h$]h&]uh1jhj0hhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMBhjhhubj])}(h:Devices not directly supported, but hopefully working are:h]h:Devices not directly supported, but hopefully working are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMFhjhhubj)}(hhh](j)}(hThrustMaster FragMasterh]j])}(hjh]hThrustMaster FragMaster}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMHhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hThrustMaster Attack Throttle h]j])}(hThrustMaster Attack Throttleh]hThrustMaster Attack Throttle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMIhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMHhjhhubj])}(h%If you have one of these, contact me.h]h%If you have one of these, contact me.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMKhjhhubj])}(hTMDC devices are autodetected, and thus no parameters to the module are needed. Up to two TMDC devices can be connected to one gameport, using a Y-cable.h]hTMDC devices are autodetected, and thus no parameters to the module are needed. Up to two TMDC devices can be connected to one gameport, using a Y-cable.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMMhjhhubeh}(h]thrustmaster-directconnect-bspah ]h"] thrustmaster directconnect (bsp)ah$]h&]uh1jGhjhhhjFhM=ubjH)}(hhh](jM)}(hCreative Labs Blasterh]hCreative Labs Blaster}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMRubj])}(hNThe Blaster protocol is supported by the cobra.c module. It supports only the:h]hNThe Blaster protocol is supported by the cobra.c module. It supports only the:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMThjhhubj)}(hhh]j)}(hCreative Blaster GamePad Cobra h]j])}(hCreative Blaster GamePad Cobrah]hCreative Blaster GamePad Cobra}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMWhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubah}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMWhjhhubj])}(hEUp to two of these can be used on a single gameport, using a Y-cable.h]hEUp to two of these can be used on a single gameport, using a Y-cable.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMYhjhhubeh}(h]creative-labs-blasterah ]h"]creative labs blasterah$]h&]uh1jGhjhhhjFhMRubjH)}(hhh](jM)}(hGenius Digital joysticksh]hGenius Digital joysticks}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj?hhhjFhM\ubj])}(h_The Genius digitally communicating joysticks are supported by the gf2k.c module. This includes:h]h_The Genius digitally communicating joysticks are supported by the gf2k.c module. This includes:}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM^hj?hhubj)}(hhh](j)}(hGenius Flight2000 F-23 joystickh]j])}(hjch]hGenius Flight2000 F-23 joystick}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMahjaubah}(h]h ]h"]h$]h&]uh1jhj^hhhjFhNubj)}(hGenius Flight2000 F-31 joystickh]j])}(hjzh]hGenius Flight2000 F-31 joystick}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMbhjxubah}(h]h ]h"]h$]h&]uh1jhj^hhhjFhNubj)}(hGenius G-09D gamepad h]j])}(hGenius G-09D gamepadh]hGenius G-09D gamepad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMchjubah}(h]h ]h"]h$]h&]uh1jhj^hhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMahj?hhubj])}(h]Other Genius digital joysticks are not supported yet, but support can be added fairly easily.h]h]Other Genius digital joysticks are not supported yet, but support can be added fairly easily.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMehj?hhubeh}(h]genius-digital-joysticksah ]h"]genius digital joysticksah$]h&]uh1jGhjhhhjFhM\ubjH)}(hhh](jM)}(hInterAct Digital joysticksh]hInterAct Digital joysticks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMiubj])}(heThe InterAct digitally communicating joysticks are supported by the interact.c module. This includes:h]heThe InterAct digitally communicating joysticks are supported by the interact.c module. This includes:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMkhjhhubj)}(hhh](j)}(hInterAct HammerHead/FX gamepadh]j])}(hjh]hInterAct HammerHead/FX gamepad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMnhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hInterAct ProPad8 gamepad h]j])}(hInterAct ProPad8 gamepadh]hInterAct ProPad8 gamepad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMohjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMnhjhhubj])}(h_Other InterAct digital joysticks are not supported yet, but support can be added fairly easily.h]h_Other InterAct digital joysticks are not supported yet, but support can be added fairly easily.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMqhjhhubeh}(h]interact-digital-joysticksah ]h"]interact digital joysticksah$]h&]uh1jGhjhhhjFhMiubjH)}(hhh](jM)}(hPDPI Lightning 4 gamecardsh]hPDPI Lightning 4 gamecards}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj0hhhjFhMuubj])}(hXLPDPI Lightning 4 gamecards are supported by the lightning.c module. Once the module is loaded, the analog driver can be used to handle the joysticks. Digitally communicating joystick will work only on port 0, while using Y-cables, you can connect up to 8 analog joysticks to a single L4 card, 16 in case you have two in your system.h]hXLPDPI Lightning 4 gamecards are supported by the lightning.c module. Once the module is loaded, the analog driver can be used to handle the joysticks. Digitally communicating joystick will work only on port 0, while using Y-cables, you can connect up to 8 analog joysticks to a single L4 card, 16 in case you have two in your system.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMwhj0hhubeh}(h]pdpi-lightning-4-gamecardsah ]h"]pdpi lightning 4 gamecardsah$]h&]uh1jGhjhhhjFhMuubjH)}(hhh](jM)}(hTrident 4DWave / Aureal Vortexh]hTrident 4DWave / Aureal Vortex}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjWhhhjFhM~ubj])}(hX Soundcards with a Trident 4DWave DX/NX or Aureal Vortex/Vortex2 chipset provide an "Enhanced Game Port" mode where the soundcard handles polling the joystick. This mode is supported by the pcigame.c module. Once loaded the analog driver can use the enhanced features of these gameports..h]hX$Soundcards with a Trident 4DWave DX/NX or Aureal Vortex/Vortex2 chipset provide an “Enhanced Game Port” mode where the soundcard handles polling the joystick. This mode is supported by the pcigame.c module. Once loaded the analog driver can use the enhanced features of these gameports..}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjWhhubeh}(h]trident-4dwave-aureal-vortexah ]h"]trident 4dwave / aureal vortexah$]h&]uh1jGhjhhhjFhM~ubjH)}(hhh](jM)}(hCrystal SoundFusionh]hCrystal SoundFusion}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj~hhhjFhMubj])}(hSoundcards with Crystal SoundFusion chipsets provide an "Enhanced Game Port", much like the 4DWave or Vortex above. This, and also the normal mode for the port of the SoundFusion is supported by the cs461x.c module.h]hSoundcards with Crystal SoundFusion chipsets provide an “Enhanced Game Port”, much like the 4DWave or Vortex above. This, and also the normal mode for the port of the SoundFusion is supported by the cs461x.c module.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj~hhubeh}(h]crystal-soundfusionah ]h"]crystal soundfusionah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hSoundBlaster Live!h]hSoundBlaster Live!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(hXThe Live! has a special PCI gameport, which, although it doesn't provide any "Enhanced" stuff like 4DWave and friends, is quite a bit faster than its ISA counterparts. It also requires special support, hence the emu10k1-gp.c module for it instead of the normal ns558.c one.h]hXThe Live! has a special PCI gameport, which, although it doesn’t provide any “Enhanced” stuff like 4DWave and friends, is quite a bit faster than its ISA counterparts. It also requires special support, hence the emu10k1-gp.c module for it instead of the normal ns558.c one.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]soundblaster-liveah ]h"]soundblaster live!ah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hHSoundBlaster 64 and 128 - ES1370 and ES1371, ESS Solo1 and S3 SonicVibesh]hHSoundBlaster 64 and 128 - ES1370 and ES1371, ESS Solo1 and S3 SonicVibes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(hThese PCI soundcards have specific gameports. They are handled by the sound drivers themselves. Make sure you select gameport support in the joystick menu and sound card support in the sound menu for your appropriate card.h]hThese PCI soundcards have specific gameports. They are handled by the sound drivers themselves. Make sure you select gameport support in the joystick menu and sound card support in the sound menu for your appropriate card.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]Esoundblaster-64-and-128-es1370-and-es1371-ess-solo1-and-s3-sonicvibesah ]h"]Hsoundblaster 64 and 128 - es1370 and es1371, ess solo1 and s3 sonicvibesah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hAmigah]hAmiga}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(hAmiga joysticks, connected to an Amiga, are supported by the amijoy.c driver. Since they can't be autodetected, the driver has a command line:h]hAmiga joysticks, connected to an Amiga, are supported by the amijoy.c driver. Since they can’t be autodetected, the driver has a command line:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj{)}(hamijoy.map=, h]j])}(hamijoy.map=,h]hamijoy.map=,}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jzhjFhMhjhhubj])}(hUa and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of the Amiga.h]hUa and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of the Amiga.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj{)}(h====== =========================== Value Joystick type ====== =========================== 0 None 1 1-button digital joystick ====== =========================== h]j )}(hhh]j )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj?ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj?ubj )}(hhh]j )}(hhh](j )}(hhh]j])}(hValueh]hValue}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj\ubah}(h]h ]h"]h$]h&]uh1j hjYubj )}(hhh]j])}(h Joystick typeh]h Joystick type}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjsubah}(h]h ]h"]h$]h&]uh1j hjYubeh}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1j hj?ubj )}(hhh](j )}(hhh](j )}(hhh]j])}(hj h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(hNoneh]hNone}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh]j])}(hj h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j])}(h1-button digital joystickh]h1-button digital joystick}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj?ubeh}(h]h ]h"]h$]h&]colsKuh1j hj<ubah}(h]h ]h"]h$]h&]uh1j hj8ubah}(h]h ]h"]h$]h&]uh1jzhjFhMhjhhubj])}(h|No more joystick types are supported now, but that should change in the future if I get an Amiga in the reach of my fingers.h]h|No more joystick types are supported now, but that should change in the future if I get an Amiga in the reach of my fingers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]amigaah ]h"]amigaah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(h)Game console and 8-bit pads and joysticksh]h)Game console and 8-bit pads and joysticks}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj4hhhjFhMubj])}(hThese pads and joysticks are not designed for PCs and other computers Linux runs on, and usually require a special connector for attaching them through a parallel port.h]hThese pads and joysticks are not designed for PCs and other computers Linux runs on, and usually require a special connector for attaching them through a parallel port.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj4hhubj])}(h*See :ref:`joystick-parport` for more info.h](hSee }(hjShhhNhNubh)}(h:ref:`joystick-parport`h]hinline)}(hj]h]hjoystick-parport}(hjahhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1j_hj[ubah}(h]h ]h"]h$]h&]refdocinput/joydev/joystick refdomainjlreftyperef refexplicitrefwarn reftargetjoystick-parportuh1hhjFhMhjSubh for more info.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hjFhMhj4hhubeh}(h])game-console-and-8-bit-pads-and-joysticksah ]h"])game console and 8-bit pads and joysticksah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hSpaceTec/LabTec devicesh]hSpaceTec/LabTec devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(hSpaceTec serial devices communicate using the SpaceWare protocol. It is supported by the spaceorb.c and spaceball.c drivers. The devices currently supported by spaceorb.c are:h]hSpaceTec serial devices communicate using the SpaceWare protocol. It is supported by the spaceorb.c and spaceball.c drivers. The devices currently supported by spaceorb.c are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(hhh](j)}(hSpaceTec SpaceBall Avengerh]j])}(hjh]hSpaceTec SpaceBall Avenger}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hSpaceTec SpaceOrb 360 h]j])}(hSpaceTec SpaceOrb 360h]hSpaceTec SpaceOrb 360}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMhjhhubj])}(h/Devices currently supported by spaceball.c are:h]h/Devices currently supported by spaceball.c are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(hhh]j)}(hSpaceTec SpaceBall 4000 FLX h]j])}(hSpaceTec SpaceBall 4000 FLXh]hSpaceTec SpaceBall 4000 FLX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubah}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMhjhhubj])}(hIn addition to having the spaceorb/spaceball and serport modules in the kernel, you also need to attach a serial port to it. To do that, run the inputattach program::h]hIn addition to having the spaceorb/spaceball and serport modules in the kernel, you also need to attach a serial port to it. To do that, run the inputattach program:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(h#inputattach --spaceorb /dev/tts/x &h]h#inputattach --spaceorb /dev/tts/x &}hj&sbah}(h]h ]h"]h$]h&]hhuh1jhjFhMhjhhubj])}(hor::h]hor:}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(h$inputattach --spaceball /dev/tts/x &h]h$inputattach --spaceball /dev/tts/x &}hjBsbah}(h]h ]h"]h$]h&]hhuh1jhjFhMhjhhubj])}(hwhere /dev/tts/x is the serial port which the device is connected to. After doing this, the device will be reported and will start working.h]hwhere /dev/tts/x is the serial port which the device is connected to. After doing this, the device will be reported and will start working.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj])}(hXNThere is one caveat with the SpaceOrb. The button #6, the one on the bottom side of the orb, although reported as an ordinary button, causes internal recentering of the spaceorb, moving the zero point to the position in which the ball is at the moment of pressing the button. So, think first before you bind it to some other function.h]hXNThere is one caveat with the SpaceOrb. The button #6, the one on the bottom side of the orb, although reported as an ordinary button, causes internal recentering of the spaceorb, moving the zero point to the position in which the ball is at the moment of pressing the button. So, think first before you bind it to some other function.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj])}(h?SpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet.h]h?SpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]spacetec-labtec-devicesah ]h"]spacetec/labtec devicesah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hLogitech SWIFT devicesh]hLogitech SWIFT devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(h_The SWIFT serial protocol is supported by the warrior.c module. It currently supports only the:h]h_The SWIFT serial protocol is supported by the warrior.c module. It currently supports only the:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(hhh]j)}(hLogitech WingMan Warrior h]j])}(hLogitech WingMan Warriorh]hLogitech WingMan Warrior}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubah}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMhjhhubj])}(hbut in the future, Logitech CyberMan (the original one, not CM2) could be supported as well. To use the module, you need to run inputattach after you insert/compile the module into your kernel::h]hbut in the future, Logitech CyberMan (the original one, not CM2) could be supported as well. To use the module, you need to run inputattach after you insert/compile the module into your kernel:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(h"inputattach --warrior /dev/tts/x &h]h"inputattach --warrior /dev/tts/x &}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhMhjhhubj])}(h:/dev/tts/x is the serial port your Warrior is attached to.h]h:/dev/tts/x is the serial port your Warrior is attached to.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]logitech-swift-devicesah ]h"]logitech swift devicesah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hMagellan / Space Mouseh]hMagellan / Space Mouse}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(hThe Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space Systems), for many other companies (Logitech, HP, ...) is supported by the joy-magellan module. It currently supports only the:h]hThe Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space Systems), for many other companies (Logitech, HP, ...) is supported by the joy-magellan module. It currently supports only the:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(hhh](j)}(h Magellan 3Dh]j])}(hjh]h Magellan 3D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h Space Mouse h]j])}(h Space Mouseh]h Space Mouse}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhj-ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMhjhhubj])}(hLmodels; the additional buttons on the 'Plus' versions are not supported yet.h]hPmodels; the additional buttons on the ‘Plus’ versions are not supported yet.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj])}(hGTo use it, you need to attach the serial port to the driver using the::h]hFTo use it, you need to attach the serial port to the driver using the:}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(h#inputattach --magellan /dev/tts/x &h]h#inputattach --magellan /dev/tts/x &}hjgsbah}(h]h ]h"]h$]h&]hhuh1jhjFhMhjhhubj])}(h~command. After that the Magellan will be detected, initialized, will beep, and the /dev/input/jsX device should become usable.h]h~command. After that the Magellan will be detected, initialized, will beep, and the /dev/input/jsX device should become usable.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]magellan-space-mouseah ]h"]magellan / space mouseah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hI-Force devicesh]hI-Force devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhMubj])}(hFAll I-Force devices are supported by the iforce module. This includes:h]hFAll I-Force devices are supported by the iforce module. This includes:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(hhh](j)}(hAVB Mag Turbo Forceh]j])}(hjh]hAVB Mag Turbo Force}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hAVB Top Shot Pegasush]j])}(hjh]hAVB Top Shot Pegasus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h(AVB Top Shot Force Feedback Racing Wheelh]j])}(hjh]h(AVB Top Shot Force Feedback Racing Wheel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hBoeder Force Feedback Wheelh]j])}(hjh]hBoeder Force Feedback Wheel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hLogitech WingMan Forceh]j])}(hj h]hLogitech WingMan Force}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hj ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hLogitech WingMan Force Wheelh]j])}(hj"h]hLogitech WingMan Force Wheel}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hj ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h$Guillemot Race Leader Force Feedbackh]j])}(hj9h]h$Guillemot Race Leader Force Feedback}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hj7ubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(h%Guillemot Force Feedback Racing Wheelh]j])}(hjPh]h%Guillemot Force Feedback Racing Wheel}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hjNubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubj)}(hThrustmaster Motor Sport GT h]j])}(hThrustmaster Motor Sport GTh]hThrustmaster Motor Sport GT}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM hjeubah}(h]h ]h"]h$]h&]uh1jhjhhhjFhNubeh}(h]h ]h"]h$]h&]jP jQ uh1jhjFhMhjhhubj])}(hGTo use it, you need to attach the serial port to the driver using the::h]hFTo use it, you need to attach the serial port to the driver using the:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj)}(h!inputattach --iforce /dev/tts/x &h]h!inputattach --iforce /dev/tts/x &}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhMhjhhubj])}(hlcommand. After that the I-Force device will be detected, and the /dev/input/jsX device should become usable.h]hlcommand. After that the I-Force device will be detected, and the /dev/input/jsX device should become usable.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj])}(hWIn case you're using the device via the USB port, the inputattach command isn't needed.h]h[In case you’re using the device via the USB port, the inputattach command isn’t needed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj])}(hGThe I-Force driver now supports force feedback via the event interface.h]hGThe I-Force driver now supports force feedback via the event interface.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubj])}(hPlease note that Logitech WingMan 3D devices are _not_ supported by this module, rather by hid. Force feedback is not supported for those devices. Logitech gamepads are also hid devices.h]hPlease note that Logitech WingMan 3D devices are _not_ supported by this module, rather by hid. Force feedback is not supported for those devices. Logitech gamepads are also hid devices.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMhjhhubeh}(h]i-force-devicesah ]h"]i-force devicesah$]h&]uh1jGhjhhhjFhMubjH)}(hhh](jM)}(hGravis Stinger gamepadh]hGravis Stinger gamepad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhM ubj])}(hThe Gravis Stinger serial port gamepad, designed for use with laptop computers, is supported by the stinger.c module. To use it, attach the serial port to the driver using::h]hThe Gravis Stinger serial port gamepad, designed for use with laptop computers, is supported by the stinger.c module. To use it, attach the serial port to the driver using:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM"hjhhubj)}(h"inputattach --stinger /dev/tty/x &h]h"inputattach --stinger /dev/tty/x &}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjFhM&hjhhubj])}(h)where x is the number of the serial port.h]h)where x is the number of the serial port.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM(hjhhubeh}(h]gravis-stinger-gamepadah ]h"]gravis stinger gamepadah$]h&]uh1jGhjhhhjFhM ubeh}(h]$hardware-specific-driver-informationah ]h"]$hardware-specific driver informationah$]h&]uh1jGhhhhhjFhKubjH)}(hhh](jM)}(hTroubleshootingh]hTroubleshooting}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj*hhhjFhM+ubj])}(hXThere is quite a high probability that you run into some problems. For testing whether the driver works, if in doubt, use the jstest utility in some of its modes. The most useful modes are "normal" - for the 1.x interface, and "old" for the "0.x" interface. You run it by typing::h]hX#There is quite a high probability that you run into some problems. For testing whether the driver works, if in doubt, use the jstest utility in some of its modes. The most useful modes are “normal” - for the 1.x interface, and “old” for the “0.x” interface. You run it by typing:}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM-hj*hhubj)}(h=jstest --normal /dev/input/js0 jstest --old /dev/input/js0h]h=jstest --normal /dev/input/js0 jstest --old /dev/input/js0}hjIsbah}(h]h ]h"]h$]h&]hhuh1jhjFhM2hj*hhubj])}(h8Additionally you can do a test with the evtest utility::h]h7Additionally you can do a test with the evtest utility:}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM5hj*hhubj)}(hevtest /dev/input/event0h]hevtest /dev/input/event0}hjesbah}(h]h ]h"]h$]h&]hhuh1jhjFhM7hj*hhubj])}(hOh, and read the FAQ! :)h]hOh, and read the FAQ! :)}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM9hj*hhubeh}(h]troubleshootingah ]h"]troubleshootingah$]h&]uh1jGhhhhhjFhM+ubjH)}(hhh](jM)}(hFAQh]hFAQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhjFhM<ubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hQh]hQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhjFhKubh field_body)}(hTRunning 'jstest /dev/input/js0' results in "File not found" error. What's the cause?h]j])}(hTRunning 'jstest /dev/input/js0' results in "File not found" error. What's the cause?h]h^Running ‘jstest /dev/input/js0’ results in “File not found” error. What’s the cause?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjFhM>hjhhubj)}(hhh](j)}(hAh]hA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhjFhKubj)}(h=The device files don't exist. Create them (see section 2.2). h]j])}(hThe device files don’t exist. Create them (see section 2.2).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhM@hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjFhM@hjhhubj)}(hhh](j)}(hjh]hQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhjFhKubj)}(hIs it possible to connect my old Atari/Commodore/Amiga/console joystick or pad that uses a 9-pin D-type Cannon connector to the serial port of my PC?h]j])}(hIs it possible to connect my old Atari/Commodore/Amiga/console joystick or pad that uses a 9-pin D-type Cannon connector to the serial port of my PC?h]hIs it possible to connect my old Atari/Commodore/Amiga/console joystick or pad that uses a 9-pin D-type Cannon connector to the serial port of my PC?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMBhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjFhMBhjhhubj)}(hhh](j)}(hjh]hA}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1hjFhKubj)}(h[Yes, it is possible, but it'll burn your serial port or the pad. It won't work, of course. h]j])}(hZYes, it is possible, but it'll burn your serial port or the pad. It won't work, of course.h]h^Yes, it is possible, but it’ll burn your serial port or the pad. It won’t work, of course.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMEhjAubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjFhMEhjhhubj)}(hhh](j)}(hjh]hQ}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_hjFhKubj)}(h@My joystick doesn't work with Quake / Quake 2. What's the cause?h]j])}(hjqh]hDMy joystick doesn’t work with Quake / Quake 2. What’s the cause?}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMHhjoubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjFhMHhjhhubj)}(hhh](j)}(hjh]hA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhjFhKubj)}(hTQuake / Quake 2 don't support joystick. Use joy2key to simulate keypresses for them.h]j])}(hTQuake / Quake 2 don't support joystick. Use joy2key to simulate keypresses for them.h]hVQuake / Quake 2 don’t support joystick. Use joy2key to simulate keypresses for them.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjFhMIhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjFhMIhjhhubeh}(h]h ]h"]h$]h&]uh1jhjhhhjFhM>ubeh}(h]faqah ]h"]faqah$]h&]uh1jGhhhhhjFhM<ubeh}(h]h ]h"]h$]h&]sourcejFuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jLN generatorN datestampN source_linkN source_urlN toc_backlinksj footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcejF _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}(hhhhhhhhj jjjj*jj9j-jHj<jWjKjfjZjujijjxjjjjjjjjjjjjjjjjj jjjj)jj8j,jGj;jVjJjejYjtjhjjwjjjjjjjjjjjjjjjjj jjj j(jj7j+jFj:jUjIjdjXjsjgjjvjjjjjjjjjjjjjjjjj jjj j'jj6j*jEj9jTjHjcjWjrjfjjujjjjjjjjjjjjjjjjjjjj j&jj5j)usubstitution_names}(amphЌaposhߌasthbrvbarhbsolj centjcolonj*commaj9commatjHcopyjWcurrenjfdarrjudegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34jfrac38j frac58jfrac78j)gtj8halfjGhorbarjVhyphenjeiexcljtiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquojltj microjmiddotj(nbspj7notjFnumjUohmjdordfjsordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotjraquoj rarrjrcubj'rdquoj6regjErparjTrsqbjcrsquojrsectjsemijshyjsoljsungjsup1jsup2jsup3jtimesjtradejuarrjverbarj&yenj5urefnames}refids}jE]j:asnameids}(jjEjjjjjjjjjjjjjj~j'j$jjjjjjj|jyjj jjj<j9jjj-j*jTjQj{jxjjjjjjj1j.jjjj|jjjjjjjjjjjju nametypes}(jjjjjjjjj'jjjj|jjj<jj-jTj{jjjj1jjjjjjjjuh}(jEjIjjIjjjjjjjjjjj~jj$jjjjjjjjyjj jjjj9jjj?j*jjQj0jxjWjj~jjjjj.jjj4j|jjjjjjjjjjj*jju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages]hsystem_message)}(hhh]j])}(hhh]h2Hyperlink target "joystick-doc" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1j\hj ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcejFlineKYuh1j uba transformerN include_log]'Documentation/input/joydev/joystick.rst(NNNNta decorationNhhub.