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.