Date: Fri, 9 Dec 2005 03:13:26 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-hackers@freebsd.org, freebsd-usb@freebsd.org, Ed Schouten <ed@fxq.nl> Subject: Re: [WIP] uhid(4): Support for the Microsoft Xbox360 gamepad Message-ID: <200512090313.27392.hselasky@c2i.net> In-Reply-To: <20051208225644.GJ15719@hoeg.nl> References: <20051208225644.GJ15719@hoeg.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 08 December 2005 23:56, Ed Schouten wrote: > Hello, > > Last week I heard that Microsoft's new Xbox360 uses regular USB > connectors for their gamepads. Because the guys at Xbox-Linux.org > already wrote a driver for Linux, I decided to buy one and write a > FreeBSD driver for it. > > The Xbox360 gamepad is like any normal HID gamepad, except that it has > been slightly crippled by Microsoft: > > - They don't use the regular HID interface class, but the vendor > specific class in combination with an interface subclass. > - Their device does not contain a HID report descriptor. > > The first problem was easy to solve; I just changed the USB_MATCH code > to accept the UICLASS_VENDOR in combination with the interface subclass > and interface protocol. Limiting vendor and product ID's should be > avoided because that would block third party gamepads. > > The second problem was a little trickier because I had no experience > with writing report descriptors. After taking a look at examples and > reading documents at usb.org, I hacked one together. It's quite nice the > FreeBSD driver was somewhat prepared for custom report descriptors (the > Wacom Graphire gets a custom report descriptor for example). > > The result can be found here: > > http://g-rave.nl/files/xbox/freebsd-xbox360-gamepad.diff > > There are only some small unfinished parts though: > > - I don't know the output format state; I cannot control the rumbles or > the LEDs on the gamepad (I constantly see green leds flashing) > - For some reason, I can only read data when polling the gamepad. > `usbhidctl -f <device> -al` does not return any output. > > Useful hints would really be appreciated; I'm not a real wizard when it > comes to USB ;-) > > Yours, Hi, Maybe when you have tested this patch more, then make a PR, see "man send-pr", using "Category: usb", so that it does not get lost. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200512090313.27392.hselasky>