PCI Passthrough with old PCI cards not working

Capoeira

New Member
Jul 16, 2022
14
0
1
It follows the PCI passthrough instruction. Virtualization is enabled in the BIOS (I haven't found the VT-D option).

I have 3 PCI cards that I want to be seen by a virtual machine (Windows 2000). These are the last 3 PCI cards.

Screenshot_20220716-113259_Dropbox.jpg

The motherboard is MS-98L9-V2.0.

But unfortunately this list of my cards is missing:
Screenshot_20220716-113316_Dropbox.jpg


Why can't these cards be added to the machine?

What could be causing this?
 
One problem that I see is that alle of the 4 devices on the screenshot are part of IOMMU group 12. So you can't just passthrough the latter 3, you always need to passthroug hthe whole IOMMU group with all its members.
 
  • Like
Reactions: Capoeira
One problem that I see is that alle of the 4 devices on the screenshot are part of IOMMU group 12. So you can't just passthrough the latter 3, you always need to passthroug hthe whole IOMMU group with all its members.
Ok, and how can i Passthrough whole 12 group?
 
@Dunuin is right but the first one in the screenshot is a PCI bridge, so it does not need to be passed explicitly and shouldn't be a problem. It is important that there are no other devices in group 12.
It is strange that not all groups are shown in the web GUI. You could edit the VM configuration file (nano /etc/pve/qemu-server/100.conf) yourself and manually add the lines: hostpci0: 0000:04:02.0 hostpci1: 0000:04:03.0 hostpci2: 0000:04:04.0
Try it and let us know what errors you encounter.

EDIT: Probably the devices in group 12 are not shown in the web GUI because they are all contain the word "Bridge".
 
Last edited:
You can check that with this command: for a in /sys/kernel/iommu_groups/*; do find $a -type l; done | sort --version-sort
root@proxmox:~# for a in /sys/kernel/iommu_groups/*; do find $a -type l; done | sort --version-sort /sys/kernel/iommu_groups/0/devices/0000:00:00.0 /sys/kernel/iommu_groups/1/devices/0000:00:01.0 /sys/kernel/iommu_groups/2/devices/0000:00:02.0 /sys/kernel/iommu_groups/3/devices/0000:00:08.0 /sys/kernel/iommu_groups/4/devices/0000:00:14.0 /sys/kernel/iommu_groups/5/devices/0000:00:16.0 /sys/kernel/iommu_groups/6/devices/0000:00:17.0 /sys/kernel/iommu_groups/7/devices/0000:00:1d.0 /sys/kernel/iommu_groups/8/devices/0000:00:1d.1 /sys/kernel/iommu_groups/9/devices/0000:00:1f.0 /sys/kernel/iommu_groups/9/devices/0000:00:1f.2 /sys/kernel/iommu_groups/9/devices/0000:00:1f.3 /sys/kernel/iommu_groups/9/devices/0000:00:1f.4 /sys/kernel/iommu_groups/10/devices/0000:00:1f.6 /sys/kernel/iommu_groups/11/devices/0000:02:00.0 /sys/kernel/iommu_groups/12/devices/0000:03:00.0 /sys/kernel/iommu_groups/12/devices/0000:04:02.0 /sys/kernel/iommu_groups/12/devices/0000:04:03.0 /sys/kernel/iommu_groups/12/devices/0000:04:04.0

@leesteken I have din't get any errors.
 

Attachments

  • 2022-07-16 12_02_41-proxmox - Proxmox Virtual Environment.jpg
    2022-07-16 12_02_41-proxmox - Proxmox Virtual Environment.jpg
    109.3 KB · Views: 8
Can you please show us any messages from Syslog (or journalctl) or the Task log?
root@proxmox:~# journalctl -- Journal begins at Fri 2022-07-15 14:01:13 CEST, ends at Sat 2022-07-16 12:21:22 CEST. -- Jul 15 14:01:13 proxmox kernel: Linux version 5.15.30-2-pve (build@proxmox) (gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1 SMP PVE 5.15.30-3 (Fri, 22> Jul 15 14:01:13 proxmox kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.15.30-2-pve root=/dev/mapper/pve-root ro quiet Jul 15 14:01:13 proxmox kernel: KERNEL supported cpus: Jul 15 14:01:13 proxmox kernel: Intel GenuineIntel Jul 15 14:01:13 proxmox kernel: AMD AuthenticAMD Jul 15 14:01:13 proxmox kernel: Hygon HygonGenuine Jul 15 14:01:13 proxmox kernel: Centaur CentaurHauls Jul 15 14:01:13 proxmox kernel: zhaoxin Shanghai Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR' Jul 15 14:01:13 proxmox kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 Jul 15 14:01:13 proxmox kernel: x86/fpu: xstate_offset[3]: 832, xstate_sizes[3]: 64 Jul 15 14:01:13 proxmox kernel: x86/fpu: xstate_offset[4]: 896, xstate_sizes[4]: 64 Jul 15 14:01:13 proxmox kernel: x86/fpu: Enabled xstate features 0x1f, context size is 960 bytes, using 'compacted' format. Jul 15 14:01:13 proxmox kernel: signal: max sigframe size: 2032 Jul 15 14:01:13 proxmox kernel: BIOS-provided physical RAM map: Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000058000-0x0000000000058fff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000059000-0x000000000009efff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000000009f000-0x00000000000fffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000100000-0x000000003fffffff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000040000000-0x00000000403fffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000040400000-0x0000000085d9dfff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000085d9e000-0x0000000085d9efff] ACPI NVS Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000085d9f000-0x0000000085d9ffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000085da0000-0x000000008c0e7fff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008c0e8000-0x000000008c56afff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008c56b000-0x000000008c64bfff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008c64c000-0x000000008ca01fff] ACPI NVS Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008ca02000-0x000000008cf6afff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008cf6b000-0x000000008cffefff] type 20 Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008cfff000-0x000000008cffffff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008d000000-0x000000008fffffff] reserved lines 1-37...skipping... -- Journal begins at Fri 2022-07-15 14:01:13 CEST, ends at Sat 2022-07-16 12:21:22 CEST. -- Jul 15 14:01:13 proxmox kernel: Linux version 5.15.30-2-pve (build@proxmox) (gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1 SMP PVE 5.15.30-3 (Fri, 22> Jul 15 14:01:13 proxmox kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.15.30-2-pve root=/dev/mapper/pve-root ro quiet Jul 15 14:01:13 proxmox kernel: KERNEL supported cpus: Jul 15 14:01:13 proxmox kernel: Intel GenuineIntel Jul 15 14:01:13 proxmox kernel: AMD AuthenticAMD Jul 15 14:01:13 proxmox kernel: Hygon HygonGenuine Jul 15 14:01:13 proxmox kernel: Centaur CentaurHauls Jul 15 14:01:13 proxmox kernel: zhaoxin Shanghai Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers' Jul 15 14:01:13 proxmox kernel: x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR' Jul 15 14:01:13 proxmox kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 Jul 15 14:01:13 proxmox kernel: x86/fpu: xstate_offset[3]: 832, xstate_sizes[3]: 64 Jul 15 14:01:13 proxmox kernel: x86/fpu: xstate_offset[4]: 896, xstate_sizes[4]: 64 Jul 15 14:01:13 proxmox kernel: x86/fpu: Enabled xstate features 0x1f, context size is 960 bytes, using 'compacted' format. Jul 15 14:01:13 proxmox kernel: signal: max sigframe size: 2032 Jul 15 14:01:13 proxmox kernel: BIOS-provided physical RAM map: Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000058000-0x0000000000058fff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000059000-0x000000000009efff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000000009f000-0x00000000000fffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000000100000-0x000000003fffffff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000040000000-0x00000000403fffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000040400000-0x0000000085d9dfff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000085d9e000-0x0000000085d9efff] ACPI NVS Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000085d9f000-0x0000000085d9ffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x0000000085da0000-0x000000008c0e7fff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008c0e8000-0x000000008c56afff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008c56b000-0x000000008c64bfff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008c64c000-0x000000008ca01fff] ACPI NVS Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008ca02000-0x000000008cf6afff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008cf6b000-0x000000008cffefff] type 20 Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008cfff000-0x000000008cffffff] usable Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x000000008d000000-0x000000008fffffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x00000000fe000000-0x00000000fe010fff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x00000000fed00000-0x00000000fed00fff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved Jul 15 14:01:13 proxmox kernel: BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved lines 1-43
 
Can you show us the lines from around the time of starting the VM that failed?
EDIT: What does the Task log show (bottom of the web GUI) for the failed start?

EDIT2: From the screenshot I gather that another device is using the same IRQ as the devices you want to passthrough. Unless you can change the IRQ's in the BIOS or by moving the devices into other PCI slots, I don't think passthrough will work.
 
Last edited:
Can you show us the lines from around the time of starting the VM that failed?
EDIT: What does the Task log show (bottom of the web GUI) for the failed start?
I hope this is this all what you asking for :)
 

Attachments

  • 2022-07-16 12_44_13-proxmox - Proxmox Virtual Environment.jpg
    2022-07-16 12_44_13-proxmox - Proxmox Virtual Environment.jpg
    307 KB · Views: 12
Last edited:
You need to double click on the failed task to get a popup with a detailed explanation of the error.
 
You need to double click on the failed task to get a popup with a detailed explanation of the error.
() Task viewer: VM 100 - Start OutputStatus Stop kvm: -device vfio-pci,host=0000:04:03.0,id=hostpci1,bus=pci.0,addr=0x11: vfio 0000:04:03.0: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy TASK ERROR: start failed: QEMU exited with code 1
 
My goal is to have 4 PCI card, and all of them Passthrough. Mainboard has only 4 PCI Slot.
That why moving device to another slot will not help.
I will check later what options are on BIOS.

What's can be the issue, Mainboard or PCI cards? If I will use another PC with this PCI cards, can this Passthrough working?
 
What's can be the issue, Mainboard or PCI cards? If I will use another PC with this PCI cards, can this Passthrough working?
The motherboard shares the IRQ of an onboard device with one or more of those PCI slots. Unless you can change this in the BIOS, I don't know what to do.
My experience with PCI cards (not PCIe/PCI-express) is that passthrough is hopeless. If it's not iRQ then it's DMA issues. They don't seem to work well with IOMMU. But maybe other people have better experiences or your devices work better than my PCI TV-tuners.
 
@leesteken I have been use another Computer with one PCI Card.
Unfortunately the same problem. On Shell i have found this card:
Bash:
04:03.0 Bridge: PLX Technology, Inc. PCI <-> IOBus Bridge (rev 02)
        Subsystem: Arcom Control Systems Ltd PCI <-> IOBus Bridge
        Flags: medium devsel, IRQ 5
        Memory at fbdff000 (32-bit, non-prefetchable) [size=128]
        I/O ports at df00 [size=4]

But on the Proxmox GUI is not on the list.
 

Attachments

  • 2022-07-29 13_35_50-Magna - Proxmox Virtual Environment.jpg
    2022-07-29 13_35_50-Magna - Proxmox Virtual Environment.jpg
    261.3 KB · Views: 11