Frequently Asked Questions

Q: Can you provide some info on how to configure and load the gadget modules to get a simple ECM network using Belcarra's demo vid/pid?

A:  Take a Linux kernel and reconfigure it as follows:

  • Add the following line if not present
  • Remove the following lines if present

Run the configuration tool again to get a consistent set of configuration values.  The lines that were removed above will re-appear, but preceded by # so that they have no effect.
This has the effect of building the module g_ether so that it offers the ECM protocol. 
       modprobe g_ether idVendor=0xNNNN idProduct=0xNNNN
The preceding is for a module installed into the root filesystem.

If you have not done but that want to use a local module binary then the procedure is:
      insmod g_ether.ko idVendor=0xNNNN idProduct=0xNNNN
where the module binary needs to be in the current working directory.

To determine if a module is running type:

To remove module g_ether from the running kernel:
      rmmod g_ether

This operation is blocked if the module is built into the kernel:
If you see that in the configuration, change y to m
Q: I tried installing the new driver on a Win8 laptop, but it does not install properly. I see a brief flash after clicking on setup.bat and that’s it.

A: Did you unpack the zip file?  You cannot open the zip file in File Explorer and click on setup.bat there. It won't run.  You need to unpack the zip and then run the setup.bat from there.
Q:  What is an INF file?

A: An INF or setup information file is required by Windows for the installation of device drivers.  It may contain an assortment of information about the device but will have at least the following:
  • Driver name and location
  • Driver version information
  • Registry information
Q: Is it mandatory for an OEM device to complete HCK requirements (Microsoft Hardware Certification Kit see here) in order to receive a Microsoft signed USBLAN for Windows driver?

A: No. Belcarra has delivered Microsoft signed drivers to OEM's without having to qualify their devices. In particular, there is a specific set of tests available under Microsoft's signature only program for smart devices that do not implement a physical Ethernet connection.  More information is available on our Certification page.
NOTE: A driver must contain a valid publisher certificate before it can be submitted for a Microsoft signature.  

Q:  Why do our tests using USBLAN for Windows indicate dropped packets?

A:  Your device may be emitting malformed packets and proper handling of such a frame is to discard it rather than to submit it to the NDIS layer. A valid 802.3 frame has a minimum of 42 bytes (>= 42 and <= 1536 assuming MTU has not been changed from standard 1500 setting).
Internal tests with Gadget ECM device or Belcarra's own USB device stack, do not show any dropped packet reported by either end of the link.
Q: The USBLAN driver will stop working, after an hour or so the connection is lost?

A: If you are using the freely available evaluation version (i.e. available from Windows Update) it will, by design, only run for 1 hour and then needs to be re-plugged for use for another hour.
NOTE: this is a simple replug of the target device and does not require a full reboot of the PC
Q: What is meant by the terms “multi-frame networking” and “multiple frame capability”?

A: Consider Network frames in the 802.3 context – Networking over USB implements an 802.3 network link.  We refer to the sending of multiple network frames (datagrams in the NCM spec) via a single USB transfer. Which in turn typically lets us send more data across the USB per second .....
- in real life, most actual network packets sent are IP packets, and the packet length for these is capped at 64K, whereas the practical packet length for 802.3 is 1500 bytes (it can be increased, but it's tricky, and hardly ever done). This is the underlying reason for needing multiple packets -- the "real" data being sent is bigger than the 802.3 packet size.
Belcarra's USBLAN implementation of CDC-NCM, CDC-EEM and RNDIS support multiple Network Frames in a single Bulk Transfer.
Q: What is the advantage of using RNDIS over CDC-ECM ?

A: With the availability of drivers from Windows Update there really isn't any. If you want to use RNDIS you will need to either use Wndows Update or pre-install something - just like USBLAN or any other solution.

See Networking Over USB Protocol Comparisons for an overview of features and differences of USB protocols.
NOTE: RNDIS support NOW available in Belcarra USBLAN Release 2.4.x
Q: Does USBLAN have a feature that will suppress the surprise USB removal message in the system tray?

A: Needing to click the Safely Remove Hardware icon has not been an issue with Operating Systems since Microsoft's Windows 2000.  For Win2K, Belcarra shipped a filter driver that resolved the problem.
Most current systems by default sidestep the issue with a simple Quick Removal setting in USB Device Properties -> Policies.
Q: What is a VID/PID?

A: When a USB device is plugged into a host computer it will identify itself using a distinct and unique VID/PID number (16 bit each).  The VID/PID combination is then used by the PC to locate and use the correct driver for that particular USB device.   VID is short for Vendor ID and PID for Product ID.

Vendor ID's are available from the USB Implementers Forum ( http://www.usb.org/developers/vendor/ ). There is an administration fee of $2000 USD.

Belcarra has its own Vendor ID and can provide a subset Product ID to licensed customers.

Q: The Belcarra USBLAN 2.4 driver does not install for me from Windows Update. More precisely, no matching driver is found and the install wizard is not launched. I am certain I have the VID/PID on the device configured correctly.  Is there a particular Windows 7 machine setup needed to get drivers from Windows Update?

A: - Follow these steps to find out, and optionally enable Windows Update if it is currently disabled.

1. Bring up the System Manager in Control Panel (Figure 1). 
2. Select the Advanced Systems settings to bring up the Systems Properties Window
 Figure 1 - Control Panel Home
3. In Systems Properties (Figure 2)  there are various tabs, click on Hardware
Figure 2 - System Properties
4. Click on Device Installation Settings to bring up one of the following screens, depending on how Windows Update is configured on your system:

Figure 3 - Windows Update set to be used automatically

Figure 4 - Windows Update never to be used
5. To enable Windows Update if it is currently disabled, there are 3 options as shown above (Figure 4), all of which allow Windows Update to be used, either automatically, or by user permission. Click on one of them. Figure 5 provides an example of what is shown after selecting the first option (automatic, the recommended option):

Figure 5
After clicking “Save Changes”, the Window closes and Windows Update will be active.
Q: Why does an Android device connect with a Mac using the CDC-ECM protocol but not to a Windows computer with Belcarra USBLAN.

A: The standard Android device offers a composite USB device consisting of several gadget devices, including g_ether. The activation of a component function (like g_ether) is done dynamically.  The g_ether component is called "RNDIS" and this means that the RNDIS configuration of g_ether is always active when g_ether itself is. CDC ECM is only available as the second configuration, and is therefore never used by Windows which only considers the first configuration.  The solution we use (internal test purposes) is to disable the Android gadget and to use the "standard" g_ether gadget, which allows us the flexibility of disabling RNDIS.
Q -  question about how the pseudo network interfaces are set up and torn down - In one application we have multiple devices connected to the PC, each with a TCP connection to the PC. This works fine unless we unplug the first device that was plugged into the PC. It appears that in that case the network interface is torn down and re-established, which is fine except that the TCP connections to all of our other devices are torn down too.
A - this is a limitation of the Windows NDIS layer. When you unplug the device associated with the Primary interface we assign a new one from the other NDIS interfaces. From our perspective the network does not go away (to the other devices at least) but Windows propagates a reset notice to all of the TCP connections.
Note - this is a behavior unique to Windows, in Linux or Mac/OS unplugging a network cable does not do this.
Q - Do you have a suggestion for a free utility that will help with debugging a USB driver?
A - You can capture a view of the USB traffic with Snoopy Pro.. Although it doesn't see the bus it will give you a snapshot at what the host controller is doing.
Q: If I install a driver package using "setup.bat" (which invokes DPInst) , I cannot find the driver package listed in the Control Panel->Add/Remove Programs list. Where is it?
A: The item in the Add/Remove Programs is called "Windows Driver Package - (Customer)  (CustomerUSBLan) Net (Date & build)". Look for that instead.