Welcome to the home of the Linux USB Project

This web site was created to serve as a central point of information for USB support under Linux. We've released our first press release.

Information on this web site

The information on this web site begins with the modular kernel USB host side stack originally coded by Linus , as an alternative to previous experiments with a monolithic stack. That nucleus shipped in the Linux 2.2.7 kernel, and has subsequently been enhanced by the Linux-USB developer community. Most of that initial work was seen in the Linux 2.4 kernel series, and some of it was backported starting with the 2.2.18 kernel. (Neither USB-Storage nor High Speed USB are supported in the 2.2 line of kernels. Similarly, the USB "gadget" stack, running inside USB peripherals instead of hosts, merged to the 2.4 kernel series after the 2.2 series stopped accepting new functionality.)

Current Linux-USB community work centers on the Linux 2.6 kernel series, which has significant improvments in correctness, reliability, performance, functionality, portability, power management, and driver coverage compared to that older code. If you want community support, you will probably be asked to use a recent 2.6 kernel so that most known bug fixes have already been applied. (Support for 2.4 kernels comes from the vendors which still provide that code to their customers.)

Other helpful links

Linux USB Guide[html|ps] (kind of old by now)
Linux and USB 2.0
USB Vendor/Device IDs Database, uses a CAcert certificate (text file)
USB Device Number mappings (major:minor)
USB Programming Guide
usbstress package (obsolete)
More USB links (standards, drivers, products, Other USB stacks, etc.)
Linux-USB SourceForge page

A few presentations are available

The Gadget API (used when Linux runs inside Linux peripherals or other devices) has a page here too.