Thanks!
Also, any ways to run the same XFCE applet than the one by default in dom0 instead of pasystray?
Thanks!
Also, any ways to run the same XFCE applet than the one by default in dom0 instead of pasystray?
I seem to be stuck at the same point, just without the sound issues in sys-audio.
From Clean install, I get to the point where it says:
Once this is done, you can restart your âsys-audioâ qube.
If everything has been configured correctly, you should see the active qube
configured to use âsys-audioâ in the âpavucontrolâ interface of âsys-audioâ.
Iâm following the âRecommended wayâ, and am super confused.
Playing audio out from the USB Audio device works fine in sys-audio.
Each of the (not sys-audio) volume control have âdummy outputâ listed.
Iâve tried running pactl load-module module-vchan-sink
as per other forum guides within one of my Personal
qubes, which gives me the Failure: no such entity
error.
Have I missed something?
(p.s. while I do seem to be having issues, thank you @neowutran for this well-written guide )
You can also check the Salt scripts from Qusal, itâs working out of the box:
what is the confusing thing ?
My main confusion is the fact that I end uo with this dummy output after getting to this step.
Ive tried restarting the device, checking for errors in the logs, manually configuing the xid then restarting pipewire, just cant seem to get it to work.
Whats more frustrating is, (ive got nothing on the device so i can), i did a blank reinstall of the latest Qubes, and out of the box the default Dom0 behaves exactly as you describe and how id expect, letting me output to devices as expected, i just cant output to my UBS headset.
I think the key thing im struggling to figure out is how to debug what went wrong, and correct it. Getting stuck with âDummy Outputâ, no obvious errors or clear guidance on debugging is not fun. I dont expect you to baby us by any means, but at the same time a âif you get dummy outputs only, check youve done x step correctlyâ would be extremely helpful - (more helpful would be an official guide, but hey, lets do one step at a time )
P.s. did spent the entirety of yesterday and today debugging this before posting - used about 10 different threads and asked a few different AIâs (not that i expected much from them)
Getting âdummy outputâ on other qubes means the communication between the qubes and audiovm is not working.
If you only modified things mentioned in the guide, I would guess you did something wrong at the step âConfiguring Servicesâ or âConfiguring policyâ.
Re-read those steps.
Additionally:
Check that you use the same audiovm name as me: âsys-audioâ
I mention the path â/usr/lib/python3.11/site-packages/qubesadmin/tools/qvm_start_daemon.pyâ, it will be â/usr/lib/python3.12/site-packages/âŚâ in more recent template, check the python version used on your system.
To debug, you probably want to see the output of âqvm-start-daemonâ in sys-audio.
In sys-audio, kill the existing process âqvm-start-daemonâ, and launch it manually
qvm-start-daemon --all --watch
You will get some informations on stdout
I was able to follow the guide up until Disabling audio for qubes that doesnât need it however, I donât understand how to get the other qubes to use the sys-audio. They all have the sys-audio as their audiovm but they donât seem to detect any audio sources. for the Policy I copied the entire document you linked on git-hub I wasnât sure if I should have done that or needed to update all lines by hand.
[user@sys-audio ~]$ qvm-start-daemon --all --watch
app: Failed to handle event: None, connection-established, {}
Traceback (most recent call last):
File â/usr/lib/python3.11/site-packages/qubesadmin/base.pyâ, line 232, in getattr
property_str = self.qubesd_call(
^^^^^^^^^^^^^^^^^
File â/usr/lib/python3.11/site-packages/qubesadmin/base.pyâ, line 76, in qubesd_call
return self.app.qubesd_call(dest, method, arg, payload,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File â/usr/lib/python3.11/site-packages/qubesadmin/app.pyâ, line 893, in qubesd_call
raise qubesadmin.exc.QubesDaemonAccessError(
qubesadmin.exc.QubesDaemonAccessError: Service call error: Request refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File â/usr/lib/python3.11/site-packages/qubesadmin/events/init.pyâ, line 259, in handle
handler(subject, event, **kwargs)
File â/usr/lib/python3.11/site-packages/qubesadmin/tools/qvm_start_daemon.pyâ, line 688, in on_connection_established
self.xid_cache[vm.name] = vm.xid, vm.stubdom_xid
^^^^^^^^^^^^^^
File â/usr/lib/python3.11/site-packages/qubesadmin/base.pyâ, line 239, in getattr
raise qubesadmin.exc.QubesPropertyAccessError(item)
qubesadmin.exc.QubesPropertyAccessError: Failed to access âstubdom_xidâ property
^C[user@sys-audio ~]$
[user@personal ~]$ qubesdb-read -w /qubes-audio-domain-xid
20
[user@personal ~]$ load-module module-vchan-sink domid=20
bash: load-module: command not found
[user@personal ~]$ pavucontrol
(pavucontrol:2381): Gdk-CRITICAL **: 13:05:58.542: gdk_atom_intern: assertion âatom_name != NULLâ failed
(pavucontrol:2381): Gdk-CRITICAL **: 13:05:58.542: gdk_atom_intern: assertion âatom_name != NULLâ failed
The error message you have indicate that the policy file have not be setup correctly.
In dom0, can you check the content of â/etc/qubes/policy.d/50-sys-audio.policyâ ?
sudo cat /etc/qubes/policy.d/50-sys-audio.policy
I think Iâm getting the same error now (sorry for the delay, been otherwise occupied and only now getting back round to this)
Outputs:
[user@sys-audio ~]$ qvm-start-daemon --all --watch
Another GUI daemon process (with PID 1109) is already running
[user@sys-audio ~]$
user@personal:~$ qubesdb-read -w /qubes-audio-domain-xid
21
user@personal:~$ load-module module-vchan-sink domid=21
bash: load-module: command not found
user@personal:~$ pavucontrol
(pavucontrol:10097): Gdk-CRITICAL **: 22:00:32.352: gdk_atom_intern: assertion 'atom_name != NULL' failed
(pavucontrol:10097): Gdk-CRITICAL **: 22:00:32.353: gdk_atom_intern: assertion 'atom_name != NULL' failed
policy:
admin.Events * sys-audio @adminvm allow target=dom0
admin.Events +domain-stopped sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.Events +domain-shutdown sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.Events +domain-start sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.Events +connection-established sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.CurrentState * sys-audio @adminvm allow target=dom0
admin.vm.CurrentState * sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.List * sys-audio @adminvm allow target=dom0
admin.vm.List * sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.property.Get +audiovm sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.property.Get +xid sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.feature.CheckWithTemplate +audio sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.feature.CheckWithTemplate +audio-model sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.feature.CheckWithTemplate +supported-service.pipewire sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.feature.CheckWithTemplate +audio-low-latency sys-audio @tag:audiovm-sys-audio allow target=dom0
admin.vm.property.Get +stubdom_xid sys-audio @tag:audiovm-sys-audio allow target=dom0
The only thing I can see personally is that Iâve spaced mine more than the one in your code to make it easier for me to read, but could this be causing a problem?
I wasnât sure how to create the policy so I just copied it pasted into a document and moved it to dom0 maybe I need to give it permissions or the formatting was create wrong? Random S**** ¡ GitHub
Seems to be some copy paste error ? target=dom050
should be target=dom0
Can you show the content of â/usr/lib/python3.12/site-packages/qubesadmin/tools/qvm_start_daemon.pyâ in you âsys-audioâ ?
Also, in your sys-audio, kill the running qvm-start-daemon process
sudo kill 1109
and restart it manually
qvm-start-daemon --all --watch
You will see interesting things
Thank you so much! I re pasted and I updated the permissions (Its still not owned/in group root I dotn know if that matters) it fixed it. Now I am attempting to use the windows fix to pass audio to Nobara. Iâm curious when you say attach the Mic to the Qube you want to record in does that mean it wont work in the sys-audio qube and I will need to change it each time I want to record in a different qube?
Could you give a little more detail on what you mean by this? I tried rerunning the exact same bash script and replacing stubdom-linux-rootfs
with stubdom-linux-full-rootfs
but that doesnât seem to work it just opens the same init file.
I also noticed you mentioned these files could be overwritten by Xen updates is there a way to prevent that or make the process quicker next time? I assume it will just break if that happens and I will stop getting audio?
UPDATE:
After implementing the HVM portion I get the following error when attempting to start sys-net
[Dom0] Error starting Qube!
Start failed: internal error: libenlight failed to create new domain
'sys-net', see /var/log/libvirt/libxi/libxl-driver.log for details
I had to add qubes.skip_autostart to be able to get into qubes OS as it disabled my usb mouse and keyboard
So I got this error one:
[user@sys-audio ~]$ qvm-start-daemon --all --watch
sys-audio: Starting AUDIO
Loopback vchan connection not supported
libvchan_client_init_async_finish: Resource temporarily unavailable
^Casyncio: Loop <_UnixSelectorEventLoop running=False closed=True debug=False> that handles pid 8809 is closed
Exception ignored in: <function BaseSubprocessTransport.__del__ at 0x7b5edcb3d440>
Traceback (most recent call last):
File "/usr/lib64/python3.11/asyncio/base_subprocess.py", line 126, in __del__
self.close()
File "/usr/lib64/python3.11/asyncio/base_subprocess.py", line 104, in close
proto.pipe.close()
File "/usr/lib64/python3.11/asyncio/unix_events.py", line 566, in close
self._close(None)
File "/usr/lib64/python3.11/asyncio/unix_events.py", line 590, in _close
self._loop.call_soon(self._call_connection_lost, exc)
File "/usr/lib64/python3.11/asyncio/base_events.py", line 762, in call_soon
self._check_closed()
File "/usr/lib64/python3.11/asyncio/base_events.py", line 520, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is close
I also get a lot of this message when it is working:
personal: Starting AUDIO
Connection to qube established, connecting to PulseAudio daemon
Connection established.
Stream successfully created.
Buffer metrics: maxlength=4194304, tlength=25580, prebuf=22056, minreq=3528
Using sample spec 's16le 2ch 44100Hz', channel map 'front-left,front-right'.
Connected to device alsa_output.pci-0000_00_07.0.analog-surround-51 (430, not suspended).
Stream successfully created.
Buffer metrics: maxlength=4194304, tlength=44100, prebuf=4294967295, minreq=4294967295
Using sample spec 's16le 2ch 44100Hz', channel map 'front-left,front-right'.
Connected to device alsa_input.usb-Astro_Gaming_Astro_A50-00.mono-chat (341, not suspended).
Stream drain
tream drain
Stream started.
Cork requested and playback vchan empty. Draining playback stream.
Playback vchan empty and playback stream drained. Corking playback stream.
Stream uncork
Stream drain
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
Stream uncork
...
Stream uncork
Stream uncork
Stream started.
Stream underrun.
Stream started.
The error means you messed up either the file â/usr/share/qubes/templates/libvirt/xen.xmlâ in dom0
or you incorrectly patched the stubdom init file.
So check the guide and the content of thoses files.
And if you need help, paste the content of thoses files
The error message you have is weird. Do you have any special configuration ? what are you using as template for sys-audio ?
added a screenshot in the guide
I followed your guide, so nothing special.
Using Fedora as per the advice in your guide, Fedora-38-xfce is the one I cloned.
Is there any specific things you would like me to check?
I did have audio outputting for a period today, then when I paused the media playing audio, it never recovered. Just got the âStream uncorkâ message constantly.
[jstevens@dom0 ~]$ qvm-prefs audio-app
audiovm D sys-audio
autostart D False
backup_timestamp U
debug D False
default_dispvm D default-dvm
default_user D user
gateway D
gateway6 D
guivm D dom0
icon D templatevm-red
include_in_backups D True
installed_by_rpm D False
ip6 D
kernel D 6.1.75-1.fc37
kernelopts D swiotlb=2048
keyboard_layout D gb++
klass D AppVM
label - red
mac D 00:16:3e:5e:6c:00
management_dispvm D default-mgmt-dvm
maxmem D 4000
memory D 400
name - audio-app
netvm D sys-firewall
provides_network - False
qid - 20
qrexec_timeout D 60
shutdown_timeout D 60
start_time D
stubdom_mem U
stubdom_xid D -1
template - audio-template
template_for_dispvms - True
updateable D False
uuid - c7051b28-f357-4883-944e-35fe2b0645c1
vcpus D 2
virt_mode D pvh
xid D -1
[jstevens@dom0 ~]$ qvm-prefs audio-template
audiovm D sys-audio
autostart D False
backup_timestamp U
debug D False
default_dispvm D default-dvm
default_user D user
gateway D
gateway6 D
guivm D dom0
icon D templatevm-black
include_in_backups D True
installed_by_rpm D False
ip6 D
kernel D 6.1.75-1.fc37
kernelopts D swiotlb=2048
keyboard_layout D gb++
klass D TemplateVM
label - black
mac D 00:16:3e:5e:6c:00
management_dispvm D default-mgmt-dvm
maxmem D 4000
memory D 400
name - audio-template
netvm - sys-firewall
provides_network - False
qid - 19
qrexec_timeout D 60
shutdown_timeout D 60
start_time D
stubdom_mem U
stubdom_xid D -1
updateable D True
uuid - f8b3157c-c32c-45bc-8283-3aed254a11f7
vcpus D 2
virt_mode D pvh
xid D -1
[jstevens@dom0 ~]$ qvm-prefs sys-audio
audiovm - sys-audio
auto_cleanup D False
autostart - True
backup_timestamp U
debug D False
default_dispvm D audio-app
default_user D user
dispid - 3195
gateway D
gateway6 D
guivm D dom0
icon D dispvm-red
include_in_backups D True
installed_by_rpm D False
ip6 D
kernel D 6.1.75-1.fc37
kernelopts D
keyboard_layout D gb++
klass D DispVM
label - red
mac D 00:16:3e:5e:6c:00
management_dispvm D default-mgmt-dvm
maxmem - 0
memory D 400
name - sys-audio
netvm D sys-firewall
provides_network - False
qid - 21
qrexec_timeout D 60
shutdown_timeout D 60
start_time D
stubdom_mem U
stubdom_xid D -1
template - audio-app
updateable D False
uuid - 509e1362-ebf7-4d94-93a4-45deb6534791
vcpus D 2
virt_mode - hvm
xid D -1
Only things unique to my setup will be the PCI devices, and USB devices Iâm connecting. Anything else should be standard as per the guide
I assume when you say your home directory you mean my usersâ directory inside the home folder? (I tried in the /Home/ directory as well). When I run the bash script you mention it creates 3 stubdom folders annd copies my user files twice and it opens a blank init file even though the real init file is 3 levels down. I have checked my syntax multiple times Iâm not sure if I am doing something wrong.