Re: Trouble getting event device created after usbhid attaches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I finally was able to find out what was going on. The distribution I
was using was not packaging the kernel modules correctly, and was not
actually including the hid-dr.ko module in the kernel modules package,
so the additional module was needed on top of hid.ko (which I
originally thought contained all the extra drivers).

Finding it in the build directory and inserting the proper driver fixed it.

Sorry for the extra noise!

--Doug


On Thu, Apr 3, 2014 at 5:50 PM, Doug Clements <dclements@xxxxxxxxx> wrote:
> Hi all,
>    I'm having trouble getting a few devices to work, and I'm not sure
> where to go next. As far as I can tell, the usbhid driver attaches to
> the device, but an event device never gets created.
>
> This is kernel 3.3.8 on a wifi pineapple. The distro is based off
> open-wrt (attitude-adjustment, the latest).
> [    0.000000] CPU revision is: 00019374 (MIPS 24Kc)
> [    0.000000] SoC: Atheros AR9330 rev 1
>
> The device is a USB DragonRise Gamepad.
>
> ##########
> # lsusb  -v -d 0079:
>
> Bus 001 Device 011: ID 0079:0011 DragonRise Inc. Gamepad
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               1.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0         8
>   idVendor           0x0079 DragonRise Inc.
>   idProduct          0x0011 Gamepad
>   bcdDevice            1.06
>   iManufacturer           0
>   iProduct                2 USB Gamepad
>   iSerial                 0
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           34
>     bNumInterfaces          1
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0x80
>       (Bus Powered)
>     MaxPower              100mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      0 No Subclass
>       bInterfaceProtocol      0 None
>       iInterface              0
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.10
>           bCountryCode           33 US
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     101
>          Report Descriptors:
>            ** UNAVAILABLE **
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0008  1x 8 bytes
>         bInterval              10
> Device Status:     0x0000
>   (Bus Powered)
> ##########
>
>
> Here's the verbose messages when it's inserted:
> ##########
> [   78.710000] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0004
> [   78.710000] hub 1-1:1.0: port 2, status 0301, change 0001, 1.5 Mb/s
> [   78.870000] hub 1-1:1.0: debounce: port 2: total 100ms stable 100ms
> status 0x301
> [   78.950000] usb 1-1.2: new low-speed USB device number 6 using ehci-platform
> [   78.970000] hub 1-1:1.0: port 2 not reset yet, waiting 10ms
> [   79.080000] usb 1-1.2: skipped 1 descriptor after interface
> [   79.080000] usb 1-1.2: default language 0x0409
> [   79.080000] usb 1-1.2: udev 6, busnum 1, minor = 5
> [   79.080000] usb 1-1.2: New USB device found, idVendor=0079, idProduct=0011
> [   79.080000] usb 1-1.2: New USB device strings: Mfr=0, Product=2,
> SerialNumber=0
> [   79.090000] usb 1-1.2: Product: USB Gamepad
> [   79.100000] usb 1-1.2: usb_probe_device
> [   79.100000] usb 1-1.2: configuration #1 chosen from 1 choice
> [   79.100000] usb 1-1.2: adding 1-1.2:1.0 (config #1, interface 0)
> [   79.100000] usbserial_generic 1-1.2:1.0: usb_probe_interface
> [   79.100000] usbserial_generic 1-1.2:1.0: usb_probe_interface - got id
> [   79.100000] usbhid 1-1.2:1.0: usb_probe_interface
> [   79.100000] usbhid 1-1.2:1.0: usb_probe_interface - got id
> [   79.100000] drivers/usb/core/inode.c: creating file '006'
> ##########
> and then nothing.
>
>
> I have another similar device that works on the same system, and it
> looks like the next thing that should happen is that an event device
> gets created:
> ##########
> [  272.630000] usbserial_generic 1-1.2:1.0: usb_probe_interface - got id
> [  272.630000] usbhid 1-1.2:1.0: usb_probe_interface
> [  272.630000] usbhid 1-1.2:1.0: usb_probe_interface - got id
> [  272.650000] input: Saitek Cyborg USB Stick as
> /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/input/input0
> [  272.660000] generic-usb 0003:06A3:0464.0003: input,hidraw0: USB HID
> v1.00 Joystick [Saitek Cyborg USB Stick] on
> usb-ehci-platform-1.2/input0
> [  272.670000] drivers/usb/core/inode.c: creating file '009'
> ##########
>
> I have made sure that support for my device is compiled in
> (HID_DRAGONRISE kernel option). That module has the appropriate vendor
> and device IDs that match my device. As far as I can tell, usbhid is
> attaching to it just fine.
>
> According to /proc/bus/usb/devices:
> ##########
> T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 11 Spd=1.5  MxCh= 0
> D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
> P:  Vendor=0079 ProdID=0011 Rev= 1.06
> S:  Product=USB Gamepad
> C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
> E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
> ##########
>
> As a side note, I cannot also get a Sony PS3 controller or a MS
> Xbox360 controller working (both over USB, and both which should end
> up with event devices). Support for both is enabled in my modules. No
> idea if it's related or not, but the symptoms are the same (usbhid
> attaches, but no event device is created)
>
> I feel like I'm missing the link between the input-evdev module and
> the usbhid driver. Does anyone have any suggestions on where I should
> head next on this?
>
> Here's the root hub:
> ##########
>
> [    8.510000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> [    8.510000] ehci_hcd: block sizes: qh 64 qtd 96 itd 160 sitd 96
> [    8.510000] ehci-platform ehci-platform: Generic Platform EHCI Controller
> [    8.520000] drivers/usb/core/inode.c: creating file 'devices'
> [    8.520000] drivers/usb/core/inode.c: creating file '001'
> [    8.520000] ehci-platform ehci-platform: new USB bus registered,
> assigned bus number 1
> [    8.530000] ehci-platform ehci-platform: reset hcs_params 0x10011
> dbg=0 ind cc=0 pcc=0 ordered ports=1
> [    8.530000] ehci-platform ehci-platform: reset hcc_params 0006
> thresh 0 uframes 256/512/1024 park
> [    8.530000] ehci-platform ehci-platform: park 0
> [    8.530000] ehci-platform ehci-platform: reset command 0080002
> (park)=0 ithresh=8 period=1024 Reset HALT
> [    8.530000] ehci-platform ehci-platform: ...powerdown ports...
> [    8.560000] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
> [    8.560000] ehci-platform ehci-platform: init command 0010005
> (park)=0 ithresh=1 period=512 RUN
> [    8.580000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
> [    8.580000] usb usb1: default language 0x0409
> [    8.580000] usb usb1: udev 1, busnum 1, minor = 0
> [    8.580000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
> [    8.590000] usb usb1: New USB device strings: Mfr=3, Product=2,
> SerialNumber=1
> [    8.590000] usb usb1: Product: Generic Platform EHCI Controller
> [    8.600000] usb usb1: Manufacturer: Linux 3.3.8 ehci_hcd
> [    8.610000] usb usb1: SerialNumber: ehci-platform
> [    8.610000] usb usb1: usb_probe_device
> [    8.610000] usb usb1: configuration #1 chosen from 1 choice
> [    8.610000] usb usb1: adding 1-0:1.0 (config #1, interface 0)
>
> [    8.670000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> [    8.670000] ohci_hcd: block sizes: ed 64 td 64
> [    8.720000] ehci-platform ehci-platform: GetStatus port:1 status
> 10001803 8  ACK POWER sig=j CSC CONNECT
> [    8.720000] hub 1-0:1.0: port 1: status 0101 change 0001
> [    8.820000] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
> [    8.820000] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
> [    8.820000] uhci_hcd: USB Universal Host Controller Interface driver
> [    8.880000] ehci-platform ehci-platform: port 1 high speed
>
>
> # lsusb  -v -d 1d6b:
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            9 Hub
>   bDeviceSubClass         0 Unused
>   bDeviceProtocol         1 Single TT
>   bMaxPacketSize0        64
>   idVendor           0x1d6b Linux Foundation
>   idProduct          0x0002 2.0 root hub
>   bcdDevice            3.03
>   iManufacturer           3 Linux 3.3.8 ehci_hcd
>   iProduct                2 Generic Platform EHCI Controller
>   iSerial                 1 ehci-platform
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           25
>     bNumInterfaces          1
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xe0
>       Self Powered
>       Remote Wakeup
>     MaxPower                0mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         9 Hub
>       bInterfaceSubClass      0 Unused
>       bInterfaceProtocol      0 Full speed (or root) hub
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0004  1x 4 bytes
>         bInterval              12
> Hub Descriptor:
>   bLength               9
>   bDescriptorType      41
>   nNbrPorts             1
>   wHubCharacteristic 0x0009
>     Per-port power switching
>     Per-port overcurrent protection
>     TT think time 8 FS bits
>   bPwrOn2PwrGood       10 * 2 milli seconds
>   bHubContrCurrent      0 milli Ampere
>   DeviceRemovable    0x00
>   PortPwrCtrlMask    0xff
>  Hub Port Status:
>    Port 1: 0000.0503 highspeed power enable connect
> Device Status:     0x0001
>   Self Powered
> ##########
>
> --Doug
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux