0

All things causes of that I'm trying test the function of USB sharing network in a board with RK3288 Soc which runs Android OS.

When I connected it to my another board which runs Windows 7 OS with wires by OTG port. Just few minutes later, unfortunately, the network was going to disconnect. I ran the Bus Hound to detect what happens on USB bus. I get this USBD_STATUS_CANCELED with 0xC0010000 this for responsion and I get kernel log "USB RESET" in the interrupt handler function in USB driver within the linux kernel version 3.10.79.

I can't make sure that the board's OTG port or the USB driver or the USB bus... :-(, in a word, some part of USB components are broken. Because that I test it in another PC which runs Ubuntu 14.04 OS and it's Ok.

Maybe the board within running Windows 7 OS has some problems too, I can't guarantee that either. Er... but I used a mobile phone, HuaWei, to test the function USB sharing network. It works well and the network could always keep connected before I closed it.

By the way, I hate the RNDIS(Remote network driver interface service?) which created by the corporation Microsoft.

If anyone knows something about USB and can tell me what happens exactly, the biggest thanks for U :-).

  • When you connect Android device with the windows device via USB OTG, who is the host and who is the device? – Shaibal Mar 29 '17 at 21:19
  • For USB sharing network, Android device is a USB device and the Windows is the host – bochuan Ding Mar 30 '17 at 03:05
  • Android System will simulate a device as virtual network card and wrap the network messages into the USB packets, then the Windows could get them from USB, all these are handled by the abstract protocol called RNDIS as described as above. But the protocol is ok( I guess, because there are nothing error log). So something wrong must occur within USB connection, but i don't know so much about the USB hardware in details. – bochuan Ding Mar 30 '17 at 03:16
  • Wait the error code you mentioned is due to transfer abort from higher layer. So for some reason class driver for RNDIS aborted the transfer. Its possible that due to some hardware event, RNDIS aborted the transfer. Do you have any captured trace? – Shaibal Mar 30 '17 at 06:48
  • I have done captured trace ever. Sometimes, (it doesn't occur every time), I can get a error from RNDIS driver. The parser function will get a message type within value 0x0000 0024 from Windows host, under the RNDIS specification. Actually, however, this message type doesn't be defined by Microsoft RNDIS specification. But it's really hard to detect the message from so amounts of USB bulk packets. Because, even error message occurred, the USB connection do not disconnect immediately and I can't get this error every time. – bochuan Ding Mar 30 '17 at 08:06
  • And for the "USB Reset", it could just be triggered without any error log(I mean in Android device side) by the interrupt handler which registered by USB driver. I think maybe the Windows host really do trigger it. Someone has told me it could be caused by the current in the USB wires. So... I don't know whether it is a hardware problem under my boards. I'm almost despair now :-(... – bochuan Ding Mar 30 '17 at 08:19

0 Answers0