Связь с гостевой ОС Windows запускается в Qemu

986
bkane521

Используя безголовый сервер Ubuntu 14.04, я использую гостевую систему Windows 7 в Qemu, на которую я прохожу через графический процессор (для производительности). Я пишу приложение, часть которого будет работать в Linux, а часть будет работать в гостевой системе Windows, и мне нужна связь между ними. Исследование этого привело меня к убеждению, что лучшим вариантом будет использование драйверов Virtio-serial, чтобы я мог просто общаться между ними, как если бы они имели последовательное соединение; это звучит невероятно, но я не могу понять, как заставить это работать. Я нашел несколько ресурсов, в которых подробно описаны необходимые параметры командной строки Qemu, например, здесь, но мне не удалось найти никаких ресурсов о том, как инициировать общение от гостя.боковая сторона. Кажется, что большинство людей, занимающихся подобными вещами, делают это с гостевыми ОС Linux, что, я уверен, значительно упрощает ситуацию.

Сетевое взаимодействие не может быть вариантом, так как мы, скорее всего, будем также передавать сетевой адаптер в гостевую ОС (опять же, производительность для гостевой ОС критична). Даже если это не так, это кажется излишне тяжелым вариантом для простого взаимодействия между приложениями.

Я также рассмотрел создание общего ресурса SMB и хранение там базы данных, к которой можно подключиться с нескольких хостов, а затем запуск mysql на хосте и госте. Но это также кажется далеко не идеальным ... У кого-нибудь есть опыт с этим, или, может быть, очевидное предположение, которое я пропускаю?

Редактировать:

Я хотел включить мой скрипт оболочки 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  
0

1 ответ на вопрос

0
gopher

Страница, на которую вы ссылаетесь, содержит ссылку на API для использования гостями Windows (а также гостями Linux). Я считаю, что это то, что вы ищете.

Кроме того, исходный код гостевого агента QEMU содержит рабочий пример того, как гостевой агент qemu использует virtio-serial в Windows.