Using gamepad with usb2

Alexander Best alexbestms at math.uni-muenster.de
Thu Apr 9 15:52:18 UTC 2009


hi everybody,

i wrote the following mail to the freebsd-x11 mailinglist and was told that
the x joystick driver doesn't work with the usb2 stack. is there any
possibility at all for me to use my gamepad?

cheers.
Alex

here's the original mail:

hi there,

i'm running FreeBSD moshnroll 8.0-CURRENT FreeBSD 8.0-CURRENT #28 r190845: Wed
Apr  8 16:27:42 CEST 2009.

i'd like to use my joypad under X in order to play games, but i'm unable to
find any information on how to do this.

the device get's recognized as HID device. here's the line from dmesg:

uhid0: <Logitech Logitech Cordless RumblePad 2, class 0/0, rev 1.10/2.00, addr
2> on usbus0

i added the following lines to my xorg.conf:

Section "InputDevice"
    Identifier     "Logitech Cordless RumblePad 2"
    Option         "Vendor" "Logitech"
    Driver         "joystick"
    Option         "Path" "/dev/uhid0"
    Option         "Device" "/dev/uhid0"
    Option         "DebugLevel" "99"
EndSection

and added

InputDevice "Logitech Cordless RumblePad 2" "SendCoreEvents" to

Section "ServerLayout"

after starting X however i'm not able to use the joypad. i checked
/var/log/Xorg.0.log and found these entries which seem to be related to the
problem:

(**) Option "Device" "/dev/uhid0"
(**) Option "SendCoreEvents"
(**) Logitech Cordless RumblePad 2: always reports core events
(**) Option "DebugLevel" "99"
(**) Logitech Cordless RumblePad 2: debug level set to 99
(**) Button 1 mapped to 5
(**) Button 2 mapped to 5
(**) Button 3 mapped to 5
(**) Button 4 mapped to 0
(**) Button 5 mapped to 0
(**) Button 6 mapped to 0
(**) Button 7 mapped to 0
(**) Button 8 mapped to 0
(**) Button 9 mapped to 0
(**) Button 10 mapped to 0
(**) Button 11 mapped to 0
(**) Button 12 mapped to 0
(**) Button 13 mapped to 0
(**) Button 14 mapped to 0
(**) Button 15 mapped to 0
(**) Button 16 mapped to 0
(**) Button 17 mapped to 0
(**) Button 18 mapped to 0
(**) Button 19 mapped to 0
(**) Button 20 mapped to 0
(**) Button 21 mapped to 0
(**) Button 22 mapped to 0
(**) Button 23 mapped to 0
(**) Button 24 mapped to 0
(**) Button 25 mapped to 0
(**) Button 26 mapped to 0
(**) Button 27 mapped to 0
(**) Button 28 mapped to 0
(**) Button 29 mapped to 0
(**) Button 30 mapped to 0
(**) Button 31 mapped to 0
(**) Button 32 mapped to 0
(**) Axis 1 type is 1, mapped to 1, amplify=1.000
(**) Axis 2 type is 1, mapped to 2, amplify=1.000
(**) Axis 3 type is 1, mapped to 3, amplify=1.000
(**) Axis 4 type is 1, mapped to 4, amplify=1.000
(**) Axis 5 type is 2, mapped to 1, amplify=1.000
(**) Axis 6 type is 2, mapped to 2, amplify=1.000
(**) Axis 7 type is 0, mapped to 0, amplify=1.000
(**) Axis 8 type is 0, mapped to 0, amplify=1.000
(**) Axis 9 type is 0, mapped to 0, amplify=1.000
(**) Axis 10 type is 0, mapped to 0, amplify=1.000
(**) Axis 11 type is 0, mapped to 0, amplify=1.000
(**) Axis 12 type is 0, mapped to 0, amplify=1.000
(**) Axis 13 type is 0, mapped to 0, amplify=1.000
(**) Axis 14 type is 0, mapped to 0, amplify=1.000
(**) Axis 15 type is 0, mapped to 0, amplify=1.000
(**) Axis 16 type is 0, mapped to 0, amplify=1.000
(**) Axis 17 type is 0, mapped to 0, amplify=1.000
(**) Axis 18 type is 0, mapped to 0, amplify=1.000
(**) Axis 19 type is 0, mapped to 0, amplify=1.000
(**) Axis 20 type is 0, mapped to 0, amplify=1.000
(**) Axis 21 type is 0, mapped to 0, amplify=1.000
(**) Axis 22 type is 0, mapped to 0, amplify=1.000
(**) Axis 23 type is 0, mapped to 0, amplify=1.000
(**) Axis 24 type is 0, mapped to 0, amplify=1.000
(**) Axis 25 type is 0, mapped to 0, amplify=1.000
(**) Axis 26 type is 0, mapped to 0, amplify=1.000
(**) Axis 27 type is 0, mapped to 0, amplify=1.000
(**) Axis 28 type is 0, mapped to 0, amplify=1.000
(**) Axis 29 type is 0, mapped to 0, amplify=1.000
(**) Axis 30 type is 0, mapped to 0, amplify=1.000
(**) Axis 31 type is 0, mapped to 0, amplify=1.000
(**) Axis 32 type is 0, mapped to 0, amplify=1.000
(**) Option "SendCoreEvents"
(**) Logitech Cordless RumblePad 2 (keys): always reports core events
(II) evaluating device (Razer Diamondback 1600)
(II) XINPUT: Adding extended input device "Razer Diamondback 1600" (type:
MOUSE)
(II) evaluating device (Dell USB Keyboard)
(II) XINPUT: Adding extended input device "Dell USB Keyboard" (type: KEYBOARD)
(II) evaluating device (Logitech Cordless RumblePad 2)
(II) XINPUT: Adding extended input device "Logitech Cordless RumblePad 2"
(type: JOYSTICK)
(II) evaluating device (Logitech Cordless RumblePad 2 (keys))
(II) XINPUT: Adding extended input device "Logitech Cordless RumblePad 2
(keys)" (type: JOYSTICK)
jstkDeviceControlProc what=INIT
(EE) Joystick: Didn't find any usable axes.
jstkKeyboardDeviceControlProc what=DEVICE_INIT
(**) Initializing Keyboard with 1 keys
(**) Keymap [8]: 0x00000000
(II) Razer Diamondback 1600: SetupAuto: hw.iftype is 4, hw.model is 0
(II) Razer Diamondback 1600: SetupAuto: protocol is SysMouse
jstkKeyboardDeviceControlProc what=DEVICE_ON
jstkKeyboardDeviceControlProc what=DEVICE_OFF
(II) NVIDIA(0): Setting mode "1152x864"
(**) Option "BaudRate" "1200"
(**) Option "StopBits" "2"
(**) Option "DataBits" "8"
(**) Option "Parity" "None"
(**) Option "Vmin" "1"
(**) Option "Vtime" "0"
(**) Option "FlowControl" "None"
couldn't enable device 4
jstkKeyboardDeviceControlProc what=DEVICE_ON
jstkKeyboardDeviceControlProc what=DEVICE_OFF
(II) NVIDIA(0): Setting mode "1152x864"
couldn't enable device 4
jstkKeyboardDeviceControlProc what=DEVICE_ON
(II) 3rd Button detected: disabling emulate3Button
jstkKeyboardDeviceControlProc what=DEVICE_OFF
(II) NVIDIA(0): Setting mode "1152x864"
couldn't enable device 4
jstkKeyboardDeviceControlProc what=DEVICE_ON
(II) 3rd Button detected: disabling emulate3Button

i tried running usbhidctl -f /dev/uhid0 -a, but got no output. running
usbhidctl -f /dev/uhid0 -r gives me the following output:

Report descriptor:
Collection page=Generic_Desktop usage=Game_Pad
Total   input size 0 bytes
Total  output size 0 bytes
Total feature size 0 bytes

i did the following to see if the device actually works: hd /dev/uhid0 and
this is the result after pressing buttons 1-10:

00000000  01 80 80 7f 80 18 00 08  01 80 80 7f 80 08 00 08  |................|
00000010  01 80 80 7f 80 28 00 08  01 80 80 7f 80 08 00 08  |.....(..........|
00000020  01 80 80 7f 80 48 00 08  01 80 80 7f 80 08 00 08  |.....H..........|
00000030  01 80 80 7f 80 88 00 08  01 80 80 7f 80 08 00 08  |................|
00000040  01 80 80 7f 80 08 01 08  01 80 80 7f 80 08 00 08  |................|
00000050  01 80 80 7f 80 08 02 08  01 80 80 7f 80 08 00 08  |................|
00000060  01 80 80 7f 80 08 04 08  01 80 80 7f 80 08 00 08  |................|
00000070  01 80 80 7f 80 08 08 08  01 80 80 7f 80 08 00 08  |................|
00000080  01 80 80 7f 80 08 10 08  01 80 80 7f 80 08 00 08  |................|
00000090  01 80 80 7f 80 08 20 08  01 80 80 7f 80 08 00 08  |...... .........|

cheers.
Alex


More information about the freebsd-questions mailing list