¿Cómo habilito el soporte de sonido de Pulseaudio en una Máquina Virtual QEMU en Ubuntu 20.04LTS?

¡Trabajadores!

El software ha de utilizarse para todo, pero sobre todo para la Auténtica Liberación del Pueblo.

En ocasiones, el oprobio de una situación muy particular puede requerir la elasticidad que presenta el Movimiento Justicialista. Siempre he dicho que el nuestro - por nacer de una necesidad de los hombres - no es un Movimiento sectario. Son las necesidades las que generan los Derechos, y este lineamiento es el que hemos colocado como un frontispicio en nuestra Doctrina.

Decía el Mariscal de Sajonia que poco importaba que él fuese viejo; lo importante es que sus soldados fuesen jóvenes. Para conducirlos estaba él. Tampoco hacía gran diferencia si sus huestes iban montadas sobre bayos, sobre moros o sobre mulas, lo importante que ellos fuesen hombres decididos. Indudablemente, el viejo Mariscal supo discernir lo poco importante de las cosas accesorias, si el lustre de las botas se empezaba en la caña o en el talón, o si los cabos llevaban penacho... lo que importaba era la maniobra en  campaña, la moral y el espíritu combativo del cuerpo de combate. Él los formaría, como Conductor.

Indudablemente, que la formación a la que los sometía era tal, que su tropa debía saber formar filas hasta por instinto, y sus suboficiales saber encuadrar material humano incluso de los tomados al enemigo.

Pues bien señores, en la informática en ocasiones suele suceder lo mismo. La claridad del objetivo del Conductor es lo fundamental en el designio de las estrategias, y su sentido de acción será el éxito planteado frente a un objetivo preciso. El herramental ha de adaptarse para lograr una solución que sea la mejor frente a la fluidez de los problemas planteados, en el tiempo y el lugar del problema.

Un ejemplo suele explicarlo todo, como decía Napoleón.

La realización de una tarea de única vez me ha implicado a montar para el usuario Invitado ("Guest") una máquina virtual QEMU con Micro$soft Window$ 10 corriendo bajo mi sistema Ubuntu 20.04LTS. En ella todo opera según la necesidad, excepto el audio. Siendo un usuario invitado, era se ha tornado imposible oír nada.

Soy un hombre que lleva la más maravillosa música que es la Palabra del Pueblo Argentino, por lo que me he dado a buscar una solución de circunstancias para esta condición tan especial...
QEMU cuenta con un fichero de configuración virsh. He allí un ejemplo del contenido utilizado en dicho fichero.

Como vemos el dicho fichero, el audio está asignado al proceso de un usuario común, en este caso /run/user/1001/pulse/native. La causa de la falla es que el usuario invitado no tiene tal identificación.

Para resolver el problema, debemos entonces informarnos del nombre de instancia que tendrá el servicio de sonido para el usuario Invitado. Para conocer esta importante información, podremos agregar en nuestra terminal los siguientes comandos:

start-pulseaudio-x11

pax11publish

En pantalla se nos informará el servidor de Pulseaudio, el cual en el caso del usuario Invitado es:

/run/user/1000/pulse/native rw,

Al configurar con este parámetro, nos aseguraremos que el Usuario Invitado ("Guest") pueda acceder ahora al servicio de sonido proporcionado por Pulseaudio.

Luego, ajustaremos nuestro fichero guest.xml para que refleje acordemente los cambios. La parte relevante, en este caso, sería:

<qemu:arg value='-device'/>
<qemu:arg value='ich9-intel-hda,bus=pcie.0,addr=0x1b'/>
<qemu:arg value='-device'/>
<qemu:arg value='hda-micro,audiodev=hda'/>
<qemu:arg value='-audiodev'/>
<qemu:arg value='pa,id=hda,server=unix:/run/user/1000/pulse/native'/>


Con tal predicamento, quien haya tenido la misma necesidad de correr un Window$ 10 virtualizado, podrá obtener sonido a través de QEMU, redireccionándolo a Pulseaudio en Ubuntu 20.04LTS.