En/virtualbox 3d acceleration
Welcome to Simone Giustetti's wiki pages.
Languages: English - Italiano
Virtualbox 3-D Acceleration
In this article I will show how to enable 3-D graphic acceleration for a virtual machine running a Slackware Linux system.
Virtualbox is a virtualization product: a software which can "emulate" machines and run Operating Systems and programs on them with near native performances. 3-D acceleration is one among the many features offered by Virtualbox; a feature included with release 2.x of the software. Given a Host system with 3-D capable hardware, a correctly configured virtual guest system can use 3-D graphic acceleration.
We'll use the official Virtualbox package that can be downloaded from:
Let's suppose Virtualbox was correctly installed on the host system, that a virtual Linux machine was configured and that later a release 13.1 Slackware Linux operating system was installed on that guest virtual machine. Three operations have to be executed in order to enable 3-D acceleration:
Enable 3-D Acceleration Functionality for the Guest System
Open the Virtualbox console and select the desired machine. Open the option window by right clicking the mouse on the Settings button. A new mask will open. Select the Display tab then check option "Enable 3D Acceleration".
Guest Addin Installation
Start the virtual machine. Open menù Devices and select option Devices->CD/DVD Devices->VboxGuestAdditions.iso. Login as root to the guest system and mount the cdrom by running the command:
Move to the /mnt/cdrom directory. The command ls -la should return a list of binary files:
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
Run the package designed for the architecture of your virtual machine. VBoxLinuxAdditions-x86.run for 32 bit virtual machines and VBoxLinuxAdditions-x86.run for 64 bit ones.
The installer program will automatically compile and install the needed kernel modules. Each step will produce a verbose output on your console. At installation conclusion, try to run a graphical session. The X server distributed with Slackware 13.1 should start without a /etc/X11/xorg.conf configuration file. If problems arise, create the configuration file by running command xorgsetup and answering some questions concerning your hardware and preferences. The xorgsetup command will scan your hardware and save a proper xorg.conf file in directory /etc/X11.
Guest System Configuration
Some Linux distributions require no additional step. Slackware on the other hand, due to some discrepancies in the driver and libraries installation paths, needs some tweaking to enable the graphic 3-D acceleration. Some symptoms are:
1 – Low framerate. When running the glxgears program, the returned frame rate never exceeds 300 frames per second. 300 fps is a real low value and a direct consequence of software 3-D rendering.
2 – Your X session log file, /var/log/X.log.x where x is a number between 0 and 9 that identifies the open session, contains some error messages:
(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
The message is a self explainatory one. It states that since no proper driver was found the system reverts to software rendering.
To solve the issue you need to create two links in order for Virtualbox to find the needed drivers. From a shell prompt run:
ln -s /usr/lib/xorg/modules/dri /usr/lib/dri ln -s /usr/lib/VBoxOGL.so /usr/lib/xorg/modules/dri/vboxvideo_dri.so
Then restart the X server. An increase in frame rate should be noted soon after. Frames per second should now top 1500 fps. The X session log file will now contain the message:
(EE) AIGLX error: vboxvideo does not export required DRI extension (EE) AIGLX: reverting to software rendering
I could not find a way to eliminate that error message, but i does not seem to affect the rendering process.
All operations described so far require root privileges. If you want to enable 3-D acceleration for users with lower permissions please:
Add the user to the video group
Impose permission 0666 for the dri X module by updating the configuration file /etc/X11/xorg.conf
Last but not least verify that creation rules for the Virtualbox device drivers are not root centered. Check for file 60-vboxadd.rules in directory /etc/udev/rules.d. The file should exist and contain two lines:
KERNEL=="vboxguest", NAME="vboxguest", OWNER="root", MODE="0660" KERNEL=="vboxuser", NAME="vboxuser", OWNER="root", MODE="0666"
otherwise create the file and populate it with the two rows above.
For any feedback, questions, errors and such, please e-mail me at studiosg [at] giustetti [dot] net.
Languages: English - Italiano