From: Alyssa Ross <hi@alyssa.is>
To: devel@spectrum-os.org
Subject: [PATCH v3 0/6] Initial support for VM Wayland
Date: Fri, 21 Jul 2023 18:00:09 +0000 [thread overview]
Message-ID: <20230721180015.597099-1-hi@alyssa.is> (raw)
[-- 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
next reply other threads:[~2023-07-21 18:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-21 18:00 Alyssa Ross [this message]
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
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=20230721180015.597099-1-hi@alyssa.is \
--to=hi@alyssa.is \
--cc=devel@spectrum-os.org \
/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.
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).