virtio sound

This document explains the setup and usage of the Virtio sound device. The Virtio sound device is a paravirtualized sound card device.

Linux kernel support

Virtio sound requires a guest Linux kernel built with the CONFIG_SND_VIRTIO option.

Description

Virtio sound implements capture and playback from inside a guest using the configured audio backend of the host machine.

Device properties

The Virtio sound device can be configured with the following properties:

  • jacks number of physical jacks (Unimplemented).

  • streams number of PCM streams. At the moment, no stream configuration is supported: the first one will always be a playback stream, an optional second will always be a capture stream. Adding more will cycle stream directions from playback to capture.

  • chmaps number of channel maps (Unimplemented).

All streams are stereo and have the default channel positions Front left, right.

Examples

Add an audio device and an audio backend at once with -audio and model=virtio:

  • pulseaudio: -audio driver=pa,model=virtio or -audio driver=pa,model=virtio,server=/run/user/1000/pulse/native

  • sdl: -audio driver=sdl,model=virtio

  • coreaudio: -audio driver=coreaudio,model=virtio

etc.

To specifically add virtualized sound devices, you have to specify a PCI device and an audio backend listed with -audio driver=help that works on your host machine, e.g.:

-device virtio-sound-pci,audiodev=my_audiodev \
-audiodev alsa,id=my_audiodev