Guest User

KVM / QEMU: VGA Passthrough

a guest
Apr 9th, 2014
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. # Hardware:
  2. i7 4771
  3. ASRock Z87 Extreme6
  4. AMD HD6950 1GB
  5. # Software:
  6. Kubuntu 14.04
  7. QEMU emulator version 1.7.91 (Debian 2.0.0~rc1+dfsg-0ubuntu2)
  8. Linux 3.14.0-999-generic (kernel . ubuntu . com/~kernel-ppa/mainline/daily/2014-04-08-trusty/)
  9.  
  10. ----------------------------------- /etc/modules
  11. blacklist radeon
  12. pci-stub
  13. vfio-pci
  14. vfio-iommu-type1 allow_unsafe_interrupts=1
  15. pci-stub ids=1002:6719,1002:aa80,8086:1539
  16. ----------------------------------- /etc/default/grub
  17. GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on pci-stub.ids=1002:6719,1002:aa80,8086:1539 vfio_iommu_type1.allow_unsafe_interrupts=1 quiet splash"
  18.  
  19. -----------------------------------
  20. BEFORE EVERYTHING:
  21. # ethernet
  22. echo "8086 1539" > /sys/bus/pci/drivers/pci-stub/new_id
  23. echo 0000:04:00.0 > /sys/bus/pci/devices/0000:04:00.0/driver/unbind
  24. echo 0000:04:00.0 > /sys/bus/pci/drivers/pci-stub/bind
  25. echo "8086 1539" > /sys/bus/pci/drivers/pci-stub/remove_id
  26.  
  27. --------------------- ONE: RUN pci-assign:
  28.  
  29. echo "1002 6719" > /sys/bus/pci/drivers/pci-stub/new_id
  30. echo "0000:01:00.0" > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
  31. echo "0000:01:00.0" > /sys/bus/pci/drivers/pci-stub/bind
  32. echo "1002 6719" > /sys/bus/pci/drivers/pci-stub/remove_id
  33.  
  34. echo "1002 aa80" > /sys/bus/pci/drivers/pci-stub/new_id
  35. echo 0000:01:00.1 > /sys/bus/pci/devices/0000:01:00.1/driver/unbind
  36. echo 0000:01:00.1 > /sys/bus/pci/drivers/pci-stub/bind
  37. echo "1002 aa80" > /sys/bus/pci/drivers/pci-stub/remove_id
  38.  
  39.  
  40. qemu-system-x86_64 \
  41. -bios /usr/share/qemu/bios.bin \
  42. -boot menu=on \
  43. -enable-kvm \
  44. -vga qxl \
  45. \
  46. -m 4G \
  47. -cpu host \
  48. -smp 6,sockets=1,cores=6,threads=1 \
  49. -device pci-assign,host=04:00.0,rombar=0 \
  50. -soundhw hda \
  51. \
  52. -name "win81_pci_assign" \
  53. -M pc-1.3 \
  54. \
  55. -drive file=/opt/vm/test.qcow2,id=disk,format=qcow2,if=virtio,cache=writethrough,aio=native \
  56. \
  57. -device pci-assign,host=01:00.0,id=hostpci0
  58.  
  59.  
  60.  
  61. --------------------- TWO: RUN vfio-pci:
  62. echo "0000:01:00.0" > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
  63. echo "0000:01:00.0" > /sys/bus/pci/drivers/vfio-pci/bind
  64. echo 0000:01:00.1 > /sys/bus/pci/devices/0000:01:00.1/driver/unbind
  65. echo 0000:01:00.1 > /sys/bus/pci/drivers/vfio-pci/bind
  66.  
  67. qemu-system-x86_64 \
  68. -bios /usr/share/qemu/bios.bin \
  69. -boot menu=on \
  70. -enable-kvm \
  71. -vga qxl \
  72. \
  73. -m 4G \
  74. -cpu host \
  75. -smp 6,sockets=1,cores=6,threads=1 \
  76. -device pci-assign,host=04:00.0,rombar=0 \
  77. -soundhw hda \
  78. \
  79. -name "win81_vfio_pci" \
  80. -M q35 \
  81. \
  82. -drive file=/opt/vm/test.qcow2,id=disk,format=qcow2 \
  83. -device ide-hd,bus=ide.0,drive=disk \
  84. \
  85. -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
  86. -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on
  87.  
  88.  
  89.  
  90. --------------------- THREE: RESET GPU with vfio-pci:
  91. echo "0000:01:00.0" > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
  92. echo "0000:01:00.0" > /sys/bus/pci/drivers/vfio-pci/bind
  93. echo 0000:01:00.1 > /sys/bus/pci/devices/0000:01:00.1/driver/unbind
  94. echo 0000:01:00.1 > /sys/bus/pci/drivers/vfio-pci/bind
  95.  
  96. qemu-system-x86_64 \
  97. -bios /usr/share/qemu/bios.bin \
  98. -enable-kvm \
  99. \
  100. -m 512 \
  101. -cpu host \
  102. -smp 4,sockets=1,cores=4,threads=1 \
  103. \
  104. -M q35 \
  105. \
  106. -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
  107. -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
  108. -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1
Advertisement
Add Comment
Please, Sign In to add comment