Na początku mam kilka pytań czy dobrze rozumiem o co chodzi z tym PCI passthrough - głównie karty graficznej:
1. Czy tego można użyć na jednym komputerze tak aby maszyna wirtualna gościa używała karty graficznej hosta?
2. Czy do tego trzeba mieć dwie karty graficzne aby jedna wyświetlała obraz systemu hosta a druga obraz systemu gościa?
3. Czy udostępnione urządzenie PCI jest współdzielone tzn. czy działa jednocześnie w systemie hosta i gościa czy działa tylko w systemie gościa?
4. Czy to możliwe jest tylko przez sieć jak w ESXi, że on udostępnia urządzenia PCI a na drugim komputerze w maszynie wirtualnej możemy je wykorzystać?
Interesuje mnie używanie maszyny wirtualnej WinXP w Qemu na Linux'ie bo tam działa akceleracja KVM (próbowałem wcześniej Qemu na Windows i HAXM ale to działa wolno).
Maszyna WinXP 64-bit działa bardzo dobrze z kartą emulowaną VMware (VMVGA) bo do niej mam sterowniki dla systemu gościa WinXP 64-bit (wziąłem z VMware). Do kart Cirrus czy QXL znalazłem sterowniki ale tylko dla WinXP 32-bit więc ich nie używam. Maszyna skonfigurowana jako Generic z takimi opcjami między innymi:
bios, i440FX, CPU 2, 1GB RAM, mysz i klawiatura PS2, Spice server, sound sb16, video VMVGA (karta VMware)
Teraz chciałbym jednak zamiast emulowanej karty graficznej VMware użyć prawdziwej karty graficznej laptopa Intel HD3000 za pomocą funkcji PCI passthrough.
Dodaję więc do konfiguracji maszyny tę kartę:
Odpalam maszynę ale na ekranie są przez chwilę kolorowe paski i ekran gaśnie. Laptop chyba się zawiesza bo połączenie SSH w Putty z Windows do Debiana jest rozłączane i nie odpowiada ping do Debiana.
Co robię źle? Kiedyś próbowałem tego za pomocą VMware ESXi gdzie na X220 był serwer a dostęp do myszyny był przez sieć na innym komputerze ale coś to nie bardzo działało. Na Archlinux coś tam załapało ale się popsuło - https://www.elektroda.pl/rtvforum/viewtopic.php?p=17801430#17801430
Dodano po 42 [minuty]:
Dobra już chyba wiem jak to działa. Udostępniłem sobie inne niż karta graficzna urządzenie PCI a mianowicie czytnik kart SD i w maszynie w systemie gościa WinXP bez problemu mogę używać prawdziwego czytnika (po zainstalowaniu sterowników) i wtedy on nie jest dostępny w systemie Hosta tylko w systemie gościa. Po zatrzymaniu maszyny wirtualnej automatycznie karta SD pojawia się w systemie Hosta w Debian.
Wniosek z tego taki iż urządzenia PCI można używać tylko na wyłączność w maszynie wirtualnej więc jeśli chodzi o kartę graficzną to potrzebujemy drugiej - jedna wyświetla obraz systemu hosta a druga gościa.
Dodano po 8 [godziny] 55 [minuty]:
albo
Udało mi się zrobić coś takiego, że odpalam Debiana do konsoli tekstowej - w pliku /etc/default/grub ma być tak:
Następnie instaluję VNC serwer, który automatycznie startuje i wtedy za pomocą VNC Viewer z innego komputera w sieci (albo przez kabel sieciowy) można połączyć się z serwerem i odpalić virt-manager a w nim udostępnić kartę graficzną hosta. Przy uruchamianiu maszyny WinXP ekran hosta gaśnie - bez żadnych kolorowych pasków, Debian się nie zawiesza, system gościa WinXP wykrywa kartę, można nawet zainstalować sterowniki ale w menedżerze urządzeń jest wykrzyknik - błąd Code 12, że brakuje wolnych zasobów sprzętowych:

1. Czy tego można użyć na jednym komputerze tak aby maszyna wirtualna gościa używała karty graficznej hosta?
2. Czy do tego trzeba mieć dwie karty graficzne aby jedna wyświetlała obraz systemu hosta a druga obraz systemu gościa?
3. Czy udostępnione urządzenie PCI jest współdzielone tzn. czy działa jednocześnie w systemie hosta i gościa czy działa tylko w systemie gościa?
4. Czy to możliwe jest tylko przez sieć jak w ESXi, że on udostępnia urządzenia PCI a na drugim komputerze w maszynie wirtualnej możemy je wykorzystać?
Interesuje mnie używanie maszyny wirtualnej WinXP w Qemu na Linux'ie bo tam działa akceleracja KVM (próbowałem wcześniej Qemu na Windows i HAXM ale to działa wolno).
- zainstalowałem Debian 9 64-bit na laptopie X220
- w biosie włączona VT-d i virtualizacja oraz CPU Intel wspiera oczywiście
- zainstalowałem Qemu w ten sposób:
Code:
apt-get install virt-manager
- dodałem do cmdline gruba opcję intel_iommu=on oraz zrobiłem update-grub i restart systemu
- upewniam się iż IOMMU działa:
Code:
root@debian:~# dmesg | grep IOMMU
[ 0.000000] DMAR: IOMMU enabled
[ 0.029650] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1 - instaluję serwer SSH aby mieć dostęp przez sieć
Maszyna WinXP 64-bit działa bardzo dobrze z kartą emulowaną VMware (VMVGA) bo do niej mam sterowniki dla systemu gościa WinXP 64-bit (wziąłem z VMware). Do kart Cirrus czy QXL znalazłem sterowniki ale tylko dla WinXP 32-bit więc ich nie używam. Maszyna skonfigurowana jako Generic z takimi opcjami między innymi:
bios, i440FX, CPU 2, 1GB RAM, mysz i klawiatura PS2, Spice server, sound sb16, video VMVGA (karta VMware)
Teraz chciałbym jednak zamiast emulowanej karty graficznej VMware użyć prawdziwej karty graficznej laptopa Intel HD3000 za pomocą funkcji PCI passthrough.
Dodaję więc do konfiguracji maszyny tę kartę:

Odpalam maszynę ale na ekranie są przez chwilę kolorowe paski i ekran gaśnie. Laptop chyba się zawiesza bo połączenie SSH w Putty z Windows do Debiana jest rozłączane i nie odpowiada ping do Debiana.
Co robię źle? Kiedyś próbowałem tego za pomocą VMware ESXi gdzie na X220 był serwer a dostęp do myszyny był przez sieć na innym komputerze ale coś to nie bardzo działało. Na Archlinux coś tam załapało ale się popsuło - https://www.elektroda.pl/rtvforum/viewtopic.php?p=17801430#17801430
Dodano po 42 [minuty]:
Dobra już chyba wiem jak to działa. Udostępniłem sobie inne niż karta graficzna urządzenie PCI a mianowicie czytnik kart SD i w maszynie w systemie gościa WinXP bez problemu mogę używać prawdziwego czytnika (po zainstalowaniu sterowników) i wtedy on nie jest dostępny w systemie Hosta tylko w systemie gościa. Po zatrzymaniu maszyny wirtualnej automatycznie karta SD pojawia się w systemie Hosta w Debian.
Wniosek z tego taki iż urządzenia PCI można używać tylko na wyłączność w maszynie wirtualnej więc jeśli chodzi o kartę graficzną to potrzebujemy drugiej - jedna wyświetla obraz systemu hosta a druga gościa.
Dodano po 8 [godziny] 55 [minuty]:
albo
Udało mi się zrobić coś takiego, że odpalam Debiana do konsoli tekstowej - w pliku /etc/default/grub ma być tak:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on systemd.unit=multi-user.target"
Następnie instaluję VNC serwer, który automatycznie startuje i wtedy za pomocą VNC Viewer z innego komputera w sieci (albo przez kabel sieciowy) można połączyć się z serwerem i odpalić virt-manager a w nim udostępnić kartę graficzną hosta. Przy uruchamianiu maszyny WinXP ekran hosta gaśnie - bez żadnych kolorowych pasków, Debian się nie zawiesza, system gościa WinXP wykrywa kartę, można nawet zainstalować sterowniki ale w menedżerze urządzeń jest wykrzyknik - błąd Code 12, że brakuje wolnych zasobów sprzętowych:
