[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 00/37] Add D-Bus display backend
From: |
Gerd Hoffmann |
Subject: |
Re: [PATCH v2 00/37] Add D-Bus display backend |
Date: |
Wed, 13 Oct 2021 07:22:14 +0200 |
On Sun, Oct 10, 2021 at 01:08:01AM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Hi,
>
> Both Spice and VNC are relatively complex and inefficient for local-only
> display/console export.
>
> The goal of this display backend is to export over D-Bus an interface close to
> the QEMU internal APIs. Any -display or -audio backend should be possible to
> implement externally that way. It will allow third-parties to maintain their
> own
> backends (UI toolkits, servers etc), and eventually reduce the responsability
> on
> QEMU.
>
> D-Bus is the protocol of choice for the desktop, it has many convenient
> bindings
> for various languages and tools. Data blob transfer is more efficient than QMP
> too. Backends can come and go as needed: you can have several display opened
> (say Boxes & virt-manager), while exporting the display over VNC for example
> from a different process. It works best on Unix, but there is some Windows
> support too (even Windows has some AF_UNIX nowadays, and the WSL2 situation
> may
> change the future of QEMU on Windows anyway).
>
> Using it only requires "-display dbus" on any reasonable Linux desktop with a
> D-Bus session bus. Then you use can use busctl, d-feet or gdbus, ex:
> $ gdbus introspect --session -r -d org.qemu -o /
>
> See the different patches and documentation for further options. The p2p=on
> mode
> should also allow users running bus-less (on MacOS for ex). We can also add
> TCP
> socket if needed (although more work would be needed in this case to replace
> the FD-passing with some extra TCP listening socket).
Wow. That series got a lot of fine tuning. The patches look all good
to me.
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
> A WIP Rust/Gtk4 client and VNC server is:
> https://gitlab.com/marcandre.lureau/qemu-display/
> (check README.md for details, then `cargo run` should connect to QEMU)
Hmm, that wants rather cutting edge versions, stock Fedora 34 isn't new
enough to build it. And I don't feel like updating to Fedora 35 beta
for that. So unfortunately I couldn't easily test it, but I'd love to
see that live in action.
Is it possible to keep the client running while starting and stopping
qemu (comparable to "virt-viewer --wait --reconnect" behaviour)?
take care,
Gerd
- [PATCH v2 28/37] tests/qtests: add qtest_qmp_add_client(), (continued)
- [PATCH v2 28/37] tests/qtests: add qtest_qmp_add_client(), marcandre . lureau, 2021/10/09
- [PATCH v2 29/37] tests: start dbus-display-test, marcandre . lureau, 2021/10/09
- [PATCH v2 30/37] audio: add "dbus" audio backend, marcandre . lureau, 2021/10/09
- [PATCH v2 31/37] ui/dbus: add clipboard interface, marcandre . lureau, 2021/10/09
- [PATCH v2 32/37] chardev: teach socket to accept no addresses, marcandre . lureau, 2021/10/09
- [PATCH v2 33/37] chardev: make socket derivable, marcandre . lureau, 2021/10/09
- [PATCH v2 34/37] option: add g_auto for QemuOpts, marcandre . lureau, 2021/10/09
- [PATCH v2 35/37] ui/dbus: add chardev backend & interface, marcandre . lureau, 2021/10/09
- [PATCH v2 36/37] ui/dbus: register D-Bus VC handler, marcandre . lureau, 2021/10/09
- [PATCH v2 37/37] MAINTAINERS: update D-Bus section, marcandre . lureau, 2021/10/09
- Re: [PATCH v2 00/37] Add D-Bus display backend,
Gerd Hoffmann <=