Проброс видеокарты в виртуальную машину Qemu/KVM: различия между версиями

Материал из support.qbpro.ru
imported>Vix
(Новая страница: «Для начала: гость должен буть установлен на EFI а не на BIOS (ну в 2018’ом и хост желательно бы...»)
 
imported>Vix
Нет описания правки
 
Строка 2: Строка 2:
Как перенести винду с Legacy на EFI есть простая инструкция: [https://www.intel.ru/content/www/ru/ru/support/articles/000024558/memory-and-storage/intel-optane-memory.html тут]
Как перенести винду с Legacy на EFI есть простая инструкция: [https://www.intel.ru/content/www/ru/ru/support/articles/000024558/memory-and-storage/intel-optane-memory.html тут]


Для начала в файле /etc/default/grub в параметр GRUB_CMDLINE_LINUX_DEFAULT добавим intel_iommu=on (или amd_iommu=on в зависимости от вендора вашего CPU) и rd.driver.pre=vfio-pci
Для начала в файле  
/etc/default/grub  
в параметр  
GRUB_CMDLINE_LINUX_DEFAULT  
добавим  
intel_iommu=on (или amd_iommu=on в зависимости от вендора вашего CPU) и rd.driver.pre=vfio-pci


  GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda3 splash=silent quiet showopts intel_iommu=on rd.driver.pre=vfio-pci"
  GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda3 splash=silent quiet showopts intel_iommu=on rd.driver.pre=vfio-pci"

Текущая версия от 12:40, 3 октября 2019

Для начала: гость должен буть установлен на EFI а не на BIOS (ну в 2018’ом и хост желательно бы уже держать на EFI) Как перенести винду с Legacy на EFI есть простая инструкция: тут

Для начала в файле

/etc/default/grub 

в параметр

GRUB_CMDLINE_LINUX_DEFAULT 
добавим 
intel_iommu=on (или amd_iommu=on в зависимости от вендора вашего CPU) и rd.driver.pre=vfio-pci
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda3 splash=silent quiet showopts intel_iommu=on rd.driver.pre=vfio-pci"

И переустановим grub

затем в /etc/modprobe.d/vfio.conf пропишем options vfio-pci ids=FIRSTID,SECONDID где FIRSTID и SECONDID это id видеокарты и её звуковой карты (нужно обе) которые можно посмотреть в выхлопе скрипта

#!/bin/bash
shopt -s nullglob
for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  printf 'IOMMU Group %s ' "$n"
  /sbin/lspci -nns "${d##*/}"
done;

options vfio-pci ids=10de:128b,10de:0e0f

Если у вас не радеон и не quadro (тоесть geForce) то в xml файл нашей виртуалки добавим

<kvm>
      <hidden state="on"></hidden>
</kvm>

сразу после

<apic></apic>

Перезагружаемся и добавляем в виртуалку два PCI устройства которые указывали выше

Запускаем виртуалку

За инфу спасибо вот этому чуваку: https://forums.opensuse.org/showthread.php/522015-VGA-PCI-Passthrough-guide-on-openSuSE-Leap-42-2

UPD:

Поскольку проброшенное реальное устройство в виртуальную среду не даёт использовать suspend будет полезно сделать ещё кое что чтобы виртуальная машина выключалась а не убивалась при выключении хоста:

#ON_SHUTDOWN=suspend
ON_SHUTDOWN=shutdown
SHUTDOWN_TIMEOUT=60

и после этого

systemctl enable libvirt-guests.service
systemctl restart libvirt-guests.service

ИСТОЧНИКИ: