Installare e usare vmwgfx per VmWare - UPDATED

Guides, tutorials & docs
Post Reply
User avatar
GvMariani
Collaboratore
Collaboratore
Posts: 610
Joined: 27 July 2009, 11:31
ROSA: 2016.1 Fresh R10
OpenMandriva: -
Kernel: 4.19.13-nrj-desktop
Desktop: Plasma 5
country: Italy
Location: Cologno Monzese (MI) - Italia

Installare e usare vmwgfx per VmWare - UPDATED

Post by GvMariani »

BACKGROUND...
VmWare (sia Player che Workstation) praticamente funziona emulando in software i vari dispositivi HW di un PC (VM o macchina virtuale); per sommi capi, il sistema operativo che si installa in una VM (Guest) "pensa" di interagire con una scheda video, audio ecc ecc, mentre in realtà interagisce con il software di emulazione, il quale a sua volta si preoccupa di tradurre e trasmettere al SO (Host) e al PC reali ciò che il Guest richiede.

Quando il SO Guest è Linux, per quanto riguarda l'emulazione video, il driver software utilizzato (vmwlegacy_drv.so) emula una scheda video SVGA (VMware SVGA II Adapter rev 0) ed è poco più che un framebuffer connesso con la scheda video realmente esistente: per questa ragione il software VmWare non può sfruttare adeguatamente le capacità di quella per velocizzare la visualizzazione del SO Guest o per permettere a quest'ultimo di sfruttare adeguatamente cose tipo il Direct Rendering, l'OpenGL o operazioni grafiche 2D/3D che utilizzino l'accelerazione fornita dalle moderne schede video (tutto o quasi dev'essere emulato, caricando la CPU...).

Tuttavia, con l'introduzione nelle librerie Mesa del framework Gallium3D per la costruzione di driver video, la situazione ha cominciato a cambiare: da novembre 2009 è incluso nei sorgenti di Mesa un nuovo driver basato su quell'architettura (vmwgfx) il quale dovrebbe supportare il KMS e l'accesso alla GPU "reale" da parte del SO Guest, in modo da poter provvedere l'accelerazione HW con OpenGL e con qualunque cosa per cui esista in Mesa uno state-tracker corrispondente (X11, OpenCL, X-Video, XvMC...).

Questa guida vuole spiegare come fare per installare e provare il nuovo driver video.

PACCHETTI NECESSARI
Perchè tutto funzioni è necessario aver installato nel SO Guest della VM:
* un kernel >= 2.6.35, compilato con l'opzione "CONFIG_DRM_VMWGFX=m" (tutti i kernel MIB ce l'hanno);
* una versione delle libdrm (o lib64drm, per i SO a 64 bit) >= 2.4.20 e compilata con l'opzione "--enable-vmwgfx-experimental-api" (le libdrm >= 2.4.26 del MIB ce l'hanno già);
* una versione di Mesa >= 7.8 e compilata almeno con le opzioni "--with-state-trackers="dri,glx,xorg"" e "--enable-gallium-svga" (tutte le versioni di Mesa >= 7.10.3 del MIB sono già preparate così);
* possibilmente, una versione di Mesa compilata anche con l'opzione "--enable-gallium-llvm", in modo da permettere a tutti i driver gallium (e quindi anche al vmwgfx) di sfruttare la presenza del compilatore LLVM per compilare al volo (JIT in gergo) i programmi per gli shaders della scheda video host, velocizzando quindi le cose (una delle versioni di Mesa >= 7.10.3 prodotte dal MIB ha abilitato questa opzione);
* il pacchetto contenente il driver xorg corrispondente (x11-driver-video-vmwgfx, che viene automaticamente prodotto nel processo di building delle librerie Mesa con le opzioni indicate sopra);
* un server X >= 1.7.7 (quello di default presente in Mandriva 2010.1/2 va bene).
Per una Mandriva a 64 bit, in http://mib.pianetalinux.org/MIB/2010.2/64/testing/ si trovano tutti i rpm necessari (esclusi ovviamente quelli del kernel e del server X); la versione di Mesa 7.10.3 con l'uso di LLVM abilitato si trova attualmente in http://mib.pianetalinux.org/MIB/2010.2/ ... vmgallium/ (ovviamente la sua installazione richiede l'installazione di LLVM, che si trova nei repo normali). Se invece il SO è a 32 bit, basta sostituire "32" a "64" nelle precedenti URL.


INSTALLAZIONE E USO
Quando parte una VM con Linux come SO Guest, il server grafico è già configurato in modo da cercare di caricare in memoria innanzi tutto il driver vmwgfx e, se non lo trova, in modo da passare automaticamente al vmwlegacy (e nel file di log del Xserver si trovano sempre queste due righe di errore):

Code: Select all

(EE) Failed to load module "vmwgfx" (module does not exist, 0)
(EE) vmware: Please ignore the above warnings about not being able to to load module/driver vmwgfx
Quindi, supponendo di aver già installato le librerie drm e Mesa dai pacchetti MIB, per usare il nuovo driver tutto quello che si deve fare è:

1) installare il driver sperimentale
Tutto il necessario si trova nei seguenti rpm del MIB:
- libdri-drivers-experimental-7.10.1-69.1mib2010.2 (o lib64dri-drivers-experimental-7.10.1-69.1mib2010.2, se il SO è a 64 bit);
- x11-driver-video-vmwgfx-7.10.1-69.1mib2010.2.
Quindi bisogna prima di tutto scaricarli in una directory a scelta (p.es.: Download nella dir home dell'utente in uso al momento); sempre nel caso di un SO a 64 bit:

Code: Select all

cd Download
wget http://mib.pianetalinux.org/MIB/2010.2/64/testing/mesa/mesa-7.10.1/lib64dri-drivers-experimental-7.10.1-69.1mib2010.2.x86_64.rpm
wget http://mib.pianetalinux.org/MIB/2010.2/64/testing/mesa/mesa-7.10.1/x11-driver-video-vmwgfx-7.10.1-69.1mib2010.2.x86_64.rpm
Poi, da una console, come utente root:

Code: Select all

rpm -Uvh *.rpm
2) modificare il file di configurazione del Xserver (xorg.conf)
Ciò è necessario per abilitare le caratteristiche sperimentali di vmwgfx e per permettere di attivare in maniera indipendente l'accelerazione HW per il 2D e per il 3D.
Se in /etc/X11 non è già presente un file chiamato xorg.conf, è necessario crearne uno contenente le seguenti righe, altrimenti basta modificare quello esistente (ovviamente dopo averne salvata una copia) come segue:

Code: Select all

Section "Device"
    Identifier "device1"
    VendorName "VMware"
    BoardName "VMware virtual video card"
    Driver "vmwgfx"
    Option "DPMS"
    Option "2DAccel" "True"
    Option "3DAccel" "True"
    Option "SWCursor" "False"
    Option "DebugFallback" "False"
EndSection
3) (opzionale, ma utile) Predisporre il SO Linux guest per il KMS
Il driver vmwgfx supporta anche il KMS, se il kernel e le libdrm sono abbastanza recenti (un kernel > 2.6.37 e le libdrm sopra indicate certamente lo sono); per abilitarlo, basta inserire nel file /etc/modprobe.preload (da root, ovviamente...) la riga:

Code: Select all

vmwgfx
e poi togliere dalla riga di comando del boot ogni parametro del tipo "vga=xxx", onde evitare conflitti inutili con il framebuffer che quel comando attiva.
Al riavvio del Pc, il nuovo driver dovrebbe caricarsi automaticamente; è possibile controllare che ciò sia avvenuto con il seguente comando:

Code: Select all

dmesg | grep vmwgfx
esso dovrebbe restituire la seguente stringa:

Code: Select all

[drm] Initialized vmwgfx 1.4.0 20100927 for 0000:00:0f.0 on minor 0
Con l'ultima versione disponibile di Mesa (7.10.3), l'abilitazione del KMS sembra garantire una stabilità maggiore quando parte l'X server.

Avviando poi il server grafico (se il SO Guest non parte direttamente in modalità grafica), con un po' di fortuna si dovrebbe notare qualche differenza: accelerazione 2D parzialmente o interamente funzionante, effetti 3D più o meno "a posto"...
Si può verificare che il driver sia correttamente caricato: il comando

Code: Select all

glxinfo |grep OpenGL
dovrebbe restituire un risultato simile a questo:

Code: Select all

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on SVGA3D; build: RELEASE;
OpenGL version string: 2.1 Mesa 7.10.1
Se si incontrano problemi di visualizzazione, è anche possibile provare ad abilitare o solo il 2D o solo il 3D, modificando in "False" le righe pertinenti nel xorg.conf. I risultati possono variare molto: dopotutto è ancora tutto sperimentale... :)

Una volta finito il test, se i risultati non soddisfano, è possibile riportare tutto allo stato iniziale semplicemente:
* ripristinando la copia di xorg.conf che si era salvata in precedenza;
* e rimuovendo il pacchetto x11-driver-video-vmwgfx-7.10.1-69.1mib2010.2.

Buona fortuna e buon divertimento.

GvM
Last edited by GvMariani on 21 June 2011, 12:26, edited 2 times in total.

User avatar
GiuX
Utente
Utente
Posts: 238
Joined: 6 May 2009, 10:21
ROSA: Fresh
OpenMandriva: -
Kernel: 3.6.11nrjQL
Desktop: KDE 4.9.5
country: Italia

Re: Installare e usare vmwgfx per VmWare

Post by GiuX »

Ciao GVM,
una domanda: ma l'integrazione con il gallium3D lo hanno anche i driver radeon???

User avatar
GvMariani
Collaboratore
Collaboratore
Posts: 610
Joined: 27 July 2009, 11:31
ROSA: 2016.1 Fresh R10
OpenMandriva: -
Kernel: 4.19.13-nrj-desktop
Desktop: Plasma 5
country: Italy
Location: Cologno Monzese (MI) - Italia

Re: Installare e usare vmwgfx per VmWare

Post by GvMariani »

GiuX wrote:Ciao GVM,
una domanda: ma l'integrazione con il gallium3D lo hanno anche i driver radeon???
Eep...
in che contesto, scusa?
In una VM di VmWare (che è il contesto originale della guida), la questione non si pone: è emulata sostanzialmente una SVGA e quindi i driver per radeon non c'entrano per nulla, per quanto possano essere installati...
se invece la domanda è in generale:
con una versione di mesa >= 7.10, il driver per chipset radeon 3xx-5xx (AKA r300) è già di default quello basato sull'architettura gallium perché più maturo e performante dell'originale;
per chipset radeon 6xx+, invece, il driver di default è ancora quello classico (AKA r600c), che però non riceve più molte attenzioni: per avere quello galllium-based (r600g) bisogna ancora ricompilare mesa con opportune opzioni... purtroppo non è possibile averli entrambi in un solo package: il build di uno esclude quello dell'altro.

Tuttavia (qui parlo a titolo personale: non so come la pensino gli altri Mibbers...), se ce ne fosse richiesta, credo sia possibile avere nei repo MIB (presumibilmente di testing... non è roba per utenti inesperti questa) ambedue le varianti di rpm, in modo da permetterne il test. In ogni caso, però, non prima del rilascio del kernel 2.6.39 (per il drm) e di mesa 7.11.

GvM

User avatar
GiuX
Utente
Utente
Posts: 238
Joined: 6 May 2009, 10:21
ROSA: Fresh
OpenMandriva: -
Kernel: 3.6.11nrjQL
Desktop: KDE 4.9.5
country: Italia

Re: Installare e usare vmwgfx per VmWare

Post by GiuX »

Il contesto era l secondo... ho ancora problemi con il KMS, solo questa volta con il kernel 2.6.38.2, che con l'opzione radeon.modeset=1 all'avvio mi si blocca con una schermata nera prima dell'avvio del server X... :( ho provato ad avviare senza X, ma il problema è lo stesso, quindi non penso sia un problema grafico... avevo sentito parlare di questi nuovi driver, e volevo provare per vedere se il problema si ripresentava...

per questo problema ho creato un altro post... se potresti controllarlo mi faresti un piacere :D

http://mib.pianetalinux.org/mib/forum/v ... 845#p15845

Ti ringrazio in anticipo.

Post Reply