Quero passar um audiodev para uma VM, mas a libvirt sai com este erro
error: internal error: process exited while connecting to monitor: 2024-03-17T23:29:37.725695Z qemu-system-x86_64: XDG_RUNTIME_DIR not set
essa é a linha para vm
<qemu:arg value="-device"/>
<qemu:arg value="usb-audio,audiodev=my_audiodev"/>
<qemu:arg value="-audiodev"/>
<qemu:arg value="pa,id=my_audiodev"/>
Eu sei que é possível inserir diretamente uma placa de som no xml, mas quero saber por que dá esse erro, também para tentar "virtio-sound" então
<qemu:arg value="-device"/>
<qemu:arg value="virtio-sound,audiodev=my_audiodev"/>
<qemu:arg value="-audiodev"/>
<qemu:arg value="pa,id=my_audiodev"/>
Claro que sem essas linhas o vm roda
A versão qemu é 8.2.2 A versão libvirt é 10.0.0 O sistema é Slackware 15
O erro é do qemu usando pulseaudio
qemu-system-x86_64 -audiodev pa,id=hda,out.mixing-engine=off -audiodev pa,id=usb,out.mixing-engine=off
qemu-system-x86_64: XDG_RUNTIME_DIR not set
tentando configurar o xdg-runtime-dir ..
export XDG_RUNTIME_DIR=$TMPDIR
qemu-system-x86_64 -device usb-audio -audiodev alsa,id=hda,out.mixing-engine=off -audiodev pa,id=usb,out.mixing-engine=off
qemu-system-x86_64: could not stat pidfile /pulse/pid: No such file or directory
Solução encontrada, para qemu
com XDG_RUNTIME_DIR
sem XDG_RUNTIME_DIR
para libvirt outro problema (com xdg_runtime_dir), ele roda como usuário diferente (qemu), então tenho que encontrar uma maneira de compartilhar som com o usuário qemu
Solução encontrada também para libvirt (o xdg_runtime é inútil neste caso)
em padrão_pa
vim $HOME/.config/pulse/default_pa
com esta configuração você permite que outros usuários usem (e ouçam) seu som sem autenticação, usando acl baseado em ip (não é 100% seguro, mas para casa está ok)