KVM a VGA passthrough

Jak virtualizovat Window a MAC s VGA passthrough a zvukem v hdmi ?

Podpora HW

Pro úspěšnou virtualizaci je potřeba procesor AMD anebo Intel s podporou virtualizace, tedy AMD-Vi anebo Intel VT-d.

Ověřit lze pomocí

egrep -c '(vmx|svm)' /proc/cpuinfo

Hodí se mít chipset, který podporuje rozdělení do IOMMU groups. Bez něj to lze za určitých podmínek taky, výsledek ale nemusí být uspokojivý. Nezapomeňte také na grafickou kartu.

Osobně mám k dispozici Ryzen 5700G, Radeon 6600XT a 64GB RAM.

Doporučuji vyhradit si i extra myš s klávesnicí a určitě i druhý monitor.

Příprava Linuxu na provoz KVM

Osobně používám Ubuntu a poznatky budou tedy v rámci této distribuce.

Nejdříve si ověříme, zda je kvm k dispozici

sudo kvm-ok

Nainstalujeme požadovaný software

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

Přidáme sebe do skupin libvirt a kvm

sudo adduser user libvirt
sudo adduser user kvm

Ověříme připravenost libvirt

virsh list --all

@doplnit screenshot

sudo systemctl status libvirtd

@doplnit screenshot

Prametry jádra

Pro vyčlenění grafické karty pro kvm je nutné upravit parametry zavaděče grub.

Nejdříve zjistěte vid a pid vaší grafické karty

lspci
lspci -n

V mém případě je karta na sběrnici 03 a VID 1002, PID zařízení jsou 73ff a ab28 (grafika a hdmi zvuk)

@doplnit screenshot

V případě, že chcete v kvm výhradně používat i jiná zařízení, přichází na řadu ověření rozčlenění iommu groups

find /sys/kernel/iommu_groups/ -type l

Pokud je více zařízení ve stejné skupině, lze omezení obejít opatchovaným jádrem s podporou parametru pcie_acs_override. Tato možnost není předmětem tohoto příspěvku, proto přenechám zvídavějším. Není problém najít návod v oblíbeném vyhledávači.

Výsledný GRUB_CMDLINE_LINUX_DEFAULT vypadá v mém případě následovně.

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt kvm.ignore_msrs=1 vfio-pci.ids=1002:73ff,1002:ab28,1022:43ee pcie_acs_override=downstream,multifunction video=efifb:off"

Aktualizace zavaděče

sudo update-grub

Po restartu by zařízení měly být rezervované pro běh v kvm.

Pokud máte vícero hw se stejným vid a pid, je zprovoznění složitější.
O tom snad někdy příště.

Vytvoření virtuálního stroje

Virt manager je poměrně přímočarý nástroj.
Postu uvedený na https://phoenixnap.com/kb/ubuntu-install-kvm je zcela legitimní a neměl by nikomu problémy svoji virtuálku zprovoznit.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *