Comunicação com o sistema operacional Windows Guest executado no Qemu

0

Usando um servidor Ubuntu 14.04 sem cabeçalho, estou executando um convidado do Windows 7 no Qemu para o qual estou passando pela GPU (para desempenho). Estou escrevendo um aplicativo para o qual parte será executado no Linux, e parte será executado no convidado do Windows, e eu preciso de comunicação entre os dois. Pesquisando isso me levou a acreditar que minha melhor opção seria usar drivers Virtio-serial para que eu possa simplesmente comunicar entre os dois como se tivessem uma conexão serial; isso soa fabuloso, mas eu não posso, para a vida de mim, descobrir como fazê-lo funcionar. Eu encontrei alguns recursos que detalham as opções necessárias da linha de comando do Qemu, como aqui , mas não encontrei recursos sobre como iniciar a comunicação do lado Convidado . Parece que a maioria das pessoas fazendo esse tipo de coisa está fazendo isso com sistemas operacionais Linux, o que, com certeza, simplifica muito as coisas.

A comunicação de rede pode não ser uma opção, já que provavelmente estaremos passando o NIC para o sistema operacional convidado também (novamente, o desempenho é crítico para o sistema operacional convidado). Mesmo que não, isso parece ser uma opção desnecessariamente pesada para a simples comunicação entre aplicativos.

Eu também considerei criar um compartilhamento SMB, e armazenar um banco de dados lá que possa ser conectado a partir de múltiplos hosts, então rodando o mysql no host e guest. Mas isso também parece muito menos do que ideal ... Alguém tem alguma experiência com isso, ou talvez uma sugestão óbvia que está faltando?

Editar:

Eu quis incluir meu script de shell qemu:

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 3072 -cpu host -smp 4 
-bios /usr/share/qemu/bios.bin -vga none -nographic -serial mon:stdio 
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 
-device vfio-pci,host=00:01.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on 
-device vfio-pci,host=00:01.1,bus=root.1,addr=00.1 
-device virtio-scsi-pci,id=scsi 
-drive file=/utils/WES7.img,id=disk,format=raw,if=none -device ide-hd,drive=disk 
-drive file=/home/mvsuser/virtio-win-0.1-100.iso,id=virtiocd,if=none -device ide-cd,bus=ide.1,drive=virtiocd 
-usb -usbdevice host:046d:C52B 
-net bridge -net nic,model=virtio 
-chardev socket,path=/tmp/port0,server,nowait,id=port0-char 
-device virtio-serial 
-device virtserialport,id=port1,name=vioserial,chardev=port0-char 
    
por bkane521 08.01.2016 / 18:34

1 resposta

0

A página a que você se refere inclui um link para a API a ser usada pelos convidados do Windows (assim como pelos convidados do Linux). Eu acredito que isso é o que você está procurando.

Além disso, o código-fonte do QEMU Guest Agent tem um exemplo de trabalho de como o agente convidado qemu usa o virtio-serial no Windows.

    
por 28.06.2016 / 09:40