Day 4: Conferences: Linux and USB



Randy Dunlap is a software engineer at Intel and is part of the volunteers that have been working on USB.

[picture]

There was an initial USB project that was written by Iñaky Pérez González and went on for about 2.5 years, but Linus didn't like the code and when he got a Sony Vaio laptop, he wrote a small stack for his mouse and released it in March 1999
Within a few weeks, the linux community added drivers to Linus' stack.
In november, a few people did a rewrite, which gave an improved driver, interface and performance.

USB is PNP, low cost and is easier for people to use as there are now I/O, IRQ, or DMA configuration issues. You can have 127 devices, including hubs.
The bus is self-describing, you have device descriptors. Configuration allow for varying functionality and levels of power use.

The USB bus is a 12Mbit/s bus, and devices can request 4 kinds of different transfer types to reserve more or less of the bandwidth available from time critical (video/audio) to best effort (scanner/disk storage)

The upcoming USB 2.0 that Intel hopes will replace IEEE1394 (Firewire) will offer 480Mbit/s and compatibility with the current USB devices.

As far as device support is concerned, you have both OHCI and UHCI host controllers and the one you get depends on the vendor.
You have 6 classes of drivers: Hub, ACM, Audio, Mass storage, Printers, and HID. In addition to that, you have the vendor specific devices like web cams, scanners, ethernet, mp3 players and more...

usbdevfs is a dynamic filesystem that allows control of the USB bus from user space via a binary control interface through ioctls of the libusb library. It's however a good idea to use libusb because that binary control interface may change in the future.
Apps can poll /proc/bus/usb/devices for changes.

In the issues, there is hotplug support where linux needs improvements for USB, as well as PCI-hotplug, SCSI, PCMCIA, and IEEE1394. A dynamic /dev (or at least /dev/usb) seems to be needed.
Other issues are bandwidth allocation and management, power management, and USB 2.0.

You can find the talk slides here

[library] Picture library [back] Back to Main Page [next] Next page


[ms free site] Email
Link to Home Page

2000/08/24 (00:32): Version 1.0