My configuration :
Client Side (iMx27) : - RNDIS Client OS Component.
- usbfn.dll is present in my image.
Host Side (iMx31) : - USB Remote NDIS Class Driver OS Component + USB
Host support.
- usb8023.dll and rndismp.dll are present
in my image.
When I connect my client to a desktop PC it works fine and I can open
a socket to make tranfers.
But when i connect my client to my iMx31 host, it asks me for a driver
(I assume that it's because I didn't give him the right registry keys
for this device) and even if I enter usb8023.dll for a driver, I see
that it loads rndismp.dll and then it calls DllUnload and seems to
fail to load the driver.
My questions are :
Am I missing some OS component for my host side to work?
If I make my iMx31 platform as a RNDIS client it works fine with a
desktop PC too : Does it mean that my Hardware should be Host Side
RNDIS compatible?
And finally : Did anybody else have the same problem?
Finally check in your reginit.ini and make sure the following was brought in
from common.reg.
; RNDIS - Remote NDIS-over-USB Host
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\2\default\USB8023]
"DLL"="USB8023.DLL"
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\USB8023]
"DLL"="USB8023.DLL"
[HKEY_LOCAL_MACHINE\Comm\USB8023]
;LOC_FRIENDLYRNDISHOST
"DisplayName"=mui_sz:"netmui.dll,#9002"
"Group"="NDIS"
"ImagePath"="USB8023.DLL"
[HKEY_LOCAL_MACHINE\Comm\USB8023\Linkage]
"Route"=multi_sz:"USB80231"
[HKEY_LOCAL_MACHINE\Comm\USB80231]
;LOC_FRIENDLYRNDISHOST
"DisplayName"=mui_sz:"netmui.dll,#9002"
"Group"="NDIS"
"ImagePath"="USB8023.DLL"
[HKEY_LOCAL_MACHINE\Comm\USB80231\Parms]
"BusNumber"=dword:0
"BusType"=dword:0
"RebindOnResume"=dword:0
I'd like to know if I understand things right :
- The ability of connecting USB mass storage makes me think that I
have right USB Host Support.
- If I Add USB Remote NDIS Class Driver OS Component, My CE device
should behave as a RNDIS Host and any CE device (that can be connected
to a desktop PC with Activesync because it has RNDIS Client) should
be able to connect with my CE Host.
- So, I should be able to enable the connection called "USB" in my
connections Control Panel and then Open sockets to transfer datas via
USB?
As I mentionned, it works between my client Device and a desktop PC.
But Have you ever been able to make a CE device a RNDIS Host?
Your help will be very appreciated.
I haven't personally tried this, but I would have thought it should work ok.
However occasionally bugs or glitches in the HCD driver can cause drivers
such as RNDIS or serial over USB to fail as these tend to stress out the USB
link a little more, and use different transfer mechanisms to simpler devices
such as a mouse or keyboard. If the iMX21 BSP is running ok with a PC I would
imagine this end is fine. All that I can suggest is the following:
1. Check with Freescale and see if they have any fixes for the iMX31 BSP, or
know of any bugs in the HCD driver. Ideally test the Host driver using the
'USB Host Test Kit'.
2. Locate the function DeviceAttach in the HCD driver, and trace through the
device connection and loading of the driver, and try to work out why it is
unable to locate the correct driver.
3. Turn on debug messages for the USB8020 and RNDISMP libraries and look for
where errors may be occurring.