Genomträngning av grafikkort i Vmwares ESXi

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
psynoise
EF Sponsor
Inlägg: 7158
Blev medlem: 26 juni 2003, 19:23:36
Ort: Landvetter

Genomträngning av grafikkort i Vmwares ESXi

Inlägg av psynoise »

Virtuella maskiner kan användas till mycket. Vanligt är att testa programvara i ett isolerat system. Men populärt är också att köra flera olika operativsystem på samma fysiska dator. Jag själv använder Vmware ESXi för att tillhandahålla flera virtuella serverar med bland annat NFS, Subversion, DLNA samt musik och videouppspelning från samma dator.

Väldigt många verkar ha problem med att få igång direkt åtkomst (pass-through) av grafikkort i Vmwares virtuella maskiner. Efter att jag läst många trådar på olika forum tror jag det svåra handlar om att hitta rätt konfiguration av olika program- och maskinvara. Jag har själv experimenterat och fått en del funktioner att fungera medan andra har fungerat dåligt.

Nedan presenteras vad jag lyckats med vilket kanske kan vara till inspiration för andra som är intresserade.

Komponenter

Maskinvara

Moderkort ASRock B75 Pro3
Centralprocessor Intel Core i5 3330 med inbyggt grafikprocessor Intel HD 2500
Sekundärt grafikkort ATI Radeon HD 5450

Programvara

Vmware ESXi 5.0.0
vSphere Client 5.0.0
Debian Linux Wheezy med AMDs Catalyst grafikdrivrutin
Alternativt Microsoft Windows 7 med AMDs Catalyst

Inställningar i Vmware ESXi

Hantering av virtuella maskiner och inställningar i ESXi har jag gjort via Vmwares vShpere klientprogramvara.

Utöver vanlig konfiguration vill vi lägga till det sekundära grafikkortet för direkt åtkomst från den virtuella maskinen. I Vmware vSphere görs detta under
  • Configuration -> Hardware -> Advanced Settings -> Edit (över rutan).
Lägg där till de PCI-enheter som grafikkortet består av och behöver. Sedan måste ESXi startas om. Därefter läggs PCI-enheterna till den virtuella maskinen under Edit settings.

Pågrund begränsningen kallat PCI hole för 32-bitars system måste konfigurationsfilen *.vmx redigeras om mer än 2 GByte primärminne önskas tilldelas. I *.vmx ska följande rader läggas till
  • pciHole.start = "1200"
    pciHole.end = "2200"
Detta gjorde jag genom att ladda ner *.vmx från vSphere och sedan efter redigering ladda upp filen igenom som ersätts automatiskt.

Konfiguration i Debian Linux

En virtuell maskin med Debian Linux använder jag helst via SSH vilket går snabbt och enkelt. Men för er som vill ha grafiskt gränssnitt går det också att logga in via vSphere. Men se då till att ha Vmware-tools installerat för att få bättre prestanda.

Tyvärr saknas stöd hos den öppna källkods xorg-modulen radeon för sekundära grafikkort. Stödet behövs då det finns två grafikprocessorer, här HD 2500 och Radeon HD 5450. Istället för radeon har jag använt AMDs Catalyst med xorg-modulen fglrx. Installation av fglrx sker i terminal via
  • # aptitude install fglrx-driver
Xorg lyckas inte ställa in konfigurationen själv vilket annars är vanligt idag. Men som tur är går det att skapa en fungerande /etc/X11/xorg.conf genom
  • # aticonfig --intitial
Nu ska det gå att starta X och visning via det sekundera grafikkortet Radeon HD 5450. För att se hur 3d-accelerationen fungerar finns kommandona fglrxinfo och gl_glxgears.

Via programpaketet mesa-utils finns också glxinfo och glxgears som kan vara användbart.

Ytterligare erfarenheter

3D-accelerationen fungerade smärtfritt. Dock hade jag hoppas på bättre 2D-prestanda där jag ej lyckas med att spela upp video med bra kvalité.

Radeon HD 5450 har stöd för videoacceleration vilket kan användas via VAAPI (libva) i videospelarna VLC och Mplayer. Dock kan både VLC och Mplayer behövas kompileras om då jag vet att Debians programpaket med mplayer ej inkluderar VAAPI-stöd.

Med kommandot och programpaketet vainfo fås information om VAAPI. På min maskin ser allt rätt ut. Dock fungerar inte uppspelning bra där CPU-tiden inte räcker till. Gissningsvis ligger problemet hos AMDs Catalyst.

Referenser

http://www.vmware.com/se/products/vsphere-hypervisor/
http://www.debian.org/index.sv.html
http://en.wikipedia.org/wiki/PCI_hole
https://communities.vmware.com/thread/297072