Audio qube

I enabled the service bluetooth :woman_facepalming:

1 Like

Followed the complete guide passing 00:1f.3 Audio Device but it won’t get recognized, in Volume Control App from sys-audio I only see Dummy Output as Output Device… AX210 Bluetooth Device works…

Edit:

I think problem is IOMMU Groups, there are other devices in the same group which I don’t want to pass (like Ethernet)… I think using ACS Override would not be a good idea either… Am I right?

You could need to configure the device in the Volume Control App. And the result of the command ā€œsudo dmesgā€ could be usefull to understand if there is any issue. also did you installed the required driver for AX210 ?

Added this part in the guide

2 Likes

Regarding the post ā€œAudio qube - #217 by QmanQtwoā€, can other peoples confirm that it solved their issues by commenting, and if it solved the issue for Debian template or Fedora template ?

I am so excited about this post. Thank you, @neowutran !

I am having some issues that in part - but don’t fully - resemble the challenges others have had.

So far I’ve been able to set up the three qubes with the same parameters from the qvm-prefs screenshots.

However, my sys-audio devices was different - only one audio device instead of two (it’s a Purism Librem 14). Did I do this correctly?

I did it in debian b/c for some reason fedora wasn’t creating disposable qubes for me. When I run this:

sudo apt install -y pipewire-qubes qubes-audio-daemon pavucontrol qubes-core-admin-client qubes-usb-proxy alsa-utils

I get the error messages:

The following information may help to resolve the situation:

The following packages have unmet dependencies:
 pipewire-alsa : Conflicts: pulseaudio but 16.1+dfsg1-2+b1 is to be installed
 pipewire-audio : Conflicts: pulseaudio but 16.1+dfsg1-2+b1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Do I need to worry about this?

And then, if I try to start sys-audio, I get this error message:

Start failed: Requested operation is not valid: PCI device 0000:00:14.0 is in use by driver xenlight, domain sys-usb, see /var/log/libvirt/libxl/libxl-driver.log for details

Any suggested next steps? Many thanks.

Yes, you need to remove pulseaudio before installing pipewire.

You have the same PCI USB controller 00:14.0 attached to both sys-audio and sys-usb. You can’t attach the same PCI device to the multiple qubes simultaneously.
You need to remove this controller from sys-usb or shutdown sys-usb before starting sys-audio.

There is nothing to configure, no Audio device… Also AX210 is WiFi & Bluetooth… Bluetooth works in Audio Qube… I guess it is my IOMMU groups and could only be fixed with ACS Override, which I do not want cause it could introduce attack surface… So no Audio Qube for my Hardware :wink:

My sys-audio sometimes start after some other qube using sys-audio as their audiovm, so they don’t have sound until I restart them.

How do people handle that? I don’t think there is a dependency tree on audiovm when starting the qubes.

My audio-template is also debian based. I’ve installed both pulseaudio and pipewire. You say that pulseaudio must be removed before installing pipewire. But if I try to do it:

# apt remove pulseaudio
...
The following packages will be REMOVED:
  pulseaudio pulseausio-module-bluetooth qubes-audio-daemon
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 7038 kB disk space will be freed.
Do you want to continue? [Y/n]

So it is trying to remove qubes-audio-daemon which is a required package. Now I’m confused. Which packages should I install in audio-template?

1 Like

I guess it’s a bug in the debian dependencies.
Based on this:

Does this affect in any way non Dom0 AudioVMs that have the package qubes-audio-daemon installed? Pulseaudio is still referenced in that package requirement.

pulseaudio-daemon is provided by pulseaudio but also by pipewire-pulseaudio.

Audio underruns in dom0 soon after uncorking stream Ā· Issue #8955 Ā· QubesOS/qubes-issues Ā· GitHub

The qubes-audio-daemon package shouldn’t be a dependent on pulseaudio package.
At least it’s not like this for fedora:

$ dnf repoquery --requires qubes-audio-daemon
/usr/bin/sh
libc.so.6(GLIBC_2.38)(64bit)
libconfig
libglib-2.0.so.0()(64bit)
libpulse-mainloop-glib.so.0()(64bit)
libpulse-mainloop-glib.so.0(PULSE_0)(64bit)
libpulse.so.0()(64bit)
libpulse.so.0(PULSE_0)(64bit)
libqubesdb.so()(64bit)
libvchan-xen.so.1()(64bit)
pulseaudio-daemon
pulseaudio-libs
python3-pydbus
qubes-utils >= 3.1.0
rtld(GNU_HASH)

But for some reason it’s a dependence for debian:

$ apt info qubes-audio-daemon
Package: qubes-audio-daemon
Version: 4.2.8-1+deb12u1
Priority: optional
Section: admin
Source: qubes-gui-daemon
Maintainer: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Installed-Size: 60.4 kB
Depends: pulseaudio, libc6 (>= 2.34), libglib2.0-0 (>= 2.31.8), libpulse-mainloop-glib0 (>= 0.99.1), libpulse0 (>= 0.99.1), libvchan-xen1 (>= 4.2.0)
Breaks: qubes-gui-daemon-pulseaudio (<< 4.1.21~)
Replaces: qubes-gui-daemon-pulseaudio (<< 4.1.21~)

I guess this should be reported on the github.

Thanks for your answer. I’ve reported a bug as you suggested.

1 Like

Just want to report back that it works a lot more reliably with a USB soundcard ( I don’t think I will ever use my integrated ever again even tho switching audiovms back and forth helps sometimes).

1 Like

Well, after a ton of struggle last year…then giving up…I decided to revisit this.

One thing I changed in my hardware was to use a USB speaker rather than pulling the audio out of a HDMI splitter (my hardware has no audio jack). It’s entirely possible the reason I failed last time was trying to run it through HDMI.

Anyhow, I now have it working. A banner day!!!

One thing that may be missing from the instructions (I couldn’t find it) was having to set a tag for sys-audio: qvm-tags sys-audio add audiovm-sys-audio.

Without this, the policy won’t work because it’s looking for that tag. (I actually realized this before I tried running for the first time!)

1 Like

My sys-audio does not have this tag.

Weird, you should have this tag. But you should not have to set it manually. I think

if that help

$ qvm-tags sys-audio
audiovm-dom0
created-by-dom0
guivm-dom0

Thanks, and nevermind, i just confused myself, the tag just indicate that you configured sys-audio to use dom0 as it’s audiovm

I did not change anything :slight_smile: I never use qvm-tags, except to change the guivm (it’s a script to switch between dom0 and sys-gui-vnc)

The tag is automatically modified when you run qvm-prefs sys-audio audiovm dom0. The tag just mirror the value of qvm-prefs so it can be used in the policy file