Im Trying to PASSTHROUGH my pci for 2 days

Kujtim

Member
Oct 29, 2017
76
0
6
32
I'm trying to PASSTHROUGH pci-e card i dont know why VM is not started

The first my cpu is Intel Xeon

This is the first step

root@skynet-ks:~# dmesg | grep -e DMAR -e IOMMU
ACPI: DMAR 00000000df7c2b26 001C8 (v01 Intel OEMDMAR 00060000 LOHR 00000001)
Intel-IOMMU: enabled
dmar: IOMMU 0: reg_base_addr fed14000 ver 1:0 cap c90780106f0462 ecap f02076
IOMMU 0xfed14000: using Queued invalidation
IOMMU: Setting RMRR:
IOMMU: Setting identity map for device 0000:00:1d.7 [0xdf7eb000 - 0xdf7ec000]
IOMMU: Setting identity map for device 0000:00:1d.2 [0xdf7e9000 - 0xdf7ea000]
IOMMU: Setting identity map for device 0000:00:1d.1 [0xdf7e8000 - 0xdf7e9000]
IOMMU: Setting identity map for device 0000:00:1d.0 [0xdf7e7000 - 0xdf7e8000]
IOMMU: Setting identity map for device 0000:00:1a.7 [0xdf7ea000 - 0xdf7eb000]
IOMMU: Setting identity map for device 0000:00:1a.2 [0xdf7e6000 - 0xdf7e7000]
IOMMU: Setting identity map for device 0000:00:1a.1 [0xdf7e5000 - 0xdf7e6000]
IOMMU: Setting identity map for device 0000:00:1a.0 [0xdf7e4000 - 0xdf7e5000]
IOMMU: Setting identity map for device 0000:00:1a.0 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Setting identity map for device 0000:00:1a.1 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Setting identity map for device 0000:00:1a.2 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Setting identity map for device 0000:00:1a.7 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Setting identity map for device 0000:00:1d.0 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Setting identity map for device 0000:00:1d.1 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Setting identity map for device 0000:00:1d.2 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Setting identity map for device 0000:00:1d.7 [0xdf7cc000 - 0xdf7dc000]
IOMMU: Prepare 0-16MiB unity mapping for LPC
IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0x1000000]

Second step (2.) i edit this line vi /etc/default/grub
And this is my config after edititng

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Step 3: i run this command " update-grub" and i reboot

Step 4: after reboot i run this command "dmesg | grep ecap"
And i have this result

root@skynet-ks:~# dmesg | grep ecap
dmar: IOMMU 0: reg_base_addr fed14000 ver 1:0 cap c90780106f0462 ecap f02076

Step 5 : i shut down my VM

Step 6: i run this command "lspci "
and i have this results

00:00.0 Host bridge: Intel Corporation 5520/5500/X58 I/O Hub to ESI Port (rev 13)
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 13)
00:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 13)
00:07.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 7 (rev 13)
00:14.0 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub System Management Registers (rev 13)
00:14.1 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 13)
00:14.2 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 13)
00:1a.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
00:1a.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
00:1a.2 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6
00:1a.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
00:1c.0 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 1
00:1c.4 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 5
00:1c.5 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 6
00:1d.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
00:1d.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
00:1d.2 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
00:1d.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)
00:1f.0 ISA bridge: Intel Corporation 82801JIR (ICH10R) LPC Interface Controller
00:1f.2 SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller
00:1f.3 SMBus: Intel Corporation 82801JI (ICH10 Family) SMBus Controller
01:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787 Gigabit Ethernet PCI Express (rev 02)
02:00.0 Multimedia controller: Device 544d:6178
03:00.0 Multimedia controller: Device 544d:6178
04:00.0 VGA compatible controller: NVIDIA Corporation G98 [Quadro NVS 295] (rev a1)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 04)
05:00.1 Serial controller: Realtek Semiconductor Co., Ltd. Device 816a (rev 01)
05:00.2 Serial controller: Realtek Semiconductor Co., Ltd. Device 816b (rev 01)
05:00.3 IPMI SMIC interface: Realtek Semiconductor Co., Ltd. Device 816c (rev 01)
07:09.0 FireWire (IEEE 1394): LSI Corporation FW322/323 [TrueFire] 1394a Controller (rev 70)
3f:00.0 Host bridge: Intel Corporation Xeon 5600 Series QuickPath Architecture Generic Non-core Registers (rev 02)
3f:00.1 Host bridge: Intel Corporation Xeon 5600 Series QuickPath Architecture System Address Decoder (rev 02)
3f:02.0 Host bridge: Intel Corporation Xeon 5600 Series QPI Link 0 (rev 02)
3f:02.1 Host bridge: Intel Corporation Xeon 5600 Series QPI Physical 0 (rev 02)
3f:02.2 Host bridge: Intel Corporation Xeon 5600 Series Mirror Port Link 0 (rev 02)
3f:02.3 Host bridge: Intel Corporation Xeon 5600 Series Mirror Port Link 1 (rev 02)
3f:02.4 Host bridge: Intel Corporation Xeon 5600 Series QPI Link 1 (rev 02)
3f:02.5 Host bridge: Intel Corporation Xeon 5600 Series QPI Physical 1 (rev 02)
3f:03.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Registers (rev 02)
3f:03.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Target Address Decoder (rev 02)
3f:03.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller RAS Registers (rev 02)
3f:03.4 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Test Registers (rev 02)
3f:04.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Control (rev 02)
3f:04.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Address (rev 02)
3f:04.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Rank (rev 02)
3f:04.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Thermal Control (rev 02)
3f:05.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Control (rev 02)
3f:05.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Address (rev 02)
3f:05.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Rank (rev 02)
3f:05.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Thermal Control (rev 02)
3f:06.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Control (rev 02)
3f:06.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Address (rev 02)
3f:06.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Rank (rev 02)
3f:06.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Thermal Control (rev 02)

Step 6: i edit /etc/pve/nodes/skynet-ks/qemu-server/100.conf
this is my file after editing
bootdisk: ide0
cores: 4
ide0: secondhdd:100/vm-100-disk-2.qcow2,size=32G
ide2: secondhdd:iso/ubuntu-14.04.1-server-amd64.iso,media=cdrom
memory: 4096
name: DVB-C
net0: e1000=86:2B:E9:81:8E:F2,bridge=vmbr0
numa: 0
ostype: l26
smbios1: uuid=a0ba12fe-9a6e-4dab-a2ae-40ec6451bf7a
sockets: 1
hostpci0: 02:00.0
hostpci1: 03:00.0


Step 7: Im trying to start my VM 100 but is not starting i have this error

kvm: -device pci-assign,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10: Failed to assign device "hostpci0": Operation not permitted
kvm: -device pci-assign,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10: Device initialization failed.
kvm: -device pci-assign,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10: Device 'kvm-pci-assign' could not be initialized
TASK ERROR: start failed: command '/usr/bin/kvm -id 100 -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -vnc unix:/var/run/qemu-server/100.vnc,x509,password -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=a0ba12fe-9a6e-4dab-a2ae-40ec6451bf7a' -name DVB-C -smp '4,sockets=1,cores=4,maxcpus=4' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000' -vga cirrus -cpu kvm64,+lahf_lm,+x2apic,+sep -m 4096 -k en-us -cpuunits 1000 -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'pci-assign,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10' -device 'pci-assign,host=03:00.0,id=hostpci1,bus=pci.0,addr=0x11' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:26d19da63fd8' -drive 'file=/mnt/secondhdd/images/100/vm-100-disk-2.qcow2,if=none,id=drive-ide0,format=qcow2,aio=native,cache=none,detect-zeroes=on' -device 'ide-hd,bus=ide.0,unit=0,drive=drive-ide0,id=ide0,bootindex=100' -drive 'file=/mnt/secondhdd/template/iso/ubuntu-14.04.1-server-amd64.iso,if=none,id=drive-ide2,media=cdrom,aio=native' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' -device 'e1000,mac=86:2B:E9:81:8E:F2,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300'' failed: exit code 1

Im trying for to 2 days to passthrough my pci but i cant please help me
 
make sure that the kernel does not load the modules for those devices
you can see what module is loaded for them with
lspci -k

also check your iommu groups with
Code:
find /sys/kernel/iommu_groups -type l | sort -t '/' -n -k 5
 
make sure that the kernel does not load the modules for those devices
you can see what module is loaded for them with
lspci -k

also check your iommu groups with
Code:
find /sys/kernel/iommu_groups -type l | sort -t '/' -n -k 5
root@skynet-ks:~# find /sys/kernel/iommu_groups -type l | sort -t '/' -n -k 5
find: `/sys/kernel/iommu_groups': No such file or directory

this is the results
 
does your mainboard/cpu support vt-d ? is it enabled in the bios?
 
mhmm maybe your platform does not properly support iommu groups?
 
i mean your mainboard/cpu combination
 
find: `/sys/kernel/iommu_groups': No such file or directory
this means, that the kernel does not see any iommu groups, which are necessary for pci passthrough
if you tell me what exact mainboard/cpu you use, maybe i can tell you if this is the problem
 
this means, that the kernel does not see any iommu groups, which are necessary for pci passthrough
if you tell me what exact mainboard/cpu you use, maybe i can tell you if this is the problem

My mainboard is fujitsu siemens m470
CPU is
Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
 
ok it seems your mainboard as well as your cpu supports vt-d
are you sure you enabled this in the bios?

also did you verify that the host does not load the kernel modules for the cards ?

did you read this:
https://pve.proxmox.com/wiki/Pci_passthrough
 
ok it seems your mainboard as well as your cpu supports vt-d
are you sure you enabled this in the bios?

also did you verify that the host does not load the kernel modules for the cards ?

did you read this:
https://pve.proxmox.com/wiki/Pci_passthrough
are you sure you enabled this in the bios?
Yes of course you have pictur about VT-D

also did you verify that the host does not load the kernel modules for the cards ?
how to verify?
And i read steps on WIKI
Yes of course
 

Attachments

  • 1509701144154.JPEG
    1509701144154.JPEG
    100.7 KB · Views: 50
your photo shows that interrupt remapping and coherency is disabled, maybe this is the problem?
 
it is definitely worth a try
 

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!