April 2012
Intermediate to advanced
352 pages
8h
English

Universal Serial Bus (USB) is a connection protocol between a host controller (such as a personal computer) and a peripheral device. It was designed to replace a wide range of slow buses—the parallel port, serial port, and PS/2 connector—with a single bus that all devices could connect to (Corbet et al., 2005).
As described in the official USB documentation, available at http://www.usb.org/developers/, USB devices are hideously complex. Fortunately, FreeBSD provides a USB module to handle most of the complexity. This chapter describes the interactions between the USB module and drivers. But first, some background on USB devices ...