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
- Urządzenia w grupie IOMMU
9
są odłączane od sterowników. - Wyświetlane są identyfikatory PCI urządzeń.
- Maszyna wirtualna
PPPwn_Ps4
jest uruchamiana. - 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.