patches and low-level development discussion
 help / color / mirror / code / Atom feed
* [PATCH v3 0/6] Initial support for VM Wayland
@ 2023-07-21 18:00 Alyssa Ross
  2023-07-21 18:00 ` [PATCH v3 1/6] img/app: allow waiting for GPU to appear Alyssa Ross
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Alyssa Ross @ 2023-07-21 18:00 UTC (permalink / raw)
  To: devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=true, Size: 3838 bytes --]

Changes since v2:
- Disable virgl for virtio-gpu devices
- Ensure wayland-proxy-virtwl isn't started before card0 appears
- Build everything with musl
- Support testing netvm with crosvm in addition to appvms

v1: https://spectrum-os.org/lists/archives/spectrum-devel/20220928170128.1583791-1-alyssa.ross@unikie.com
v2: https://spectrum-os.org/lists/archives/spectrum-devel/20220930213533.1710618-1-alyssa.ross@unikie.com

This series adds the Spectrum-side support for running VMs that can
display Wayland windows on the host compositor, using virtio-gpu.
There are various small things still to be resolved, but it's ready
for other people to try out and test.

The easiest way to test this out is to run "vm-start hello-wayland" on
the Spectrum host.  If everything goes well, a small window with a
picture of a cat (hello-wayland) should appear.  This window is
running in a VM.

Currently, Wayland clients more complex than hello-wayland are
unlikely to work, due to a couple of upstream bugs:

- https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4584252
- https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4684048

With those two fixes applied, I've been able to run much more complex
applications, e.g. Krita.  But I don't want to keep this waiting any
longer, so let's get the basics in, and not block on fixing the
remaining upstream problems.  This has felt so close for so long, so
I'm not going to miss this opportunity.

As for what took this so long, mostly it's been stuff that isn't part
of this series.  Fixing crosvm, refining my cloud-hypervisor
vhost-user-gpu implementation, etc.  The previous submissions of this
series were marked as RFC because there were bits I just wasn't quite
happy enough with to merge them at the time — having to use Glibc for
certain components, having virgl always enabled, etc.  Those things
have all been resolved.

Alyssa Ross (6):
  img/app: allow waiting for GPU to appear
  vm-lib: add mesa drivers to VM
  img/app: add support for testing virtio-gpu
  vm: add support for testing in crosvm
  host: add support for Wayland in VMs
  vm/app: add hello-wayland demo VM

 .../using-spectrum/creating-vms.adoc          |  5 ++++
 host/initramfs/extfs.nix                      |  4 ++-
 host/rootfs/Makefile                          |  4 +++
 host/rootfs/default.nix                       |  6 ++--
 host/rootfs/etc/s6-rc/ext-rc-init/up          |  7 +++++
 host/rootfs/etc/template/gpu/data/check       |  5 ++++
 host/rootfs/etc/template/gpu/notification-fd  |  1 +
 .../etc/template/gpu/notification-fd.license  |  2 ++
 host/rootfs/etc/template/gpu/run              |  9 ++++++
 host/rootfs/etc/template/gpu/type             |  1 +
 host/rootfs/etc/template/gpu/type.license     |  2 ++
 host/start-vm/lib.rs                          | 10 +++++++
 img/app/Makefile                              | 25 +++++++++++++++-
 img/app/etc/mdev.conf                         |  3 +-
 img/app/shell.nix                             |  2 +-
 lib/common.mk                                 |  3 ++
 vm-lib/make-vm.nix                            | 12 ++++++--
 vm/app/hello-wayland.nix                      | 29 +++++++++++++++++++
 vm/sys/net/Makefile                           | 11 +++++++
 vm/sys/net/shell.nix                          |  2 +-
 20 files changed, 133 insertions(+), 10 deletions(-)
 create mode 100755 host/rootfs/etc/template/gpu/data/check
 create mode 100644 host/rootfs/etc/template/gpu/notification-fd
 create mode 100644 host/rootfs/etc/template/gpu/notification-fd.license
 create mode 100755 host/rootfs/etc/template/gpu/run
 create mode 100644 host/rootfs/etc/template/gpu/type
 create mode 100644 host/rootfs/etc/template/gpu/type.license
 create mode 100644 vm/app/hello-wayland.nix


base-commit: 13bb6394205346d161fa6f1467b7c6ba81196fb0
-- 
2.40.1



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2023-07-28 12:10 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-21 18:00 [PATCH v3 0/6] Initial support for VM Wayland Alyssa Ross
2023-07-21 18:00 ` [PATCH v3 1/6] img/app: allow waiting for GPU to appear Alyssa Ross
2023-07-28 12:10   ` Alyssa Ross
2023-07-21 18:00 ` [PATCH v3 2/6] vm-lib: add mesa drivers to VM Alyssa Ross
2023-07-28 12:10   ` Alyssa Ross
2023-07-21 18:00 ` [PATCH v3 3/6] img/app: add support for testing virtio-gpu Alyssa Ross
2023-07-28 12:10   ` Alyssa Ross
2023-07-21 18:00 ` [PATCH v3 4/6] vm: add support for testing in crosvm Alyssa Ross
2023-07-28 12:10   ` Alyssa Ross
2023-07-21 18:00 ` [PATCH v3 5/6] host: add support for Wayland in VMs Alyssa Ross
2023-07-28 12:10   ` Alyssa Ross
2023-07-21 18:00 ` [PATCH v3 6/6] vm/app: add hello-wayland demo VM Alyssa Ross
2023-07-28 12:10   ` Alyssa Ross

Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/crosvm
	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/nixpkgs
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock
	https://spectrum-os.org/git/www

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