[Spice-devel] spice-gtk usb-redirection

Hans de Goede hdegoede at redhat.com
Fri Aug 3 01:54:19 PDT 2012


Hi,

On 08/03/2012 07:29 AM, Jackson wrote:
>> Not that comlicated, there is just a wrapper of usbredir flow
>> constructed by the spice channel:num 9.
>> You can view spicy-gtk as the usbredir client and the qemu/spice-server
>> as the usbredirsever.
>
> But in usb-redirection-protocol.txt and readme.txt, the definitions define
> virtual machine as usb-guest, and the side connecting USB devices as
> usbredirhost. In this definition, spicy-gtk sounds like usbredir host

spice-gtk / the spice client indeed is the usbredirhost, and as such as
libusbredirhost to talk to the real USB device.

>, and
> qemu/spice-server like usbredirserver, right?

Erm, no qemu implements a usbredir-guest in the form of the usb-redir
qemu device. This qemu device uses a chardev to talk to the usbredir-host,
one way to do this is through a spice channel to a spice-gtk using client,
the other way is using a tcp-client-socket to usbredirserver, so usbredirserver
is a usbredir-host too (and it uses libusbredirhost too), examples of the 2
on the qemu cmdline are:

-chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1

-chardev socket,host=192.168.1.9,port=4000,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2

This confusion is the reason why the documents talks about usbredir-host and
usbredir-guest, because in both cases qemu is the usbredir-guest, but in one
case it is a tcp-server (in the form of being a spice-server), and in the
other a tcp-client.

Regards,

Hans


More information about the Spice-devel mailing list