User-agent: * Allow: /
Belcarra Technologies has been a leader in the evolution of USB and it’s use for connecting network peripherals of all types. As a pioneer in the provision of driver software both for smart peripherals as well as for the desktop operating systems that support them, Belcarra’s solutions enable devices to share data across the USB fabric as if they were connected to an otherwise normal TCP/IP network via Ethernet.

USB TestDrive Setup

Overo Setup and Testing Overview

This document is an overview of the setup for USB Device testing using Belcarra’s USB TestDrive Environment (download available here), a Linux test system based on the Gumstix Overo board. The Overo board is a low cost hardware development system using TI’s Omap 3530 SOC that supports USB 2.0 for both host and client implementations.

The TestDrive system can be used to test and evaluate various USB Networking protocols and implementations:
  • Gadget based network and filestorage function drivers
  • Belcarra based network and mass storage function drivers
  • Belcarra Windows USBLAN class driver
Preparing to Install
This requires an SD card with at least 4GB of space. A page at shows how to create a basic 2-partition SD card. For our demo kit, follow the same procedure, but create three partitions. See Preparing a Micro-SD Memory Card for use with Gumstix COM for further detail.
  • Partition 1 FAT32 (per manufacturer’s page), but allow at least 250MB to allow for kernel backups
  • Partition 2 ext3, about 2GB (use for the ROOTFS)
  • Partition 3 FAT32, remainder of the disk, used for a mass storage volume.
Installation of the TestDrive Kit
The following is an example of how to install the kit. We have made a few assumptions:
  • The SD card as inserted in the Linux host machine maps to devices /dev/sde, /dev/sde1, /dev/sde2, and /dev/sde3. The key thing is the letter in red. This letter may be different in your environment, depending on what other devices are installed, but the rest should be the same. 
  • The archive file you downloaded above is located in the current directory (otherwise step 6 below will require revision). 
  • There is no directory called “extract” in the current directory 
  • You have prepared the partitions as described above, and the card is inserted into a SD card reader on your Linux host machine
  • You have permission, either as the root user, or via the sudo permission table to execute all the commands below. In particular, the tar command in step 6 needs root permission.
  1. On host machine create an empty directory (we’ll call it “extract” for now)
  2.  cd extract
  3.  mkdir p1 p2 p3
  4.  Unmount partitions from wherever they are mounted and mount them on p1, p2, and p3. Here’s a sample sequence to achieve this: 
        a .sudo umount /dev/sde[123] You will see error messages if some or all of the partitions are not currently mounted
        b. sudo mount /dev/sde1 p1
        c. sudo mount /dev/sde2 p2
        d. sudo mount /dev/sde3 p3
  5. Write your local versions of MLO and u-boot to p1 (optional). They are available from here. Note: MLO must be the first file copied onto extract/p1 due to a size restricion of the Overo’s boot loader.
  6. Extract the contents of the archive, using a command similar to the following:
            sudo tar xfj
  7. Populate the third partition as follows:
          cd p3;sudo unzip ../
   8. Unmount the volumes
        a. cd ..
        b. sudo umount /dev/sde[123]

The TestDrive Environment
After preparing the SD card, use it to boot the Overo. There are three facilities of note:
  • The Apache web server. The document root is /usr/share/apache2/httpdocs This directory is pre-populated with a number of useful test files
  • The iperf network test-tool
  • CrystalDiskMark (for mass storage testing)
Belcarra Windows USBLAN Evaluation Driver

Belcarra’s USBLAN Evaluation Driver is available via Windows Update. It is available for use when a device using either of the following Vendor / Product ID’s is plugged into Windows.
  1. 15ec / d001 - enable the built-in DHCP service
  2. 15ec / d002 - disable the built-in DHCP service
Please note that the evaluation driver will only work for sixty minutes at a time.

Setting up EEM or ECM on the Overo

Using Belcarra modules -- Demo versions

When the Overo boots, a number of shell functions are available to set up common test requirements. There are 2 “Demo” USB Vendor/Product ID pairs:
  • 15ec/d001 Belcarra Demo #1. 
  • 15ec/d002 Belcarra Demo #2
For each of these pairs, an evaluation version of Belcarra USBLAN is available from Windows Update for either the EEM or ECM network protocol. For Demo #1, the built-in DHCP feature of DHCP is activated. For Demo #2, the built-in DHCP feature is not active. See here for more information on USBLAN features, including the built-in DHCP server.
  • eem1-Load Belcarra modules. Select configuration for Demo #1, EEM protocol. Enable USB. 
  • eem2-Load Belcarra modules. Select configuration for Demo #2, EEM protocol. Enable USB.
  • ecm1-Load Belcarra modules. Select configuration for Demo #1, ECM protocol. Enable USB
  • ecm2-Load Belcarra modules. Select configuration for Demo #2, ECM protocol. Enable USB
Note: if ecm2, for example, is already active, then eem1 will do the following:
  • disable USB
  • select configuration for Demo #1, EEM mode
  • enable USB
This abbreviated sequence is possible because the modules are already loaded.

Supplementary net command:
  • netwait ipaddress Waits for the network interface to be created (if necessary) and then sets the ipaddress. 
Using Belcarra modules -- general VID/PID

If you have your own version of Belcarra USBLAN with your own values of Vendor ID and Product ID, then you can set up EEM or ECM as follows. Here VID stands for your own vendor ID and PID for your own Product ID
  • BTCDOWN -- this command only needed if you have previously loaded Belcarra modules using the command shown above 
  • BTC_EEM VID PID ipaddress Set up the CDC-EEM protocol on the given Vendor and Product ID. Then set the ip address using netwait (see above). The third argument is optional. If it is absent, the IP address is not set by this command (this is suitable for instance for DHCP).
  • BTC_ECM VID PID ipaddress Same as BTC_EEM but for the CDC-ECM protocol
Note: after using either of these modules, you must run BTCDOWN before the other functions (eem1, eem2, ecm1, ecm2) will work.

Using the Gadget modules - CDC-EEM mode
modprobe g_ether idVendor=VID idProduct=PID
If you have already loaded Belcarra modules first do this: BTCDOWN (see above)

Replace VID and PID with your own values
  • 15ec/d001 for USBLAN Demo #1
  • 15ec/d002 for USBLAN Demo #2
Using the Gadget modules - CDC-ECM mode

Loading this mode is exactly the same except that we need an additional parameter in loading g_ether:
modprobe g_ether idVendor=VID idProduct=PID eem_mode=0
Switching to Belcarra mode

The gadget modules can be unloaded as follows:
rmmod g_ether
rmmod musb_hdrc
After this, all the Belcarra configurations as described above are available.

  Network Testing
There are two major methods available for network benchmarking and stress testing
  • Several large test files of progressively larger sizes are available in the Apache document root. These can be retrieved by a host-based shell script.
  • For testing the speed of uploads, the wget program is available on the Overo. This can be used to retrieve files of any size from a host PC. To avoid issues with flash size and speed, the --output-document option of wget can be used to send the data to /dev/null.
  • For loopback testing, the iperf utility is ideal
Mass Storage Testing
Mass storage testing is done as follows
  • If network testing is in progress, unload the network modules, as described above
  • Run MSCMOUNT (no arguments required). This function will unmount the third partition of your SD card locally, and offer it as a USB mass storage volume
  • Run MSCWAIT (no arguments required) This function will wait until the user has ejected the volume on the PC, and then re-mount the volume locally.
  • While the volume is available to the PC, the CrystalDiskMark tool is available within the volume. This can be use for either stress or speed testing. Note: the CrystalDiskMark tool was designed for hard disks, not flash disks. The difference can be readily seen if a test is run on both a hard disk and a flash disk. Only the “sequential” tests (first row of tests) produce comparable results. The other tests are severely affected by the high wait times for flash erases.
Additional Documentation

Popular Posts