From Spice
(Redirected from SPICE USB Support)
At this points the requirements are not clear. The main ones are unspecified, but could be (in no particular order):
- booting from usb mass storage devices (disk-on-key, external harddrives)
- Similar to booting from a remote (on-client-machine) cdrom, partition, etc.
- accessing usb mass storage devices (subset of accessing a remote directory)
- web cameras
- printers (subset of printer remoting)
- smart phones
- smart cards
- digital cameras
- devices with no driver under linux
Other requirements which are probably not main but still not defined:
- usb serial devices
- audio devices (output/input)
- keyboard and mice (extra keys and strange keyboard support is also fixable in spice itself)
- Only works if there are two e.g. keyboards connected to the client (one to be used by the client, one by the guest)
The implementations we are considering include:
- specific solutions for top requirements, don't do any usb remoting
- usb 2.0 is hard, possibly not worth it
- usb 1.1 is easy but doesn't cover the top requirements
- implement usb 1.1 and specific solutions for top requirements
- support all isoteric low bandwidth devices (possible customer need)
- more work
- investigate usb 2.0 support
Requirement/Solution matrix:
| specialized (requires client driver) | 1.1 only + specialized | 2.0 | |
| Boot | partial/good (general boot from file/device) | + | + |
| Mass Storage | + (general remote fs remoting) | + (same) | + |
| Printing | + | + (same or 1.1 guest driver based) | + |
| Webcam | + (better performance) | + (direct 1.1 or specialized) | + |
| Smart cards | - | + | + |
| Smart phones | - | + (low speed) | + |
| Keyboard/Mice | - | + | + |
For actual usb support we are considering the following [[1]] based solution:
- client to host use usb2ip, wrapped in a spice channel w or w/o authentication
- host to guest uses qemu usb 1.1 and we develop usb 2.0 support (or not)
Qemu current usb support:
- booting from a local iso as if it was a usb mass storage device (requires Seabios 0.6.0. the current Seabios in RHEL-6 (0.5.1) does not support it)
- qemu-system-x86_64 -cpu kvm64 -usb -usbdevice disk:/store/iso/Fedora-12-x86_64-Live.iso
- git clone git://git.linuxtogo.org/home/kevin/seabios.git seabios
Other vm's and remoting solutions implementing this:
Virtual box support according to the [[2]] page: (available only in the closed source version)
- USB support
- VirtualBox implements a virtual USB controller and supports passing through USB 1.1 and USB 2.0 devices to virtual machines.
- USB over RDP
- This is a combination of the RDP server and USB support allowing users to make USB devices available to virtual machines running remotely.
VMWare?

