2011/4/19 Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
ZhouPeng writes ("[Xen-devel] [PATCH] Play with spice for xen-upstream-qemu on upstream Xen"):
> 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.
Thanks. There seems to be some unrelated code in here. For example:
> - libxl__sprintf(gc, "%s%s", listen,
> - info->vncunused ? ",to=99" : ""));
> + libxl__sprintf(gc, "%s%s,%s", listen,
> + info->vncunused ? ",to=99" : "", info->vncpasswd));
and
> - if (info->apic) {
> + if (info->acpi) {
yes, it's it's unrelated. Thanks,
Ian.
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.
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 16:12:16 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 16:12:16 2011 +0800 @@ -234,6 +234,35 @@ static char ** libxl__build_device_model } 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");
+ } + + 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"); + } + 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 16:12:16 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============================================
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.
diff -r 6871474a2a09 -r 01f8b29dda8e tools/libxl/libxl_dm.c --- a/tools/libxl/libxl_dm.c Fri Apr 15 10:06:59 2011 +0800 +++ b/tools/libxl/libxl_dm.c Fri Apr 15 15:17:42 2011 +0800 @@ -120,7 +120,7 @@ static char ** libxl__build_device_model
if (info->soundhw) { flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL); } - if (info->apic) { + if (info->acpi) { flexarray_append(dm_args, "-acpi");
} if (info->vcpus > 1) { @@ -268,7 +268,7 @@ static char ** libxl__build_device_model if (info->soundhw) { flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL);
} - if (!info->apic) { + if (!info->acpi) { flexarray_append(dm_args, "-no-acpi"); } if (info->vcpus > 1) {
-- Zhou Peng Operating System Technology Group Institute of Software, the Chinese Academy of Sciences (ISCAS)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|