Virtualbox 3d acceleration

Revision as of 21:53, 12 April 2011 by Wikiuser (talk | contribs)

Benvenuti nella pagina Wiki di Simone Giustetti.


Languages: English - Italiano



Accelerazione 3-D in Virtualbox

Nel corso dell'articolo vedremo come abilitare l'accelerazione grafica 3-D per una macchina virtuale su cui sia installata una distribuzione Slackware Linux.


Virtualbox è un prodotto di virtualizzazione: un programma in grado di creare Pc virtuali su cui installare un sistema operativo e far girare programmi come se si trattasse di macchine reali. Tra le molte caratteristiche che Virtualbox emula vi è l'accelerazione 3-D; aggiunta ufficialmente con la versione 2.x del programma. Dato un sistema ospite dotato dell'opportuno hardware, il sistema virtuale ospitato "opportunamente configurato" può usufruire dell'accelerazione grafica hardware.

Si supponga di utilizzare il pacchetto ufficiale di Virtualbox scaricato dal sito:

  http://www.virtualbox.org/wiki/Downloads

Si supponga inoltre di aver installato il software sul sistema ospite ed aver creato una macchina Linux virtuale. Sulla macchina virtuale è stato installato un sistema operativo Linux Slackware versione 13.1: l'ultima release stabile. Per abilitare l'accelerazione 3-D è necessario eseguire le seguenti operazioni:


Abilitare la funzionalità nella configurazione della macchina.

Aperta la console di Virtualbox si selezioni la macchina desiderata e si apra la finestra delle opzioni mediante click del mouse sul pulsante Settings. Nella maschera così aperta si selezioni l'opzione Display ed infine si spunti l'opzione "Enable 3D Acceleration".


Installare le Guest Addin

Avviata la macchina virtuale, si apra il menù Devices e si selezioni l'opzione Devices->CD/DVD Devices->VboxGuestAdditions.iso. Dopo essersi collegati come utente root sul sistema si esegua il mount del cdrom tramite il comando:

  root@darkstar04:~# mount /mnt/cdrom

Spostandoci nella directory /mnt/cdrom il comando ls -la dovrebbe rendere l'elenco degli eseguibili:

  root@darkstar04:~# ls -la /mnt/cdrom/
  total 30226
  dr-xr-xr-x  4 root root     2048 2010-06-08 13:19 .
  drwxr-xr-x 10 root root     4096 2006-09-26 05:09 ..
  dr-xr-xr-x  3 root root     2048 2010-06-08 13:19 32Bit
  dr-xr-xr-x  2 root root     2048 2010-06-08 13:19 64Bit
  -r-xr-xr-x  1 root root      222 2010-06-02 18:33 AUTORUN.INF
  -r-xr-xr-x  1 root root  3276240 2010-06-08 13:10 VBoxLinuxAdditions-amd64.run
  -r-xr-xr-x  1 root root  2825676 2010-06-08 13:18 VBoxLinuxAdditions-x86.run
  -r-xr-xr-x  1 root root 11205632 2010-06-08 13:09 VBoxSolarisAdditions.pkg
  -r-xr-xr-x  1 root root  7657512 2010-06-08 13:04 VBoxWindowsAdditions-amd64.exe
  -r-xr-xr-x  1 root root  5691768 2010-06-08 13:01 VBoxWindowsAdditions-x86.exe
  -r-xr-xr-x  1 root root   277008 2010-06-08 13:00 VBoxWindowsAdditions.exe
  -r-xr-xr-x  1 root root     4890 2010-06-08 13:14 autorun.sh

Si lanci il pacchetto adatto all'architettura della macchina virtuale. VBoxLinuxAdditions-x86.run per macchina virtuale a 32 bit e VBoxLinuxAdditions-x86.run per una a 64.

  root@darkstar04:~# bash ./VBoxLinuxAdditions-x86.run

Il programma di installazione provvederà a compliare ed installare i moduli necessari rendendo a video un eloquente resoconto delle operazioni eseguite. Terminata l'installazione si provi a lanciare una sessione grafica. La versione di X distribuita con Slackware 13.1 dovrebbe essere in grado di avviarsi senza che sia presente un file /etc/X11/xorg.conf. In caso di problemi si provveda a creare detto file lanciando il comando xorgsetup e rispondendo ad alcune semplici domande. Il comando eseguirà una scansione dello hardware e produrrà un file xorg.conf adeguato.


Configurazione della macchina virtuale

Per alcune distribuzioni Linux, l'esecuzione dei due passi precedenti è sufficiente per abilitare la funzionalità di accelerazione. In Slackware, a causa di una disomogeneità dei percorsi ove vengono installati driver e librerie, bisogna eseguire ancora alcune operazioni. I sintomi del problema sono:

1 – Basso framerate. Lanciato, il programma glxgears renderà un frame rare di circa 300 frame al secondo. Un valore decisamente basso che evidenzia l'impiego di un driver software e non dell'accelerazione hardware.

2 – Il file di log della sessione X, /var/log/X.log.x ove x è un numero compreso tra 0 e 9 che indica la sessione grafica aperta, riporterà stringhe di errore simili a:

  (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/vboxvideo_dri.so failed (/usr/lib/xorg/modules/dri/vboxvideo_dri.so: cannot open shared
  object file: No such file or directory)
  (EE) AIGLX: reverting to software rendering

Il messaggio specifica che non essendo stato trovato il driver opportuno il sistema farà ricorso al rendering software.

Per ovviare al problema devono essere creati due collegamenti in modo che Virtualbox possa trovare i driver necessari. Si eseguano i seguenti comandi:

  ln -s /usr/lib/xorg/modules/dri /usr/lib/dri
  ln -s /usr/lib/VBoxOGL.so /usr/lib/xorg/modules/dri/vboxvideo_dri.so

Si riavvii quindi il server X. Si potrà subito constatare un miglioramento nel frame rate che dovrebbe ora aggirarsi sui 1500 frame al secondo. Il log file della sessione conterrà ora le stringhe:

  (EE) AIGLX error: vboxvideo does not export required DRI extension
  (EE) AIGLX: reverting to software rendering

che non sembrano creare effettivi problemi al processo.

Le operazioni sin qui descritte devono essere eseguite dall'utente root. Per garantire che l'accelerazione 3-D funzioni anche per con permessi inferiori si deve:

Aggiungere l'utente al gruppo video

Impostare i permessi 0666 per il modulo dri di X modificando opportunamente il file /etc/X11/xorg.conf

Verificare che le regole di creazione dei device file relativi a Virtualbox non siano apannaggio esclusivo di root. Nella directory /etc/udev/rules.d dovrebbe esistere il file 60-vboxadd.rules il quale dovrebbe contenere due righe:

  KERNEL=="vboxguest", NAME="vboxguest", OWNER="root", MODE="0660"
  KERNEL=="vboxuser", NAME="vboxuser", OWNER="root", MODE="0666"

nel caso il file non sia presente lo si dovrà creare e popolare con le righe riportare sopra.


Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.


Link esterni




Languages: English - Italiano