Como recupero meu mouse do QEMU / KVM?

31

Estou executando o QEMU / KVM no Debian Testing x64 com este comando:

kvm -m 1024 -hda win7.img -cdrom win7x86.iso -boot d -net user

Mas quando clico dentro da máquina virtual, o QEMU captura meu mouse e não o deixa ir. Eu pensei que a combinação de teclas para liberar o mouse era Right Ctrl, mas nada acontece quando eu pressiono. Também tentei acrescentar as opções -usbdevice tabletou -usbdevice mouse:

kvm -m 1024 -hda win7.img -cdrom win7x86.iso -boot d -net user -usbdevice tablet

ou

kvm -m 1024 -hda win7.img -cdrom win7x86.iso -boot d -net user -usbdevice mouse

mas a situação é a mesma. Estou usando o emulador QEMU versão 1.7.0 (Debian 1.7.0 + dfsg-2).

Michael A
fonte

Respostas:

49

Métodos de teclado

  1. Se estiver usando o front-end SDL do QEMU:

    Você pode liberar o foco usando as teclas Esquerda Ctrl+ Esquerda Alt. Observe que você precisa usar as teclas esquerdas!

  2. Se estiver usando o frontend GTK do QEMU (padrão desde o QEMU 1.5):

    Pressione Ctrl+ Alt+G

Método sem foco

Veja minha pergunta que eu postei sobre isso exatamente no ServerFault. As perguntas e respostas são intituladas: Qualquer maneira de liberar o foco em um convidado KVM no virt-manager sem precisar clicar em Ctrl_L + Alt_L? . Isso permitirá que você não precise mais usar o teclado para liberar o foco entre o host e o convidado.

Existem 2 métodos discutidos nas respostas à pergunta. O primeiro envolve adicionar outro mouse, o outro utiliza o Spice, que permite transições suaves de foco entre o host e o convidado.

slm
fonte
Eu acho que o método que ele está procurando é realmente ctrl_l + alt_l. Ele menciona no post que ele estava apenas tentando usar ctrl.
Jordanm
@ Jordanm - obrigado, pensei que era óbvio no meu link, eu adicionei aqui também.
Slm
@ slm Obrigado pela dica. Essa pergunta SF também é super útil!
Michael A
Se você estiver usando o Spice Client, a tecla de atalho é Shift + F12 para liberar o ponteiro do mouse e Shift + F11 para alternar o modo de tela cheia.
Anton Samsonov
Não está funcionando se o convidado estiver no modo de tela cheia (Host: Ubuntu 18.04, Convidado: Debian 9) #
Christoph90
2

Dependendo de qual hóspede do linux você tiver, instale o pacote qemu-guest-agent, execute systemctl enable qemu-guest-agent, pare sua vm e, de acordo com este artigo do RH KB , adicione o seguinte à sua configuração xms do vms:

<channel type='unix'>
  <target type='virtio' name='org.qemu.guest_agent.0'/>
</channel>

Em seguida, reinicie seu vm. Se você pode colocar o mouse na vm, retire o mouse e copie / cole.

George Law
fonte
não funciona mesmo com esta configuração
Philippe Gachoud
1

se alguém estiver usando o qemu no osx, ele precisará pressionar control + option + g para retornar o ponteiro do mouse ao host.

Armando Marques Sobrinho
fonte
2
A primeira resposta já tem esta solução.
21418 Isaac
ctrl + alt + gfunciona em MacOS. Obrigado.
Pathros
0

isto é o que funcionou para mim no Mac OS X

No seu Mac, saia do X11 / Xquartz e crie um arquivo ~ / .Xmodmap contendo este:

limpar Mod1 keycode 66 = Alt_L keycode 69 = Alt_R adicionar Mod1 = Alt_L adicionar Mod1 = Alt_R

Inicie o X11 / Xquartz mais uma vez e o virt-manager deve soltar o ponteiro do mouse se você segurar a tecla de controle esquerda e a opção esquerda ao mesmo tempo.

encontrei-o aqui https://major.io/2013/03/20/virt-manager-wont-release-the-mouse-when-using-ssh-forwarding-from-os-x/

QuattroCS
fonte
0

Para ativar a transição automática nas bordas ("modo sem costura"), basta instalar o spice-vdagent no convidado. Isso precisa de uma distribuição Linux um tanto atual, YMMV. no Ubuntu 18.04 com virt-manager, ele funciona como um encanto.

sudo apt-get install spice-vdagent

Em seguida, reinicie o convidado

byteborg
fonte