First Steps Towards USB 3.0 on Linux

USB 3.0 isn’t even available to us mere mortals yet, but thanks to Sarah Sharp’s hard work, the Linux kernel is already underway towards having basic support for the new specification. “Now that the bus specification is public, I can finally talk about the code I’ve been developing at work. I’ve been writing a Linux driver for xHCI (the new USB 3.0 host controller), and changing the Linux kernel stack to support USB 3.0 devices.” Sharp got to demo her work at the USB 3.0 Superspeed Conference.

In her demo, Sharp showed Linux reading a movie off a USB 3.0 storage device, using a prototype xHCI host controller from Fresco Logic. With this prototype, she’s been able to achieve speeds 3.5 times higher than USB 2.0. Once the prototypes are replaced with actual silicon, she expects the speeds to go up, towards ten times as fast as USB 2.0.

With USB 3.0 devices reaching the market as soon as mid-2009, getting support for this new standard into your operating system is kind of important. Sharp explains that a few things need to be changed in the way the kernel handles USB, but these changes are relatively minor and will find their way into the kernel soon enough. The xHCI host controller driver is more problematic, since the xHCI specification is currently bound by an NDA, and as such, Sharp cannot release the code yet.

As for Windows, Microsoft has stated that Windows 7 will support USB 3.0, but they have not yet made any promises regardig Windows Vista and Windows XP. A safe guess would be that Vista will get support for USB 3.0 (seeing how similar Windows 7 and Vista are underneath), but I wouldn’t be surprised to see Windows XP missing out. Of course, vendors may release drivers and support despite what Microsoft does.

There is no word from Apple yet., but the company will probably be forced to adapt USB 3.0, seeing both Intel and NVIDIA, Apple’s prime silicon partners, will move to it. The fact that Apple is slowly but surely killing FireWire is another indication.


  1. 2008-12-15 12:56 pm
    • 2008-12-15 1:03 pm
      • 2008-12-15 1:37 pm
  2. 2008-12-15 1:43 pm
  3. 2008-12-15 3:01 pm
  4. 2008-12-15 3:08 pm
    • 2008-12-15 8:04 pm
      • 2008-12-15 9:08 pm
        • 2008-12-15 9:39 pm
        • 2008-12-17 10:51 pm
  5. 2008-12-15 6:21 pm
  6. 2008-12-16 11:11 pm