On Sunday 15 July 2007, Aras Vaichas wrote: > Hi, > > I can't seem to Google any information or precedents on anyone who has > obtained > WHQL certification for the Linux RNDIS USB gadget host drivers? I understand > that the actual binary drivers are provided by Windows anyway. So, can anyone > shed some light on this? > > Has anyone obtained a valid catalog file for linux.inf? Surely the catalog > file > should be the same for all installation, so all we need is one "linux.cat" > file, right?
I've not heard of anyone who's done that, but that sounds like it's the way it "should" be. > The problem I wish to solve are customers who complain that Windows throws up > the WHQL certification "error" when they plug our device into a Windows PC. > It > would certainly help to increase our customer's confidence in the product if > Windows didn't put up this error so we are looking in to getting the driver > "certified". That's Microsoft's racket: you've got to pay them for each product you ship. (Of course, they want to do it with Linux too...) In this case, one issue is that Microsoft's RNDIS driver, and for that matter their whole TCP/IP and USB stacks, appears to be rather buggy, and Microsoft has seemed unwilling (or is it unable?) to fix their own bugs. Many folk have reported such problems, but appended is one person's unusually detailed (and informative!!) summary of test failures he has personally observed ... all in MS-Windows, never Linux. As I recall, this person was one of several who's also noted that the Linux peripheral never needed rebooting/reconfiguring ... but that the Microsoft code will usually "recover" after a 3-finger-salute of that MSFT environment. (Which as any developer knows, points the finger of blame squarely at state held inside the Microsoft software.) It's theoretically possible that Linux could do something differently, to avoid making MS-Windows misbehave ... something not covered in the public RNDIS protocol specifications. I don't think that WHQL is expected to resolve that class of issues; though if it could do so, I think various Linux users would be happier! For the moment, the preferred solution appears to be to use some drivers from MCCI on the MS-Windows side, using the "CDC Subset" mode of that USB gadget network driver. - Dave (The following comments were sent to me by one Linux developer, who shall remain nameless here for the moment:) RNDIS: If we unplug and plug in USB between the Linux device and Windows and do this a lot we see (and I say this as someone who has personally unplugged and plugged in USB in my test environment thousands of times): 1) USB UDP packet streams coming from our Linux device will stop making it into our app but still make it to the Windows side as viewable by Ethereal. Somewhere in a layer above where [Wireshark] watches MS will decide to throw out the packets. Sometimes the steady stream of UDP packets suddenly starts getting transmitted back up into application. Stopping and starting applications does not help and so it is not a problem with the specific Winsock. I even used some freeware UDP writer and reader test apps to prove that our app code was not to blame. 2) Plugging and unplugging USB dozens of times occasionally causes UDP packets coming from Linux devices into the ethernet interface to stop getting up into the user space application. You heard me right: Pulling the USB interface up and down messes up UDP on the ethernet interface. I can keep telnet sessions going on the ethernet interface while some ethernet UDP packet stream from Linux to Windows stops. I've even seen pairs of UDP packet streams from two Linux devices stop coming into a PC due to events on the USB interface. 3) We see these problems with both Win2K and WinXP. 4) If I go to the latest hot fix version of RNDIS from MS (this is only available from MS tech support) that fixes some USB bug that crashes XP (which crashes I've had) then the time it takes for the USB driver on Linux to report "full speed" goes up from 1-2 seconds with occasional 16-20 sec waits to over half the time taking over 20 seconds. Why (and how) should the presence of this fix (which changes other USB-related drivers as well) cause Windows to do something that slows down bus speed negotiation on USB? I do not know. 5) We can make our RNDIS problems much less severe by setting a static IP address on the Windows USB interface and by using multicast rather than broadcast messages. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel