Win7 is very picky about pcie assignments and fails with 'error 12' the way we add hospci devices.
To combat that, we simply give the hostpci device a normal port instead. Start with address 0x10, so that we have space before those devices, and between them and the ones configured in pve-q35.cfg should we need it in the future. Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- changes from v1: * improve comments and commit message * change 'win7' postfix to a more general 'bus0' PVE/QemuServer.pm | 8 +++++++- PVE/QemuServer/PCI.pm | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 38b511e..8b09bcd 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -3524,7 +3524,13 @@ sub config_to_command { my $pcie = $d->{pcie}; if($pcie){ die "q35 machine model is not enabled" if !$q35; - $pciaddr = print_pcie_addr("hostpci$i"); + # win7 wants to have the pcie devices directly on the pcie bus + # instead of in the root port + if ($winversion == 7) { + $pciaddr = print_pcie_addr("hostpci${i}bus0"); + } else { + $pciaddr = print_pcie_addr("hostpci$i"); + } }else{ $pciaddr = print_pci_addr("hostpci$i", $bridges, $arch, $machine_type); } diff --git a/PVE/QemuServer/PCI.pm b/PVE/QemuServer/PCI.pm index 29b8943..f22f5ad 100644 --- a/PVE/QemuServer/PCI.pm +++ b/PVE/QemuServer/PCI.pm @@ -145,6 +145,11 @@ sub print_pcie_addr { hostpci1 => { bus => "ich9-pcie-port-2", addr => 0 }, hostpci2 => { bus => "ich9-pcie-port-3", addr => 0 }, hostpci3 => { bus => "ich9-pcie-port-4", addr => 0 }, + # win7 is picky about pcie assignments + hostpci0bus0 => { bus => "pcie.0", addr => 16 }, + hostpci1bus0 => { bus => "pcie.0", addr => 17 }, + hostpci2bus0 => { bus => "pcie.0", addr => 18 }, + hostpci3bus0 => { bus => "pcie.0", addr => 19 }, }; if (defined($devices->{$id}->{bus}) && defined($devices->{$id}->{addr})) { -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel