From 3797ba0b62debb71af4606910acacc9896a9ae3b Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Sun, 25 Jun 2000 01:20:01 +0000 Subject: Merge with Linux 2.4.0-test2. --- Documentation/Configure.help | 252 ++++++---- Documentation/cpqarray.txt | 7 +- Documentation/filesystems/devfs/ChangeLog | 43 ++ Documentation/filesystems/devfs/README | 24 +- Documentation/filesystems/devfs/modules.conf | 2 +- Documentation/filesystems/vfs.txt | 5 +- Documentation/ioctl-number.txt | 1 + Documentation/joystick-parport.txt | 138 ++---- Documentation/joystick.txt | 673 ++++++++++----------------- 9 files changed, 503 insertions(+), 642 deletions(-) (limited to 'Documentation') diff --git a/Documentation/Configure.help b/Documentation/Configure.help index e13f5a71b..5e4f351e5 100644 --- a/Documentation/Configure.help +++ b/Documentation/Configure.help @@ -12811,143 +12811,183 @@ CONFIG_JOYSTICK weapon control system or something like that you can say Y here to enable generic support for these controllers. You will also need to say Y or M to at least one of the hardware specific drivers. This - will make the controllers available as /dev/jsX devices. Please read - the file Documentation/joystick.txt which contains more information - and the location of the joystick package that you'll need. + will make the controllers available as /dev/input/jsX devices. + Please read the file Documentation/joystick.txt which contains more + information and the location of the joystick package that you'll + need. + +ns558 gameports +CONFIG_INPUT_NS558 + Say Y here if you have an ISA, ISAPnP or PCI standard gameport. + For more information on how to use the driver please read + Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joystick.o. If you want to compile it as a - module, say M here and read Documentation/modules.txt. + The module will be called ns558.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. + +PDPI Lightning 4 gamecard +CONFIG_INPUT_LIGHTNING + Say Y here if you have a PDPI Lightning 4 gamecard. For more + information on how to use the driver please read + Documentation/joystick.txt + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called lightning.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. -Classic PC analog -CONFIG_JOY_ANALOG +Aureal Vortex and Trident 4DWave gameports +CONFIG_INPUT_PCIGAME + Say Y here if you have a Trident 4DWave DX/NX or Aureal Vortex 1/2 + card. For more information on how to use the driver please read + Documentation/joystick.txt + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called pcigame.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. + +Classic PC analog joysticks and gamepads +CONFIG_INPUT_ANALOG Say Y here if you have a controller that connects to the PC gameport. This supports many different types, including joysticks with throttle control, with rudders, or with extensions like additional hats and buttons compatible with CH Flightstick Pro, - ThrustMaster FCS or 6 and 8 button gamepads. For more information on - how to use the driver please read Documentation/joystick.txt + ThrustMaster FCS, 6 and 8 button gamepads, or Saitek Cyborg + joysticks. For more information on how to use the driver please read + Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-analog.o. If you want to compile + The module will be called analog.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -FPGaming and MadCatz A3D -CONFIG_JOY_ASSASSIN +Assasin 3D and MadCatz Panther devices +CONFIG_INPUT_A3D Say Y here if you have an FPGaming or MadCatz controller using the A3D protocol over the PC gameport. For more information on how to use the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-assasin.o. If you want to compile + The module will be called a3d.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -Gravis GrIP -CONFIG_JOY_GRAVIS - Say Y here if you have a Gravis controller using the GrIP protocol - over the PC gameport. For more information on how to use the driver - please read Documentation/joystick.txt +Logitech ADI digital joysticks and gamepads +CONFIG_INPUT_ADI + Say Y here if you have a Logitech controller using the ADI + protocol over the PC gameport. For more information on how to use + the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-gravis.o. If you want to compile + The module will be called adi.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -Logitech ADI -CONFIG_JOY_LOGITECH - Say Y here if you have a Logitech controller using the ADI - protocol over the PC gameport. For more information on how to use - the driver please read Documentation/joystick.txt +Creative Labs Blaster Cobra gamepad +CONFIG_INPUT_COBRA + Say Y here if you have a Creative Labs Blaster Cobra gamepad. + For more information on how to use the driver please read + Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-logitech.o. If you want to compile + The module will be called cobra.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -Microsoft SideWinder -CONFIG_JOY_SIDEWINDER - Say Y here if you have a Microsoft controller using the Digital - Overdrive protocol over PC gameport. For more information on how to - use the driver please read Documentation/joystick.txt +Genius Flight2000 Digital joysticks and gamepads +CONFIG_INPUT_GF2K + Say Y here if you have a Genius Flight2000 or MaxFighter + digitally communicating joystick or gamepad. For more information + on how to use the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-sidewinder.o. If you want to compile + The module will be called gf2k.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -ThrustMaster DirectConnect -CONFIG_JOY_THRUSTMASTER - Say Y here if you have a ThrustMaster controller using the - DirectConnect (BSP) protocol over the PC gameport. For more - information on how to use the driver please read - Documentation/joystick.txt +Gravis GrIP joysticks and gamepads +CONFIG_INPUT_GRIP + Say Y here if you have a Gravis controller using the GrIP protocol + over the PC gameport. For more information on how to use the driver + please read Documentation/joystick.txt + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called grip.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. + +InterAct digital joysticks and gamepads +CONFIG_INPUT_INTERACT + Say Y hereif you have an InterAct gameport or joystick + communicating digitally over the gameport. For more information on + how to use the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-thrustmaster.o. If you want to compile + The module will be called interact.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -Creative Labs Blaster -CONFIG_JOY_CREATIVE - Say Y here if you have a Creative Labs controller using the - Blaster protocol over the PC gameport. For more information on how - to use the driver please read Documentation/joystick.txt +ThrustMaster DirectConnect joysticks and gamepads +CONFIG_INPUT_TMDC + Say Y here if you have a ThrustMaster controller using the + DirectConnect (BSP) protocol over the PC gameport. For more + information on how to use the driver please read + Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-creative.o. If you want to compile + The module will be called tmdc.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -PDPI Lightning 4 cards -CONFIG_JOY_LIGHTNING - Say Y here if you have a PDPI Lightning 4 gamecard and an analog - joystick or gamepad connected to it. For more information on how to +Microsoft SideWinder digital joysticks and gamepads +CONFIG_INPUT_SIDEWINDER + Say Y here if you have a Microsoft controller using the Digital + Overdrive protocol over PC gameport. For more information on how to use the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-lightning.o. If you want to compile + The module will be called sidewinder.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -Logitech WingMan Warrior -CONFIG_JOY_WARRIOR - Say Y here if you have a Logitech WingMan Warrior controller - connected to your computer's serial port. For more information on - how to use the driver please read Documentation/joystick.txt +Serial port input line discipline +CONFIG_INPUT_SERPORT + Say Y hereif you plan to use a joystick that communicates over the + serial (COM) port. For more information on how to use the driver + please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-warrior.o. If you want to compile + The module will be called serport.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -Trident 4DWave and Aureal Vortex gameport -CONFIG_JOY_PCI - Say Y here if you have a Trident 4DWave DX/NX or Aureal Vortex 1/2 - card and want to use its gameport in its enhanced digital mode - with and ordinary analog joystick. For more information on how to - use the driver please read Documentation/joystick.txt +Logitech WingMan Warrior joystick +CONFIG_INPUT_WARRIOR + Say Y here if you have a Logitech WingMan Warrior joystick + connected to your computer's serial port. For more information on + how to use the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-pci.o. If you want to compile + The module will be called warrior.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -Magellan and Space Mouse -CONFIG_JOY_MAGELLAN +LogiCad3d Magellan/SpaceMouse 6dof controller +CONFIG_INPUT_MAGELLAN Say Y here if you have a Magellan or Space Mouse 6DOF controller connected to your computer's serial port. For more information on how to use the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-magellan.o. If you want to compile + The module will be called magellan.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -SpaceTec SpaceOrb 360 and SpaceBall Avenger -CONFIG_JOY_SPACEORB +SpaceTec SpaceOrb/Avenger 6dof controller +CONFIG_INPUT_SPACEORB Say Y here if you have a SpaceOrb 360 or SpaceBall Avenger 6DOF controller connected to your computer's serial port. For more information on how to use the driver please read @@ -12955,37 +12995,39 @@ CONFIG_JOY_SPACEORB This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-spaceorb.o. If you want to compile + The module will be called spaceorb.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -SpaceTec SpaceBall 4000 FLX -CONFIG_JOY_SPACEBALL - Say Y here if you have a SpaceTec SpaceBall 4000 FLX - controller connected to your computer's serial port. For more - information on how to use the driver please read - Documentation/joystick.txt +SpaceTec SpaceBall 4000 FLX 6dof controller +CONFIG_INPUT_SPACEBALL + Say Y here if you have a SpaceTec SpaceBall 4000 FLX controller + connected to your computer's serial port. For more information on + how to use the driver please read Documentation/joystick.txt + +I-Force joysticks/wheels +CONFIG_INPUT_IFORCE_232 + Say Y here if you have an I-Force joystick or steering wheel + connected to your serial (COM) port. For more information on + how to use the driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-spaceball.o. If you want to compile + The module will be called iforce.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. - -NES, SNES, N64, PSX, Multi -CONFIG_JOY_CONSOLE - Say Y here if you have a Nintendo Entertainment System gamepad, - Super Nintendo Entertainment System gamepad, Nintendo 64 gamepad, - Sony PlayStation gamepad or a Multisystem -- Atari, Amiga, - Commodore, Amstrad CPC joystick connected to your parallel port. - For more information on how to use the driver please read - Documentation/joystick.txt and Documentation/joystick-parport.txt + +I-Force joysticks/wheels +CONFIG_INPUT_IFORCE_USB + Say Y here if you have an I-Force joystick or steering wheel + connected to your USB port. For more information on how to use the + driver please read Documentation/joystick.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-console.o. If you want to compile + The module will be called iforce.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. - -Sega, Multi -CONFIG_JOY_DB9 + +Multisystem, Sega Genesis, Saturn joysticks and gamepads +CONFIG_INPUT_DB9 Say Y here if you have a Sega Master System gamepad, Sega Genesis gamepad, Sega Saturn gamepad, or a Multisystem -- Atari, Amiga, Commodore, Amstrad CPC joystick connected to your parallel port. @@ -12994,24 +13036,38 @@ CONFIG_JOY_DB9 This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-db9.o. If you want to compile + The module will be called db9.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. + +Multisystem, NES, SNES, N64, PSX joysticks and gamepads +CONFIG_INPUT_GAMECON + Say Y here if you have a Nintendo Entertainment System gamepad, + Super Nintendo Entertainment System gamepad, Nintendo 64 gamepad, + Sony PlayStation gamepad or a Multisystem -- Atari, Amiga, + Commodore, Amstrad CPC joystick connected to your parallel port. + For more information on how to use the driver please read + Documentation/joystick.txt and Documentation/joystick-parport.txt + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called gamecon.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. -TurboGraFX Multisystem interface -CONFIG_JOY_TURBOGRAFX - Say Y here if you have the TurboGraFX interface by Steffen Schwenke, - and want to use it with Multiststem -- Atari, Amiga, Commodore, - Amstrad CPC joystick. For more information on how to use the driver - please read Documentation/joystick.txt and +Multisystem joysticks via TurboGraFX device +CONFIG_INPUT_TURBOGRAFX + Say Y here if you have the TurboGraFX interface by Steffen + Schwenke, and want to use it with Multiststem -- Atari, Amiga, + Commodore, Amstrad CPC joystick. For more information on how to use + the driver please read Documentation/joystick.txt and Documentation/joystick-parport.txt This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). - The module will be called joy-turbografx.o. If you want to compile + The module will be called turbografx.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. Amiga joysticks -CONFIG_JOY_AMIGA +CONFIG_INPUT_AMIJOY Say Y here if you have an Amiga with a digital joystick connected to it. For more information on how to use the driver please read Documentation/joystick.txt @@ -14244,7 +14300,7 @@ CONFIG_OBP_FLASH The OpenBoot PROM on Ultra systems is flashable. If you want to be able to upgrade the OBP firmware, say Y here. -JavaStation OS Flash SIMM (EXPERIMENTAL) +JavaStation OS Flash SIMM CONFIG_SUN_JSFLASH If you say Y here, you will be able to boot from your JavaStation's Flash memory. diff --git a/Documentation/cpqarray.txt b/Documentation/cpqarray.txt index 45a53216f..67db480cb 100644 --- a/Documentation/cpqarray.txt +++ b/Documentation/cpqarray.txt @@ -1,11 +1,5 @@ This driver is for Compaq's SMART2 Intellegent Disk Array Controllers. -WARNING: --------- - -This driver comes with NO WARRANTY. It is not officially supported by -Compaq. Do not call technical support. Use at your own risk. - Supported Cards: ---------------- @@ -22,6 +16,7 @@ This driver is known to work with the following cards: * Integrated Smart Array Controller * SA 4200 * SA 4250ES + * SA 431 It should also work with some really old Disk array adapters, but I am unable to test against these cards: diff --git a/Documentation/filesystems/devfs/ChangeLog b/Documentation/filesystems/devfs/ChangeLog index 5728384e6..a96f6f09e 100644 --- a/Documentation/filesystems/devfs/ChangeLog +++ b/Documentation/filesystems/devfs/ChangeLog @@ -1533,3 +1533,46 @@ Work sponsored by SGI - Updated Documentation/filesystems/devfs/README - Updated sample modules.conf +=============================================================================== +Changes for patch v168 + +Work sponsored by SGI + +- Disabled multi-mount capability (use VFS bindings instead) + +- Updated README from master HTML file +=============================================================================== +Changes for patch v169 + +Work sponsored by SGI + +- Removed multi-mount code + +- Removed compatibility macros: VFS has changed too much +=============================================================================== +Changes for patch v170 + +Work sponsored by SGI + +- Updated README from master HTML file + +- Merged devfs inode into devfs entry +=============================================================================== +Changes for patch v171 + +Work sponsored by SGI + +- Updated sample modules.conf + +- Removed dead code in which used to call + + +- Ported to kernel 2.4.0-test2-pre3 +=============================================================================== +Changes for patch v172 + +Work sponsored by SGI + +- Changed interface to + +- Changed interface to diff --git a/Documentation/filesystems/devfs/README b/Documentation/filesystems/devfs/README index c9b111b9b..b09c8fd9e 100644 --- a/Documentation/filesystems/devfs/README +++ b/Documentation/filesystems/devfs/README @@ -3,7 +3,7 @@ Devfs (Device File System) FAQ Linux Devfs (Device File System) FAQ Richard Gooch -1-MAY-2000 +14-JUN-2000 ----------------------------------------------------------------------------- @@ -797,13 +797,15 @@ which must exist *before* init starts. Once again, you need to mount devfs and then create the named pipe *before* init starts. -The default behaviour now is not to mount devfs onto /dev at boot time. -You can correct this with the "devfs=mount" boot option. This solves -any problems with init, and also prevents the dreaded: +The default behaviour now is not to mount devfs onto /dev at boot time +for 2.3.x and later kernels. You can correct this with the +"devfs=mount" boot option. This solves any problems with init, +and also prevents the dreaded: Cannot open initial console -message. +message. For 2.2.x kernels where you need to apply the devfs patch, +the default is to mount. If you have automatic mounting of devfs onto /dev then you may need to create /dev/initctl in your boot scripts. The following lines should @@ -1460,9 +1462,19 @@ Other resources Douglas Gilbert has written a useful document at http://www.torque.net/sg/devfs_scsi.html which -explores the SCSI subsystem and how it interacts with devfs. +explores the SCSI subsystem and how it interacts with devfs +Douglas Gilbert has written another useful document at + +http://www.torque.net/scsi/scsihosts.html which +discusses the scsihosts= boot option + + +Douglas Gilbert has written yet another useful document at + +http://www.torque.net/scsi/linux_scsi_24 which +discusses the Linux SCSI subsystem in 2.4. diff --git a/Documentation/filesystems/devfs/modules.conf b/Documentation/filesystems/devfs/modules.conf index d925cd28b..a91c99651 100644 --- a/Documentation/filesystems/devfs/modules.conf +++ b/Documentation/filesystems/devfs/modules.conf @@ -1,7 +1,7 @@ # Sample entries for /etc/modules.conf for devfs ############################################################################### -# Configuration section: change to suit +# Configuration section: change to suit your hardware # alias /dev/sound sb alias /dev/v4l bttv diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 7d1f5ca72..7256f5aaf 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt @@ -176,7 +176,7 @@ filesystem. As of kernel 2.1.99, the following members are defined: struct super_operations { void (*read_inode) (struct inode *); - void (*write_inode) (struct inode *, int); + void (*write_inode) (struct inode *); void (*put_inode) (struct inode *); void (*delete_inode) (struct inode *); int (*notify_change) (struct dentry *, struct iattr *); @@ -198,8 +198,7 @@ or bottom half). read. Other members are filled in by this method write_inode: this method is called when the VFS needs to write an - inode to disc. The second parameter indicates whether the write - should be synchronous or not, not all filesystems check this flag. + inode to disc put_inode: called when the VFS inode is removed from the inode cache. This method is optional diff --git a/Documentation/ioctl-number.txt b/Documentation/ioctl-number.txt index 366f2dbd7..0edc635ff 100644 --- a/Documentation/ioctl-number.txt +++ b/Documentation/ioctl-number.txt @@ -103,6 +103,7 @@ Code Seq# Include File Comments 'V' all linux/vt.h 'W' 00-1F linux/watchdog.h conflict! 'W' 00-1F linux/wanrouter.h conflict! +'X' all linux/xfs_fs.h 'Y' all linux/cyclades.h 'a' all ATM on linux diff --git a/Documentation/joystick-parport.txt b/Documentation/joystick-parport.txt index 2217a0489..0576fc07e 100644 --- a/Documentation/joystick-parport.txt +++ b/Documentation/joystick-parport.txt @@ -1,5 +1,5 @@ - Linux Joystick parport drivers v1.2 BETA - (c) 1998-1999 Vojtech Pavlik + Linux Joystick parport drivers v2.0 + (c) 1998-2000 Vojtech Pavlik (c) 1998 Andree Borrmann Sponsored by SuSE ---------------------------------------------------------------------------- @@ -39,7 +39,7 @@ and/or SNES gamepads connected to the parallel port at once, the output lines of the parallel port are shared, while one of 5 available input lines is assigned to each gamepad. - This protocol is handled by the joy-console.c driver, so that's the one + This protocol is handled by the gamecon.c driver, so that's the one you'll use for NES and SNES gamepads. The main problem with PC parallel ports is that they don't have +5V power @@ -199,9 +199,9 @@ were not compatible with each other: And there were many others. -2.2.1 Multisystem joysticks using joy-db9.c -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - For the Multisystem joysticks, and their derivatives, the joy-db9.c driver +2.2.1 Multisystem joysticks using db9.c +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + For the Multisystem joysticks, and their derivatives, the db9.c driver was written. It allows only one joystick / gamepad per parallel port, but the interface is easy to build and works with almost anything. @@ -236,25 +236,25 @@ the parallel port. And that's it. On a side note, if you have already built a different adapter for use with -the digital joystick driver 0.8.0.2, this is also supported by the joy-db9.c +the digital joystick driver 0.8.0.2, this is also supported by the db9.c driver, as device type 8. (See section 3.2) -2.2.2 Multisystem joysticks using joy-console.c -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +2.2.2 Multisystem joysticks using gamecon.c +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For some people just one joystick per parallel port is not enough, and/or -want to use them on one parallel port together with NES/SNES/PSX pads. This -is possible using the joy-console.c. It supports up to 5 devices of the -above types, including 1 and 2 buttons Multisystem joysticks. +want to use them on one parallel port together with NES/SNES/PSX pads. This is +possible using the gamecon.c. It supports up to 5 devices of the above types, +including 1 and 2 buttons Multisystem joysticks. However, there is nothing for free. To allow more sticks to be used at once, you need the sticks to be purely switch based (that is non-TTL), and not to need power. Just a plain simple six switches inside. If your joystick can do more (eg. turbofire) you'll need to disable it totally first -if you want to use joy-console.c. +if you want to use gamecon.c. Also, the connection is a bit more complex. You'll need a bunch of diodes, and one pullup resistor. First, you connect the Directions and the button -the same as for joy-db9, however with the diodes inbetween. +the same as for db9, however with the diodes inbetween. Diodes (pin 2) -----|<|----> Up @@ -278,17 +278,17 @@ Power --[10kOhm]--+ And that's all, here we go! -2.2.3 Multisystem joysticks using joy-turbografx.c -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +2.2.3 Multisystem joysticks using turbografx.c +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The TurboGraFX interface, designed by Steffen Schwenke allows up to 7 Multisystem joysticks connected to the parallel port. In -Steffen's version, there is support for up to 5 buttons per joystick. -However, since this doesn't work reliably on all parallel ports, the -joy-turbografx.c driver supports only one button per joystick. For more -information on how to build the interface, see +Steffen's version, there is support for up to 5 buttons per joystick. However, +since this doesn't work reliably on all parallel ports, the turbografx.c driver +supports only one button per joystick. For more information on how to build the +interface, see http://www2.burg-halle.de/~schwenke/parport.html @@ -298,7 +298,7 @@ information on how to build the interface, see WARNING: PSX support is experimental, and at the moment doesn't seem to work for most people. If you like adventure, you can try yourself. - The PSX controller is supported by the joy-console.c. + The PSX controller is supported by the gamecon.c. Pinout of the PSX controller (compatible with DirectPadPro): @@ -328,7 +328,7 @@ controllers: ~~~~~~~~ All the Sega controllers are more or less based on the standard 2-button Multisystem joystick. However, since they don't use switches and use TTL -logic, the only driver useable with them is the joy-db9.c driver. +logic, the only driver useable with them is the db9.c driver. 2.4.1 Sega Master System ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -377,13 +377,13 @@ the following schematic: (pin 14) -----> Select - The rest is the same as for Multi2 joysticks using joy-db9.c + The rest is the same as for Multi2 joysticks using db9.c 2.4.3 Sega Saturn ~~~~~~~~~~~~~~~~~ Sega Saturn has eight buttons, and to transfer that, without hacks like Genesis 6 pads use, it needs one more select pin. Anyway, it is still -handled by the joy-db9.c driver. Its pinout is very different from anything +handled by the db9.c driver. Its pinout is very different from anything else. Use this schematic: +-----------> Select 1 @@ -409,7 +409,7 @@ parallel port. (pin 16) -----> Select 2 The other pins (Up, Down, Right, Left, Power, Ground) are the same as for -Multi joysticks using joy-db9.c +Multi joysticks using db9.c 3. The drivers ~~~~~~~~~~~~~~ @@ -417,16 +417,14 @@ Multi joysticks using joy-db9.c described above, allows to connect a different group of joysticks and pads. Here are described their command lines: -3.1 joy-console.c -~~~~~~~~~~~~~~~~~ - Using joy-console.c you can connect up to five devices to one parallel -port. It uses the following kernel/module command line: +3.1 gamecon.c +~~~~~~~~~~~~~ + Using gamecon.c you can connect up to five devices to one parallel port. It +uses the following kernel/module command line: - js_console=port,pad1,pad2,pad3,pad4,pad5 + gc=port,pad1,pad2,pad3,pad4,pad5 - Where 'port' is either the address of the parallel port the joystick/pad -is connected to (eg. 0x378), or, if you are using the parport driver of 2.1+ -Linux kernels, the number of the parport interface (eg. 0 for parport0). + Where 'port' the number of the parport interface (eg. 0 for parport0). And 'pad1' to 'pad5' are pad types connected to different data input pins (10,11,12,13,15), as described in section 2.1 of this file. @@ -442,47 +440,22 @@ Linux kernels, the number of the parport interface (eg. 0 for parport0). 5 | Multisystem 2-button joystick 6 | Sony PSX controller 7 | N64 pad - 8 | N64 pad with direction pad as buttons (DirectPadPro style) The exact type of the PSX controller type is autoprobed, so you must have your controller plugged in before initializing. - Should you want to use more than one of parallel ports at once, you can -use js_console_2 and js_console_3 as additional command line parameters for -two more parallel ports. - - Changes: - v0.1 : First version (SNES only) - v0.2 : X/Y directions were exchanged... - v0.3 : Adaptation for kernel 2.1 - v0.4 : Adaptation for joystick-1.2.6 - - added open/close callbacks - v0.5 : Renamed to "joy-console" because I have added - PSX controller support. - v0.6 : NES support - v0.7V : Added "multi system" support - v0.8 : Bugfixed PSX driver... - v0.9V : Changed multi system support - Added Multi2 support - Fixed parport handling - Cleaned up - v0.10 : Fixed PSX buttons 8 and 9 - v0.11V: Switched to EXCL mode - Removed wakeup - v0.12V: Added N64 support - v0.13V: Updated N64 support - v0.14V: Fixed N64 axis/button counts - -3.2 joy-db9.c -~~~~~~~~~~~~~ + Should you want to use more than one of parallel ports at once, you can use +gc_2 and gc_3 as additional command line parameters for two more parallel +ports. + +3.2 db9.c +~~~~~~~~~ Apart from making an interface, there is nothing difficult on using the -joy-db9.c driver. It uses the following kernel/module command line: +db9.c driver. It uses the following kernel/module command line: - js_db9=port,type + db9=port,type - Where 'port' is either the address of the parallel port the joystick/pad -is connected to (eg. 0x378), or, if you are using the parport driver of 2.1+ -Linux kernels, the number of the parport interface (eg. 0 for parport0). + Where 'port' is the number of the parport interface (eg. 0 for parport0). Caveat here: This driver only works on bidirectional parallel ports. If your parallel port is recent enough, you should have no trouble with this. @@ -500,39 +473,26 @@ Old parallel ports may not have this feature. 6 | Genesis pad (6+2 buttons) 7 | Saturn pad (8 buttons) 8 | Multisystem 1-button joystick (v0.8.0.2 pin-out) - 9 | Two Multiststem 1-button joysticks (v0.8.0.2 pin-out) + 9 | Two Multisystem 1-button joysticks (v0.8.0.2 pin-out) + 10 | Amiga CD32 pad Should you want to use more than one of these joysticks/pads at once, you -can use js_db9_2 and js_db9_3 as additional command line parameters for two +can use db9_2 and db9_3 as additional command line parameters for two more joysticks/pads. - Changes: - v0.1 : First version - v0.2 : Changed kernel parameter format - v0.3V: Added Sega Saturn support - Fixed parport and PS/2 mode handling - Cleaned up - v0.4V: Switched to EXCL mode - Removed wakeup - v0.5V: Added 0.8.0.2 HW compatibility for Multi sticks - v0.6V: Better timing for Genesis 6 - v0.7V: Added 0.8.0.2 second joystick support - -3.3 joy-turbografx.c -~~~~~~~~~~~~~~~~~~~~ - The joy-turbografx.c driver uses a very simple kernel/module command line: +3.3 turbografx.c +~~~~~~~~~~~~~~~~ + The turbografx.c driver uses a very simple kernel/module command line: - js_tg=port,js1,js2,js3,js4,js5,js6,js7 + tgfx=port,js1,js2,js3,js4,js5,js6,js7 - Where 'port' is either the address of the parallel port the interface is -connected to (eg. 0x378), or, if you are using the parport driver of 2.1+ -Linux kernels, the number of the parport interface (eg. 0 for parport0). + Where 'port' is the number of the parport interface (eg. 0 for parport0). 'jsX' is the number of buttons the Multisystem joysticks connected to the interface ports 1-7 have. For a standard multisystem joystick, this is 1. Should you want to use more than one of these interfaces at once, you can -use js_tg_2 and js_tg_3 as additional command line parameters for two more +use tgfx_2 and tgfx_3 as additional command line parameters for two more interfaces. 3.4 PC parallel port pinout diff --git a/Documentation/joystick.txt b/Documentation/joystick.txt index 163fece8c..4e53bd281 100644 --- a/Documentation/joystick.txt +++ b/Documentation/joystick.txt @@ -1,5 +1,5 @@ - Linux Joystick driver v1.2.15 - (c) 1996-1999 Vojtech Pavlik + Linux Joystick driver v2.0.0 + (c) 1996-2000 Vojtech Pavlik Sponsored by SuSE ---------------------------------------------------------------------------- @@ -29,45 +29,17 @@ in the package: See the file COPYING. 1. Intro ~~~~~~~~ The joystick driver for Linux provides support for a variety of joysticks -and similar devices. - - These currently include various analog joysticks and gamepads (both -variable resistor based and microswitch+resistor based), following IBM PC -joystick standard, with extensions like additional hats and buttons -compatible with CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button -gamepads. - - In addition to these it also supports some of the new PC joysticks that -use proprietary digital protocols to communicate over the gameport, -currently by FPGaming, Gravis, Logitech, MadCatz, Microsoft, Creative and -ThrustMaster. Saitek protocol support is still to be done. - - The driver also includes support for many gamepads and joysticks that were -used by various non-PC computers and game consoles. These include Multi -system joysticks (Atari, Amiga, Commodore, Amstrad), Sega gamepads (Master -System, Genesis, Saturn), Nintendo gamepads (NES, SNES, N64), Sony gamepads -(PSX). Support for Atari Jaguar, Atari 2600, NES FourScore, SNES MultiTap -and others might be added later. - - Last, but not least there is also native Amiga joystick support for the -Amiga Linux port. +and similar devices. It is based on a larger project aiming to support all +input devices in Linux. Should you encounter any problems while using the driver, or joysticks this driver can't make complete use of, I'm very interested in hearing about them. Bug reports and success stories are also welcome. - The joystick package is available at the following FTP sites: - - ftp://ftp.suse.cz/pub/development/joystick/ - ftp://atrey.karlin.mff.cuni.cz/pub/linux/joystick/ - ftp://ftp.gts.cz/pub/linux/joystick/ - - And a homepage of the driver is at: + The input project website is at: - http://www.suse.cz/development/joystick/ - http://atrey.karlin.mff.cuni.cz/~vojtech/joystick/ - http://www.trylinux.com/projects/joystick/ - http://www.linuxgames.com/joystick/ + http://www.suse.cz/development/input/ + http://atrey.karlin.mff.cuni.cz/~vojtech/input/ There is also a mailing list for the driver at: @@ -77,114 +49,70 @@ send "subscribe linux-joystick Your Name" to subscribe to it. 2. Usage ~~~~~~~~ - You could have obtained this driver in two different ways - either in the -joystick package or in the kernel. Because, for successful usage of the -joysticks, the utilities in the package are useful, maybe necessary, and -definitely recommended, I suggest you getting the package at some of the -above mentioned locations. The rest of this file assumes you have it. - -2.1 Compiling the driver package -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - To compile the utilities in the joystick package, and the driver itself, -as a standalone module, you first unpack the package, and then edit the -Makefile to meet your needs (namely whether are you using versioned -modules). You will also need an unpacked and configured - - make config - -kernel in - - /usr/src/linux - -Furthermore, if you're using versioned modules, you'll also need - - make dep - -done on the kernel, to create some needed files. - -After that, you compile the joystick driver - - make - - And after that you install it - - make install - - In case you have not used the driver before, you'll need to create the -joystick device files in /dev so that applications can use them: - - make devs - - For manual creation of the joystick devices, check the -Documentation/devices.txt file in the Linux source tree. + For basic usage you just choose the right options in kernel config and +you should be set. - Should you not want to mess with the kernel, and just use the driver -standalone, as modules, skip the next two sections, proceeding right to 2.4, -because all you need is already done. +2.1 inpututils +~~~~~~~~~~~~~~ +For testing and other purposes (for example serial devices), a set of +utilities is available at the abovementioned website. I suggest you download +and install it before going on. -2.2 Patching the kernel -~~~~~~~~~~~~~~~~~~~~~~~ - If you already have the most recent joystick driver in your kernel, skip -this section. If not, you need to patch the kernel, so that it contains the -current driver version. You do that with a command: - - patch -Esp1 < /usr/src/joystick-1.2.x/kernel-2.x.y.diff - -in - - /usr/src/linux - -2.3 Compiling the kernel -~~~~~~~~~~~~~~~~~~~~~~~~ - To compile joystick support into the kernel, use the kernel configuration -scripts, and answer 'Y' to Joystick support and also to at least one of the -hardware specific options. After doing something like - - make bzlilo - - you are done with the driver installation. Just reboot and the driver -should find all the connected joysticks. Read the notes about the hardware -specific drivers later in this file, though. - - You can also compile the driver as modules, answering 'M' to all joystick -support you want to have modules for. It is possible to have the main -joystick driver compiled into the kernel and the hardware dependent drivers -as modules. After you compile the modules - - make modules - - And install them - - make modules_install - - you're set, and can proceed to the next step. +2.2 Device nodes +~~~~~~~~~~~~~~~~ +For applications to be able to use the joysticks, in you don't use devfs, +you'll have to manually create these nodes in /dev: + +cd /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 + +For testing with inpututils it's also convenient to create these: + +mknod input/event0 c 13 64 +mknod input/event1 c 13 65 +mknod input/event2 c 13 66 +mknod input/event3 c 13 67 + +2.4 Modules needed +~~~~~~~~~~~~~~~~~~ + For all joystick drivers to function, you'll need the userland interface +module in kernel, either loaded or compiled in: -2.4 Inserting the modules into the kernel -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - After installing the modules you'll first need to insert the generic -joystick driver module into the kernel + modprobe joydev - insmod joystick + For gameport joysticks, you'll have to load the gameport driver as well; - and then one or more of the hardware specific modules + modprove ns558 - insmod joy-something + And for serial port joysticks, you'll need the serial input line +discipline module loaded and the inputattach utility started: - where 'something' is the type of your joystick. See below for more precise -explanation. + modprobe serport + inputattach -xxx /dev/tts/X & - Alternately you can add the lines + In addition to that, you'll need the joystick driver module itself, most +usually you'll have an analog joystick: - alias char-major-15 joy-something - options joy-something js_xx=x,x,x,x,... + modprobe analog + + For automatic module loading, something like this might work: - to the /etc/conf.modules file, so that the joystick module will be loaded -automatically when the /dev/js devices are accessed. + alias tty-ldisc-2 serport + alias char-major-13 joydev ns558 analog 2.5 Verifying that it works ~~~~~~~~~~~~~~~~~~~~~~~~~~~ For testing the joystick driver functionality, there is the jstest -program. You run it by typing: +program in the utilities package. You run it by typing: jstest /dev/js0 @@ -231,109 +159,95 @@ In this section each of the separate hardware specific drivers is described. 3.1 Analog joysticks ~~~~~~~~~~~~~~~~~~~~ - The joy-analog.c uses the standard analog inputs of the gameport, and thus -supports all standard joysticks and gamepads. It also supports extensions -like additional hats and buttons compatible with CH Flightstick Pro, -ThrustMaster FCS or 6 and 8 button gamepads. + The analog.c 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. + + It 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 supportted by this driver, because +they're basically souped up CHF sticks. However the only types that can be autodetected are: * 2-axis, 4-button joystick * 3-axis, 4-button joystick * 4-axis, 4-button joystick +* Saitek Cyborg 'digital' joysticks For 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 joy-analog.o into the kernel. The +module command line, when inserting analog.o into the kernel. The parameters are: - js_an=p0,m0,n0,p1,m1,n1 ... - - Where 'p' is the port number, eg. 0x201, which is the standard address. -'m' and 'n' are joystick 0 and joystick 1 bitmasks for the specified -joystick port. The bits in the bitmasks mean: - - Bit | 2^n | Meaning - ---------------------------------- - 0 | 1 | Axis X1 - 1 | 2 | Axis Y1 - 2 | 4 | Axis X2 - 3 | 8 | Axis Y2 - 4 | 16 | Button A - 5 | 32 | Button B - 6 | 64 | Button C - 7 | 128 | Button D - 8 | 256 | CHF Buttons X and Y - 9 | 512 | CHF Hat 1 - 10 | 1024 | CHF Hat 2 - 11 | 2048 | FCS Hat - 12 | 4096 | Pad Button X - 13 | 8192 | Pad Button Y - 14 | 16384 | Pad Button U - 15 | 32768 | Pad Button V - -(CHF = CH Flightstick Pro, FCS = ThrustMaster FCS) - - Following is a table of joysticks for which the 'm' values are known. If -you have any additions/corrections to it, e-mail me. - - Joystick | 'm' value - ---------------------------------------------------- - Simple 2-button 2-axis joystick | 0x0033 - Second simple joystick on Y-cable | 0x00cc - Genius Flight2000 F-12 | 0x00f3 - Genius Flight2000 F-21 | 0x08f7 - Genius Flight2000 F-22 | 0x02ff - Genius GameHunter G-06 | 0xf0f3 - Genius MaxFire G-07 | 0xf0f3 - Genius PowerStation | 0xf0f3 - Laing #1 PC SuperPad | 0xf0f3 - Logitech Wingman | 0x003b - Microsoft SideWinder Standard | 0x003b - QuickShot QS-201 SuperWarrior | 0x00fb - Saitek Megapad XII | 0x30f3 - PC Powerpad Pro | 0x30f3 - - In case you have one of the joystick in the table below, and it doesn't -work with a specific driver in digital mode for some reason, you can use -them in analog mode with the joy-analog driver as well. However, digital -operation is always better. - - Joystick | 'm' value - ---------------------------------------------------- - Gravis GamePad Pro - analog mode | 0x00f3 - Genius Flight2000 F-23 | 0x02ff - Microsoft SideWinder 3D Pro - CHF mode | 0x02ff - Microsoft SideWinder 3D Pro - FCS mode | 0x08f7 - - An example that would configure the driver to use two two axis, two button -joysticks connected to port 0x201, a single four button four axis joystick -connected to port 0x202, a four axis, six button and two hat CHF compatible -joystick on 0x203, and a two axis four button FCS compatible joystick with a -single hat on 0x207: - - js_an=0x201,0x33,0xcc,0x202,0xff,0,0x203,0x7ff,0,0x207,0x8f3,0 - - If you can't sum bits into hex numbers in your head easily, you can simply -sum the values in the 2^n column decimally and use that number instead. -Using this method you'd get a command line: - - js_an=0x201,51,204,0x202,255,0,0x203,2047,0,0x207,2291,0 - - And it would do the same as the above explained command line. Use -whichever way you like best. + js=type,type,type,.... + + '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. + + 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 + + In 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. + + 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 3.2 Microsoft SideWinder joysticks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Microsoft 'Digital Overdrive' protocol is supported by the -joy-sidewinder.c module. All currently supported joysticks: + Microsoft 'Digital Overdrive' protocol is supported by the sidewinder.c +module. All currently supported joysticks: -* SideWinder 3D Pro -* SideWinder Force Feedback Pro -* SideWinder Force Feedback Wheel -* SideWinder FreeStyle Pro -* SideWinder GamePad (up to four, chained together) -* SideWinder Precision Pro +* Microsoft SideWinder 3D Pro +* Microsoft SideWinder Force Feedback Pro +* Microsoft SideWinder Force Feedback Wheel +* Microsoft SideWinder FreeStyle Pro +* Microsoft SideWinder GamePad (up to four, chained) +* Microsoft SideWinder Precision Pro +* Microsoft SideWinder Precision Pro USB are autodetected, and thus no module parameters are needed. @@ -349,9 +263,9 @@ by the analog driver described above. 3.3 Logitech ADI devices ~~~~~~~~~~~~~~~~~~~~~~~~ - Logitech ADI protocol is supported by the joy-logitech.c module. It should -support any Logitech device using this protocol. This includes, but is not -limited to: + Logitech 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: * Logitech CyberMan 2 * Logitech ThunderPad Digital @@ -370,48 +284,48 @@ together. Logitech 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 -CyberMan, Logitech WingMan Force and Logitech WingMan Formula Force are not -supported yet. +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. 3.4 Gravis GrIP ~~~~~~~~~~~~~~~ - Gravis GrIP protocol is supported by the joy-gravis.c module. It -currently supports: + Gravis GrIP protocol is supported by the grip.c module. It currently +supports: * Gravis GamePad Pro -* Gravis Xterminator * Gravis BlackHawk Digital +* Gravis Xterminator +* Gravis Xterminator DualControl All these devices are autodetected, and you can even use any combination of up to two of these pads either chained together or using an Y-cable on a single gameport. -GrIP MultiPort and Gravis Xterminator DualControl aren't supported yet. -Gravis Stinger is a serial device and hopefully will be supported in the -future. Other Gravis joysticks are supported by the joy-analog driver. +GrIP MultiPort isn't supported yet. Gravis Stinger is a serial device and +hopefully will be supported soon. Other Gravis joysticks are supported by +the analog driver. 3.5 FPGaming A3D and MadCatz A3D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Assassin 3D protocol created by FPGaming, is used both by FPGaming themselves and is licensed to MadCatz. A3D devices are supported by the -joy-assassin.c module. It currently supports: +a3d.c module. It currently supports: * FPGaming Assassin 3D * MadCatz Panther * MadCatz Panther XL All these devices are autodetected. Because the Assassin 3D and the Panther -allow connecting analog joysticks to them, these are supported in this -driver, too. The driver uses the js_as parameter for the analog joysticks, -which has the same syntax as js_an for the analog driver. +allow connecting analog joysticks to them, you'll need to load the analog +driver as well to handle the attached joysticks. - The trackball support is far from perfect at this stage of development, -but should be well usable. + The trackball should work with USB mousedev module as a normal mouse. See +the USB documentation for how to setup an USB mouse. 3.6 ThrustMaster DirectConnect (BSP) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - The TM DirectConnect (BSP) protocol is supported by the joy-thrustmaster.c + The TM DirectConnect (BSP) protocol is supported by the tmdc.c module. This includes, but is not limited to: * ThrustMaster Millenium 3D Inceptor @@ -426,96 +340,62 @@ module. This includes, but is not limited to: If you have one of these, contact me. BSP devices are autodetected, and thus no parameters to the module -are needed. +are needed. Up to two TMDC devices can be connected to one gameport, using +an Y-cable. 3.7 Creative Labs Blaster ~~~~~~~~~~~~~~~~~~~~~~~~~ - The Blaster protocol is supported by the joy-creative.c module. It -currently supports only the: + The Blaster protocol is supported by the cobra.c module. It supports only +the: * Creative Blaster GamePad Cobra Up to two of these can be used on a single gameport, using an Y-cable. -3.8 PDPI Lightning 4 gamecards -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - PDPI Lightning 4 gamecards are supported by the joy-lightning.c module. -This driver is only for analog joysticks connected to the card - if you want -to use some of the digital devices, you need to use its specific driver. The -card will work in legacy mode with them, though. - - Since all features of analog joysticks can't be detected, this driver -needs a command line: - - js_l4=p0,m0,n0,p1,m1,n1,.... - - As you can see, it's very similar to the analog drivers command line. -Actually it is the same except for the meaning of p0. p0 in this case is the -port the joystick is attached to: - - p | Port - ---------------------------- - 0 | Primary card, port 1 - 1 | Primary card, port 2 - 2 | Primary card, port 3 - 3 | Primary card, port 4 - 4 | Secondary card, port 1 - 5 | Secondary card, port 2 - 6 | Secondary card, port 3 - 7 | Secondary card, port 4 - - Two cards maximum are allowed in one system, because of the card's design. - - See the description of analog joystick driver for explanations of m0 and -n0 values. - -3.9 Trident 4DWave / Aureal Vortex -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Soundcards with a Trident 4DWave DX/NX or Aureal Vortex chipset provide an -"Enhanced Game Port" mode where the soundcard handles polling the joystick. -This mode is supported by the joy-pci module. - - If no module parameters are given, the joy-pci module will set all the -soundcards it finds to "enhanced" mode, and will try to autodetect the type -of attached joystick. It can only detect the same types of joysticks that -the joy-analog module can. - - This module accepts parameters in the form: - - js_pci=t0,i0,m0,n0,t1,i1,m1,n1,.... - - The "t" value specifies the type of card, as follows: - - t | Card Type - ---------------------------- - 0 | Trident 4DWave DX - 1 | Trident 4DWave NX - 2 | Aureal Vortex1 (Au8820 chipset) - 3 | Aureal Vortex2 (Au8830 chipset) - - If you have more than one card of the same type, the "i" parameter lets -you choose which card to apply the "m" and "n" values to. It counts from -"0". (The driver detects cards in the order listed in the above table.) - - The "m" and "n" values have the same meaning as for the analog module, -with the exception that the value m=0, n=0 indicates that joy-pci should -completely ignore that port. This can be useful to reserve a certain port -for purely MIDI operation. +3.8 Genius Digital joysticks +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The Genius digitally communicating joysticks are supported by the gf2k.c +module. This includes: - For example, let's say you have 3 sound cards - a 4Dwave DX, a 4DWave NX, -and a Vortex 2. You have a three-axis, four-button, one-hat CHF- compatible -joystick on the DX. You use the NX to interface to an external MIDI device. -Finally, you have two two-axis, two-button joysticks on the Vortex. Your -command line might look like: +* Genius Flight2000 F-23 joystick +* Genius Flight2000 F-31 joystick +* Genius G-09D gamepad - js_pci=0,0,0x207,0,1,1,0,0,3,0,0x33,0xcc + Other Genius digital joysticks are not supported yet, but support can be +added fairly easily. -3.10 Amiga +3.9 InterAct Digital joysticks +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The InterAct digitally communicating joysticks are supported by the +interact.c module. This includes: + +* InterAct HammerHead/FX gamepad +* InterAct ProPad8 gamepad + + Other InterAct digital joysticks are not supported yet, but support can be +added fairly easily. + +3.10 PDPI Lightning 4 gamecards +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + PDPI 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. + +3.11 Trident 4DWave / Aureal Vortex +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Soundcards with a Trident 4DWave DX/NX or Aureal Vortex/Vortex2 chipsets +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.. + +3.12 Amiga ~~~~~~~~~~ - Amiga joysticks, connected to an Amiga, are supported by the joy-amiga.c + Amiga joysticks, connected to an Amiga, are supported by the amijoy.c driver. Since they can't be autodetected, the driver has a command line. - js_am=a,b + amijoy=a,b a and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of the Amiga. @@ -528,32 +408,32 @@ the Amiga. 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. -3.11 Game console and 8-bit pads and joysticks +3.13 Game console and 8-bit pads and joysticks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See joystick-parport.txt for more info. -3.12 SpaceTec/LabTec devices +3.14 SpaceTec/LabTec devices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SpaceTec serial devices communicate using the SpaceWare protocol. It is -supported by the joy-spaceorb and joy-spaceball drivers. The devices currently -supported by joy-spaceorb are: +supported by the spaceorb.c and spaceball.c drivers. The devices currently +supported by spaceorb.c are: * SpaceTec SpaceBall Avenger * SpaceTec SpaceOrb 360 -Devices currently supported by joy-spaceball are: +Devices currently supported by spaceball.c are: * SpaceTec SpaceBall 4000 FLX - In addition to having the joy-spaceorb/spaceball module in the kernel, you -also need to attach a serial port to it. to do that, run the jsattach -program: + In 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 +jsattach program: - jsattach --spaceorb /dev/ttySx & + inputattach --spaceorb /dev/tts/x & or - jsattach --sball4 /dev/ttySx & + jsattach --spaceball /dev/tts/x & -where /dev/ttySx is the serial port which the device is connected to. After +where /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. There is one caveat with the SpaceOrb. The button #6, the on the bottom @@ -564,9 +444,9 @@ you bind it to some other function. SpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet. -3.13 Logitech SWIFT devices +3.15 Logitech SWIFT devices ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - The SWIFT serial protocol is supported by the joy-warrior module. It + The SWIFT serial protocol is supported by the warrior.c module. It currently supports only the: * Logitech WingMan Warrior @@ -575,11 +455,11 @@ but in the future, Logitech CyberMan (the original one, not CM2) could be supported as well. To use the module, you need to run jsattach after you insert/compile the module into your kernel: - jsattach --warrior /dev/ttySx & + inputattach --warrior /dev/tts/x & -ttySx is the serial port your Warrior is attached to. +/dev/tts/x is the serial port your Warrior is attached to. -3.14 Magellan / Space Mouse +3.16 Magellan / Space Mouse ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space Systems), for many other companies (Logitech, HP, ...) is supported by the @@ -592,10 +472,29 @@ models, the additional buttons on the 'Plus' versions are not supported yet. To use it, you need to attach the serial port to the driver using the - jsattach --magellan /dev/ttySx & + inputattach --magellan /dev/tts/x & command. After that the Magellan will be detected, initialized, will beep, -and the /dev/jsX device should become useable. +and the /dev/input/jsX device should become useable. + +3.17 I-Force devices +~~~~~~~~~~~~~~~~~~~~ + All I-Force devices ale supported by the iforce.c module. This includes, +but is not limited to: + +* Logitech WingMan Force +* Logitech WingMan Force Wheel +* Guillemot Race Leader wheel + + To use it, you need to attach the serial port to the driver using the + + inputattach --iforce /dev/tts/x & + +command. After that the I-Force device will be detected, and the +/dev/input/jsX device should become useable. + + In case you're using the device via the USB port, the inputattach command +isn't needed. 4. Troubleshooting ~~~~~~~~~~~~~~~~~~ @@ -604,80 +503,20 @@ 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: - jstest --normal /dev/js0 - jstest --old /dev/js0 - - If your trouble stems from the fact the drivers can't detect the joystick -attached to your gameport, and you decide you need my help (which I will -gladly provide), please use the joydump utility first. It's created just by -typing - - make joydump.o - - in the directory where you unpacked the joystick package. It is run then -by typing + jstest --normal /dev/input/js0 + jstest --old /dev/input/js0 - insmod joydump.o + Additionally you can do a test with the evtest utility: - in the same directory. It will return a 'device busy' or 'initialization -failed' error. This is perfectly okay. It has already done it's job. The -results can be found in the system log or in the output of the - - dmesg - -command. Please send me the results along with your problem report. + evtest /dev/input/event0 Oh, and read the FAQ! :) 5. FAQ ~~~~~~ -Q: The driver doesn't find any joysticks connected to my soundcard with the - message "joy-something: no joysticks found" and "joy-something.o: - init_module: Device or resource busy." or "Initialization of joy-something - failed" What could be the cause? -A: The most common cause is that the joystick port on your soundcard is - not enabled. If it is an ISA PnP card, you'll need isapnptools to configure - the gameport. Non-PnP cards usually use some option to the sound driver - - see the sound driver docs and source and enable the port. Note that in case - of a PnP card you have to load the joystick driver as a module after running - the isapnp command, it will not work in the opposite order. - -Q: Any access to the joystick devices gives me "Operation not supported by - device". What am I doing wrong? -A: You're running a 2.0 kernel and you forgot to insmod the hardware - specific module. You not only need the joystick.o, but also one of the other - joy-*.o files (most usually joy-analog.o), as described in this document, - section 2. If you are not using modules, then you didn't say 'Y' to any of - the hardware-specific questions. Again, see section 2. If you did select - the specific support, and you still get this message, check that you - selected the right one, and if it still doesn't work, go to the previous - FAQ. - -Q: Everything is fine, except I get "No such device" error when I try to - do anything with /dev/js0. What's the cause? -A: You're running a 2.1 or 2.2. kernel and you want to read the previous FAQ. - -Q: Upon 'insmod joystick.o' I get a LOT of unresolved symbols, including - 'printk' and others. Why? -A: You either don't have your kernel compiled with module support. If - that's the cause, re-compile your kernel with module support switched on. - Or, you use versioned symbols, and don't have -DMODVERSIONS in the joystick - driver Makefile, or vice versa. Correct the situation by either removing or - adding -DMODVERSIONS to the Makefile. - -Q: Upon 'insmod joy-something' I get a bunch of unresolved symbols, like - 'js_register_port, js_unregister device' and others. What's wrong? -A: You need to 'insmod joystick.o' first. - -Q: Running 'jstest 1' or 'jscal 1' doesn't work, and returns with "File - not found" error. What is the problem? -A: The command line interface for these tools is different from what - version 0.8.0 used. You have to specify the whole device name, eg. 'jstest - /dev/js0'. - Q: Running 'jstest /dev/js0' results in "File not found" error. What's the cause? -A: The device files don't exist. Run 'make devs'. +A: The device files don't exist. Create them (see section 2.2). Q: Is 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 @@ -741,47 +580,3 @@ to the joystick driver development: If you think you should be in this list and are not, it's possible that I forgot to include you - contact me and I'll correct the error. :) - - Thanks to KYE Systems Europe, who provided me with driver sources for the -Genius Flight2000 Digital F-23, which happens to be identical (in software) -to Microsoft SideWinder 3D Pro. - - Thanks to ThrustMaster Inc. who provided me with docs for their digital -protocol specifications, and to Trystan A Larey-Williams , -who wrote an attempt of a driver for them. - - Thanks to Creative Labs Europe, and Ifor Powell , -who provided me with docs for their first generation Blaster GamePad. - - Special thanks go to FP-Gaming, Inc. and James C Barnes , -who provided me with help and detailed information about the Assassin 3D -protocol and devices, and even sent me a Panther and Panther XL for testing, -along with cool T-shirts. - - Special thanks to PDPI, Mike Pelkey and Brand Kvavle -, for providing me with documentation and example -code for their L4 gamecard, and sending me the card to test my driver with -it. - - Thanks to LogiCad3D for their support, for having the specifications -online and for the nice music on their telephone. - - Special thanks to Logitech, Jerry de Raad , -Thomas Burgel , Avinash Shinde - for providing me with a lot of documentation -for their devices, and also for a big box, containing a CyberMan2, Wingman -Extreme, Magellan, Wingman Warrior, two MouseMan mice, and a NewTouch -keyboard. - - Thanks to everyone else who helped me develop this package of drivers! - - No thanks to Microsoft and Gravis, who don't release a word about their -hardware .... :( - -8. ChangeLog -~~~~~~~~~~~~ - See the ChangeLog file for the log of changes. - -9. To do -~~~~~~~~ - See the TODO file for the list of things planned. -- cgit v1.2.3