Blog

Probando aceleración gráfica en QEMU con Virgil

Probando aceleración gráfica en QEMU con Virgil

Problemas encontrados:

SPICE

Vídeo corrupto con Virtio 3D Acceleration + SPICE con OpenGL:

Ésta era la configuración que tenía en virt-manager:

Para arreglar esto cambié de SPICE a SDL (ver más abajo).

Sonido:

[j@localhost ~]$ sudo virsh start fedora29
error: Failed to start domain fedora29
error: internal error: process exited while connecting to monitor: pulseaudio: pa_context_connect() failed
pulseaudio: Reason: Connection refused
pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

sdl: SDL_OpenAudio failed
sdl: Reason: ALSA: Couldn't open audio device: Connection refused
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

sdl: SDL_OpenAudio failed
sdl: Reason: ALSA: Couldn't open audio device: Connection refused
audio: Failed to create voice `dac'
audio: Failed to create voice `adc'
Could not initialize SDL(x11 not available) - exiting

Solución: añadir en configuración de máquina virtual (sudo virsh edit fedora29)

[...]
</devices>
  <qemu:commandline>
    <qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
    <qemu:env name='QEMU_PA_SERVER' value='/run/user/1000/pulse/native'/>
  </qemu:commandline>
[...]

y a continuación reiniciamos pulseaudio (en un servicio de userland):

[j@localhost ~]$ systemctl --user restart pulseaudio.service

Cambio de SPICE a SDL

Ahora aparecía este otro error:

[j@localhost ~]$ sudo virsh start fedora29
error: Failed to start domain fedora29
error: internal error: process exited while connecting to monitor: 2019-09-04 14:00:38.626+0000: Domain id=1 is tainted: custom-argv
Could not initialize SDL(x11 not available) - exiting

En la configuración de la máquina virtual, edité:

<graphics type='sdl'>
      <gl enable='yes'/>
    </graphics>

por esto otro:

<graphics type='sdl' display=':0.0' xauth='/root/.Xatuh'>
      <gl enable='yes'/>
    </graphics>