What arguments or use cases support the use of sys-audio, aside from security?
I just read these posts:
What arguments or use cases support the use of sys-audio, aside from security?
I just read these posts:
Aside from security, mostly USB devices support + bluetooth device support
But don’t I have that with sys-usb (without sys-audio) too?
Or does sys-audio offer anything more or better in this context?
Do you mean that you’d just set-up sys-usb as an AudioVM for all your qubes?
No, I don’t have AudioVM. I mean the standard Qubes OS with sys-net and sys-usb. All USB devices are connected to sys-usb, right?
What would be better or different if these devices were connected to sys-audio? (Except that the USB devices with audio are separated from the other USB devices.)
I’m seriously considering it, and sys-audio sounds appealing. But I don’t want to run into new problems. There are already quite a few GitHub issues related to sys-audio like Audio stuttering with audiovm · Issue #10063 · QubesOS/qubes-issues · GitHub.
So, naturally, I’m wondering: What can sys-audio do that’s different or better than what I currently have? In terms of value for money: the balance between problems and features.
Currently to use usb or bluetooth audio devices, they need to be directly attached to the qube using them. With sys-audio, they don’t. They are attached to sys-audio instead. And the qubes send their audio to sys-audio instead of dom0 like default.
This is not correct if we set sys-usb as audiovm. That is how my configuration currently works. The audio/bluetooth devices are attached to sys-usb (like in standard configuration I guess?) and other qubes use sys-usb as audovm. The question is what advantages sys-audio brings except from separating audio/bluetooth devices from the other ones attached to sys-usb.
I’ll try to sketch it out so we’re all on the same page.
[user@dom0 ~]$ lspci
00:00.0 Host bridge: Intel Corporation Device 4640 (rev 02)
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01)
00:0e.0 RAID bus controller: Intel Corporation Volume Management Device NVMe RAID Controller
00:14.0 USB controller: Intel Corporation Device 7a60 (rev 11)
00:14.2 RAM memory: Intel Corporation Device 7a27 (rev 11)
00:15.0 Serial bus controller: Intel Corporation Device 7a4c (rev 11)
00:16.0 Communication controller: Intel Corporation Device 7a68 (rev 11)
00:17.0 SATA controller: Intel Corporation Device 7a62 (rev 11)
00:1a.0 PCI bridge: Intel Corporation Device 7a48 (rev 11)
00:1c.0 PCI bridge: Intel Corporation Device 7a38 (rev 11)
00:1c.2 PCI bridge: Intel Corporation Device 7a3a (rev 11)
00:1d.0 PCI bridge: Intel Corporation Device 7a36 (rev 11)
00:1f.0 ISA bridge: Intel Corporation Device 7a06 (rev 11)
00:1f.3 Audio device: Intel Corporation Device 7a50 (rev 11)
00:1f.4 SMBus: Intel Corporation Device 7a23 (rev 11)
00:1f.5 Serial bus controller: Intel Corporation Device 7a24 (rev 11)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
The audio device on the motherboard is:
00:1f.3 Audio device: Intel Corporation Device 7a50 (rev 11)
All audio devices connected via USB run through:
00:14.0 USB controller: Intel Corporation Device 7a60 (rev 11)
sys-audio no & sys-usb no
00:1f.3 Internal Audio device (Mainboard) → dom0
USB non-audio device → 00:14.0 USB controller → dom0
USB audio device → 00:14.0 USB controller → dom0
sys-audio no & sys-usb yes
00:1f.3 Internal Audio device (Mainboard) → dom0
USB non-audio device → 00:14.0 USB controller → sys-usb
USB audio device → 00:14.0 USB controller → sys-usb
sys-audio yes & sys-usb yes
00:1f.3 Internal Audio device (Mainboard) → sys-audio
USB non-audio device → 00:14.0 USB controller → sys-usb
USB audio device → 00:14.0 USB controller → sys-usb
sys-audio yes & sys-usb no
00:1f.3 Internal Audio device (Mainboard) → sys-audio
USB non-audio device → 00:14.0 USB controller → dom0
USB audio device → 00:14.0 USB controller → dom0
So what are the advantages?
What’s so great about it?
Or am I missing something?
You can’t separate them if they’re connected to the same USB controller.
Or are we talking about two different things?
Separating on VM level. Hardware level is nothing Qubes controls, but at least virtually those can be separated by XEN boundries.
But what do you mean by “separate”?
How do you plan to separate them if everything runs through sys-usb and the same USB controller anyway?
In my case I consider the bluetooth and audio hardware of the system kind of “connected”, as I am using bluetooth headphones and microphone for calls. This means that I would assign bluetooth and audio hardware to sys-audio. Now, if sys-usb has usb controllers and a device would be able to bring maliscious logic to sys-usb, it would not be possible to spread via bluetooth. This, from my point of view, is kind of a separation which makes sys-usb more secure. But that is only an assumption, I cannot tell if via audio channels things can also be infected.
As mentioned above I don’t have sys-audio, only sys-usb, which I am using as audiovm. My question would be also if there is a stronger argument to introduce sys-audio than having this separation.
I am not fully sure what type of argument you are seeking, but here is a thought experiment:
Imagine there is some very serious flaw in the audiovm qrexec protocol or in a linux kermel audio driver which allows a qube to take over its audiovm.
If the audiovm is sys-usb, then maybe the qube now has control or access to keyboard, mouse, external disks, or more.
If the audiovm is sys-audio, then the qube must find another - very serious - flaw to escape further.
Which configuration should a reasonable qubes user choose?
For me, this seems to be a strong argument for sys-audio. I am asking myself why I did not try making one yet.
Your scenario only applies if you’re not using any USB audio devices.
If you have sys-usb and sys-audio, then all USB devices run through sys-usb.
Thanks for this example, it makes sense. At the moment sys-usb works great as my audiovm, and as I had a lot of issues over the time with audio, which are now gone, I’d rather not take the risk of introducing anything like it again ![]()
This is true, but for it to make a difference with sys-audio the bad qube must have a way through the usb device. For an audio subsystem defect, it must still get into sys-audio and then try to get to sys-usb.
People running debian-minimal sys-audio do you notice any lag, artifacts, or quality improvements or degradations in their audio quality? Compared to standard?
I’ve been using a debian-minimal sys-audio a long time with no issues
That’s a good point!
true! Curious what FOSS options people use for that?
The sound quality of my (default) audio setup leaves a lot to be desired.
(like its coming out of a tin-can)