xref: /qemu/docs/system/devices/virtio-snd.rst (revision f54fea11)
1f54fea11SManos Pitsidianakisvirtio sound
2f54fea11SManos Pitsidianakis============
3f54fea11SManos Pitsidianakis
4f54fea11SManos PitsidianakisThis document explains the setup and usage of the Virtio sound device.
5f54fea11SManos PitsidianakisThe Virtio sound device is a paravirtualized sound card device.
6f54fea11SManos Pitsidianakis
7f54fea11SManos PitsidianakisLinux kernel support
8f54fea11SManos Pitsidianakis--------------------
9f54fea11SManos Pitsidianakis
10f54fea11SManos PitsidianakisVirtio sound requires a guest Linux kernel built with the
11f54fea11SManos Pitsidianakis``CONFIG_SND_VIRTIO`` option.
12f54fea11SManos Pitsidianakis
13f54fea11SManos PitsidianakisDescription
14f54fea11SManos Pitsidianakis-----------
15f54fea11SManos Pitsidianakis
16f54fea11SManos PitsidianakisVirtio sound implements capture and playback from inside a guest using the
17f54fea11SManos Pitsidianakisconfigured audio backend of the host machine.
18f54fea11SManos Pitsidianakis
19f54fea11SManos PitsidianakisDevice properties
20f54fea11SManos Pitsidianakis-----------------
21f54fea11SManos Pitsidianakis
22f54fea11SManos PitsidianakisThe Virtio sound device can be configured with the following properties:
23f54fea11SManos Pitsidianakis
24f54fea11SManos Pitsidianakis * ``jacks`` number of physical jacks (Unimplemented).
25f54fea11SManos Pitsidianakis * ``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.
26f54fea11SManos Pitsidianakis * ``chmaps`` number of channel maps (Unimplemented).
27f54fea11SManos Pitsidianakis
28f54fea11SManos PitsidianakisAll streams are stereo and have the default channel positions ``Front left, right``.
29f54fea11SManos Pitsidianakis
30f54fea11SManos PitsidianakisExamples
31f54fea11SManos Pitsidianakis--------
32f54fea11SManos Pitsidianakis
33f54fea11SManos PitsidianakisAdd an audio device and an audio backend at once with ``-audio`` and ``model=virtio``:
34f54fea11SManos Pitsidianakis
35f54fea11SManos Pitsidianakis * pulseaudio: ``-audio driver=pa,model=virtio``
36f54fea11SManos Pitsidianakis   or ``-audio driver=pa,model=virtio,server=/run/user/1000/pulse/native``
37f54fea11SManos Pitsidianakis * sdl: ``-audio driver=sdl,model=virtio``
38f54fea11SManos Pitsidianakis * coreaudio: ``-audio driver=coreaudio,model=virtio``
39f54fea11SManos Pitsidianakis
40f54fea11SManos Pitsidianakisetc.
41f54fea11SManos Pitsidianakis
42f54fea11SManos PitsidianakisTo specifically add virtualized sound devices, you have to specify a PCI device
43f54fea11SManos Pitsidianakisand an audio backend listed with ``-audio driver=help`` that works on your host
44f54fea11SManos Pitsidianakismachine, e.g.:
45f54fea11SManos Pitsidianakis
46f54fea11SManos Pitsidianakis::
47f54fea11SManos Pitsidianakis
48f54fea11SManos Pitsidianakis  -device virtio-sound-pci,audiodev=my_audiodev \
49f54fea11SManos Pitsidianakis  -audiodev alsa,id=my_audiodev
50