From: ZhouPeng <zpengxen@gmail.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
"ian.jackson" <Ian.Jackson@eu.citrix.com>
Cc: "Xen-Devel (E-mail)" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH] Play with spice for xen-upstream-qemu on upstream Xen
Date: Tue, 19 Apr 2011 12:46:02 +0800 [thread overview]
Message-ID: <BANLkTinedUuALEDSEQkW6k7-vw4baW+__A@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1104181439160.10886@kaball-desktop>
[-- Attachment #1: Type: text/plain, Size: 7797 bytes --]
Signed-off-by: Zhou Peng <zhoupeng@nfs.iscas.ac.cn>
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 Tue Apr 19 12:31:19 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_mouse", 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 Tue Apr 19 12:31:19 2011 +0800
@@ -234,6 +234,42 @@ 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) {
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+ ": at least one of the spiceport or tls_port
must be provided");
+ return NULL;
+ }
+
+ if (!info->spicedisable_ticketing) {
+ if (!info->spicepasswd) {
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+ ": spice ticketing is enabled but missing
password");
+ return NULL;
+ }
+ else if (!info->spicepasswd[0]) {
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR, ": spice password
can't be empty");
+ return NULL;
+ }
+ }
+ 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_mouse ? "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 Tue Apr 19 12:31:19 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_mouse = l;
+ else
+ dm_info->spiceagent_mouse = 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@nfs.iscas.ac.cn>
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) {
> > For detailed:
> > http://code.google.com/p/spice4xen/wiki/Using_Upstream_Qemu
>
> Cool! Does it mean that it works right now?
Yes, it works right. now.
>
>
> > - 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?
No, it is not part of spice of libxl. It's mess msg because of my negligence
Thanks for your review,
--
Zhou Peng
Operating System Technology Group
Institute of Software, the Chinese Academy of Sciences (ISCAS)
[-- Attachment #2: spice-upstreamXen-upstreamQemu.diff --]
[-- Type: text/x-patch, Size: 6863 bytes --]
Signed-off-by: Zhou Peng <zhoupeng@nfs.iscas.ac.cn>
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 Tue Apr 19 12:31:19 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_mouse", 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 Tue Apr 19 12:31:19 2011 +0800
@@ -234,6 +234,42 @@ 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) {
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+ ": at least one of the spiceport or tls_port must be provided");
+ return NULL;
+ }
+
+ if (!info->spicedisable_ticketing) {
+ if (!info->spicepasswd) {
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+ ": spice ticketing is enabled but missing password");
+ return NULL;
+ }
+ else if (!info->spicepasswd[0]) {
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR, ": spice password can't be empty");
+ return NULL;
+ }
+ }
+ 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_mouse ? "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 Tue Apr 19 12:31:19 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_mouse = l;
+ else
+ dm_info->spiceagent_mouse = 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@nfs.iscas.ac.cn>
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) {
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next prev parent reply other threads:[~2011-04-19 4:46 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-18 7:49 [PATCH] Play with spice for xen-upstream-qemu on upstream Xen ZhouPeng
2011-04-18 13:52 ` Stefano Stabellini
2011-04-19 4:46 ` ZhouPeng [this message]
2011-04-20 12:33 ` Stefano Stabellini
2011-04-21 1:23 ` ZhouPeng
2011-04-18 16:24 ` Ian Jackson
2011-04-19 1:31 ` ZhouPeng
2011-05-20 15:16 ` Ian Jackson
2011-05-23 11:17 ` ZhouPeng
2011-05-24 3:29 ` ZhouPeng
2011-05-24 15:55 ` Ian Jackson
2011-05-25 14:12 ` ZhouPeng
2011-05-26 13:34 ` Ian Jackson
2011-05-26 13:36 ` Ian Jackson
2011-05-26 14:07 ` ZhouPeng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BANLkTinedUuALEDSEQkW6k7-vw4baW+__A@mail.gmail.com \
--to=zpengxen@gmail.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).