You are not logged in.

#1 2015-02-21 10:54:19

darArch
Member
From: Scotland
Registered: 2013-07-25
Posts: 10

Xbox Controller Driver (University Project - Request for Help/Testers)

Hi

I have been developing a driver for the Microsoft Xbox 360 Wired Controller as part of a project at university.

The project was borne out of three things:

1. An interest in systems programming which my course hadn't dealt with (we mainly used Java)
2. A desire to contribute to Linux and open source software in general
3. My own struggles with the existing solutions (xpad/xboxdrv) - I have never managed to configure either of them to work successfully

Currently, the driver handles all possible input (Sticks/Triggers/D-pad treated as axes, all buttons treated as, well, buttons), and also provides output in the form of force feedback and the led indicator ring. The only core functionality I know is missing right now is proper support for multiple simultaneous devices being connected (I will be implementing this over the next week).

Right now, I am looking for two things:

1. Help writing a PKGBUILD
2. Testers.

PKGBUILD
---------------
I have never written one from scratch before, I have attempted this task over the course of yesterday evening and this morning however without success. Ideally I would like the PKGBUILD to place the compiled kernel module in the proper location that it can be dynamically loaded by the end user using modprobe. This functionality is necessary as the module depends on the ff-memless module being loaded into the kernel also.

Testing
----------
Ideally I would like feedback from testers on three or possibly four occasions:

1. Today (I have provided a link to the source code and makefile below)
2. After a PKGBUILD has been created (to ensure the PKGBUILD works)
3. After functionality has been implemented to enable multiple controllers to be used simultaneously
4. After performance measuring code has been implemented (I am hoping to measure performance using either perf or ftrace, I am not sure whether this will require placing callbacks in the module code itself)

I am mainly looking for general feedback about your experience using the driver, comments in terms of whether you find it accurate, laggy, etc are all welcome, as are comparisons to existing solutions. Ideally I would like quantitative feedback too, this would be in terms of using jstest to provide details of suggested deadzone values.

Current Usage
--------------------

NOTE: Currently the driver is only targeted at the wired Microsoft Xbox 360 Controller, specifically this is a device with vendor ID: 0x045e and productID: 0x028e. This information is viewable using

lsusb

, you should see

Bus 004 Device 004: ID 045e:028e Microsoft Corp. Xbox360 Controller

or something similar. If there is enough interest in the project I hope to carry it on (and accept contributions to the code) after the 'official' project end date of 14th April 2015, at which point I will aim to expand support to other devices.

The source code and makefile are downloadable from my repository here: https://bitbucket.org/darArch/dissertation

After downloading and running make you should end up with a file called xbx_driver.ko (among others), before doing anything else please run

sudo modprobe ff-memless

, this will load in ff-memless to the running kernel, now you can load xbx_driver.ko using

sudo insmod xbx_driver.ko

.

If the driver has been loaded successfully then towards the bottom of the current kernel log (viewable using 'dmesg') you should see

usbcore: registered new interface driver xbx_driver

or something similar. At this point I hope you will plug in your controller and (successfully) test the device, and hopefully, come back and tell me about your experience using it.

If you have any questions before testing, or after testing, or just want to provide feedback having tested the driver, then please do so in response to this thread. I will check on it as often as I can, especially after releasing each new version, when I will also post in reply to notify anyone who has been helpful enough to test it.

PS: thanks to fsckd for pointing me to the right sub forum to post this to begin with.

EDIT
-------
PPS: As this is a project for university, if I am fortunate enough that some people test the software and provide feedback to me, note that I cannot accept contributions to the code until after the 'official' project end date of 14th April 2015.

Last edited by darArch (2015-02-21 10:57:22)

Offline

#2 2015-02-21 16:43:50

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 20,701

Re: Xbox Controller Driver (University Project - Request for Help/Testers)

I hope you don't mind.  I am moving this thread to AUR Issues, Discussion and PKGBUILD requests.  At least for the time being.   
I think it will have more visibility to the right group of members there.


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
The shortest way to ruin a country is to give power to demagogues.— Dionysius of Halicarnassus
---
How to Ask Questions the Smart Way

Offline

#3 2015-02-21 16:47:41

darArch
Member
From: Scotland
Registered: 2013-07-25
Posts: 10

Re: Xbox Controller Driver (University Project - Request for Help/Testers)

No problem, once a PKGBUILD is in place and an AUR package is uploaded should I message you to move it back or start a new thread back in Community Contributions?

Also, to be clear, whilst I can't accept contributions to the driver code I most definitely can in regard to a PKGBUILD.

Offline

#4 2015-02-21 17:12:14

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 20,701

Re: Xbox Controller Driver (University Project - Request for Help/Testers)

Yes, if ever you would like a moderator to move a thread, just use the report function and leave the moderators a note.  One of us are generally on line.  If not, the delays only a couple hours at most.


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
The shortest way to ruin a country is to give power to demagogues.— Dionysius of Halicarnassus
---
How to Ask Questions the Smart Way

Offline

Board footer

Powered by FluxBB