[[ XBox/XBox360 USB Gamepad Driver for Userspace ]] =================================================== This is a XBox/XBox360 gamepad driver for Linux that works in userspace. It is a alternative to the xpad kernel driver. [[ Compilation ]] ----------------- Required libraries and tools: * libusb * boost * scons * uinput You can compile by typing: % scons [[ Running ]] -------------- First make sure that the xpad kernel module does not get loaded, either by deleting or renaming it. rmmod might not be enough since it might be automatically loaded. Next you have to load the uinput kernel module, which allows userspace programms to create input devices, via: % modprobe uinput You also have to make sure that you have access rights to /dev/input/uinput, either add yourself to the appropriate group, adjust the permissions or run xboxdrv as root. Once ensured that xpad is out of the way and everything is in palce plug in your XBox360 gamepad and start the userspace driver with: % ./xboxdrv This will create a /dev/input/js0 and allow you to access the gamepad from any game. To exit the driver press Ctrl-c. If you have multiple controllers you need to start multiple instances of the xboxdrv driver and append the -i argument like this: % ./xboxdrv -i 1 This will then use the second detected controller, see to see which id your controller has: % ./xboxdrv --list-controller If you want to abuse the led or rumble of the gamepad for notification in scripts you can do see via: % ./xboxdrv --led 10 --rumble 30,30 --quit This will cause a mild rumble and the led to rotate, you can stop it again via: % ./xboxdrv -q [[ SDL Notes ]] --------------- To let SDL know which axis act as a hat and which act as normal axis you have to set an environment variable: % SDL_LINUX_JOYSTICK="'XBox360 Gamepad (userspace driver)' 6 1 0" % export SDL_LINUX_JOYSTICK This will let the DPad act as Hat in case you need that for any game. For most games the driver should work as-is. See ftp://ptah.lnf.kth.se/pub/misc/sdl-env-vars for more information. # EOF #