The arrival of USB 2.0 support in Linux provides a window into the "open source" community world under which programmers freely swap software source code, or blueprints. The Linux-USB project serves as an information clearinghouse where programmers can find out details such as the unique identification codes assigned to each USB device or download software. VA Software's SourceForge site hosts a mailing list through which programmers contribute software updates and hash out issues. Linux founder Linus Torvalds took a stab at updating the first USB support in March 1999, spawning an active developer community that mixes several regular contributors with others just stopping by. The USB group tests new software, with the "maintainer" Greg Kroah-Hartman keeping primary responsibility, and various other maintainers staying on top of smaller sections. At times, the USB group submits patches to higher-ranking maintainers who have responsibility for the overall production and developer versions of the Linux kernel. Two versions of Linux are under development simultaneously. One, the 2.5 series of "development" kernels, is for trying out new code. It has more cutting-edge features but isn't well tested, and has included USB 2.0 support for months. The other branch -- the 2.4 "production" kernel series that's changed more conservatively -- is for use in shipping products and on computers. Commonly, features tested in the development kernel are "back ported" or added to earlier versions of the production kernel. By this process, USB 2.0 support will arrive in the forthcoming 2.4.19 kernel. Work to be done
Much work remains to be done; namely, rewriting software to keep up with the faster USB infrastructure. "Performance work hasn't really started," Brownell said. While some USB devices can transfer data at 200 megabits per second -- less than half of USB 2.0's total capacity -- most hardware and software is about half that, he said. In addition, Linux developers have to build support for features of USB hubs, the hardware devices that let single USB ports be shared to accommodate several USB devices. USB hubs can be connected in chains, providing lots of USB ports but making for a lot of complications -- especially when mixing USB 1.1 and 2.0 hubs. Some of that new hub support is in the 2.5 kernel, Brownell said. Then there's the challenge of bringing Linux USB support to the real world. Mainstream Linux versions are in the midst of a transition to USB 2.0 support, with some more cautious than others. "USB 2.0 support is still in the development stage," Linux seller MandrakeSoft said in a statement. The USB 2.0 updates "are not mature enough yet for most production usage," the company said. Red Hat put some early USB support into its current version 7.3 Linux product, though Michael K. Johnson, manager of kernel engineering, said "USB 2.0 support is new in Linux, and so we expect to find and fix occasional defects." SuSE is thinking of providing software that lets customers upgrade to the 2.4.19 kernel, said Holger Dyroff, director of North American sales at SuSE, and standard support will come later this year. "SuSE Linux will definitely support USB 2.0 with our new upcoming products in the third quarter," he said. The built-in hardware will kick USB 2 development into a higher gear, Brownell said. "Linux is ready for the generation of PC hardware that's becoming available starting this summer, Brownell said. "The big problem with USB 2.0 adoption has been lack of devices."





