Hot-Plugging USB on Linux
Learn how to get the most out of USB hardware in Linux.
Monday, October 10th, 2005
When Linux was created, it supported the common hardware of the day, including ATA hard disks, parallel ports, and RS-232 serial ports. Those devices are all fairly straightforward, especially when compared to recent hardware interfaces.
In particular, the very popular Universal Serial Bus (USB) connection technology has a number of features that require special configuration in Linux. To further complicate matters, the methods of using USB devices have changed over time. Most notably, libusb and the USB filesystem are now the preferred means to access many USB devices, displacing the more traditional /dev/ file entries. Configuring the USB filesystem requires making adjustments to Linux’s hot-plugging subsystem.
This month, let’s take an in-depth look at connecting USB peripherals to Linux systems.
USB Principles
USB has become the interface of choice for many external devices, including mice, printers, scanners, digital cameras, and more, for three primary reasons:
1.Speed. USB 1.x is capable of 12 Mbps speeds, while USB 2.0 is capable of much faster speeds of about 480 Mbps. The latter transfer rate lay between the capabilities of Ultra2 SCSI and Ultra2 Wide SCSI, making USB 2.0 suitable for use even with hard disks. (USB 1.x is more than fast enough for mice, keyboards, and other lower-performance devices.)