DevConf.CZ

Dorinda Bassey

Dorinda works in the Automotive team at RedHat as a Software Engineer. Dorinda collaborates closely with RedHat developers and other experienced open source developers to design, write and test software applications. She enjoys taking on new challenges, expanding and sharing her knowledge. In her spare time she makes art.


Session

06-14
11:00
35min
Building VirtIO sound device in rust-vmm project
Dorinda Bassey, Matias Vara Larsen

In automotive, Android guests are currently used for deploying infotainment systems. To support Android as a guest, the Virtual Machine Monitor (VMM) requires a set of virtual hardware like sound, video, block devices and networking. This talk presents the current status and efforts to implement VirtIO sound for infotainment systems in automotive. We will shed some light on our decision to implement VirtIO sound in Rust as an vhost-user device under the Rust-Vmm project umbrella.
Having VirtIO for hardware allows Android to be deployed in different VMMs that support VirtIO like Crosvm or QEMU, This deployment has benefits like reducing the attack surface of QEMU and also enables more granularity in setting up rights for the device process. Our VirtIO sound implementation is able to handle different audio backends by relying on a generic interface. Currently, we support the pipewire and Alsa as audio backends. During this presentation, we will share our journey in building the virtio-sound device, including improving its specification, fixing bugs in the virtio-sound driver, and building it as a rust-vmm project. We also plan to outline a roadmap for the future like adding support for other audio backends like Gstreamer.

We will demo and describe the setup used in order to play audio from a guest application to the host using our virtio-sound device.

We will also go through some general tips on how to configure the guest to enable virtio-snd driver module and optimal ways to use QEMU which may be useful to the audience.

Edge, Mobile, and Automotive
E112 (capacity 156)