On 9/17/24 08:12, Karl Frederick Roldan wrote:
Hi everyone,
I'm having trouble regarding using the pipewire backend for libvirt. My
OS is GNU Guix with Wayland and pipewire running with wireplumber on a
user session. I have the following versions:
libvirt-9.10.0 (with pipewire enabled)
qemu-8.2.2 (with pipewire enabled)
libpipewire-1.0.3
I only modified the =<audio>= configuration in the xml file using =sudo
virsh edit win10= as follows:
<audio id='1' type='pipewire'
runtimeDir='/run/user/1000'/>
I can confirm that pipewire is running and that I have pipewire sockets
in the directory specified. But when running the VM using virt-manager,
I get the following error:
Error starting domain: internal error: process exited while
connecting to monitor: 2024-09-17T05:54:03.785811Z qemu-system-x86_64:
Failed to initialize PW context
Traceback (most recent call last):
File
"/gnu/store/nxpr6npj618pqmlanqqh7ks9a92jgm98-virt-manager-4.1.0/share/virt-manager/virtManager/asyncjob.py",
line 72, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File
"/gnu/store/nxpr6npj618pqmlanqqh7ks9a92jgm98-virt-manager-4.1.0/share/virt-manager/virtManager/asyncjob.py",
line 108, in tmpcb
callback(*args, **kwargs)
File
"/gnu/store/nxpr6npj618pqmlanqqh7ks9a92jgm98-virt-manager-4.1.0/share/virt-manager/virtManager/object/libvirtobject.py",
line 57, in newfn
ret = fn(self, *args, **kwargs)
File
"/gnu/store/nxpr6npj618pqmlanqqh7ks9a92jgm98-virt-manager-4.1.0/share/virt-manager/virtManager/object/domain.py",
line 1402, in startup
self._backend.create()
File
"/gnu/store/yaqxaja0ckyf6fm7gnd9iqlrijz6qcqy-python-libvirt-10.6.0/lib/python3.10/site-packages/libvirt.py",
line 1362, in create
raise libvirtError('virDomainCreate() failed')
libvirt.libvirtError: internal error: process exited while
connecting to monitor: 2024-09-17T05:54:03.785811Z qemu-system-x86_64:
Failed to initialize PW context
If I switch the audio backend back to =spice=, the VM will run but
there's no sound. I am not sure if this is a virt-manager problem or I
somehow misconfigured libvirt. How should I proceed about this problem?
Is pipewire daemon running? Also, if you run QEMU under different user
than UID 1000 then I guess QEMU can't connect to the pipewire socket
under runtimeDir.
There might be some more info why QEMU was unable to init PW under
/var/log/libvirt/qemu/$dom.log
Michal