The Linux USB sub-system

Brad Hards

Sigma Bravo Pty Ltd.

This document is an early draft of a guide to using the USB sub-system under Linux.

This document is matched to Linux kernel revision 2.3.99pre6. Some of this stuff is outright guesswork, especially the lesser known and more expensive devices.

Table of Contents
I. Using the Linux USB sub-system
1. USB Introduction
The Universal Serial Bus
Host Controllers
USB Devices and Transfer Characteristics
Enumeration and Device Descriptors
USB Device Drivers
2. How to get USB devices working under Linux
Basic USB Configuration
USB Device Filesystem
USB Human Interface Device (HID) Configuration
USB Scanner Support
USB Audio Support
USB Modem Support
Printer Support
USB Serial Converter support
USB Cameras
USB and Digital Still Cameras
Mass Storage Devices
USS720 driver
DABUSB driver
PLUSB Prolific USB-Network driver
USB ADMtek Pegasus-based device support
USB Diamond Rio500 support
D-Link USB FM radio support
3. Using Linux USB
Reading the Linux USB Device Filesystem output
Configuring extra keys on USB keyboards
Communicating with the Handspring Visor
Communicating with the Diamond Rio 500
Using a USB Scanner
4. Frequently Asked Questions
How do I report a bug?
What is a good book on USB
How do I make USB work on my Sony Vaio laptop?
How do I make USB be detected on my machine?
I've upgraded and USB doesn't work on my machine anymore
My Asus motherboard doesn't work, or works with only one device
II. About this Guide
5. Contributors
6. Availability and licensing
Obtaining updates and translations
7. Corrections