There are several dozen of these tests, covering your device in both the “A” role default host and the “B” role default peripheral ; so make sure both host and peripheral side stacks work well before you start running these tests. If you feel you must close your source, do it in user mode applications. USB device drivers should all support selective suspend and resume by ensuring that drivers don’t issue URBs to suspended devices. Certain traffic patterns won’t be covered at all, and there’s not much testing for isochronous transfer modes. Post as a guest Name. Storage is one of the few gadget drivers that ever needs to use USB halt processing; it also relies on the “deferred response” mode, which controller drivers probably need to handle specifically. Gadget drivers are written to a hardware-neutral API, which can support both generic class style functionality or vendor-specific functionality.

Uploader: Duramar
Date Added: 6 March 2018
File Size: 12.68 Mb
Operating Systems: Windows NT/2000/XP/2003/2003/7/8/10 MacOS 10/X
Downloads: 12077
Price: Free* [*Free Regsitration Required]

Linux source code: drivers/usb/misc/usbtest.c (v) – Bootlin

The test itself will only work on devices which support some testing-only control messages. UTSL; current versions add at least control message tests covering many “chapter 9” spec behaviors, and unlink testing and isochronous transfer support.

Closed-source drivers are undesirable, and can’t usually be bugfixed. Make sure your driver supports hotplugging. Unless you’re only doing sanity tests for control messaging, which isn’t always useful. Requires a version of gadgetfs with AIO support.

When you’re implementing a USB peripheral by embedding Linux, and using the Gadget driver framework, do all the testing outlined here. On some hardware Linux supports OTG.


Welcome to our website

Leave them running all week while you do other things with your boards, too; you might turn up something interesting, like an unexpected interaction between different SOC components. At least a few times you should disconnect the peripheral from the USB host while each of the above tests are running. For full function support you must make sure Linux host side applications can use your peripheral, using some kind of device driver s. Sometimes hubs including root hubs behave differently during enumeration, which often reflects hardware problems.

It does that to ensure that more different code paths are covered, including short transfers and various different traffic patterns, but there are omissions. Although it’s a goal to minimize differences in how the different USB host controllers behave on Linux, they can’t all report the same status codes given the same errors.

That document is available from www. Simply execute the command below:. Specifically, transfers go in both directions concurrently; they use queue depths greater than one; and the rates at which requests enter and leave the queues vary considerably more. And you also want to do the same with the kind of subtle timing bugs that can be covered, or uncovered, by the extra work those options cause.

To EHCI root hubs. I’m using Ubuntu On any recent Linux distribution, this should load the driver module. Other gadget drivers are also available for testing, but once your controller works well with those two drivers it’s much less likely you’ll find significant bugs that aren’t related to the gadget driver you’re using. The collection of supported hardware is beginning to grow.


These are also the tests that might be helpful in turning up hardware problems with some USB configurations. The Linux-USB kernel code is complex enough to need some focused testing efforts, and this web page tries to give an overview of the key ones. Network Tests Linux 2. SP2 ; otherwise, rerun them with a Linux host.

Use ‘testusb -a’ to test all recognized devices in parallel one thread per device. Test 9 just makes sure a number of required operations are handled correctly; no peripheral should ever fail it.

Otherwise you’ll need some kernel device driver.

Linux USB Test Mode

Once the controller drivers are working, you can test the USB Device Drivers and gadget drivers which expose such functionality to applications and users. You should be able to run it for weeks and never see an error. Although most of these tests will be of interest to folk debugging, developing or maintaining USB system software like controller drivers or device firmware, some may be useful to sysadmins or end users that suspect they may have flakey USB hardware.

I hope this tutorial helped you verify USB capacity in Linux. You can use Linux to run this, if your hardware is usbtesy through the “gadget” API.

Even in the 2.

What are you trying to test: