Alyssa Ross writes: > diff --git a/img/app/Makefile b/img/app/Makefile > index a3fefc3..145001c 100644 > --- a/img/app/Makefile > +++ b/img/app/Makefile > @@ -6,6 +6,8 @@ > # QEMU_KVM = qemu-system-x86_64 -enable-kvm. > QEMU_KVM = qemu-kvm > CLOUD_HYPERVISOR = cloud-hypervisor > +CROSVM = crosvm > +CROSVM_DEVICE_GPU = $(CROSVM) device gpu > > prefix = /usr/local > imgdir = $(prefix)/img > @@ -96,6 +98,17 @@ build/etc/s6-rc: $(VM_S6_RC_FILES) > s6-rc-compile $@ $$dir; \ > exit=$$?; rm -r $$dir; exit $$exit > > +start-vhost-user-gpu: > + rm -f vhost-user-gpu.sock > + $(CROSVM_DEVICE_GPU) \ > + --socket vhost-user-gpu.sock \ > + --wayland-sock "$$XDG_RUNTIME_DIR/$$WAYLAND_DISPLAY" \ > + --params '{"context-types":"cross-domain"}' & > + while ! [ -S vhost-user-gpu.sock ]; do > + sleep 1 > + done Known issue: this is a syntax error, due to missing backslashes. (I tried to fix this up from a single sleep without a loop in a bit of a hurry.) > +.PHONY: start-vhost-user-gpu > + > run-qemu: build/host/appvm/blk/root.img > $(QEMU_KVM) -m 128 -cpu host -machine q35,kernel=$(KERNEL) -vga none \ > -drive file=build/host/appvm/blk/root.img,if=virtio,format=raw,readonly=on \ > @@ -108,13 +121,14 @@ run-qemu: build/host/appvm/blk/root.img > -device virtconsole,chardev=virtiocon0 > .PHONY: run-qemu > > -run-cloud-hypervisor: build/host/appvm/blk/root.img > +run-cloud-hypervisor: build/host/appvm/blk/root.img start-vhost-user-gpu > $(CLOUD_HYPERVISOR) \ > --api-socket path=vmm.sock \ > - --memory size=128M \ > + --memory size=128M,shared=on \ > --disk path=build/host/appvm/blk/root.img,readonly=on \ > path=$(RUN_IMG),readonly=on \ > --net tap=tap0,mac=0A:B3:EC:00:00:00 \ > + --gpu socket=vhost-user-gpu.sock \ > --kernel $(KERNEL) \ > --cmdline "console=ttyS0 root=PARTLABEL=root" \ > --console tty \ > -- > 2.37.1