| 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
 |