Jan Taplick Architektur

Gerätezuweisung für PCIe-Passthrough

In diesem Abschnitt lernst du, wie man PCIe-Geräte (z. B. GPU, Netzwerkkarte, USB-Controller) korrekt an eine virtuelle Maschine (VM) durchreicht.


1. Ziel der Gerätezuweisung

Bestimmte Hardware-Komponenten sollen direkt von der VM kontrolliert werden, z. B.:

Das Hostsystem verliert dabei den Zugriff auf diese Geräte.


2. Geräteadresse ermitteln

Verwende folgenden Befehl zur Identifikation der Geräte:

lspci -nn

Beispielausgabe:

03:00.0 Ethernet controller [0200]: Intel Corporation X540-AT2 [8086:1528]
01:00.0 VGA compatible controller: NVIDIA Corporation GP102 [10de:1b06]
01:00.1 Audio device: NVIDIA GP102 HDMI Audio Controller [10de:10ef]

3. XML-Konfiguration der VM bearbeiten

Öffne die Konfiguration mit:

sudo virsh edit win11

Füge im Abschnitt <devices> folgenden Block für jedes Gerät ein:

<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
    <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
  </source>
</hostdev>

Passe bus, slot und function gemäß der Ausgabe von lspci an.

Wiederhole dies für:


4. Wichtige Hinweise

sudo virsh dumpxml win11 | grep hostdev

5. Test in der VM

Starte die VM und öffne den Geräte-Manager unter Windows. Die Geräte sollten korrekt erkannt und ggf. Treiber automatisch installiert werden.

Für NVIDIA-Grafikkarten installiere die offiziellen Windows-Treiber manuell.


Fazit

Die direkte Gerätezuweisung ist einer der leistungsfähigsten Mechanismen in QEMU/libvirt. Sie erfordert jedoch präzise Vorbereitung (VFIO, IOMMU) und exakte Konfiguration auf XML-Ebene.


Weiter mit: Windows-VM: Einrichtung und Installation