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