Wirtualizacja Podzespołów PCI na Debianie

Opis

W tym przewodniku pokazujemy, jak wykonać **passthrough urządzeń PCI** do maszyny wirtualnej z wykorzystaniem technologii IOMMU na systemie Debian. Skrypt wykonuje:

  • Odłączanie urządzeń z grupy IOMMU
  • Wyświetlanie informacji o urządzeniach
  • Uruchamianie maszyny wirtualnej z przypisanymi urządzeniami
  • Uruchomienie noVNC w celu zdalnego dostępu

Wymagania

  • Debian z włączoną obsługą IOMMU
  • QEMU/KVM + libvirt
  • Skonfigurowana maszyna wirtualna (np. PPPwn_Ps4)
  • Pakiety: lspci, websockify, novnc

Skrypt

Poniżej znajduje się pełna treść skryptu odpowiedzialnego za przygotowanie środowiska:

#!/bin/bash

for device in /sys/kernel/iommu_groups/9/devices/*; do
    device_name=$(basename $device)

    echo "Unbinding device $device_name"
    echo "$device_name" | sudo tee /sys/bus/pci/devices/$device_name/driver/unbind
done

for device in /sys/kernel/iommu_groups/9/devices/*; do
    device_name=$(basename $device)
    lspci -n -s $device_name
done


sudo virsh start PPPwn_Ps4

echo "Starting noVNC on port 8090..."
sudo websockify --web /usr/share/novnc/ 8090 localhost:5900 &

Działanie skryptu

  1. Urządzenia w grupie IOMMU 9 są odłączane od sterowników.
  2. Wyświetlane są identyfikatory PCI urządzeń.
  3. Maszyna wirtualna PPPwn_Ps4 jest uruchamiana.
  4. noVNC zostaje uruchomione na porcie 8090 z przekierowaniem do VNC :5900.

Uwagi końcowe

Pamiętaj, że niektóre urządzenia mogą nie wspierać passthrough. Zadbaj także o odpowiednią konfigurację BIOSu (VT-d/IOMMU musi być włączone).

Skrypt może być dodany do systemowego zadania startowego lub uruchamiany ręcznie po restarcie hosta.

 

Sidebar