[Spice-devel] spicevmv chardev, guest agents and paravirtual mouse
Tiziano Müller
tiziano.mueller at stepping-stone.ch
Thu Jan 13 02:19:57 PST 2011
Am Mittwoch, den 12.01.2011, 17:12 +0100 schrieb Gerd Hoffmann:
> Hi folks,
>
> Looks like the spicevmc patch kicked the guest qagent discussion, so
> lets start with this, although it isn't related much to the agent issue
> itself ...
>
>
> The spicevmc chardev just pipes data from a chardev user within qemu
> to libspice and adds a "type" tag to it so libspice knows now to wind
> up the other end. There are several types:
>
> (1) vdagent, the spice guest agent. Will discuss this in detail
> below.
>
> (2) smartcard, this basically pipes the smartcard protocol over spice.
> Patches for smartcard support are on the list and should be almost
> ready for merge now. If you want connect a remote smart card reader
> to your guest you can use a tcp chardev, which will build a data
> pipeline like this:
>
> ccid-passthrough <-> tcp chardev <-> tcp protocol <->
> vcsclient <-> libcacard
>
> Or you can use the spicevmc chardev to use spice as transport:
>
> ccid-passthrough <-> spicevmc chardev <-> spice protocol <->
> spice client <-> libcacard
>
> If someone comes up with a vnc extention one could create something
> simliar for vnc tunneling:
>
> ccid-passthrough <-> vnctunnel chardev <-> vnc protocol <->
> gtk-vnc widget <-> libcacard
>
> (3) usb forwarding. Hans is busy with this. No working code yet.
> Will probably work pretty simliar to smartcard.
>
> (4) termial forwarding. Just an idea right now. Nowdays that the spice
> client side moves to gtk it would be easy to embed a termial widget,
> therby allowing easy access to the serial console using something
> like this:
>
> -chardev spicevmc,id=console,type=terminal
> -device isa-serial,index=0,chardev=console
I guess this could be used to get more info about the state of a VM from
the host system (like "system is ready", "system is rebooting", etc),
although it needs some adjustments in the guest to use the serial
console and string parsing on the host. Would it therefore make sense to
have a another type to get such status messages from the guest and have
a list of states defined somewhere? If yes, is this something which
should be implemented in the spice-part or is this general qemu stuff?
Furthermore it would be nice if the client side could get a list of
display resolutions supported in the guest and having the possibility to
change the resolution when resizing the guest window. The vdagent
protocol already has a message to pass this info but it only sends it
when going into fullscreen mode.
Yet another use case would be: authentication forwarding/injection to
the guest OS. With smartcard-support you have something like that, but
in our case we have the users authenticate against our management
backend first before they get access to a VM and it would be kind of
nice to be able to inject authentication data into the guest OS, either
via the spice client or coming from the host OS.
Cheers,
Tiziano
More information about the Spice-devel
mailing list