Project Orko Madrid Connect Demo


For Connect Madrid we want to demonstrate a mixed criticality edge device running an Android Auto IVI system with virtualised sound and graphics. The graphics will take advantage of accelerated graphics on the host by passing through Vulkan commands from the guest through the host GPU driver. We will also partition off some vCPUs and run a real-time Zephyr instance which will measure its own IRQ latency and report the results over a trapless shared memory interface to the rest of the system. It’s behaviour should not change as the rest of the system is put under load.

Software Architecture

Multimedia Devices

These will be utilising VirtIO with the backends handled in QEMU running as a xenpvh backend.


This will be virtio-gpu running Vulkan (either direct or via rutabaga) on the guest with the backend being QEMU running on Dom0. The physical GPU on the AVA will be an AMD PCI card.

VirtIO Sound

This will be virtio-sound terminating on a vhost-user-sound (from rust-vmm) outputting to a USB sound device.

Block and Networking

We will use the existing Xen PV devices which are exposed to the guest userspace as just another block/network device

Misc Devices

We will support virtio-input to pass through host input events to the guest


Notes and Documentation for the components

Under here we have notes about the various components used to build this demo.





Build Android Cuttlefish Images

Build TRS for support Orko

Run Android Cuttlefish Images on Xen VM

Tips: Debug Xen and Linux kernel