Como eu traduzo entre argumentos do qemu-system e argumentos virt-install para que eu possa unificar comandos parcialmente funcionais?

0

Estou no processo de configuração do VFIO com o KVM. Eu tenho o próprio VFIO funcionando, em que a GPU do VFIO exibe a tela do shell UEFI quando inicio a VM. Eu também sou capaz de criar uma VM do Windows com VNC para gráficos. Meu problema é que eu crio a VM com repasse usando o qemu-system, e aquele que inicia completamente eu crio usando virt-install.

O que eu gostaria de fazer é usar virt-install, mas com o mesmo dispositivo PCI que eu passo com o qemu-create, então preciso descobrir como traduzir o argumento qemu-system para as opções virt-install (ou virsh editar xml)

-device vfio-pci,host=42:00.0,multifunction=on \
-device vfio-pci,host=42:00.1 \

em argumentos do virt-install. No entanto, as instruções que eu usando para virt-install não usam o ID PCI, mas sim domínio, barramento e slot, que não são mostrados no lspci e não sei como verificar. Então, eu preciso obter essa informação e usá-lo em um comando virt-install, ou encontrar uma maneira de usar o ID PCI com o virt-install.

Aqui estão meus dois comandos:

sistema qemu:

sudo qemu-system-x86_64 \
-name $vmname,process=$vmname \
-machine type=q35,accel=kvm \
-cpu EPYC,kvm=off \
-smp 4,sockets=1,cores=2,threads=2 \
-m 16G \
-balloon none \
-rtc clock=host,base=localtime \
-vga none \
-nographic \
-serial none \
-parallel none \
-device vfio-pci,host=42:00.0,multifunction=on \
-device vfio-pci,host=42:00.1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/usr/share/OVMF/OVMF_VARS.fd \
-boot order=dc \
#-drive id=disk0,if=virtio,cache=none,format=raw,file=/dev/nvme-tank/ntfs-zvol-part1 \
-drive file=/media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso,index=1,media=cdrom \
-drive file=/media/big-tank-8TB/OSISOS/Windows/virtio-win-0.1.160.iso,index=2,media=cdrom 

virt-install

virt-install \
--name myWINVM1 \
--ram 4096 \
--disk path=/dev/nvme-tank/ntfs-zvol-part1 \
--cpu core2duo \
--vcpus 4 \
--os-type windows \
--os-variant win10 \
--network bridge=virbr0 \
--graphics vnc \
--console pty,target_type=serial \
--disk /media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso,device=cdrom,bus=ide \
--disk /media/big-tank-8TB/OSISOS/Windows/virtio-win-0.1.160.iso,device=cdrom,bus=ide 

Também seria bom descobrir como fazer o boot do qemu-system corretamente, mas eu gosto do virt-install melhor porque ele faz um arquivo XML útil que eu posso ver depois.

    
por Thoughtcraft 26.10.2018 / 00:17

1 resposta

1

Eu acredito que você está procurando a opção --hostdev para virt-install. Pode levar uma localização de barramento PCI e outras bandeiras. A lista completa é mostrada com:

virt-install --hostdev=?

As opções necessárias para acima devem ser semelhantes:

virt-install \
--name myWINVM1 \
--ram 4096 \
--hostdev 42:00.0,address.type=pci,address.multifunction=on \
--hostdev 42:00.1,address.type=pci \
...
    
por 26.10.2018 / 01:50