PS3's Joystick on FreeBSD (can be possible?)

Kai Wang kaiwang27 at gmail.com
Mon Mar 15 17:44:51 UTC 2010


On Sat, Mar 13, 2010 at 02:56:21PM +0100, Alexander Best wrote:
> Hans Petter Selasky schrieb am 2010-03-13:
> > On Saturday 13 March 2010 13:21:10 Paul B Mahol wrote:
> > > On 3/13/10, Alexander Best <alexbestms at wwu.de> wrote:
> > > > Paul B Mahol schrieb am 2010-03-13:
> > > >> On 3/13/10, Alexander Best <alexbestms at wwu.de> wrote:
> > > >> > i'm sorry to hijack this thread, but i've been having similar
> > > >> > issues as
> > > >> > Vinicius with his PS3 controller with my logitech cordless
> > > >> > gamepad.
> > > >> > this is
> > > >> > the attach message:
> 
> > > >> > ugen3.3: <Logitech> at usbus3
> > > >> > uhid0: <Logitech Logitech Cordless RumblePad 2, class 0/0, rev
> > > >> > 1.10/2.00,
> > > >> > addr
> > > >> > 3> on usbus3
> 
> > > >> > the output of `usbhidctl -f /dev/uhid0 -r` is:
> 
> > > >> > Report descriptor:
> > > >> > Collection page=Generic_Desktop usage=Game_Pad
> > > >> > Total   input size 0 bytes
> > > >> > Total  output size 0 bytes
> > > >> > Total feature size 0 bytes
> 
> > > >> > if i do `hd /dev/uhid0` is see output like this when pressing
> > > >> > buttons on the
> > > >> > gamepad:
> 
> > > >> > 00000000  01 78 72 88 69 08 00 01  01 80 7f 7f 80 18 00 00
> 
> > > >> > |.xr.i...........|
> 
> > > >> > 00000010  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 08 00 00
> 
> > > >> > |................|
> 
> > > >> > 00000020  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 28 00 00
> 
> > > >> > |.............(..|
> 
> > > >> > 00000030  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 48 00 00
> 
> > > >> > |.............H..|
> 
> > > >> > 00000040  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 88 00 00
> 
> > > >> > |................|
> 
> > > >> > 00000050  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 08 01 00
> 
> > > >> > |................|
> 
> > > >> > 00000060  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 08 02 00
> 
> > > >> > |................|
> 
> > > >> > 00000070  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 08 04 00
> 
> > > >> > |................|
> 
> > > >> > 00000080  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 08 08 00
> 
> > > >> > |................|
> 
> > > >> > 00000090  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 08 10 00
> 
> > > >> > |................|
> 
> > > >> > 000000a0  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 08 20 00
> 
> > > >> > |..............
> 
> > > >> > .|
> > > >> > 000000b0  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 04 00 00
> 
> > > >> > |................|
> 
> > > >> > 000000c0  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 06 00 00
> 
> > > >> > |................|
> 
> > > >> > 000000d0  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 00 00 00
> 
> > > >> > |................|
> 
> > > >> > 000000e0  01 80 7f 7f 80 08 00 00  01 80 7f 7f 80 02 00 00
> 
> > > >> > |................|
> 
> > > >> > the pad has 10 buttons, 1 analog stick, 2 digital sticks, a
> > > >> > "mode"
> > > >> > button
> > > >> > and
> > > >> > a "vibration" button.
> 
> > > >> There was/is ujoy in development but that is all.
> 
> > > > thanks for the hint. i mailed the developer a year or so ago due
> > > > to his
> > > > post on the freebsd-drivers@ mailinglist [1], but he told
> > > > development of
> > > > the ujoy driver had ceased. i checked the site mentioned in his
> > > > post and
> > > > the ujoy driver from back then is also no longer available.
> 
> > > > so there is no way of xorg or hal working directly with uhid
> > > > devices
> > > > then?
> 
> > > There is xf86-input-joystick, but I dunno about its usability.
> 
> 
> > Also look here:
> 
> > http://wiki.freebsd.org/uhidd
> 
> thanks for the hint. i'm about to try it out. however i'm having difficulties
> recompiling my kernel without ukbd (which is required for using uhidd):

You don't need to remove ukbd from kernel unless you want to use
uhidd's own keyboard "driver". Since it's a gamepad, you only need to
compile the kernel without uhid(4) and start uhidd with "uhidd -hs
/dev/ugen.X.Y". Then you can try something like "usbhidctl -f
/dev/uvhid0"...

However, uhidd doesn't have specific joystick/gamepad support at the
moment.  The only benefit of using uhidd on joystick/gamepad is:

1) split multiple joysticks using one endpoint (for converters, very rare).
2) strip the report id byte so usbhidctl and the userland usbhid(3)
   parser can support the device.

Cheers,
Kai


More information about the freebsd-usb mailing list