Discussion:
[Libusb-devel] Problems with attaching to my device to a USB3 Renesas controller.
Kenneth Schultz
2012-03-21 17:07:18 UTC
Permalink
I have a generic device with two bulk EPs connected to a Renesas USB 3 controller. I used Zadiag v2.0.1.154 to build be a driver (WinUSB (v6.1.7600.16385). I am running on a Win 7 32 bit build. When I look for the device in the Windows device console I can see it fine. But I have can not access it through the libusb driver. Over the last few days I have been reducing the driver stack and this morning I pulled the latest driver from libusb-pbatard-bb43370 and just ran the basic test. And even now I can not see my device. In the final list which is USB#VID_8042&PID_C02C. I can see it in the debug list below but it has the message about not being able to get non connection information for the device. I have tried modifying my descriptor but no luck. Right now, I can change anything to get this to work. What would you suggest???

ken

libusb:debug [windows_get_device_list] extra GUID: {0BCA412B-10F7-4E67-A759-27E00F2B9746}
libusb:debug [windows_get_device_list] allocating new device for session [37C]
libusb:warning [init_device] could not get node connection information for device '\\.\USB#VID_8042&PID_C02C#007': [87] The parameter is incorrect.




libusb:debug [libusb_init] created default context
libusb:debug [libusb_init]
libusb:debug [init_polling] Will use CancelIoEx for I/O cancellation
libusb:debug [htab_create] using 1021 entries hash table
libusb:debug [windows_clock_gettime_threaded] hires timer available (Frequency:
3132832 Hz)
libusb:debug [usbi_add_pollfd] add fd 3 events 1
libusb:debug [libusb_get_device_list]
libusb:debug [windows_get_device_list] allocating new device for session [105]
libusb:debug [windows_get_device_list] allocating new device for session [1FB]
libusb:debug [windows_get_device_list] allocating new device for session [303]
libusb:debug [windows_get_device_list] allocating new device for session [15]
libusb:debug [windows_get_device_list] allocating new device for session [EA]
libusb:debug [windows_get_device_list] allocating new device for session [1F2]
libusb:debug [windows_get_device_list] allocating new device for session [2FA]
libusb:debug [windows_get_device_list] allocating new device for session [36D]
libusb:debug [windows_get_device_list] allocating new device for session [14E]
libusb:debug [get_api_type] driver(s): NUSB3HUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [31D]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [2A3]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [3A1]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [1F5]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [3E3]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [90]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [16A]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [2DB]
libusb:debug [get_api_type] driver(s): USBHUB
libusb:debug [get_api_type] matched driver name against HUB API
libusb:debug [windows_get_device_list] allocating new device for session [3C0]
libusb:debug [windows_get_device_list] found existing device for session [2A3] (0.0)
libusb:debug [init_device] (bus: 5, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB#4&243C87EC&0'
libusb:debug [windows_get_device_list] found existing device for session [3A1] (0.0)
libusb:debug [init_device] (bus: 2, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB#4&2A3957AF&0'
libusb:debug [windows_get_device_list] found existing device for session [1F5] (0.0)
libusb:debug [init_device] (bus: 6, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB#4&2CCD8A8E&0'
libusb:debug [windows_get_device_list] found existing device for session [3E3] (0.0)
libusb:debug [init_device] (bus: 4, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB#4&3F5F9CB&0'
libusb:debug [windows_get_device_list] found existing device for session [90] (0.0)
libusb:debug [init_device] (bus: 7, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB#4&6A208FA&0'
libusb:debug [windows_get_device_list] found existing device for session [16A] (0.0)
libusb:debug [init_device] (bus: 3, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB#4&D8701C9&0'
libusb:debug [windows_get_device_list] found existing device for session [2DB] (0.0)
libusb:debug [init_device] (bus: 8, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB20#4&3502973C&0'
libusb:debug [windows_get_device_list] found existing device for session [3C0] (0.0)
libusb:debug [init_device] (bus: 9, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT_HUB20#4&5DCC905&0'
libusb:debug [windows_get_device_list] allocating new device for session [33]
libusb:debug [init_device] found 1 configurations (active conf: 1)
libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurationValue=1, 34 bytes)
libusb:debug [init_device] (bus: 7, addr: 2, depth: 1, port: 2): '\\.\USB#VID_093A&PID_2510#5&2E13B301&0&2'
libusb:debug [discovered_devs_append] need to increase capacity
libusb:debug [windows_get_device_list] allocating new device for session [226]
libusb:debug [init_device] found 1 configurations (active conf: 1)
libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurationValue=1, 59 bytes)
libusb:debug [init_device] (bus: 7, addr: 1, depth: 1, port: 1): '\\.\USB#VID_0A81&PID_0103#5&2E13B301&0&1'
libusb:debug [windows_get_device_list] allocating new device for session [34E]
libusb:debug [init_device] got bus number from ancestor #2
libusb:warning [init_device] could not get node connection information for device '\\.\USB#VID_0E8F&PID_0021#6&3745778C&0&4': [87] The parameter is incorrect.

--- QUESITONS START HERE..... WHY the WARNING MESSAGE BELOW for ??? ----- USB#VID_8042&PID_C02C#007'

libusb:debug [windows_get_device_list] extra GUID: {0BCA412B-10F7-4E67-A759-27E00F2B9746}
libusb:debug [windows_get_device_list] allocating new device for session [37C]
libusb:warning [init_device] could not get node connection information for device '\\.\USB#VID_8042&PID_C02C#007': [87] The parameter is incorrect.
libusb:debug [windows_get_device_list] found existing device for session [31D] (1.0)
libusb:debug [init_device] (bus: 1, addr: 255, depth: 0, port: 0): '\\.\NUSB3#ROOT_HUB30#5&1462671D&0'
libusb:debug [get_api_type] driver(s): HIDUSB
libusb:debug [windows_get_device_list] found existing device for session [33] (7.2)
libusb:debug [get_api_type] driver(s): USBCCGP
libusb:debug [get_api_type] matched driver name against Composite API
libusb:debug [windows_get_device_list] found existing device for session [226] (7.1)
libusb:debug [get_api_type] driver(s): USBCCGP
libusb:debug [get_api_type] matched driver name against Composite API
libusb:debug [windows_get_device_list] found existing device for session [34E] (1.0)
libusb:debug [get_api_type] driver(s): WINUSB
libusb:debug [get_api_type] matched driver name against WinUSB API
libusb:debug [windows_get_device_list] found existing device for session [37C] (1.0)
libusb:debug [get_api_type] driver(s): WINUSB
libusb:debug [get_api_type] matched driver name against WinUSB API
libusb:debug [libusb_unref_device] destroy device 1.0
libusb:debug [libusb_unref_device] destroy device 2.0
libusb:debug [libusb_unref_device] destroy device 3.0
libusb:debug [libusb_unref_device] destroy device 4.0
libusb:debug [libusb_unref_device] destroy device 5.0
libusb:debug [libusb_unref_device] destroy device 6.0
libusb:debug [libusb_unref_device] destroy device 7.0
libusb:debug [libusb_unref_device] destroy device 8.0
libusb:debug [libusb_unref_device] destroy device 9.0
libusb:debug [libusb_unref_device] destroy device 1.0
libusb:debug [libusb_unref_device] destroy device 1.0
libusb:debug [libusb_get_device_descriptor]
8086:3a37 (bus 5, device 255)
libusb:debug [libusb_get_device_descriptor]
8086:3a34 (bus 2, device 255)
libusb:debug [libusb_get_device_descriptor]
8086:3a38 (bus 6, device 255)
libusb:debug [libusb_get_device_descriptor]
8086:3a36 (bus 4, device 255)
libusb:debug [libusb_get_device_descriptor]
8086:3a39 (bus 7, device 255)
libusb:debug [libusb_get_device_descriptor]
8086:3a35 (bus 3, device 255)
libusb:debug [libusb_get_device_descriptor]
8086:3a3a (bus 8, device 255)
libusb:debug [libusb_get_device_descriptor]
8086:3a3c (bus 9, device 255)
libusb:debug [libusb_get_device_descriptor]
093a:2510 (bus 7, device 2)
libusb:debug [libusb_get_device_descriptor]
0a81:0103 (bus 7, device 1)
libusb:debug [libusb_get_device_descriptor]
1033:0194 (bus 1, device 255)
libusb:debug [libusb_unref_device] destroy device 5.255
libusb:debug [libusb_unref_device] destroy device 2.255
libusb:debug [libusb_unref_device] destroy device 6.255
libusb:debug [libusb_unref_device] destroy device 4.255
libusb:debug [libusb_unref_device] destroy device 7.255
libusb:debug [libusb_unref_device] destroy device 3.255
libusb:debug [libusb_unref_device] destroy device 8.255
libusb:debug [libusb_unref_device] destroy device 9.255
libusb:debug [libusb_unref_device] destroy device 7.2
libusb:debug [libusb_unref_device] destroy device 7.1
libusb:debug [libusb_unref_device] destroy device 1.255
Xiaofan Chen
2012-03-21 23:01:41 UTC
Permalink
Post by Kenneth Schultz
I have a generic device with two bulk EPs connected to a Renesas USB 3
controller.  I used Zadiag v2.0.1.154 to build be a driver (WinUSB
(v6.1.7600.16385).  I am running on a Win 7 32 bit build.  When I look for
the device in the Windows device console I can see it fine.  But I have can
not access it through the libusb driver.  Over the last few days I have been
reducing the driver stack and this morning I pulled the latest driver from
libusb-pbatard-bb43370 and just ran the basic test.  And even now I can not
see my device.  In the final list which is USB#VID_8042&PID_C02C.  I can see
it in the debug list below but it has the message about not being able to
get non connection information for the device.  I have tried modifying my
descriptor but no luck.  Right now, I can change anything to get this to
work.  What would you suggest???
Update your Renesas driver first to see if that helps. Then update
the Renesas firmware to see if that helps.
http://www.station-drivers.com/page/renesas.htm

libusb.org is down. This is the cache version of the USB 3.0 problem
mentioned in the wiki.


USB 3.0 support

libusb 1.0 supports USB 3.0 controllers and devices on Windows,
from ​pbr339 onwards. Because of the large number of USB 3.0 controllers,
the lack of official USB 3.0 support from Microsoft in Windows 7 and
earlier as well as limited testing, be mindful that USB 3.0 support
should be considered experimental. Also, if you are using a NEC/Renesas
USB 3.0 controller, such as the fairly widespread uPD720200/uPD720200A,
you please make sure that your controller drivers are ​version 2.1.16.0 or
later. Older versions of the drivers have a bug that prevents access
to USB devices when using libusb.
--
Xiaofan
Peter Stuge
2012-03-21 23:06:55 UTC
Permalink
Post by Xiaofan Chen
libusb.org is down
Nod. The problem is the trac git plugin and/or PyGIT. The proper
solution is to make trac use libgit2 and pygit2.


//Peter
Xiaofan Chen
2012-03-21 23:15:55 UTC
Permalink
Post by Peter Stuge
Post by Xiaofan Chen
libusb.org is down
Nod. The problem is the trac git plugin and/or PyGIT. The proper
solution is to make trac use libgit2 and pygit2.
Can you just remove the git plugin? The source code browser
is anyway not very useful since gitweb works fine. I have no
issue with http://git.libusb.org/.
--
Xiaofan
Pete Batard
2012-03-22 01:17:58 UTC
Permalink
Hi Kenneth
Post by Xiaofan Chen
Post by Kenneth Schultz
I have a generic device with two bulk EPs connected to a Renesas USB 3
controller. I used Zadiag v2.0.1.154 to build be a driver (WinUSB
(v6.1.7600.16385). I am running on a Win 7 32 bit build. When I look for
the device in the Windows device console I can see it fine. But I have can
not access it through the libusb driver. Over the last few days I have been
reducing the driver stack and this morning I pulled the latest driver from
libusb-pbatard-bb43370 and just ran the basic test. And even now I can not
see my device. In the final list which is USB#VID_8042&PID_C02C. I can see
it in the debug list below but it has the message about not being able to
get non connection information for the device. I have tried modifying my
descriptor but no luck. Right now, I can change anything to get this to
work. What would you suggest???
Update your Renesas driver first to see if that helps. Then update
the Renesas firmware to see if that helps.
http://www.station-drivers.com/page/renesas.htm
libusb.org is down. This is the cache version of the USB 3.0 problem
mentioned in the wiki.
USB 3.0 support
libusb 1.0 supports USB 3.0 controllers and devices on Windows,
from ​pbr339 onwards. Because of the large number of USB 3.0 controllers,
the lack of official USB 3.0 support from Microsoft in Windows 7 and
earlier as well as limited testing, be mindful that USB 3.0 support
should be considered experimental. Also, if you are using a NEC/Renesas
USB 3.0 controller, such as the fairly widespread uPD720200/uPD720200A,
you please make sure that your controller drivers are ​version 2.1.16.0 or
later. Older versions of the drivers have a bug that prevents access
to USB devices when using libusb.
Indeed, the problem you report seems to be exactly the same as one we
are aware of, which is due to a bug in the Renesas drivers up to version
2.1.16.0. So please ensure that you use the latest Renesas drivers.
Current version is 2.1.28.1 (though there is another minor bug there
that will make it report 2.1.28.0)

The issue with the old driver is that they may provide Windows with a
wrong port number for the device, which causes the connection
information query to fail. Typically, this results in the error code
"[87] The parameter is incorrect", which is what you saw, due to the
port parameter passed.

Now, if you are running the latest Renesas driver and firmware, then
this could indeed be a problem with the descriptors, but in that case I
would expect a different error code than [87]. And given that the port
number is the only parameter we fill for this query, my bet would be
that this is yet another case of old Renesas driver bug.

Regards,

/Pete
Ken Schultz
2012-03-22 00:25:04 UTC
Permalink
Updating the driver fixed my issue. Thanks!

ken

Loading...