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
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
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.