[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 10/10] display: add -display app launching exter
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH 10/10] display: add -display app launching external application |
Date: |
Tue, 7 Aug 2018 12:33:40 +0200 |
Hi
On Tue, Aug 7, 2018 at 12:15 PM, Daniel P. Berrangé <address@hidden> wrote:
> On Fri, Aug 03, 2018 at 07:36:14PM +0200, Marc-André Lureau wrote:
>> Add a new display backend that will configure Spice to allow a remote
>> client to control QEMU in a similar fashion as other display backend
>> like GTK.
>>
>> For this to work, we set up Spice server with a unix socket, and
>> register a VC chardev that will be exposed as Spice ports. A QMP
>> monitor is also exposed as a Spice port, this allows the remote client
>> fuller qemu control and state handling.
>>
>> - doesn't handle VC set_echo() - this doesn't seem a strong
>> requirement, very few front-end use it
>> - spice options can be tweaked with other -spice arguments
>> - Windows support shouldn't be hard to do, but will probably use a TCP
>> port instead
>> - we may want to watch the child process to quit automatically if it
>> crashed
>>
>> Signed-off-by: Marc-André Lureau <address@hidden>
>
>> + type_register(&char_vc_type_info);
>> +
>> + sock_path = g_strjoin("", tmp_dir, "/", "spice.sock", NULL);
>> + qopts = qemu_opts_create(qemu_find_opts("spice"), NULL, 0,
>> &error_abort);
>> + qemu_opt_set(qopts, "disable-ticketing", "on", &error_abort);
>> + qemu_opt_set(qopts, "unix", "on", &error_abort);
>> + qemu_opt_set(qopts, "addr", sock_path, &error_abort);
>> + qemu_opt_set(qopts, "image-compression", "off", &error_abort);
>> + qemu_opt_set(qopts, "streaming-video", "off", &error_abort);
>> + qemu_opt_set(qopts, "gl", opts->has_gl ? "on" : "off", &error_abort);
>
> Hmm, so ultimately "-display app" is just syntactic sugar for a hardcoded
> set of "-display spice" arguments, plus automatic launching of the client
> app. I'm thinking users may well ask for ability to control some of those
You can do it via additional -spice arguments.
> spice arguments over time. So if we want auto-launching of a remote app,
> I think it is preferrable to do it via extra args to the existing
> "-display spice" format. eg we could add a "client=yes|no" to control
> launching the client
>
> -display spice,client=yes
There is no -display spice, atm.
However there is a -display vnc.
It's a bit unclear to me the relation between -display and
-vnc/-spice/-curses etc. In the end, I tend to think of -display foo
as a shortcut for a longer -foo configuration.
So -display spice,client=yes is a reasonable proposal to me, making it
clear that it will run spice. (client=yes is less clear to me but
fine)
I wanted a simple and short replacement for "gtk", "app" was generic
enough, and could be also further tweaked if needed (specify vnc,
spice, auto-quit etc)
>
> would do what your "-display app" proposes, and still let users tweak
> all the other spice args as desired. Another option "autoquit=yes|no"
> could control whether QEMU automatically exits when the client quits,
> vs whether it stays alive.
Yes, I haven't looked at that in details, but we could either have
extra URI args, use a .vv file with extra config keys, use a dedicated
spice message to tell the client, or have a global client config. Too
many options to chose from :)
--
Marc-André Lureau
- Re: [Qemu-devel] [PATCH 04/10] spice: avoid spice runtime assert, (continued)
- [Qemu-devel] [PATCH 05/10] spice: merge options lists, Marc-André Lureau, 2018/08/03
- [Qemu-devel] [PATCH 06/10] spice: do not stop spice if VM is paused, Marc-André Lureau, 2018/08/03
- [Qemu-devel] [PATCH 07/10] char: move SpiceChardev and open_spice_port() to spice.h header, Marc-André Lureau, 2018/08/03
- [Qemu-devel] [PATCH 08/10] char: register spice ports after spice started, Marc-André Lureau, 2018/08/03
- [Qemu-devel] [PATCH 09/10] build-sys: add gio-2.0 check, Marc-André Lureau, 2018/08/03
- [Qemu-devel] [PATCH 10/10] display: add -display app launching external application, Marc-André Lureau, 2018/08/03