Passthrough PS / 2 keyboard to guest OS

2

OS Windows é executado na VM (ubuntu, libvirt, qemu-kvm). E eu tenho teclado PS / 2 no hardware do host. Existe alguma maneira de passá-lo para o sistema operacional convidado sem perda de desempenho (talvez emular o teclado USB com mapeamento de teclas do teclado PS / 2). Eu tentei usar o servidor Spice (da libvirt GUI "Virtual Machine Manager"), mas dá um atraso muito chato ao pressionar as teclas.

    
por avi9526 26.04.2015 / 20:50

1 resposta

0

Primeiro, você deve usar virsh edit <vm-name> para modificar o XML de configuração, já que não é possível fazer isso por meio da GUI do virt-manager.

Verifique sua tag <domain> de nível superior. Deve ser algo como isto:

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

Se o tipo não for kvm, você embarcou no voo errado - comece novamente com uma nova VM. Se o atributo xmlns: qemu não estiver lá, adicione-o.

Se você já tem uma seção <qemu:commandline> , adicione essas duas linhas:

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

Se você não o fizer, crie-o logo abaixo da tag <domain> com essas duas tags dentro dela.

Você também precisará criar o dispositivo de teclado no convidado usando o seguinte XML, que deve ser adicionado à seção <devices> :

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

O segundo qemu: arg e o caminho de origem definidos aqui têm eventN definido. Você precisará substituir N pelo número do dispositivo de entrada do seu teclado. Não mude a porta de destino - apenas o caminho de origem.

Meu dispositivo de teclado é 2, mas o seu pode ser 0 ou outro número. Para descobrir qual é o seu, faça dmesg | grep input e procure seu dispositivo de teclado. O meu diz:

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

Você ainda quer usar o caminho de / dev / input / eventN - isso permite que você saiba qual é o número correto para N. Se você estiver usando X com evdev, o que provavelmente é, você também pode encontre esta informação no arquivo de log X. Uma ressalva: o número do seu dispositivo pode mudar se você reconfigurar o seu hardware host.

Seu teclado não será mais reconhecido pelo host enquanto você estiver usando-o em um convidado. Para controlar o host, você pode:

  • Sair do convidado ou
  • Anexar outro teclado via USB ou
  • Fazer login via ssh ou
  • Use um console serial.

Eu obtive a maioria dessas informações neste link:

link

    
por 25.09.2017 / 11:37