Required components

Updated: April 19, 2023

To support shared audio in a QNX Hypervisor system, you must add components to your guest and host images, and configure the virtio-snd vdev in the guest's VM.

The host may offer each guest different audio functionality, just as if each guest were running on its own separate board. For example, one guest may be allowed to capture and output audio, while another is allowed only to output audio.

To present audio functionality in the host to any specific guest, you configure the virtio-snd vdev in the VM that hosts the guest. The vdev configuration specifies which PCM streams on the host are exposed to the guest. It also specifies any restrictions to audio parameters that must be applied to the guest, such as sample rates, supported formats, and minumum and maximum fragment sizes. See vdev virtio-snd for details.

Host components

To enable the audio framework, you must have the following components on your host:

For general information on how to configure your hypervisor host, see the “Configuration” section of the QNX Hypervisor User's Guide.

Guest components

Because the virtio-snd vdev is a para-virtualized device, a guest must have a VirtIO sound driver that can communicate with the vdev.

Managing access to physical devices by multiple entities

If a PCM device owned by the host has to support concurrent playback on multiple guests, you must configure a software mixer for the device. This mixer is enabled by default, but it may be disabled (or specifically enabled) via the startup instructions for the io-audio service in the host, when the hardware driver is mounted, or through the audio policy configuration file, io_audio_*.conf.

Similarly, if concurrent capture through the same PCM device (in the host) is required, a software splitter must be configured for the device.

Finally, if the host also needs to play and/or capture audio through a PCM device that it makes accessible to guests, the host must have a software mixer and/or splitter to manage concurrent playback and capture.

For more information about the io-audio service, and support for software mixers and splitters, see the Audio Developer's Guide. See also the io-audio entry in the QNX Neutrino Utilities Reference.