This removes the earlier work done in libx52 to support USB hotplug. This wasn't adequately tested, and the reason to have hotplug support was to address perceived deficiencies in the standard API. However, on recent reflection and experimentation, it seems to be easier to support adding methods to connect to an X52/X52Pro joystick dynamically after initializing the library. This approach also lends itself to adding checks when sending control packets to close the device handle when it detects device disconnection. Also, one could add a disconnect method to disconnect from any connected joysticks. Finally, this commit reverts a series of commits that chronicled my journey into implementing hotplug support and simulating it in libusbx52. By coalescing the revert into a single commit, it makes it easier to revert the revert in the future, if necessary. |
||
---|---|---|
docs | ||
kernel_module | ||
lib | ||
m4 | ||
man | ||
po | ||
tests | ||
tools | ||
udev | ||
utils | ||
.gitignore | ||
.travis.yml | ||
.travis_build.sh | ||
AUTHORS | ||
ChangeLog.md | ||
Doxyfile.in | ||
LICENSE | ||
Makefile.am | ||
README.md | ||
autogen.sh | ||
configure.ac | ||
gettext.h |
README.md
Saitek X52Pro joystick driver for Linux
This project adds a new driver for the Saitek/MadCatz X52 Pro flight control system. The X52 pro is a HOTAS (hand on throttle and stick) with 7 axes, 39 buttons, 1 hat and 1 thumbstick and a multi-function display which is programmable.
Currently, only Windows drivers are available from Saitek PLC, which led me to develop a new Linux driver which can program the MFD and the individual LEDs on the joystick. The standard usbhid driver is capable of reading the joystick, but it cannot control the MFD or LEDs.
Most of the extra functionality can be handled from userspace. See the individual folders for README information.
Building
Build has been tested on the following operating systems (x86-64 only):
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- OS X 10.13.6
Prerequisites
You will need the following packages:
- automake
- autoconf
- autopoint
- gettext
- libtool
- libusb-1.0-0-dev (Package name may vary across distributions)
- pkg-config
- python (2.6 or greater)
If you are on OSX, you can install the above packages using Homebrew
Installation
- Clone the repository
- Run autogen.sh
- Run configure; make and sudo make install.