All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] USB virtualisation (experimental)
@ 2005-01-10 17:03 Mark Williamson
  2005-01-11  0:24 ` Nivedita Singhvi
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Mark Williamson @ 2005-01-10 17:03 UTC (permalink / raw)
  To: xen-devel

Hi all,

A number of people have expressed interest in the USB virtualisation code.  
I'm making a patch against 2.0-testing available for those who wish to have a 
play with it.

Description:
USB virtualisation allows otherwise unprivileged domains to be given control 
of a USB port on the host.  The unprivileged domain sees a virtual USB host 
controller with only the ports it has been granted access to.  For instance, 
you might dedicate a USB webcam to one domain, a USB pendrive to another 
domain and a USB CD-burner to another.

This patch includes the kernel modifications (backend and frontend drivers) to 
2.4.28 and modifications to the userspace toolset.  This is sufficient to set 
up USB virtualisation for 2.4.28 on xen-2.0-testing.

There are still a few sticky bugs that are really annoying me at the moment 
but it is possible to mount USB flash drives, capture realtime video from a 
webcam, etc. in a domU by virtualising through dom0.

Disclaimers:
* Don't use it on production systems
* Don't trust it with data you care about
* Some USB device drivers may need tweaking - if you have problems with a 
device, let me know
* YMMV but it works for me ;-)

Installation:
1) download the patch from
http://www.cambridge.intel-research.net/~mwilli2/xen-2.0-testing-usb.patch
2) apply to a fresh xen-2.0-testing.bk using
patch -p1 < xen-2.0-testing-usb.patch
(say yes to all the SCCS checkouts)
3) set up some appropriate kernel configs in 
install/boot/config-2.4.28-xen{0,U}.  You should enable 
CONFIG_XEN_USB_FRONTEND, CONFIG_USB in the configuration for any devices you 
want to run.
Don't (!) build drivers for devices you want to virtualise into dom0's kernel, 
or dom0 will grab the device before the backend gets a chance to export it.
4) build & install the updated kernel & tools on your test machine.  Note 
again you _have_ to use the 2.4 kernels, 2.6 isn't supported (yet).
5) for frontend domains, add a
usb = [ 'port_number', 'port_number', ... ]
to the config file to give a domain control of those physical USB ports.  You 
can specify ports on a hub by giving the path through the device tree e.g. 
'1/2' = second port on the hub plugged into the first port on the host.

Any questions, comments, problems, success reports - let us know!

Cheers,
Mark


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2005-01-15 16:23 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-10 17:03 [PATCH] USB virtualisation (experimental) Mark Williamson
2005-01-11  0:24 ` Nivedita Singhvi
2005-01-11  3:21   ` Mark Williamson
2005-01-12 14:58     ` aq
2005-01-12 15:12       ` Mark Williamson
2005-01-14  1:38 ` [updated] " Mark A. Williamson
2005-01-14  2:49 ` Mark Williamson
2005-01-14 14:01   ` Nuutti Kotivuori
2005-01-14 14:07     ` Mark Williamson
2005-01-15 15:37       ` Nuutti Kotivuori
2005-01-15 15:56         ` Jan Kundrát
2005-01-15 16:00           ` Nuutti Kotivuori
2005-01-15 16:23         ` Mark Williamson
2005-01-14 18:59   ` Adam Heath
2005-01-14 19:02     ` Mark Williamson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.