atom feed3 messages in org.freebsd.freebsd-usbLogitech xbox gamepad as a uhid
FromSent OnAttachments
Kevin DowneyJan 30, 2008 12:14 pm 
Markus BruefferFeb 4, 2008 7:39 am 
Kevin DowneyFeb 6, 2008 12:20 pm 
Subject:Logitech xbox gamepad as a uhid
From:Markus Brueffer (
Date:Feb 4, 2008 7:39:17 am

Am Mittwoch, 30. Januar 2008 20:47:48 schrieb Kevin Downey:

I have a wireless xbox (not xbox 360) gamepad that I would like to use as a remote control for media stuff in X. I figure a first step in that direction is to get it recognized as a uhid device.

I find it hard to believe that I am the first person to do this on a freebsd box, yet googling the only hits I get are about xbox360 gamepad support.

uhub7: <Logitech Wingman Wireless Xbox Controller (hub), class 9/0, rev 1.10/1.03, addr 2> on uhub1 uhub7: 3 ports with 2 removable, bus powered id->bInterfaceClass 0x58 ugen0: <vendor 0x046d product 0xca84, class 0/0, rev 1.10/1.03, addr 3> on uhub7

the "id->bInterfaceClass 0x58" is from a printf I added after line 208 in /sys/dev/usb/uhid.c

/* The Xbox 360 gamepad doesn't use the HID class. */ printf("id->bInterfaceClass 0x%x\n",id->bInterfaceClass); if (id->bInterfaceClass != UICLASS_VENDOR || id->bInterfaceSubClass != UISUBCLASS_XBOX360_CONTROLLER || id->bInterfaceProtocol != UIPROTO_XBOX360_GAMEPAD) return (UMATCH_NONE);

My idea was maybe I could just add a case for this controller. Does anyone have any pointers(har har), besides "read the source" for how to get this working?

A first start would be to get it recognized by uhid(4). Please provide a descriptor dump of the device using sysutils/udesc_dump from ports.