Windows XP und maschine type Q35

pixelpeter

Well-Known Member
Aug 5, 2015
168
4
58
57
Chemnitz
Hallo,


Ich benötige eine VM bei der ich mehrere PCI Karten durchreichen muss.
Aktuell laufen diese Systeme mit Xen.
Möchte gerne nach Proxmox migrieren allerdings scheitert es an der Durchreichung der PCI devices.
Ich hatte jetzt Hoffnung das ich durch den Maschinen Type q35 das Problem in den Griff bekomme.
Leider kann ich XP damit nicht installieren BSOD 7D.
Festplatten stehen auf IDE die Controller auf Default.
Leider ist eine Migration auf Windows 7 oder 10 nicht möglich.
Hat da jemand einen Tip?

Config:

root@pvetest03:/etc/pve/qemu-server# cat 132.conf
acpi: 0
boot: d
cores: 2
ide0: ceph:vm-132-disk-0,size=32G
ide2: nfs_iso:iso/winxp_pro.iso,media=cdrom,size=603580K
machine: q35
memory: 4096
name: xp
net0: rtl8139=B2:50:A0:B8:FA:45,bridge=vmbr0,tag=305
numa: 1
ostype: wxp
smbios1: uuid=9bfa62e1-eabb-493e-a434-a4461ebbd230
sockets: 1
vmgenid: 8a4349bf-ad4d-47ef-9451-ed56795ce2ee


Peter
 
Hallo Dominik,

Ich brauche jeweils pro Host drei VM's. Wobei eine zwei PCI Geräte und die anderen beiden jeweils 1 PCI Gerät durchreichen müssen.
Die Fehlermeldungen betreffen das jeweilige PCI Gerät. Failed to setup INTx fd: Device or resource busy
Zwei VM starten meistens, bei der dritten kommt dann der Fehler.
Manchmal kommt der Fehler auch schon beim Start der ersten VM. Kein System dahinter zu erkennen.
Habe mich intensiv eingelesen und verschiedenes probiert, allerdings ohne Erfolg.
BIOS auf den Systemen ist aktuell. Systeme selber sind nicht mehr ganz taufrisch. XEN wie gesagt läuft problemlos.

Peter
 
kannst du mal bitte die configs (inklusive pci passthrough) und den output von 'lspci -k' posten?
 
Hallo Dominik,

Hier der Output einer VM welche nicht startet:
kvm: -device vfio-pci,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10: vfio error: 0000:02:00.0: failed to setup INTx fd: Operation not permitted
TASK ERROR: start failed: command '/usr/bin/kvm -id 101 -name dz-v-ids002 -chardev 'socket,id=qmp,path=/var/run/qemu-server/101.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/101.pid -daemonize -smbios 'type=1,uuid=74e65f88-6dbd-48a3-acc4-a2407161598c' -smp '2,sockets=1,cores=2,maxcpus=2' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vnc unix:/var/run/qemu-server/101.vnc,x509,password -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce -m 2048 -object 'memory-backend-ram,id=ram-node0,size=2048M' -numa 'node,nodeid=0,cpus=0-1,memdev=ram-node0' -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' -device 'vmgenid,guid=c7d6c54c-8ad3-429c-a2a9-f82dccbd58b4' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'vfio-pci,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10' -device 'VGA,id=vga,bus=pci.0,addr=0x2' -chardev 'socket,path=/var/run/qemu-server/101.qga,server,nowait,id=qga0' -device 'virtio-serial,id=qga0,bus=pci.0,addr=0x8' -device 'virtserialport,chardev=qga0,name=org.qemu.guest_agent.0' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:d72db8fcd1b9' -drive 'file=/dev/pve/vm-101-disk-0,if=none,id=drive-virtio0,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100' -drive 'file=/dev/pve/vm-101-disk-1,if=none,id=drive-virtio1,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'virtio-blk-pci,drive=drive-virtio1,id=virtio1,bus=pci.0,addr=0xb' -netdev 'type=tap,id=net0,ifname=tap101i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=1E:8F:ED:93:8A:03,netdev=net0,bus=pci.0,addr=0x12,id=net0' -rtc 'driftfix=slew,base=localtime' -machine 'type=pc'' failed: exit code 1

lspci:
root@pve01:~# lspci -k
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
Subsystem: Gigabyte Technology Co., Ltd 4th Gen Core Processor DRAM Controller
Kernel driver in use: hsw_uncore
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
Kernel driver in use: pcieport
Kernel modules: shpchp
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
Subsystem: Gigabyte Technology Co., Ltd Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
Kernel driver in use: i915
Kernel modules: i915
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
Subsystem: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset Family USB xHCI
Kernel driver in use: xhci_hcd
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset Family MEI Controller
Kernel driver in use: mei_me
Kernel modules: mei_me
00:16.3 Serial controller: Intel Corporation 8 Series/C220 Series Chipset Family KT Controller (rev 04)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset Family KT Controller
Kernel driver in use: serial
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset Family USB EHCI
Kernel driver in use: ehci-pci
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset High Definition Audio Controller
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d5)
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d5)
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset Family USB EHCI
Kernel driver in use: ehci-pci
00:1f.0 ISA bridge: Intel Corporation B85 Express LPC Controller (rev 05)
Subsystem: Gigabyte Technology Co., Ltd B85 Express LPC Controller
Kernel driver in use: lpc_ich
Kernel modules: lpc_ich
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
Kernel driver in use: ahci
Kernel modules: ahci
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
Subsystem: Gigabyte Technology Co., Ltd 8 Series/C220 Series Chipset Family SMBus Controller
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
01:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa)
Kernel modules: shpchp
02:00.0 FireWire (IEEE 1394): NEC Corporation uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller (rev 01)
Subsystem: NEC Corporation uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller
Kernel driver in use: vfio-pci
Kernel modules: firewire_ohci
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet
Kernel driver in use: r8169
Kernel modules: r8169
05:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41)
06:00.0 Multimedia controller: Contec Co., Ltd Device 8125
Subsystem: Contec Co., Ltd Device 8125
06:01.0 Serial controller: Advantech Co. Ltd PCI-16xx series PCI multiport serial board (function 0)
Subsystem: Prosys-tec Inc PCI-1602 2-port isolated RS-422/485
06:01.1 Serial controller: Advantech Co. Ltd PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD)
Subsystem: Prosys-tec Inc PCI-1602 2-port isolated RS-422/485
07:00.0 PCI bridge: Texas Instruments XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge (rev 03)
Kernel modules: shpchp
08:00.0 FireWire (IEEE 1394): Texas Instruments XIO2200A IEEE-1394a-2000 Controller (PHY/Link) (rev 01)
Subsystem: Dawicontrol Computersysteme GmbH DC-1394 PCIe
Kernel driver in use: vfio-pci
Kernel modules: firewire_ohci

Und noch die Config der XP VM:
root@pve01:/etc/pve/qemu-server# cat 101.conf
agent: 1
boot: c
bootdisk: virtio0
cores: 2
hostpci0: 02:00.0
hotplug: disk
memory: 2048
name: dz-v-ids002
net0: virtio=1E:8F:ED:93:8A:03,bridge=vmbr0
numa: 1
ostype: wxp
scsihw: virtio-scsi-pci
smbios1: uuid=74e65f88-6dbd-48a3-acc4-a2407161598c
sockets: 1
tablet: 0
vga: std
virtio0: local-lvm:vm-101-disk-0,cache=writeback,size=20G
virtio1: local-lvm:vm-101-disk-1,size=1G
vmgenid: c7d6c54c-8ad3-429c-a2a9-f82dccbd58b4


Peter
 
danke, kannst du auch den output von 'dmesg' posten?
 
sieht so aus als könnten deine devices (karte/mainboard) kein interrupt remapping und müssen daher statisch einen irq am host haben

nun ist aber der schon belegt von einem anderen device
genirq: Flags mismatch irq 16. 00000000 (vfio-intx(0000:02:00.0)) vs. 00000080 (ehci_hcd:usb1)

nämlich vom 'ehci_hcd:usb1'

bei xen funktioniert das ganze anders soweit ich weiß, d.h. macht es dort wahrscheinlich keine probleme

entweder versuchen das problematische gerät zu deaktivieren/auszubauen
oder neuere devices verwenden die das interrupt remapping können

siehe auch diese mail
https://www.redhat.com/archives/vfio-users/2017-November/msg00066.html
 
Danke Dominik,

Die eine Karte ist eine PCI Karte, da werde ich gar keine andere bekommen.
Ich muss mal googeln wie man das betreffende Gerät deaktivieren kann. Ist ein USB Hostkontroller.

Peter
 
OK, das PCI device habe ich deaktiviert. Damit kann ich die Maschine zwar starten, aber die zweite startet dann nicht mehr. Die startet mit den eingeschalteten PCI Device und belegt dann neben dem USB HOST den IRQ 16.
Scheinbar wollen die Karten alle auf den Interrupt 16.
Kann man das irgendwo einstellen?

Peter
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!