The first patch reverts a completely wrong patch I sent earlier. Patches 2 through 7 clean up directory creation in the boot scripts, and patch 8 actually adds working (and tested) support for audio in the VM via PipeWire. This only works when running in a QEMU VM, as there is no sound support in Cloud Hypervisor and crosvm's sound support requires CrAS or Android. Running CrAS might actually not be a bad idea; if nothing else, I expect it to have significantly better code quality than PipeWire. CrAS does rely on udev, though, so I don't see a way around udev on the host. Demi Marie Obenour (8): Revert "img/app: fix permissions on /tmp" img/app: Use separate service to create directories img/app: Fix permissions of /tmp/.X11-unix img/app: Create other X11 directories img/app: Be explicit about directory modes img/app: create /run/user and /run/wait very early in boot host/rootfs: create /run/user and /run/wait very early in boot img/app: Run PipeWire and WirePlumber in the VMs host/rootfs/etc/mdev/listen | 1 - host/rootfs/etc/mdev/wait | 1 - host/rootfs/etc/s6-linux-init/scripts/rc.init | 1 + host/rootfs/etc/s6-rc/weston/run | 6 +- img/app/Makefile | 22 +- img/app/default.nix | 3 + img/app/etc/fstab | 2 +- img/app/etc/mdev.conf | 3 + img/app/etc/mdev/listen | 1 - img/app/etc/mdev/wait | 1 - img/app/etc/pipewire/pipewire.conf | 199 +++++++ img/app/etc/s6-linux-init/scripts/rc.init | 2 +- .../etc/s6-rc/app/dependencies.d/directories | 0 .../etc/s6-rc/app/dependencies.d/wireplumber | 0 .../etc/s6-rc/dbus/dependencies.d/directories | 0 img/app/etc/s6-rc/directories/type | 1 + img/app/etc/s6-rc/directories/type.license | 2 + img/app/etc/s6-rc/directories/up | 10 + .../s6-rc/pipewire/dependencies.d/directories | 0 .../etc/s6-rc/pipewire/dependencies.d/mdevd | 0 img/app/etc/s6-rc/pipewire/notification-fd | 1 + .../s6-rc/pipewire/notification-fd.license | 2 + img/app/etc/s6-rc/pipewire/run | 25 + img/app/etc/s6-rc/pipewire/type | 1 + img/app/etc/s6-rc/pipewire/type.license | 2 + .../dependencies.d/directories | 0 img/app/etc/s6-rc/wayland-proxy-virtwl/run | 11 - .../etc/s6-rc/wireplumber/dependencies.d/dbus | 0 .../s6-rc/wireplumber/dependencies.d/pipewire | 0 img/app/etc/s6-rc/wireplumber/run | 4 + img/app/etc/s6-rc/wireplumber/type | 1 + img/app/etc/s6-rc/wireplumber/type.license | 2 + img/app/etc/wireplumber/wireplumber.conf | 536 ++++++++++++++++++ 33 files changed, 816 insertions(+), 24 deletions(-) create mode 100644 img/app/etc/pipewire/pipewire.conf create mode 100644 img/app/etc/s6-rc/app/dependencies.d/directories create mode 100644 img/app/etc/s6-rc/app/dependencies.d/wireplumber create mode 100644 img/app/etc/s6-rc/dbus/dependencies.d/directories create mode 100644 img/app/etc/s6-rc/directories/type create mode 100644 img/app/etc/s6-rc/directories/type.license create mode 100644 img/app/etc/s6-rc/directories/up create mode 100644 img/app/etc/s6-rc/pipewire/dependencies.d/directories create mode 100644 img/app/etc/s6-rc/pipewire/dependencies.d/mdevd create mode 100644 img/app/etc/s6-rc/pipewire/notification-fd create mode 100644 img/app/etc/s6-rc/pipewire/notification-fd.license create mode 100644 img/app/etc/s6-rc/pipewire/run create mode 100644 img/app/etc/s6-rc/pipewire/type create mode 100644 img/app/etc/s6-rc/pipewire/type.license create mode 100644 img/app/etc/s6-rc/wayland-proxy-virtwl/dependencies.d/directories create mode 100644 img/app/etc/s6-rc/wireplumber/dependencies.d/dbus create mode 100644 img/app/etc/s6-rc/wireplumber/dependencies.d/pipewire create mode 100644 img/app/etc/s6-rc/wireplumber/run create mode 100644 img/app/etc/s6-rc/wireplumber/type create mode 100644 img/app/etc/s6-rc/wireplumber/type.license create mode 100644 img/app/etc/wireplumber/wireplumber.conf base-commit: ec60920e1e37295f93f1295fe6f441735bba2e41 -- Sincerely, Demi Marie Obenour (she/her/hers)