From Fedora Project Wiki
(moved to FeatureReadyForFesco, ticket #625. NEED RELEASE NOTES FILLED OUT.)
(moved to FeatureAcceptedF16 - feature was approved at 2011-07-11 meeting.)
Line 64: Line 64:
* See [[Talk:Features/YourFeatureName]]
* See [[Talk:Features/YourFeatureName]]


[[Category:FeatureReadyForFesco]]
[[Category:FeatureAcceptedF16]]

Revision as of 19:20, 11 July 2011

= USB redirection over the network

Summary

Allow redirecting a USB device to another machine over the network. For example use an USB webcam attached to machine A on machine B. For Fedora 16 the focus will be on allowing using USB devices attached to some machine (not necessarily the host machine) inside a qemu-kvm virtual machine.

Owner

  • Name: Hans de Goede
  • Email: hdegoede@redhat.com

Current status

  • Targeted release: Fedora 16
  • Last updated: Jun 27, 2011
  • Percentage of completion: 25%

Detailed Description

The intend is to deliver the following for Fedora 16:

  • A usbredir package with libraries for:
    • parsing the usbnetredir protocol
    • redirecting a local attached usb-device through an application provided pipe
  • Support for qemu to receive data from a usbredir pipe, and make the redirected USB device show up as being attached to the emulated host controller inside the virtual machine
  • Support for spice-server and spice-gtk (the gtk spice client widget) to use usbredir
  • A nice UI for redirecting USB devices from a spice-gtk based virtual machine viewer

Benefit to Fedora

Currently many Fedora users choose to not use qemu-kvm for virtual machines, but instead use a less open alternative not shipped with Fedora. One of the stated reasons for doing so is the less then stellar support for USB redirection with qemu-kvm. Besides adding support for USB redirection over the network, qemu's USB redirection support is being improved in general, including in support for USB 2.

Scope

The needed changes are isolated to the new usbredir package, qemu and spice. Work is already underway to try and get all changes upstream.

How To Test

Right now, see: http://hansdegoede.livejournal.com/9682.html

Once most bits are in place:

  • Create a virtual machine with virt-manager, select Spice as display protocol and select the QXL graphics card
  • Connect to the virtual machine from some machine with a gtk based spice-client to the virtual machine
  • Select a random USB device attached to your local machine to redirect to the vm
  • Check that the USB device shows up in the vm, and works normally.

User Experience

Users wishing to redirect USB devices to virtual machines can do so easily from the virtual machine viewer UI, and can do so even when connected to the virtual machine from another machine then the host.

Dependencies

None

Contingency Plan

The plan is to deliver the various bits mentioned under "Detailed Description" one by one. If time runs out before we can deliver the lower bullets, the already delivered bits will stay in place and can still be used, but only from the cmdline rather then from a nice integrated UI experience.

Documentation

See: http://hansdegoede.livejournal.com/9682.html http://people.fedoraproject.org/~jwrdegoede/usb-redir.pdf http://cgit.freedesktop.org/~jwrdegoede/usbredir/tree/usb-redirection-protocol.txt

Release Notes

  • TO DO

Comments and Discussion