On Mon, 18 Apr 2011, ZhouPeng wrote:
> Signed-off-by: Zhou Peng <zhoupeng@xxxxxxxxxxxxxxx>
>
> This patch allows you to play with spice for
> xen-upstream-qemu on upstream Xen or released Xen-4.1.0.
>
> Nothing need to be modified in xen-upstream-qemu,
> because qemu has include spice's code as a new feature since qemu-0.14.
>
> Usage:
>
> Add spice fields in VM configuration file.
> #spice
> spice=1
> spiceport=6000
> spicehost='192.168.1.187'
> spicedisable_ticketing = 0 # default is 0
> spicepasswd = 'password'
>
> apic=0 # disable acpi, but if you used the appended patch, set acpi=0
>
> You may need to disable acpi(I'm not sure),
> but if you want to disable acpi, you may need to set
> apic = 0, (Yes, It is apic not acpi, pls don't ask me why, because I am also
> confused with it).
> If you feel uncomfortable by setting apic = 0, you can try an additional
> patch appended,
> then you can use acpi=0 in vm cfg file to give "no-acpi" argument to qemu.
>
> For detailed:
> http://code.google.com/p/spice4xen/wiki/Using_Upstream_Qemu
Cool! Does it mean that it works right now?
> diff -r 3f00c5faa12a tools/libxl/libxl.idl
> --- a/tools/libxl/libxl.idl Wed Apr 13 16:10:26 2011 +0100
> +++ b/tools/libxl/libxl.idl Mon Apr 18 10:52:09 2011 +0800
> @@ -153,6 +153,13 @@ libxl_device_model_info = Struct("device
> ("keymap", string, False, "set keyboard layout,
> default is en-us keyboard"),
> ("sdl", bool, False, "sdl enabled or
> disabled"),
> ("opengl", bool, False, "opengl enabled or
> disabled (if enabled requires sdl enabled)"),
> + ("spice", bool, False, "spice enabled or
> disabled"),
> + ("spiceport", integer, False, "the port that should be
> listened on for the spice server"),
> + ("spicetls_port", integer, False, "the tls port that should
> be listened on for the spice server, at
> least one of the port or tls port must be given"),
> + ("spicehost", string, False, "the interface that
> should be listened on if given otherwise any
> interface"),
> + ("spicedisable_ticketing", bool, False, "Enable client connection
> with no password"),
> + ("spicepasswd", string, False, "set ticket password,
> witch must be used by a client for connection.
> The passwords never expires"),
> + ("spiceagent_mouset",bool, False, "Whether spice agent is
> used for client mouse mode(default is on)"),
> ("nographic", bool, False, "no graphics, use serial
> port"),
> ("gfx_passthru", bool, False, "graphics passthrough
> enabled or disabled"),
> ("serial", string, False, "serial port re-direct to
> pty deivce"),
> diff -r 3f00c5faa12a tools/libxl/libxl_dm.c
> --- a/tools/libxl/libxl_dm.c Wed Apr 13 16:10:26 2011 +0100
> +++ b/tools/libxl/libxl_dm.c Mon Apr 18 10:52:09 2011 +0800
> @@ -225,15 +225,44 @@ static char ** libxl__build_device_model
>
> if (strchr(listen, ':') != NULL)
> flexarray_append(dm_args,
> - libxl__sprintf(gc, "%s%s", listen,
> - info->vncunused ? ",to=99" : ""));
> + libxl__sprintf(gc, "%s%s,%s", listen,
> + info->vncunused ? ",to=99" : "", info->vncpasswd));
> else
> flexarray_append(dm_args,
> - libxl__sprintf(gc, "%s:%d%s", listen, display,
> - info->vncunused ? ",to=99" : ""));
> + libxl__sprintf(gc, "%s:%d%s,%s", listen, display,
> + info->vncunused ? ",to=99" : "", info->vncpasswd));
This is not actually part of the spice support patch to libxl, is it?
It looks like a generic bug fix to the vncpasswd handling.
Could you please send it as a separate patch?
> }
> if (info->sdl) {
> flexarray_append(dm_args, "-sdl");
> + }
> + if (info->spice) {
> + char *spiceoptions = NULL;
> + if (!info->spiceport && !info->spicetls_port) {
> + assert(!"at least one of the spiceport or tls_port must be
> provided");
> + }
please return error here and let the caller handle the failure
> +
> + if (!info->spicedisable_ticketing) {
> + if (!info->spicepasswd)
> + assert(!"spice ticketing is enabled but missing password");
> + else if (!info->spicepasswd[0])
> + assert(!"missing code for supplying spice password");
> + }
same here: replace the asserts with return errors
> + spiceoptions = libxl__sprintf(gc, "port=%d,tls-port=%d",
> + info->spiceport, info->spicetls_port);
> + if (!info->spicehost)
> + spiceoptions = libxl__sprintf(gc,
> + "%s,host=%s", spiceoptions, info->spicehost);
> + if (info->spicedisable_ticketing)
> + spiceoptions = libxl__sprintf(gc, "%s,disable-ticketing",
> spiceoptions);
> + else
> + spiceoptions = libxl__sprintf(gc,
> + "%s,password=%s", spiceoptions, info->spicepasswd);
> + spiceoptions = libxl__sprintf(gc, "%s,agent-mouse=%s", spiceoptions,
> + info->spiceagent_mouset ? "on" :
> "off");
> +
> + flexarray_append(dm_args, "-spice");
> + flexarray_append(dm_args, spiceoptions);
> + printf("SPICE Options:\n -spice %s\n", spiceoptions);
> }
>
> if (info->type == XENPV && !info->nographic) {
> diff -r 3f00c5faa12a tools/libxl/xl_cmdimpl.c
> --- a/tools/libxl/xl_cmdimpl.c Wed Apr 13 16:10:26 2011 +0100
> +++ b/tools/libxl/xl_cmdimpl.c Mon Apr 18 10:52:10 2011 +0800
> @@ -1089,6 +1089,20 @@ skip_vfb:
> dm_info->sdl = l;
> if (!xlu_cfg_get_long (config, "opengl", &l))
> dm_info->opengl = l;
> + if (!xlu_cfg_get_long (config, "spice", &l))
> + dm_info->spice = l;
> + if (!xlu_cfg_get_long (config, "spiceport", &l))
> + dm_info->spiceport = l;
> + if (!xlu_cfg_get_long (config, "spicetls_port", &l))
> + dm_info->spicetls_port = l;
> + xlu_cfg_replace_string (config, "spicehost", &dm_info->spicehost);
> + if (!xlu_cfg_get_long (config, "spicedisable_ticketing", &l))
> + dm_info->spicedisable_ticketing = l;
> + xlu_cfg_replace_string (config, "spicepasswd",
> &dm_info->spicepasswd);
> + if (!xlu_cfg_get_long (config, "spiceagent_mouse", &l))
> + dm_info->spiceagent_mouset = l;
> + else
> + dm_info->spiceagent_mouset = 1;
> if (!xlu_cfg_get_long (config, "nographic", &l))
> dm_info->nographic = l;
> if (!xlu_cfg_get_long (config, "gfx_passthru", &l))
>
>
> ==============================Appended patch======================
thanks for the patches, next time could you please send the patches
inline as plain text, each patch as a separate email?
See this document on how to send patches to the LKML as a reference:
http://www.mjmwired.net/kernel/Documentation/email-clients.txt
> Signed-off-by: Zhou Peng <zhoupeng@xxxxxxxxxxxxxxx>
>
> tool/libxl: mistake apic for acpi in libxl__build_device_model_args_old/new
> It may be advisedly coded for some reason, then it can be a mistake of my
> understanding.
>
Thanks for the patch, I found the first version that you sent and reply
to it now. _______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|