Pasar el keyboard PS / 2 al sistema operativo invitado

OS Windows se ejecuta en VM (ubuntu, libvirt, qemukvm). Y tengo el keyboard PS / 2 en el hardware del host. ¿Hay alguna manera de pasarlo al sistema operativo invitado sin pérdida de performance (tal vez emular el keyboard USB con asignación de teclas desde el keyboard PS / 2). Traté de usar el server de Spice (desde libvirt GUI "Virtual Machine Manager"), pero da un retraso muy molesto al presionar las teclas.

Primero debe usar virsh edit <vm-name> para modificar el XML de configuration, ya que no puede hacerlo a través de la GUI de virt-manager.

Verifique su label de <domain> nivel <domain> . Debería verse algo como esto:

 <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> 

Si el tipo no es kvm, ha abordado el vuelo equivocado, comience nuevamente con una nueva máquina virtual. Si el atributo xmlns: qemu no está allí, agrégalo.

Si ya tiene una <qemu:commandline> , agregue estas dos líneas en su interior:

 <qemu:arg value='-object'/> <qemu:arg value='input-linux,id=kbd,evdev=/dev/input/eventN,grab_all=on,repeat=on'/> 

Si no lo hace, entonces créelo justo debajo de la label <domain> con esas dos tags dentro de él.

También necesitará crear el dispositivo de keyboard en el invitado utilizando el siguiente XML, que debe agregar a la sección <devices> :

 <serial type='dev'> <source path='/dev/input/eventN'/> <target port='0'/> </serial> 

El segundo qemu: arg y la ruta de origen definida aquí tienen ambos eventN definido. Tendrá que replace N con el número de dispositivo de input para su keyboard. No cambie el puerto de destino, solo la ruta de origen.

Mi dispositivo de keyboard es 2, pero el tuyo podría ser 0 o algún otro número. Para saber cuál es el tuyo, haz dmesg | grep input dmesg | grep input y busca tu dispositivo de keyboard. El mío dice:

 input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2 

Aún desea utilizar la ruta de acceso / dev / input / eventN; esto solo le permite saber cuál es el número correcto para usar N. Si usa X con evdev, que probablemente sea, también puede encontrar esta información en el file de logging X Una advertencia: el número de su dispositivo podría cambiar si reconfigura su hardware host.

Su keyboard ya no será reconocido por el host mientras lo usa en un invitado. Para controlar el host, puede:

  • Salir del invitado, o
  • Adjunte otro keyboard a través de USB, o
  • Inicie session a través de ssh, o
  • Use una console serial.

Obtuve la mayor parte de esta información de este enlace:

https://www.networkingdit.com/r/VFIO/comments/5hja2k/how_do_you_pass_through_a_ps2_keyboard/