no audio in KVM virtual machines : cannot select alsa or pa

Bug #1246929 reported by brian mullan
82
This bug affects 29 people
Affects Status Importance Assigned to Milestone
libvirt (Ubuntu)
Expired
Medium
Unassigned
pulseaudio (Ubuntu)
Expired
Medium
Unassigned
virt-manager (Ubuntu)
Expired
Medium
Unassigned

Bug Description

I am on Ubuntu 13.10 desktop
16GB ram
asus sabertooth 990fx r2.0 motherboard
amd 8346 cpu
nvidia gtx650 video card

Since upgrading to Ubuntu 13.10 audio no longer works in KVM.
Checking SYSLOG I found this error being logged:

Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read!
Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: Most likely this is a bug in the ALSA driver 'snd_hda_intel'. Please report this issue to the ALSA developers.
Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

brian

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: alsa-base 1.0.25+dfsg-0ubuntu4
ProcVersionSignature: Ubuntu 3.11.0-11.17-generic 3.11.3
Uname: Linux 3.11.0-11-generic x86_64
ApportVersion: 2.12.5-0ubuntu2.1
Architecture: amd64
Date: Thu Oct 31 19:45:53 2013
InstallationDate: Installed on 2013-10-31 (0 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Beta amd64 (20131003)
MarkForUpload: True
PackageArchitecture: all
SourcePackage: alsa-driver
Symptom: audio
Title: PCI/internal sound card not detected
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/09/2013
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 1708
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: SABERTOOTH 990FX R2.0
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev 1.xx
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 3
dmi.chassis.vendor: To Be Filled By O.E.M.
dmi.chassis.version: To Be Filled By O.E.M.
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr1708:bd04/09/2013:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnASUSTeKCOMPUTERINC.:rnSABERTOOTH990FXR2.0:rvrRev1.xx:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
dmi.product.name: To be filled by O.E.M.
dmi.product.version: To be filled by O.E.M.
dmi.sys.vendor: To be filled by O.E.M.

Revision history for this message
brian mullan (bmullan) wrote :
Revision history for this message
Raymond (superquad-vortex2) wrote :

https://wiki.ubuntu.com/PulseAudio/Log

which emulated sound card are you using inside kvm ?

Changed in alsa-driver (Ubuntu):
status: New → Incomplete
Revision history for this message
brian mullan (bmullan) wrote :

I've tried:
ICH6
- that was the orig default in the VM when created
AC97
I cleared syslog
- I changed to AC97 (shutdown vm and restarted it & verified it was now set to AC97)
and got this in syslog which appears the SAME as with ICH6 despite having switch to AC97:

Nov 1 06:27:52 bmullan-virtual-machine pulseaudio[1799]: [alsa-sink-Intel ICH] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write!
Nov 1 06:27:52 bmullan-virtual-machine pulseaudio[1799]: [alsa-sink-Intel ICH] alsa-sink.c: Most likely this is a bug in the ALSA driver 'snd_intel8x0'. Please report this issue to the ALSA developers.
Nov 1 06:27:52 bmullan-virtual-machine pulseaudio[1799]: [alsa-sink-Intel ICH] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

attached the /var/log/syslog of the AC97 vm start
note it shows AC97 clocking messages but it the messages above still show [alsa-sink-intel ICH]
maybe I don't understand that message but it looks like sound never changes from ICH even if virt-manager indicates it is AC97

Revision history for this message
Raymond (superquad-vortex2) wrote :

post the pulseaudio verbose log inside kvm

what kind of application can reproduce your case ?

https://wiki.ubuntu.com/PulseAudio/Log

Revision history for this message
brian mullan (bmullan) wrote :

see attached pulseverbose.log

In the KVM 13.10 VM ... all I've been doing is using firefox to go to YouTube and then start a YouTube video up.
But no sound/audio is presented.

Revision history for this message
Raymond (superquad-vortex2) wrote :
Download full text (7.7 KiB)

7.726| 0.000) D: [pulseaudio] reserve-wrap.c: Successfully acquired reservation lock on device 'Audio0'
( 37.726| 0.000) I: [alsa-sink-Intel ICH] alsa-sink.c: Trying resume...
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-util.c: Maximum hw buffer size is 371 ms
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-util.c: Set buffer size first (to 3528 samples), period size second (to 441 samples).
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-sink.c: hwbuf_unused=0
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-sink.c: setting avail_min=1
( 37.726| 0.000) I: [alsa-sink-Intel ICH] alsa-sink.c: Resumed successfully...
( 37.726| 0.000) I: [alsa-sink-Intel ICH] alsa-sink.c: Starting playback.
( 37.726| 0.000) D: [pulseaudio] module-suspend-on-idle.c: Sink alsa_output.pci-0000_00_04.0.analog-stereo becomes idle, timeout in 5 seconds.
( 37.727| 0.000) D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
( 37.727| 0.000) D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
( 37.727| 0.000) I: [pulseaudio] sink-input.c: Created input 0 "ALSA Playback" on alsa_output.pci-0000_00_04.0.analog-stereo with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
( 37.727| 0.000) I: [pulseaudio] sink-input.c: media.name = "ALSA Playback"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.name = "ALSA plug-in [plugin-container]"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: native-protocol.peer = "UNIX socket client"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: native-protocol.version = "28"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.process.id = "2232"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.process.user = "bmullan"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.process.host = "bmullan-virtual-machine"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.process.binary = "plugin-container"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.language = "en_US.UTF-8"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: window.x11.display = ":0"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.process.machine_id = "735ddae164ef1ded237a4a095272b03a"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.process.session_id = "c2"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: module-stream-restore.id = "sink-input-by-application-name:ALSA plug-in [plugin-container]"
( 37.727| 0.000) I: [pulseaudio] protocol-native.c: Requested tlength=500.00 ms, minreq=20.00 ms
( 37.727| 0.000) D: [pulseaudio] protocol-native.c: Early requests mode enabled, configuring sink latency to minreq.
( 37.727| 0.000) E: [alsa-sink-Intel ICH] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write!
( 37.727| 0.000) E: [alsa-sink-Intel ICH] alsa-sink.c: Most likely this is a bug in the ALSA driver 'snd_intel8x0'. Please report this issue to the ALSA developers.
( 37.727| 0.000) E...

Read more...

Revision history for this message
Raymond (superquad-vortex2) wrote :

Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read!
 Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: Most likely this is a bug in the ALSA driver 'snd_hda_intel'. Please report this issue to the ALSA developers.
 Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

are these messages related to the capture device in your real machine ?

which is "alsa source-ID 21 Analog" ?

Revision history for this message
brian mullan (bmullan) wrote :

Raymond...

Sorry, not sure what you mean by -- which is "alsa source-ID 21 Analog" ?

Also... the previous messages are from /var/log/syslog inside the KVM VM Ubuntu 13.10 running image... not from the Host OS.

Revision history for this message
Raymond (superquad-vortex2) wrote :

do you mean the emulated hda sound card (QEMU_HDA_ID_DUPLEX) ?

http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/plain/hw/hda-audio.c

Revision history for this message
Raymond (superquad-vortex2) wrote :

which backend audio are you using ?

http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/tree/audio

alsa , pulseaudio or sdl

Revision history for this message
brian mullan (bmullan) wrote :

Raymond... pls keep in mind I'm not a developer. I want to help with this problem but you have to give me end-user understandable questions.

>>do you mean the emulated hda sound card (QEMU_HDA_ID_DUPLEX) ?
>>http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/plain/hw/hda-audio.c

You also asked:
which backend audio are you using ?
http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/tree/audio
alsa , pulseaudio or sdl

I have Pulseaudio

Revision history for this message
brian mullan (bmullan) wrote :

All of this is on a 2nd machine of mine with a fresh Ubuntu 13.10 install on a new hard disk.
The KVM is the default install.
The KVM VM was created using the default Ubuntu 13.10 Desktop ISO image.

Note that I started with this 2nd machine because my primary Ubuntu 13.10 machine (which was an upgrade from 13.04) was having the same problems.

Revision history for this message
Raymond (superquad-vortex2) wrote :

http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/plain/hw/ac97.c

the emulated ac97 emulate 82801AA (ICH)

static void ac97_class_init (ObjectClass *klass, void *data)
{
    DeviceClass *dc = DEVICE_CLASS (klass);
    PCIDeviceClass *k = PCI_DEVICE_CLASS (klass);

    k->init = ac97_initfn;
    k->exit = ac97_exitfn;
    k->vendor_id = PCI_VENDOR_ID_INTEL;
    k->device_id = PCI_DEVICE_ID_INTEL_82801AA_5;
    k->revision = 0x01;
    k->class_id = PCI_CLASS_MULTIMEDIA_AUDIO;

the emulated HDA emulate 82801FB (ICH6)

http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/plain/hw/intel-hda.c

static void intel_hda_class_init(ObjectClass *klass, void *data)
{
    DeviceClass *dc = DEVICE_CLASS(klass);
    PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);

    k->init = intel_hda_init;
    k->exit = intel_hda_exit;
    k->vendor_id = PCI_VENDOR_ID_INTEL;
    k->device_id = 0x2668;
    k->revision = 1;
    k->class_id = PCI_CLASS_MULTIMEDIA_HD_AUDIO;
    dc->desc = "Intel HD Audio Controller";

Revision history for this message
Raymond (superquad-vortex2) wrote :

# define QEMU_HDA_ID_OUTPUT ((QEMU_HDA_ID_VENDOR << 16) | 0x11)
# define QEMU_HDA_ID_DUPLEX ((QEMU_HDA_ID_VENDOR << 16) | 0x21)
# define QEMU_HDA_ID_MICRO ((QEMU_HDA_ID_VENDOR << 16) | 0x31)
# define QEMU_HDA_AMP_CAPS QEMU_HDA_AMP_NONE

0x21 mean the emulated codec does not has any amp (volume control)

Revision history for this message
Raymond (superquad-vortex2) wrote :

seem get a poll from the emulated ICH controller just at the time of starting capture 0.052 , there is no data to read of course

( 0.050| 0.000) D: [pulseaudio] alsa-util.c: Hardware PCM card 0 'Intel 82801AA-ICH' device 0 subdevice 0
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: Its setup is:
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: stream : CAPTURE
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: access : MMAP_INTERLEAVED
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: format : S16_LE
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: subformat : STD
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: channels : 2
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: rate : 44100
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: exact rate : 44100 (44100/1)
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: msbits : 16
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: buffer_size : 3528
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: period_size : 441
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: period_time : 10000
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: tstamp_mode : ENABLE
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: period_step : 1
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: avail_min : 441
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: period_event : 1
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: start_threshold : -1
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: stop_threshold : 7944349742681554944
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: silence_threshold: 0
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: silence_size : 0
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: boundary : 7944349742681554944
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: appl_ptr : 0
( 0.050| 0.000) D: [pulseaudio] alsa-util.c: hw_ptr : 0
( 0.050| 0.000) D: [pulseaudio] alsa-source.c: Read hardware volume: 0: 67% 1: 67%
( 0.050| 0.000) D: [pulseaudio] alsa-source.c: in dB: 0: -10.50 dB 1: -10.50 dB
( 0.050| 0.000) D: [alsa-source-Intel ICH] alsa-source.c: Thread starting up
( 0.052| 0.002) D: [alsa-source-Intel ICH] core-util.c: RealtimeKit worked.
( 0.052| 0.000) I: [alsa-source-Intel ICH] core-util.c: Successfully enabled SCHED_RR scheduling for thread, with priority 5.
( 0.052| 0.000) I: [alsa-source-Intel ICH] alsa-source.c: Starting capture.
( 0.052| 0.000) E: [alsa-source-Intel ICH] alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read!
( 0.052| 0.000) E: [alsa-source-Intel ICH] alsa-source.c: Most likely this is a bug in the ALSA driver 'snd_intel8x0'. Please report this issue to the ALSA developers.
( 0.052| 0.000) E: [alsa-source-Intel ICH] alsa-source.c: We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

Revision history for this message
Raymond (superquad-vortex2) wrote :
Download full text (4.6 KiB)

it is pulseaudio call snd_pcm_start at

37.726| 0.000) I: [alsa-sink-Intel ICH] alsa-sink.c: Starting playback.

so you have to find out why pulseaudio did not write any data to alsa-sink

( 37.702| 32.638) I: [pulseaudio] client.c: Created 3 "Native client (UNIX socket client)"
( 37.704| 0.002) I: [pulseaudio] client.c: Freed 3 "Native client (UNIX socket client)"
( 37.704| 0.000) I: [pulseaudio] protocol-native.c: Connection died.
( 37.712| 0.007) I: [pulseaudio] client.c: Created 4 "Native client (UNIX socket client)"
( 37.721| 0.008) D: [pulseaudio] protocol-native.c: Protocol version: remote 28, local 28
( 37.721| 0.000) I: [pulseaudio] protocol-native.c: Got credentials: uid=1000 gid=1000 success=1
( 37.721| 0.000) D: [pulseaudio] protocol-native.c: SHM possible: yes
( 37.721| 0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
( 37.721| 0.000) D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for plugin-container
( 37.725| 0.003) D: [pulseaudio] module-intended-roles.c: Not setting device for stream ALSA Playback, because it lacks role.
( 37.725| 0.000) D: [pulseaudio] module-suspend-on-idle.c: Sink alsa_output.pci-0000_00_04.0.analog-stereo becomes busy, resuming.
( 37.725| 0.000) D: [pulseaudio] sink.c: Suspend cause of sink alsa_output.pci-0000_00_04.0.analog-stereo is 0x0000, resuming
( 37.726| 0.000) D: [pulseaudio] reserve-wrap.c: Successfully acquired reservation lock on device 'Audio0'
( 37.726| 0.000) I: [alsa-sink-Intel ICH] alsa-sink.c: Trying resume...
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-util.c: Maximum hw buffer size is 371 ms
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-util.c: Set buffer size first (to 3528 samples), period size second (to 441 samples).
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-sink.c: hwbuf_unused=0
( 37.726| 0.000) D: [alsa-sink-Intel ICH] alsa-sink.c: setting avail_min=1
( 37.726| 0.000) I: [alsa-sink-Intel ICH] alsa-sink.c: Resumed successfully...
( 37.726| 0.000) I: [alsa-sink-Intel ICH] alsa-sink.c: Starting playback.
( 37.726| 0.000) D: [pulseaudio] module-suspend-on-idle.c: Sink alsa_output.pci-0000_00_04.0.analog-stereo becomes idle, timeout in 5 seconds.
( 37.727| 0.000) D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
( 37.727| 0.000) D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
( 37.727| 0.000) I: [pulseaudio] sink-input.c: Created input 0 "ALSA Playback" on alsa_output.pci-0000_00_04.0.analog-stereo with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
( 37.727| 0.000) I: [pulseaudio] sink-input.c: media.name = "ALSA Playback"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.name = "ALSA plug-in [plugin-container]"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: native-protocol.peer = "UNIX socket client"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: native-protocol.version = "28"
( 37.727| 0.000) I: [pulseaudio] sink-input.c: application.process.id = "...

Read more...

Revision history for this message
Raymond (superquad-vortex2) wrote :

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/audio.c

you can select different backend by export QEMU_AUDIO_DRV=

there are other options TIMER_PERIOD, LOG_TO_MONITOR, ....

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/alsaaudio.c

for alsa backend

there are options VERBOSE , DAC_DEV, and ADC_DEV to select hw instead of default pulse

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/paaudio.c

for pulseaudio backend

tjere are options SERVER, SINK, SOURCE and SAMPLES

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/ossaudio.c

for oss

there are options DEBUG, DAC_DEV, ADC_DEV, ....

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/hw/audiodev.h

there are several emulated sound cards

Revision history for this message
brian mullan (bmullan) wrote :

Raymond.. I thought I'd check because I'm not sure if you are waiting on any info from me or not

Revision history for this message
Raymond (superquad-vortex2) wrote :

do you mean audio work with the emulated hda sound card before you upgrade ? or just other emulated sound card work before upgrade since the emulated hda sound card is quite new compared with emulated AC97 sound card ?

Since upgrading to Ubuntu 13.10 audio no longer works in KVM.
 Checking SYSLOG I found this error being logged:

Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read!
 Oct 31 15:32:31 bmullan-virtual-machine pulseaudio[1814]: [alsa-source-ID 21 Analog] alsa-source.c: Most likely this is a bug in the ALSA driver 'snd_hda_intel'. Please report this issue to the ALSA developers.

Revision history for this message
Raymond (superquad-vortex2) wrote :

what do mean when you say sound not working ?

> Title: PCI/internal sound card not detected

Revision history for this message
Raymond (superquad-vortex2) wrote :

just want to verify which audio backend you are using ?

what is the value of QEMU_AUDIO_DRV ?

Revision history for this message
brian mullan (bmullan) wrote :

Raymond..

I am using virt-manager not the cli to create/manage my KVM VM's.

I did check in case QEMU_AUDIO_DRV is supposed to be an environment variable either in the Host OS or the VM itself so just in case I did check and there is no ENV present (printenv QEMU_AUDIO_DRV) in either.

I also checked the VM's xml file /etc/libvirt/qemu/<vm name.xml> and its not present there.

If its not an environment variable but a setting in some config file ... where do I look?

Revision history for this message
brian mullan (bmullan) wrote :

Raymond...
Here is some more info. I created a 2nd KVM VM using the same ubuntu 13.10 desktop .ISO and all default virt-manager settings

once the new VM (called test) was created again there was no Audio.

So I checked:

/var/log/libvirt/qemu/test.log file and found: QEMU_AUDIO_DRV=none as being logged. see below

LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm-spice -name test -S -machine pc-i440fx-1.5,accel=kvm,usb=off -m 2048 -r
ealtime mlock=off -smp 3,sockets=3,cores=1,threads=1 -uuid 52ecab3b-b786-4474-e9e8-bbf3cc9c7410 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qe
mu/test.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-reboot -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/l
ibvirt/images/test.img,if=none,id=drive-virtio-disk0,format=raw -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -drive file
=/home/bmullan/Downloads/ubuntu-13.10-desktop-amd64.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex
=1 -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:af:a1:2d,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device is
a-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:0 -vga vmware -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
W: kvm binary is deprecated, please use qemu-system-x86_64 instead

I found that the setting of QEMU_AUDIO_DRV=none

This seems like the same problem that was reported as a bug in 2010 in bug ID:
TITLE: No sound in virt-manager (QEMU_AUDIO_DRV set to none by libvirtd)
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/591489

Revision history for this message
Raymond (superquad-vortex2) wrote :

you have to ask the package maintainer since the default is specifed in CONFIG_AUDIO_DRIVERS during build

/* Order of CONFIG_AUDIO_DRIVERS is import.
   The 1st one is the one used by default, that is the reason
    that we generate the list.
*/
static struct audio_driver *drvtab[] = {
#ifdef CONFIG_SPICE
    &spice_audio_driver,
#endif
    CONFIG_AUDIO_DRIVERS
    &no_audio_driver,
    &wav_audio_driver
};

affects: alsa-driver (Ubuntu) → qemu-kvm (Ubuntu)
no longer affects: qemu-kvm (Ubuntu)
Changed in virt-manager (Ubuntu):
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

No, wait. If I specify AC97 audio when setting up the vm in virt-manager (by specifying "customize config before install"), I do see the QEMU_AUDIO_DRV=none in env variable, but kvm is started with -device AC97,...

Can you please re-try specifying AC97 when creating the VM and see if you get working sound?

Changed in virt-manager (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Raymond (superquad-vortex2) wrote :

AC97 is the emulated sound card inside KVM, you must configure kvm to use a backend to access your real sound card

Revision history for this message
Raymond (superquad-vortex2) wrote :

post the pulseaudio verbose log in your real machine and check whether kvm is accessing through alsa-plugin or pulseaudio native api

Revision history for this message
Raymond (superquad-vortex2) wrote :

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/noaudio.c

specify none is selectIng noaudio (timer based audio emulation)

struct audio_driver no_audio_driver = {
    .name = "none",
    .descr = "Timer based audio emulation",
    .options = NULL,
    .init = no_audio_init,
    .fini = no_audio_fini,
    .pcm_ops = &no_pcm_ops,
    .can_be_default = 1,
    .max_voices_out = INT_MAX,
    .max_voices_in = INT_MAX,
    .voice_size_out = sizeof (NoVoiceOut),
    .voice_size_in = sizeof (NoVoiceIn)
};

Revision history for this message
Raymond (superquad-vortex2) wrote :

 use -audio-help to list the available backend

   if (!found) {
            dolog ("Unknown audio driver `%s'\n", drvname);
            dolog ("Run with -audio-help to list available drivers\n");
        }
    }

    if (!done) {
        for (i = 0; !done && i < ARRAY_SIZE (drvtab); i++) {
            if (drvtab[i]->can_be_default) {
                done = !audio_driver_init (s, drvtab[i]);
            }
        }
    }

    if (!done) {
        done = !audio_driver_init (s, &no_audio_driver);
        if (!done) {
            hw_error("Could not initialize audio subsystem\n");
        }
        else {
            dolog ("warning: Using timer based audio emulation\n");
        }
    }

Revision history for this message
brian mullan (bmullan) wrote :

Serge you asked...
>>No, wait. If I specify AC97 audio when setting up the vm in virt-manager (by specifying "customize config before install"), I do see >>the QEMU_AUDIO_DRV=none in env variable, but kvm is started with -device AC97,...
>>
>>Can you please re-try specifying AC97 when creating the VM and see if you get working sound?

I did that before but I just tried it again.... still no sound from inside the VM.

Revision history for this message
brian mullan (bmullan) wrote :

Raymond ... you asked for:
>>post the pulseaudio verbose log in your real machine and check whether kvm is accessing through alsa-plugin or pulseaudio native api

See attached.

Still no audio heard in VM

Revision history for this message
Raymond (superquad-vortex2) wrote :

there was no kvm connect in your pulseaudio verbose log ,

do you get any sound or connection log if you select other backend alsa , pa, sdl, oss using QEMU_AUDIO_DRV ?

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/alsaaudio.c

struct audio_driver alsa_audio_driver = {
    .name = "alsa",

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/paaudio.c

struct audio_driver pa_audio_driver = {
    .name = "pa",

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/sdlaudio.c

struct audio_driver sdl_audio_driver = {
    .name = "sdl",

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/ossaudio.c

struct audio_driver oss_audio_driver = {
    .name = "oss",
    .descr = "OSS http://www.opensound.com",

summary: - alsa bug in KVM virtual machines
+ no audio in KVM virtual machines : cannot select alsa or pa
Revision history for this message
Serge Hallyn (serge-hallyn) wrote : Re: [Bug 1246929] Re: alsa bug in KVM virtual machines

Hi,

ok, after some testing: the problem is actually that the libvirt-qemu
user is not allowed to access some files. I've not tracked down exactly
which ones are the problem, but when I run

 kvm -hda x.img -cdrom ubuntu_precise-desktop-amd64.iso -m 1G \
 -smp 2 -vnc :1 -device AC97,id=sound0,bus=pci.0,addr=0x4

as user serge or user root, it works. If as root si do

 sudo -u libvirt-qemu -- kvm -hda x.img -cdrom \
 ubuntu_precise-desktop-amd64.iso -m 1G -smp 2 -vnc :1 -device \
 AC97,id=sound0,bus=pci.0,addr=0x4

then I get no sound. (I'd have expected that adding libvirt-qemu to the
audio group which owns /dev/snd/* would have sufficed, but it didn't.)

Note that I don't consider this bad. People run >1 VMs and wouldn't
want all to have sound. Note also that vnc does not - and never has -
forward sound, so if you are accessing the vm remotely, you'll get
video on the remote host, and audio on the kvm server.

A workaround would be to use spice, which does forward sound in addition
to improved video, and is available as of raring.

Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

I suspect we can remove pulseaudio from the list of affected packages, but I'm not 100% certain. It comes down to why the libvirt-qemu user is not allowed to use pulseaudio devices, and where the cofniguration needs to be chagned to allow it.

Changed in libvirt (Ubuntu):
importance: Undecided → Medium
status: New → Incomplete
Changed in pulseaudio (Ubuntu):
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
Raymond (superquad-vortex2) wrote :

but pulseaudio backend allow you to change the address of pulseaudio server

does this mean that you can send the audio to the remote pa sink and souce even your machine run kvm don't have any real sound card ?

pa->s = pa_simple_new (
        conf.server,
        "qemu",
        PA_STREAM_PLAYBACK,
        conf.sink,
        "pcm.playback",
        &ss,
        NULL, /* channel map */
        &ba, /* buffering attributes */
        &error
        );

struct audio_option qpa_options[] = {
    {
        .name = "SAMPLES",
        .tag = AUD_OPT_INT,
        .valp = &conf.samples,
        .descr = "buffer size in samples"
    },
    {
        .name = "SERVER",
        .tag = AUD_OPT_STR,
        .valp = &conf.server,
        .descr = "server address"
    },
    {
        .name = "SINK",
        .tag = AUD_OPT_STR,
        .valp = &conf.sink,
        .descr = "sink device name"
    },
    {
        .name = "SOURCE",
        .tag = AUD_OPT_STR,
        .valp = &conf.source,
        .descr = "source device name"
    },
    { /* End of list */ }
};

Revision history for this message
Raymond (superquad-vortex2) wrote :

for always, you can also specify DAC_DEV and ADC_DEV for different sound cards on your real machine or device null if you have more than one vm

do you mean both alsa or pulseaudio backend were not build in Ubuntu kvm package ?

static struct audio_option alsa_options[] = {
    {
        .name = "DAC_SIZE_IN_USEC",
        .tag = AUD_OPT_BOOL,
        .valp = &conf.size_in_usec_out,
        .descr = "DAC period/buffer size in microseconds (otherwise in frames)"
    },
    {
        .name = "DAC_PERIOD_SIZE",
        .tag = AUD_OPT_INT,
        .valp = &conf.period_size_out,
        .descr = "DAC period size (0 to go with system default)",
        .overriddenp = &conf.period_size_out_overridden
    },
    {
        .name = "DAC_BUFFER_SIZE",
        .tag = AUD_OPT_INT,
        .valp = &conf.buffer_size_out,
        .descr = "DAC buffer size (0 to go with system default)",
        .overriddenp = &conf.buffer_size_out_overridden
    },
    {
        .name = "ADC_SIZE_IN_USEC",
        .tag = AUD_OPT_BOOL,
        .valp = &conf.size_in_usec_in,
        .descr =
        "ADC period/buffer size in microseconds (otherwise in frames)"
    },
    {
        .name = "ADC_PERIOD_SIZE",
        .tag = AUD_OPT_INT,
        .valp = &conf.period_size_in,
        .descr = "ADC period size (0 to go with system default)",
        .overriddenp = &conf.period_size_in_overridden
    },
    {
        .name = "ADC_BUFFER_SIZE",
        .tag = AUD_OPT_INT,
        .valp = &conf.buffer_size_in,
        .descr = "ADC buffer size (0 to go with system default)",
        .overriddenp = &conf.buffer_size_in_overridden
    },
    {
        .name = "THRESHOLD",
        .tag = AUD_OPT_INT,
        .valp = &conf.threshold,
        .descr = "(undocumented)"
    },
    {
        .name = "DAC_DEV",
        .tag = AUD_OPT_STR,
        .valp = &conf.pcm_name_out,
        .descr = "DAC device name (for instance dmix)"
    },
    {
        .name = "ADC_DEV",
        .tag = AUD_OPT_STR,
        .valp = &conf.pcm_name_in,
        .descr = "ADC device name"
    },
    {
        .name = "VERBOSE",
        .tag = AUD_OPT_BOOL,
        .valp = &conf.verbose,
        .descr = "Behave in a more verbose way"
    },
    { /* End of list */ }
};

Revision history for this message
Serge Hallyn (serge-hallyn) wrote : Re: [Bug 1246929] Re: no audio in KVM virtual machines : cannot select alsa or pa

> do you mean both alsa or pulseaudio backend were not build in Ubuntu kvm package ?

Both are built-in. the driver list is "pa,alsa,dsl,oss" (in order).

Revision history for this message
brian mullan (bmullan) wrote :

any status on this bug? The last note was 11-13-2013 by Serge

Revision history for this message
Raymond (superquad-vortex2) wrote :

> I do see >>the QEMU_AUDIO_DRV=none in env variable

this mean kvm is using noaudio in backend

> dolog ("Run with -audio-help to list available drivers\n");

did you see any avaiable drivers when you use "-audio-help" ?

Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

Hi Brian,

so the first steps in fixing this are as follows:

1. in /etc/libvirt/qemu.conf add the lines
vnc_allow_host_audio = 1
user=bmullan
group=bmullan

2. in /etc/init/libvirt-bin.conf, add the line
        export QEMU_AUDIO_DRV=pa
right before the final exec, so 'script' block at the bottom of the file
becomes:

script
        [ -r /etc/default/libvirt-bin ] && . /etc/default/libvirt-bin
        export QEMU_AUDIO_DRV=pa
        exec /usr/sbin/libvirtd $libvirtd_opts
end script

3. Add the following lines to /etc/apparmor.d/abstractions/libvirt-qemu :

  @{HOME}/.config/pulse/cookie rwk,
  @{HOME}/.config/pulse/** rwkl,
  @{HOME}/.config/ r,
  @{HOME}/.config/pulse/ rw,
  owner /run/shm/pulse-* rw,
  /usr/bin/pulseaudio PUx,
  /etc/pulse/daemon.conf r,
  /tmp/pulse*/*.lock rwk,
  /proc/* r,
  /proc/*/fd/ r,

With all this, though I still do *not* have working sound. There may be a
pulseaudio server setting I haven't found, or there may be a silent apparmor
denial.

If we get this working then we can put most of the apparmor lines in the
policy, and to put hints in the config files for the rest.

Changed in libvirt (Ubuntu):
status: Incomplete → Confirmed
Changed in virt-manager (Ubuntu):
status: Incomplete → Confirmed
Changed in pulseaudio (Ubuntu):
status: Incomplete → New
Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

At this point I don't know where the problem lies. When I follow

https://wiki.ubuntu.com/PulseAudio/Log

I don't see any attemps to connect by qemu. (Should I?)

I've disabled seccomp (which I think is disabled by default), allowed all capabilities in the apparmor profile, and checked that /dev/snd/* is allowed by cgroups and the qemu process runs with full capabilities (in /proc/$$/status) as user serge:serge and once as serge:kvm (as a test).

I wrapped qemu in a sh script which runs it under strace -f. The strace output is attached here. Note that the EACCES for opening /dev/shm/pulse* is for files owned by root - the files owned by serge were able to be opened.

I see an attempt to attach to /var/run/dbus/system_bus_socket which seems to succeed.

At this point I don't see why this fails to give me sound, while a manual 'QEMU_AUDIO_DRV=pa kvm -hda x.img -cdrom saucy.iso -m 1024 -vnc :1' succeeds.

Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

@Brian,

if possible, could you please follow the steps in comment #40 and also comment out 'deny capability kill' in /etc/apparmor.d/abstractions/libvirt-qemu, restart libvirt (sudo stop libvirt-bin; sudo start libvirt-bin) or reboot, and see if that works for you?

It is possible that my failure is due to a change in 14.04.

Revision history for this message
brian mullan (bmullan) wrote :

Serge

I made the changes in comment #40 and the extra change in comment #42 but after reboot when I started Virt-Manager I immediately got a dialog box stating:

Unable to connect to libvirt.

Verify that:
 - The 'libvirt-bin' package is installed
 - The 'libvirtd' daemon has been started
 - You are member of the 'libvirtd' group

Reverting those changes out and Virt-Manager works ok and no dialog box.

Revision history for this message
Raymond (superquad-vortex2) wrote :

are there any way to select alsa as backend ?

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/plain/Documentation/sound/alsa/HD-Audio.txt

card 0: SB [HDA ATI SB], device 2: ALC892 Alt Analog [ALC892 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

for a desktop , you can enable independent headphone by specify hint in early patching to use alt analog device 2 for playback and capture (DAC_DEV=hw:0,2 and ADC_DEV=hw:0,2)

- indep_hp (bool): provide the independent headphone PCM stream and
  the corresponding mixer control, if available

Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

Quoting Raymond (<email address hidden>):
> are there any way to select alsa as backend ?

Using 'export QEMU_AUDIO_DRV=alsa' in /etc/init/libvirt-bin should
switch from pulse to alsa. Still no sound though when I do that.

(Sorry if I misunderstood the question)

Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

@Brian,

Well shoot, I can't think what would have caused that. There may be
useful info in /var/log/upstart/libvirt-bin.log or
/var/log/libvirt/libvirtd.log.

Revision history for this message
Raymond (superquad-vortex2) wrote :
Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

Quoting Raymond (<email address hidden>):
> http://libvirt.org/git/?p=libvirt.git;a=commit;h=a216e6487255d3b65d97c7ec1fa5da63dbced902

We're not running with -nographic though.

Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

To be clear, the qemu process is launched as my userid and
/proc/$$/environ shows QEMU_AUDIO_DRV=pa. The 'outout' file
in comment #41 shows the strace output which shows qemu
opening some pulse cookies and doing some dbus transactions,
presumably related to pulse.

Revision history for this message
Raymond (superquad-vortex2) wrote :

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 3: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 2: ALC892 Alt Analog [ALC892 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: C615 [HD Webcam C615], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/qemu-kvm/saucy/view/head:/audio/alsaaudio.c

   .pcm_name_out = "default",
    .pcm_name_in = "default",

pcm.default has been override to use pulse plugin in ubuntu

if your pulseaudio is using hdmi and usb webcam for playack and capture

export DAC_DEV=hw:0,0
export ADC_DEV=hw:0,0

or

if your pulseaudio is using onboard analog for playback and capture

hdmi playback

export DAC_DEV=hdmi:2,DEV=1

alt analog playback ( specify hint indep_hp=1 in early patching and switch independent headphone control to "enable"

export DAC_DEV=hw:0,2

alt analog capture

export ADC_DEV=hw:0,2

webcam

export ADC_DEV=hw:1,0

Revision history for this message
Raymond (superquad-vortex2) wrote :

http://git.kernel.org/cgit/virt/kvm/qemu-kvm.git/log/audio/paaudio.c

seem paaudio no longer use simple pulseaudio api

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in pulseaudio (Ubuntu):
status: New → Confirmed
Revision history for this message
redger (redgerhoo) wrote :

Libvirt / Virt-Manager and host Alsa based sound
======================================
I have battled the same problem ... and managed to get it working on Trusty

(1) this is all down to AppArmor
(2) In order to run ALSA you will need the following apparmor entries, preferably in ...abstractions/libvirt-qemu
 # ================ Changes ================ #
  /{dev,run}/shm/pulse-shm* rw,
  @{HOME}/.config/puls** rwk,
  @{HOME}/* r,
  # ================ Changes ================ #

In my case I run libvirt as Root because it is accessing virtio and vga passthrough. I've also added dev/vfio to support vfio based PCI passthrough ie.
  /dev/vfio/* rw,

The VM definition xml contains the following
  <qemu:commandline>
    <qemu:env name='QEMU_ALSA_DAC_BUFFER_SIZE' value='512'/>
    <qemu:env name='QEMU_ALSA_DAC_PERIOD_SIZE' value='170'/>
    <qemu:env name='QEMU_AUDIO_DRV' value='alsa'/>
  </qemu:commandline>

This setup works very nicely with the following (both defined and working, in guest select preferred mode, I prefer the HDA device)
   <sound model='ac97'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </sound>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.1,multifunction=on,port=2,chassis=2,id=root.2'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='ich9-intel-hda,bus=root.2'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='hda-duplex,bus=hda.0'/>
  </qemu:commandline>

I prefer the second (HDA) for quality - Note that I am using the Q35 motherboard. Furthermore Pulseaudio was much easier to get working BUT running system wide (because libvirt runs as root) is not good and it has terrible lag and is not suitable for somepurposes eg. game machines

Revision history for this message
Raymond (superquad-vortex2) wrote :

AC97 is emulated sound card not any pci passthrough

AFAIK, the emulated hda work in Ubuntu 11.10 but no longer work at later versions

Revision history for this message
redger (redgerhoo) wrote :
Download full text (7.1 KiB)

the emulated HDA works fine in Windows 7 VM using the above, with proviso that I run VM as root, ie.
/etc/libvirt/qemu.conf includes (in my case, which works)
user = "root"
group = "root"
cgroup_device_acl = [
    "/dev/null", "/dev/full", "/dev/zero",
    "/dev/random", "/dev/urandom",
    "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
    "/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
    "/dev/vfio/1", "/dev/vfio/14", "/dev/vfio/15", "/dev/vfio/16", "/dev/vfio/17",
    "/dev/shm", "/root/.config/pulse", "/dev/snd",
]
nographics_allow_host_audio = 1
security_require_confined = 0
hugetlbfs_mount = "/dev/hugepages"
clear_emulator_capabilities = 0
relaxed_acs_check = 1

If using VNC rather than Spice, you may also need
vnc_allow_host_audio = 1

and /etc/apparmor.d/abstractions/libvirt/qemu contains the following additional lines (in my case)
  /{dev,run}/shm/pulse-shm* rw,
  @{HOME}/.config/puls** rwk,
  @{HOME}/** r,
  /root/.config/puls** rwk,
  /root/.asoundrc r,
  /dev/vfio/* rw,

This works nicely with a Windows 7 guest using the following xml (where a graphics card is apssed through at 01:00.0 and a USB card is passed at 02:00.0, note that the inbuilt audio device on the graphics card is NOT passed through i'ts still attached to pci-stub)
!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit ssd-win7
or other application using the libvirt API.
-->

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>ssd-win7</name>
  <uuid>92faa169-292a-4086-a398-31df57266eb1</uuid>
  <memory unit='KiB'>6291456</memory>
  <currentMemory unit='KiB'>6291456</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-q35-2.0'>hvm</type>
    <loader>/mnt/programming_data/virtualisation/bios/bios.bin</loader>
    <boot dev='hd'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='4096'/>
    </hyperv>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Haswell</model>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/ssd-virt/lvwin7_kvm'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </con...

Read more...

Revision history for this message
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
http://iso.qa.ubuntu.com/qatracker/reports/bugs/1246929

tags: added: iso-testing
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thank you for reporting this bug to Ubuntu.
Ubuntu 13.10 (saucy) reached end-of-life on July 17, 2014.

See this document for currently supported Ubuntu releases:
https://wiki.ubuntu.com/Releases

We appreciate that this bug may be old and you might not be interested in discussing it any more. But if you are then please upgrade to the latest Ubuntu version and re-test.

Changed in pulseaudio (Ubuntu):
status: Confirmed → Incomplete
Changed in libvirt (Ubuntu):
status: Confirmed → Incomplete
Changed in virt-manager (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for libvirt (Ubuntu) because there has been no activity for 60 days.]

Changed in libvirt (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for pulseaudio (Ubuntu) because there has been no activity for 60 days.]

Changed in pulseaudio (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for virt-manager (Ubuntu) because there has been no activity for 60 days.]

Changed in virt-manager (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.