Project Orko Madrid Connect Demo

Overview

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.

VirtIO GPU

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.

Documentation

Links

Documentation

Links

Build Android Cuttlefish Images

Xen: porting Android Cuttlefish on Xen Virtual Machine

Build TRS for support Orko

Xen: maintenance Xen and QEMU repos for TRS

Run Android Cuttlefish Images on Xen VM

Run Android Automotive in Xen virtual machine on the AVA Platform

Tips: Debug Xen and Linux kernel

AVA, Xen & kernel: hardware notes, debugging tips & tricks