Hey guys,
I am trying to passthrough an Intel HD 2500 graphics card. My CPU is i5-3470 and chipset is Q77, both are supporting VT-x and VT-d. I am always getting a black screen. So is it generally possible to passthrough an Intel graphics card?
I tried to follow the steps in the following thread, but there is no end conclusion for this problem. http://forum.proxmox.com/threads/19078-GPU-passthrough-possible-with-my-hardware
Do I really need the VGA arbiter patch for i915 driver or is it implemented in the proxmox kernel? Or do I maybe need the newest kernel version from pvetest repository? https://lkml.org/lkml/2014/5/9/517
I saw in the kernel changelog that proxmox enabled vfio xvga. Have they implemented the patch or is it something else? https://github.com/proxmox/pve-kernel-3.10.0/blob/master/changelog.Debian
If anyone can give me a solution it would be great!
Thanks,
Felix
So here is my setup...
pveversion -v
/etc/apt/sources.list.d/proxmox.list:
/etc/default/grub:
/etc/modules:
/etc/modprobe.d/iommu_unsafe_interrupts.conf:
lspci -nn
/etc/pve/qemu-server/100.conf:
/usr/bin/vfio-bind:
/root/start.sh:
I am trying to passthrough an Intel HD 2500 graphics card. My CPU is i5-3470 and chipset is Q77, both are supporting VT-x and VT-d. I am always getting a black screen. So is it generally possible to passthrough an Intel graphics card?
I tried to follow the steps in the following thread, but there is no end conclusion for this problem. http://forum.proxmox.com/threads/19078-GPU-passthrough-possible-with-my-hardware
Do I really need the VGA arbiter patch for i915 driver or is it implemented in the proxmox kernel? Or do I maybe need the newest kernel version from pvetest repository? https://lkml.org/lkml/2014/5/9/517
I saw in the kernel changelog that proxmox enabled vfio xvga. Have they implemented the patch or is it something else? https://github.com/proxmox/pve-kernel-3.10.0/blob/master/changelog.Debian
If anyone can give me a solution it would be great!
Thanks,
Felix
So here is my setup...
pveversion -v
Code:
pve-manager/3.3-5/bfebec03 (running kernel: 3.10.0-5-pve)
root@kvmtest:~# pveversion -v
proxmox-ve-2.6.32: 3.3-139 (running kernel: 3.10.0-5-pve)
pve-manager: 3.3-5 (running version: 3.3-5/bfebec03)
pve-kernel-3.10.0-5-pve: 3.10.0-19
pve-kernel-2.6.32-34-pve: 2.6.32-140
lvm2: 2.02.98-pve4
clvm: 2.02.98-pve4
corosync-pve: 1.4.7-1
openais-pve: 1.1.4-3
libqb0: 0.11.1-2
redhat-cluster-pve: 3.2.0-2
resource-agents-pve: 3.9.2-4
fence-agents-pve: 4.0.10-1
pve-cluster: 3.0-15
qemu-server: 3.3-3
pve-firmware: 1.1-3
libpve-common-perl: 3.0-19
libpve-access-control: 3.0-15
libpve-storage-perl: 3.0-25
pve-libspice-server1: 0.12.4-3
vncterm: 1.1-8
vzctl: 4.0-1pve6
vzprocps: 2.0.11-2
vzquota: 3.1-2
pve-qemu-kvm: 2.1-10
ksm-control-daemon: 1.1-1
glusterfs-client: 3.5.2-1
/etc/apt/sources.list.d/proxmox.list:
Code:
# deb http://download.proxmox.com/debian wheezy pvetest
deb http://download.proxmox.com/debian wheezy pve-no-subscription
/etc/default/grub:
Code:
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
...
/etc/modules:
Code:
loop
kvm
kvm_intel
/etc/modprobe.d/iommu_unsafe_interrupts.conf:
Code:
options vfio_iommu_type1 allow_unsafe_interrupts=1
lspci -nn
Code:
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller [8086:0150] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0152] (rev 09)
00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04)
00:16.0 Communication controller [0780]: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 [8086:1e3a] (rev 04)
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04)
00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] (rev 04)
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 [8086:1e26] (rev 04)
00:1f.0 ISA bridge [0601]: Intel Corporation Q77 Express Chipset LPC Controller [8086:1e47] (rev 04)
00:1f.2 SATA controller [0106]: Intel Corporation 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] [8086:1e02] (rev 04)
00:1f.3 SMBus [0c05]: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller [8086:1e22] (rev 04)
/etc/pve/qemu-server/100.conf:
Code:
bootdisk: virtio0
cores: 3
hostpci0: 00:02.0,x-vga=on,pcie=1,driver=vfio
hotplug: 1
ide2: local:iso/virtio-win-0.1-94.iso,media=cdrom,size=68326K
keyboard: de
machine: q35
memory: 4096
name: windows7
net0: e1000=3E:09:DA:0B:8F:A9,bridge=vmbr0
ostype: win7
sockets: 1
tablet: 0
virtio0: local:100/vm-100-disk-1.raw,format=raw,size=80G
/usr/bin/vfio-bind:
Code:
#!/bin/bash
modprobe vfio-pci
for dev in "$@"; do
vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
device=$(cat /sys/bus/pci/devices/$dev/device)
if [ -e /sys/bus/pci/devices/$dev/driver ]; then
echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
fi
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done
Code:
qm showcmd 100 > /root/start.sh
/root/start.sh:
Code:
#!/bin/sh
vfio-bind 0000:00:02.0
/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 -name windows7 -smp sockets=1,cores=3 -nodefaults -boot menu=on -vga none -no-hpet -cpu kvm64,kvm=off,hv_spinlocks=0xffff,hv_relaxed,+lahf_lm,+x2apic,+sep -k de -m 4096 -readconfig /usr/share/qemu-server/pve-q35.cfg -device vfio-pci,host=00:02.0,id=hostpci0,bus=ich9-pcie-port-1,addr=0x0,x-vga=on -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 -iscsi initiator-name=iqn.1993-08.org.debian:01:c3d7a3e9eb5 -drive file=/var/lib/vz/template/iso/virtio-win-0.1-94.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 -drive file=/var/lib/vz/images/100/vm-100-disk-1.raw,if=none,id=drive-virtio0,format=raw,aio=native,cache=none,detect-zeroes=on -device virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100 -netdev type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown -device e1000,mac=3E:09:DA:0B:8F:A9,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300 -rtc driftfix=slew,base=localtime -machine type=q35 -global kvm-pit.lost_tick_policy=discard