web-dev-qa-db-fra.com

Comment puis-je changer qemu KVM architecture de machine à partir de 440FX au Q35 avec VIRSH EDIT ou VER-Manager

Essayant toujours d'obtenir le GPU de travailler et de modifier le type de machine de plus âgé 440FX à Q35, c'est-à-dire PC-Q35, mais si je fais VIRSH Modifier sur la configuration, vous refusez de sauvegarder dire "ponts PCI non pris en charge" ... Par coureur QEMU binaire. Qu'est-ce que je dois corriger/modifier dans le fichier XML de la machine virtuelle?

Après quelques recherches, Q35 ne permet que PCiExpress PCIe et non PCI, mais je ne sais pas quoi changer dans mon fichier XML afin que VIRSH arrête de se plaindre et accepte le changement de 440FX au Q35.

Ceci est sur Debian Jessie: Uname -a Linux VMServer 3.16.0-CustomVmkernel # 1 SMP Soleil Sep 28 00:34:42 PDT 2014 x86_64 GNU/Linux

kVM --Version Qemu Emulator version 2.1.0 (Debian 2.1 + DFSG-4)

Voici mon fichier machine virtuel actuel avec 440FX que je veux passer à Q35:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>Win7enterprise32bit</name>
<uuid>77599af9-35a3-45e1-9fce-74304f7d7a9c</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type Arch='i686' machine='pc-i440fx-2.1'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='localtime'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
  <driver name='qemu' type='vmdk'/>
  <source file='/mount/ssd/VirtWin7-clone.vmdk'/>
  <target dev='vdb' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</disk>
<controller type='usb' index='0'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='ide' index='0'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='pci' index='0' model='pci-root'/>
<interface type='bridge'>
  <mac address='52:54:00:9e:f5:11'/>
  <source bridge='br0'/>
  <model type='rtl8139'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
  <target port='0'/>
</serial>
<console type='pty'>
  <target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes'/>
<sound model='ac97'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
  <model type='cirrus' vram='9216' heads='1'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</memballoon>
</devices>
<qemu:commandline>
<qemu:arg value='-nodefaults'/>
<qemu:arg value='-vga'/>
<qemu:arg value='none'/>
<qemu:arg value='-device'/>
<qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
<qemu:arg value='-device'/>
<qemu:arg value='vfio-pci,Host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,rombar=0'/>
<qemu:arg value='-device'/>
<qemu:arg value='vfio-pci,Host=04:00.1,bus=root.1,addr=00.1'/>
<qemu:arg value='-bios'/>
<qemu:arg value='/usr/share/seabios/bios.bin'/>
<qemu:arg value='-cpu'/>
<qemu:arg value='Host,kvm=off'/>
</qemu:commandline>
</domain>
6
htfree

Je viens de le faire aujourd'hui - à peu près comme "Fox" décrit, sauf modifier l'entrée du contrôleur PCI au lieu de la supprimer - changer "PCI-racine" sur "PCIE-ROOD"

Ensuite, il se plaint de tout ce qui concerne un paramètre lié au bus - je pense que vous pouvez laisser l'article mais supprimer la spécification. J'ai également dû supprimer les entrées liées à l'USB (le contrôleur intégré PIIX3 nécessite un bus PCI, soit quelque chose à cet effet).

Je ne sais pas si vous essayez toujours de le faire - mais j'attendais-je, je l'ai appris pour quelqu'un d'autre qui la recherche.

4
Pat Sullivan

Il existe un patch disponible pour la question sous-jacente (étant que QEMU ne vous permettra pas de se lier à un bus racine PCIe, nécessaire pour les clients Windows sur Q35):

http://lists.nongnu.org/archive/html/qemu-devel/2015-10/msg05385.html

4
Josh

Dernière virt-gestionnaire (1.1.0) prend en charge l'architecture de réglage sur VM Création. Vous ne pouvez pas le changer plus tard.

Avec virsh edit, Je devine un peu, mais j'essaierais de supprimer le contrôleur PCI et tous les paramètres liés au bus (comme <address />. Et changer

<type Arch='i686' machine='pc-i440fx-2.1'>hvm</type>

à

<type Arch='i686' machine='pc-q35'>hvm</type>

Normalement, j'offrais cela dans un commentaire, car il devinait plus, mais c'est trop long. Je vais le supprimer si cela ne fonctionne pas.

d'ailleurs. celles <qemu:arg /> À la fin pourrait causer des problèmes aussi. Si vous rencontrez des problèmes, essayez de supprimer ceux-ci aussi.

2
Fox

Essayez au lieu de PC-i440fx-2.1 ci-dessus

Voir un exemple à - https://gist.github.com/lyarbean/7036986

Je dirigerais manuellement Qemu avec -M Q35 ou -M? Pour vérifier la version que vous avez installée le supporte vraiment

ht

1
Neil McGill