OpenGL + 3D Rendering funcționează excelent cu iommu dacă aveți suport VT-D pe placa de bază + procesor.
Adăuga intel_iommu=on iommu=pt
la /etc/default/grub/
, actualizați grub și reporniți. (AMD este amd_iommu=on
)
De exemplu.:
$ grep CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt"
Pentru completitudine, ar trebui să menționez /etc/default/grub/
trebuie editat ca root (utilizați sudo
sau su
).
Comanda de actualizare este:
update-grub
pentru Debian/Ubuntu/Derivatives și:
grub2-mkconfig -o /boot/grub/grub.cfg
pentru majoritatea celorlalte distribuții (pe unele distribuții, grub2-mkconfig
comanda este numită grub-mkconfig
).
- Trebuie remarcat faptul că acesta este un mod de trecere „slab” (partajat), care nu preia întregul dispozitiv.„True” passthrough elimină complet dispozitivul de sub controlul gazdei. Asta necesită o
vfio-pci=vendId:devId
stub fie în grub fie /etc/modprobe.d
(și o reconstrucție a initramfs). Pentru mai multe informații despre trecere, acesta este un loc bun pentru a începe: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
- Există modalități și mai elaborate de a vă partaja grafica, fiecare furnizor are propria sa versiune. De exemplu, Intel-GVT-g pentru intel iGD-uri: https://wiki.archlinux.org/title/Intel_GVT-g
Aici e al meu xml
pentru dispozitivele în cauză:
Display Spice - notă: cu passthrough nu puteți activa un server la distanță:
<graphics type="spice">
<listen type="none"/>
<image compression="off"/>
<gl enable="yes"/>
</graphics>
Video Virtio (schimbarea de la QXL):
<video>
<model type="virtio" heads="1" primary="yes">
<acceleration accel3d="yes"/>
</model>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
Fără legătură, folosesc un dispozitiv bloc zvol pe configurația de instalare ZFS a Ubuntu. Este o opțiune disponibilă numai în versiunea Ubuntu Desktop:
zvol-urile sunt foarte grozave, deoarece puteți comuta între utilizarea lor pentru kvm-qemu
și [container-sistem][5]
(doar Linux, evident) - plus snapshot și trimiteți/primiți-le.
Dar, deoarece zvols imită un disc obișnuit, ele demonstrează că ați putea folosi un disc dedicat pentru VM dacă aveți spațiu pentru a instala unul.
Odată ce faci zvol, da-i o structură de partiție gpt folosind fdisk/sgdisk/{g}s-au despărțit
etc. la fel ca orice alt disc. Odată ce am creat partiția gpt, am folosit ISO Windows pentru a face partiționarea propriu-zisă.
btrfs
are ceva similar care ar trebui să fie mai bine susținut de systemd-nspawn
, dar nu sunt sigur dacă le puteți opera ca pe un dispozitiv bloc qemu
.
Ultimul sfat: trebuia să copiez unele fișiere de la gazdă pe VM. Nu poți monta cu adevărat un folder din Linux --> Windows, dar aș putea monta partiția (nr. 3) Windows creată pe zvol în gazdă ca o partiție obișnuită NTFS.
Deci, în timp ce VM-ul era oprit, am montat partiția 3 /mnt
, am copiat folderul de care aveam nevoie, umount /mnt
partiția și porniți VM-ul de rezervă.
Uneori este puțin dificil să-ți dai seama ce să faci în acea situație, așa că m-am gândit să-l introduc. Oamenii din ghidurile pe care le-am citit mi-au recomandat și configurarea partajării Samba dacă aveți nevoie de ceva mai frecvent sau, de asemenea, de la distanță la mașinile virtuale Windows folosind OpenSSH-Server și PSRemoting, deci există o mulțime de opțiuni (Windows are chiar și SSHFS acum, dacă verifici Ciocolata).