Sys-audio behaviour

Hello,

I have a few question on sys-audio.

What is the normal behaviour with a sys-audio?

  1. Is it like with the sound card in dom0, just more secure?
  2. Is the control in the task bar (sorry, I don’t remember the official name) still usable?
  3. Is mic0 managed from dom0 or from sys-audio?

I am trying to set up one and I followed up the community guide. It does not work.
What is surprising me is that the sound card PCI 0000:80:1f.3 seems to be initialised in dom0 before being passthroughed to the sys-audio VM. In sys-audio, there is no real initialisation, not the same dmesg messages.
In dom0 I have:

[    3.412767] pci 0000:80:1f.3: [8086:7f50] type 00 class 0x040100 conventional PCI endpoint
[    3.412996] pci 0000:80:1f.3: BAR 0 [mem 0x4002b10000-0x4002b13fff 64bit]
[    3.413020] pci 0000:80:1f.3: BAR 4 [mem 0x4000000000-0x40001fffff 64bit]
[    3.413233] pci 0000:80:1f.3: PME# supported from D3hot D3cold
[   61.041005] sof-audio-pci-intel-mtl 0000:80:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[   61.041025] sof-audio-pci-intel-mtl 0000:80:1f.3: enabling device (0000 -> 0002)
[   61.041601] sof-audio-pci-intel-mtl 0000:80:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   61.041683] sof-audio-pci-intel-mtl 0000:80:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
[   61.049133] sof-audio-pci-intel-mtl 0000:80:1f.3: use msi interrupt mode
[   61.077124] sof-audio-pci-intel-mtl 0000:80:1f.3: hda codecs found, mask 4
[   61.077128] sof-audio-pci-intel-mtl 0000:80:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[   61.077129] sof-audio-pci-intel-mtl 0000:80:1f.3: BT link detected in NHLT tables: 0x4
[   61.077133] sof-audio-pci-intel-mtl 0000:80:1f.3: DMICs detected in NHLT tables: 2
[   61.125155] sof-audio-pci-intel-mtl 0000:80:1f.3: SOF firmware and/or topology file not found.
[   61.125160] sof-audio-pci-intel-mtl 0000:80:1f.3: Supported default profiles
[   61.125161] sof-audio-pci-intel-mtl 0000:80:1f.3: - ipc type 1 (Requested):
[   61.125162] sof-audio-pci-intel-mtl 0000:80:1f.3:  Firmware file: intel/sof-ipc4/arl-s/sof-arl-s.ri
[   61.125162] sof-audio-pci-intel-mtl 0000:80:1f.3:  Topology file: intel/sof-ace-tplg/sof-arl-cs42l43-l0-cs35l56-l2-2ch.tplg
[   61.125163] sof-audio-pci-intel-mtl 0000:80:1f.3: Check if you have 'sof-firmware' package installed.
[   61.125164] sof-audio-pci-intel-mtl 0000:80:1f.3: Optionally it can be manually downloaded from:
[   61.125164] sof-audio-pci-intel-mtl 0000:80:1f.3:    https://github.com/thesofproject/sof-bin/
[   61.126957] sof-audio-pci-intel-mtl 0000:80:1f.3: error: sof_probe_work failed err: -2

After I launch sys-audio, I have those added lines:

[  322.340153] pciback 0000:80:1f.3: xen_pciback: vpci: assign to virtual slot 0
[  322.340214] pciback 0000:80:1f.3: registering for 11

And in sys-audio, I have:

[    0.146480] pci 0000:00:07.0: [8086:7f50] type 00 class 0x040100 conventional PCI endpoint
[    0.146480] pci 0000:00:07.0: BAR 0 [mem 0x40f2210000-0x40f2213fff 64bit]
[    0.146480] pci 0000:00:07.0: BAR 4 [mem 0x40f2000000-0x40f21fffff 64bit]
[    0.146480] pci 0000:00:07.0: BAR 0 [mem 0x40f2210000-0x40f2213fff 64bit]: can't claim; no compatible bridge window
[    0.146480] pci 0000:00:07.0: BAR 4 [mem 0x40f2000000-0x40f21fffff 64bit]: can't claim; no compatible bridge window
[    0.146480] pci 0000:00:07.0: BAR 4 [mem 0xf2000000-0xf21fffff 64bit]: assigned
[    0.146480] pci 0000:00:07.0: BAR 0 [mem 0xf2200000-0xf2203fff 64bit]: assigned
[    3.306122] snd_hda_intel 0000:00:07.0: Cannot probe codecs, giving up

The audio card is not working in dom0 as dom0 is fedora41 and my card works only starting with fedora43. Which is the reason why i try to build up a sys-audio

Do you have any idea for me?

Bertrand

Looks like this device isn’t really compatible with sys-audio :frowning: So, the best approach is to make it work in dom0.

Looks like this file is available in alsa-sof-firmware package version 2025.05.1, but dom0 in R4.3 has 2025.05 - so, just one version before… I’ll see about uploading the update.

Back to your initial questions:

Yes, that’s how it should work.

There is separate volumeicon from sys-audio, instead of dom0 one.

The interface still shows mic as “dom0:mic”, but it’s redirected to sys-audio.

2 Likes

Thanks a lot for your reply.

I don’t understand why a device could not be compatible with a fedora43 sys-audio. Any reason for that?

I tried to prevent dom0 from initializing my device and let sys-audio do it, with a rd.qubes.hide_pci=80:1f.3 without success. New messages:

[    3.460588] snd_hda_intel 0000:07.0: no codecs found!
[    3.474844] snd_hda_intel 0000:07.0: Refused to change power state from D0 to D3hot

Bertrand

I tried to progress on that subject (which is using my audio card on a Lenovo P16 Gen3, either in dom0, either in sys-audio).
I installed the rpm alsa-sof-firmware-2025.12.1-1.fc43 in dom0. Since in this rpm, there is no dependency to Fedora 43, the installation works. The messages from dmesg look way better:

[    3.385738] pci 0000:80:1f.3: BAR 0 [mem 0x4002b10000-0x4002b13fff 64bit]
[    3.385762] pci 0000:80:1f.3: BAR 4 [mem 0x4000000000-0x40001fffff 64bit]
[    3.385969] pci 0000:80:1f.3: PME# supported from D3hot D3cold
[   32.768354] sof-audio-pci-intel-mtl 0000:80:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[   32.768379] sof-audio-pci-intel-mtl 0000:80:1f.3: enabling device (0000 -> 0002)
[   32.768779] sof-audio-pci-intel-mtl 0000:80:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   32.768844] sof-audio-pci-intel-mtl 0000:80:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
[   32.776519] sof-audio-pci-intel-mtl 0000:80:1f.3: use msi interrupt mode
[   32.816128] sof-audio-pci-intel-mtl 0000:80:1f.3: hda codecs found, mask 4
[   32.816134] sof-audio-pci-intel-mtl 0000:80:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[   32.816135] sof-audio-pci-intel-mtl 0000:80:1f.3: BT link detected in NHLT tables: 0x4
[   32.816139] sof-audio-pci-intel-mtl 0000:80:1f.3: DMICs detected in NHLT tables: 2
[   32.895535] sof-audio-pci-intel-mtl 0000:80:1f.3: Firmware paths/files for ipc type 1:
[   32.895538] sof-audio-pci-intel-mtl 0000:80:1f.3:  Firmware file:     intel/sof-ipc4/arl-s/sof-arl-s.ri
[   32.895539] sof-audio-pci-intel-mtl 0000:80:1f.3:  Firmware lib path: intel/sof-ipc4-lib/arl-s
[   32.895540] sof-audio-pci-intel-mtl 0000:80:1f.3:  Topology file:     intel/sof-ace-tplg/sof-arl-cs42l43-l0-cs35l56-l2-2ch.tplg
[   32.937810] sof-audio-pci-intel-mtl 0000:80:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
[   33.260093] sof-audio-pci-intel-mtl 0000:80:1f.3: Booted firmware version: 2.14.1.1

However, it’s still not working :frowning:
This installation does not help my sys-audio to work (same message as before in dmesg).
Even when the device stays in dom0 before launching _sys-audio, I don’t have any sound.
I will look more to see which part of dom0 has to be updated to make the sound working there.

Thanks a lot and if you have any idea, I’ll be very happy to test and report back
Bertrand

Hello @marmarek

One important point is that this sound card is known to work on Fedora 43.

I did install the Fedora 43 version of alsa-sof-firmware, alsa-lib, alsa-ucm and alsa-utils. No sound.
I did also add cirrus-audio-firmware and linux-firmware-whence. For those two, I had to force the installation as it told me that I was downgrading… I don’t understand why. Still no sound card visible from alsa.

So my question is: do you have an idea of when a kernel 6.18 could be usable as kernel-latest? The one from current-testing does not boot on my laptop.

My understanding is the the fedora version of dom0 will only been upgraded in R4.4, which I assume will be in more than one year from now. Am I right?

Thanks for all your work
Bertrand

This is about fixing audio in dom0, not sys-audio. Based on your messages, making this device working with sys-audio would be significantly more complex. So, I’d recommend un-do changes you made for sys-audio (especially hidding audio device from0 dom0) and see if it works then.

It’s what I just did, by reinstalling Qubes R4.3.0.

After re-installation, I updated with alsa-sof-firmware, alsa-lib, alsa-ucm and alsa-utils with the Fedora 43 version without success.
I also updated cirrus-audio-firmware and linux-firmware-whence (which was a dependency of cirrus-audio-firmware) still without success.
I do not see any audio device (for example in pavucontrol) and aplay -l in dom0 says aplay: device_list:279: no soundcards found...

I still don’t understand why PCI passthroughing the device to a VM does not work. If you can point me some reference allowing me to understand, I would love it, for my understanding.

Thanks
Bertrand

Hello,

Some news.
I eventually succeeded in having sound from dom0.
For that, I installed linux-firmware with qubes-dom-update; it is young enough. I have also to install a recent version of alsa-sof-firmware. The one in R4.3.0 Fedora 41 dom0 is too old, so I installed the one from Fedora-43, with rpm -Uvh --nodeps.

I have now sound in dom0, thank you so much @marmarek.

Bertrand