From owner-freebsd-multimedia@FreeBSD.ORG Fri Nov 16 06:52:28 2012 Return-Path: Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D6871881 for ; Fri, 16 Nov 2012 06:52:28 +0000 (UTC) (envelope-from jbeich@tormail.org) Received: from outgoing.tormail.org (outgoing.tormail.org [82.221.96.22]) by mx1.freebsd.org (Postfix) with ESMTP id 460D88FC08 for ; Fri, 16 Nov 2012 06:52:27 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=internal.tormail.org) by outgoing.tormail.org with esmtp (Exim 4.72) (envelope-from ) id 1TZFms-0003zb-95; Fri, 16 Nov 2012 09:52:26 +0300 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tormail.org; s=tm; h=Message-Id:X-TorMail-User:Content-Type:MIME-Version:References:Date:In-Reply-To:Subject:Cc:To:From; bh=/lnNzWmWjKBFwT7gYO2Q6eK2q3fVnxfZBLEJF+StX0w=; b=oAN3/IypPIpnFEcZqNkYDBuTrc67CY9oN7k/tBQIS/llag3YVOr2dJqIwpn3R3qFGVEmJol1jtutakMCDlW+S2cNiTIxrAW1ATSIk0rXi1O69+KHndjbyyl6WM9MKTgm+vrcAJ1JnTP8X7Tvl+Fq6jJ1mwydliQj2Mfq+PCBAEw=; Received: from jbeich by internal.tormail.org with local (Exim 4.63) (envelope-from ) id 1TZFkh-00091p-22; Fri, 16 Nov 2012 06:50:13 +0000 From: Jan Beich To: Hans Petter Selasky Subject: Re: linux joystick In-Reply-To: <201211152119.29494.hselasky@c2i.net> (Hans Petter Selasky's message of "Thu, 15 Nov 2012 21:19:29 +0100") Date: Fri, 16 Nov 2012 07:44:20 +0100 References: <1TZ2UN-0007lV-2Q@internal.tormail.org> <201211152119.29494.hselasky@c2i.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-TorMail-User: jbeich Message-Id: <1TZFkh-00091p-22@internal.tormail.org> Cc: freebsd-multimedia@freebsd.org X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Nov 2012 06:52:29 -0000 --=-=-= Content-Type: text/plain Content-Disposition: inline Hans Petter Selasky writes: > On Thursday 15 November 2012 17:37:37 Jan Beich wrote: > >> Many linux games and wine provide support only for linux joystick. >> emulators/joytran helps but some games do not even support more than one >> keyboard player e.g., Shank. >> >> As devel/linux-js is nowadays broken I've tried to comile webcamd with >> CONFIG_INPUT_JOYDEV but it still fails to attach to my usb gamepad. >> OTOH, webcamd has no trouble attaching to my wacom tablet. Any clue >> what may be missing? >> >> -- >> # ubuntu (laptop) >> [ 33.907951] usb 2-1.5: new low-speed USB device number 3 using ehci_hcd >> [ 34.097118] input: Mega World Thrustmaster dual analog 3.2 as >> /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input15 [ >> 34.097409] generic-usb 0003:044F:B315.0001: input,hidraw0: USB HID v1.10 >> Gamepad [Mega World Thrustmaster dual analog 3.2] on >> usb-0000:00:1d.0-1.5/input0 [ 34.097427] usbcore: registered new >> interface driver usbhid >> [ 34.097430] usbhid: USB HID core driver >> >> # freebsd (foobox) >> $ usbconfig -d 3.3 dump_curr_config_desc >> ugen3.3: at usbus3, cfg=0 md=HOST >> spd=LOW (1.5Mbps) pwr=ON >> >> >> Configuration index 0 >> >> bLength = 0x0009 >> bDescriptorType = 0x0002 >> wTotalLength = 0x0022 >> bNumInterfaces = 0x0001 >> bConfigurationValue = 0x0001 >> iConfiguration = 0x0000 >> bmAttributes = 0x00a0 >> bMaxPower = 0x00af >> >> Interface 0 >> bLength = 0x0009 >> bDescriptorType = 0x0004 >> bInterfaceNumber = 0x0000 >> bAlternateSetting = 0x0000 >> bNumEndpoints = 0x0001 >> bInterfaceClass = 0x0003 >> bInterfaceSubClass = 0x0000 >> bInterfaceProtocol = 0x0000 >> iInterface = 0x0000 >> >> Additional Descriptor >> >> bLength = 0x09 >> bDescriptorType = 0x21 >> bDescriptorSubType = 0x10 >> RAW dump: >> 0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x6c, >> 0x08 | 0x00 >> >> Endpoint 0 >> bLength = 0x0007 >> bDescriptorType = 0x0005 >> bEndpointAddress = 0x0081 >> bmAttributes = 0x0003 >> wMaxPacketSize = 0x0008 >> bInterval = 0x000a >> bRefresh = 0x0000 >> bSynchAddress = 0x0000 >> >> $ webcamd -d 3.3 >> webcamd: Cannot find USB device > > Hi, > > How did you configure this? > > Did you install work/webcamd*/tools/linux_make ? > > And did you run "make -C work/webcamd* configure", after make extract patch? > > --HPS I've added a proper do-configure and made sure joydev.o is actually built. $ nm =webcamd | fgrep joy 0000000000408980 t joydev_cleanup 0000000000407860 t joydev_connect 0000000000407cd0 t joydev_disconnect 0000000000407640 t joydev_event 0000000000407630 t joydev_exit 0000000000a0b190 d joydev_exit_p 00000000004088d0 t joydev_fasync 000000000069d960 r joydev_fops 0000000000408a20 t joydev_free 00000000009885a0 d joydev_handler 000000000069d9e0 r joydev_ids 0000000000407620 t joydev_init 0000000000a09fd0 d joydev_init_p 0000000000408140 t joydev_ioctl 00000000004077f0 t joydev_match 0000000000408750 t joydev_open 00000000004080d0 t joydev_poll 0000000000407d10 t joydev_read 00000000004088e0 t joydev_release 0000000000a104e0 b joydev_table 0000000000988618 d joydev_table_mutex I've also tried $ pkill devd $ kldunload uhid $ webcamd -d 3.2 webcamd: Cannot find USB device -- $ usbconfig -d 3.2 dump_device_desc ugen3.2: at usbus3, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x0000 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x044f idProduct = 0xb315 bcdDevice = 0x0101 iManufacturer = 0x0001 iProduct = 0x0002 iSerialNumber = 0x0000 bNumConfigurations = 0x0001 $ usbhidctl -f /dev/uhid0 -r Report descriptor: Collection type=Application page=Generic_Desktop usage=Game_Pad Collection type=Physical page=Generic_Desktop usage=Pointer Input rid=0 size=1 count=1 page=Button usage=Button_1, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_2, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_3, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_4, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_5, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_6, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_7, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_8, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_9, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_10, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_11, logical range 0..1 Input rid=0 size=1 count=1 page=Button usage=Button_12, logical range 0..1 Input rid=0 size=4 count=1 page=Generic_Desktop usage=Hat_Switch, logical range 0..7, physical range 0..270, unit=0x40 exp=0 Input rid=0 size=8 count=1 page=Generic_Desktop usage=X, logical range -128..127, physical range 0..255 Input rid=0 size=8 count=1 page=Generic_Desktop usage=Y, logical range -128..127, physical range 0..255 Input rid=0 size=8 count=1 page=Generic_Desktop usage=Rz, logical range -128..127, physical range 0..255 Input rid=0 size=8 count=1 page=Generic_Desktop usage=Slider, logical range 0..255, physical range 0..255 Output rid=0 size=8 count=1 page=Generic_Desktop usage=0x00bb, logical range 0..255, physical range 0..255 Output rid=0 size=8 count=1 page=Generic_Desktop usage=0x00bb, logical range 0..255, physical range 0..255 Output rid=0 size=8 count=1 page=Generic_Desktop usage=0x00bb, logical range 0..255, physical range 0..255 Output rid=0 size=8 count=1 page=Generic_Desktop usage=0x00bb, logical range 0..255, physical range 0..255 End collection End collection Total input size 7 bytes Total output size 4 bytes Total feature size 0 bytes And my patch for do-configure + build fix should follow --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=joybuild.diff Index: multimedia/webcamd/Makefile =================================================================== --- multimedia/webcamd/Makefile (revision 307263) +++ multimedia/webcamd/Makefile (working copy) @@ -79,6 +79,10 @@ MAKE_ARGS+=" HAVE_DEBUG=YES" IGNORE= requires FreeBSD 8.0-RELEASE or later .endif +do-configure: + ${MAKE} -C${WRKSRC}/tools/linux_make + ${MAKE} configure -C${WRKSRC} + post-patch: @cd ${WRKSRC}/patches; ${SH} ./do_patch.sh Index: multimedia/webcamd/files/patch-Makefile =================================================================== --- multimedia/webcamd/files/patch-Makefile (revision 0) +++ multimedia/webcamd/files/patch-Makefile (working copy) @@ -0,0 +1,11 @@ +--- Makefile~ ++++ Makefile +@@ -277,7 +277,7 @@ help: + @echo "#" + + configure: +- linux_make -c config \ ++ tools/linux_make/linux_make -c config \ + -i media_tree/drivers/input \ + -i media_tree/drivers/media \ + -i media_tree/drivers/staging/media \ Index: multimedia/webcamd/files/patch-joy =================================================================== --- multimedia/webcamd/files/patch-joy (revision 0) +++ multimedia/webcamd/files/patch-joy (working copy) @@ -0,0 +1,29 @@ +--- config~ ++++ config +@@ -149,6 +149,8 @@ CONFIG_FW_LOADER=y + CONFIG_I2C=y + CONFIG_I2C_SI470X=y + CONFIG_INPUT=y ++CONFIG_INPUT_JOYDEV=y ++CONFIG_INPUT_JOYSTICK=y + CONFIG_INPUT_EVDEV=y + CONFIG_INPUT_TABLET=y + CONFIG_INPUT_TOUCHSCREEN=y +@@ -167,6 +168,7 @@ CONFIG_IR_SANYO_DECODER=y + CONFIG_IR_SONY_DECODER=y + CONFIG_IR_STREAMZAP=y + CONFIG_IR_TTUSBIR=y ++CONFIG_JOYSTICK_XPAD=y + CONFIG_LIRC=y + CONFIG_LIRC_IGORPLUGUSB=y + CONFIG_LIRC_STAGING=y +--- kernel/linux_defs.h~ ++++ kernel/linux_defs.h +@@ -220,6 +225,7 @@ + }) + #define DEFAULT_POLLMASK POLLNVAL + #define POLL_ERR POLLERR ++#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT) + #define _IOC_TYPE(cmd) IOCGROUP(cmd) + #define _IOC_SIZE(cmd) IOCPARM_LEN(cmd) + #define _IOC_NR(cmd) ((cmd) & 0xFF) --=-=-=--