VMware SVGA3D Guest Driver

General support questions
Post Reply
agent69
Posts: 1
Joined: 2015/03/06 15:19:14

VMware SVGA3D Guest Driver

Post by agent69 » 2015/03/06 15:28:23

Has anyone been successful installing the VMware SVGA3D guest driver on CentOS 6.5 or 6.6? I've been following the instructions at http://www.mesa3d.org/vmware-guest.html with no luck.

When compiling "vmwgfs" I get the following error:

make -C /lib/modules/2.6.32-358.el6.x86_64/source SUBDIRS=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules
make[1]: Entering directory `/usr/src/kernels/2.6.32-358.el6.x86_64'
CC [M] /root/Desktop/vmwgfx/drm_global.o
In file included from /usr/src/kernels/2.6.32-358.el6.x86_64/arch/x86/include/asm/swiotlb.h:4,
from /usr/src/kernels/2.6.32-358.el6.x86_64/arch/x86/include/asm/dma-mapping.h:14,
from include/linux/dma-mapping.h:104,
from /root/Desktop/vmwgfx/vmwgfx_compat.h:422,
from /root/Desktop/vmwgfx/drm_global.c:35:
include/linux/swiotlb.h:25:41: error: macro "swiotlb_nr_tbl" passed 1 arguments, but takes just 0
make[2]: *** [/root/Desktop/vmwgfx/drm_global.o] Error 1
make[1]: *** [_module_/root/Desktop/vmwgfx] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.32-358.el6.x86_64'
make: *** [modules] Error 2

Any help would be much appreciated.

revoman
Posts: 1
Joined: 2015/03/23 18:31:42

Re: VMware SVGA3D Guest Driver

Post by revoman » 2015/03/23 18:40:00

I'm having this same problem with a RHEL 6.5 system. I've tried both the "devel" and "master" branches of vmwgfx without success.

kkleber
Posts: 2
Joined: 2015/05/08 05:22:22

Re: VMware SVGA3D Guest Driver

Post by kkleber » 2015/05/08 05:46:15

Has anybody solved this problem ?
I have tried to compile the vmwgfx kernel driver also with older brances - without success.

Code: Select all

  CC [M]  /root/Downloads/MESA/vmwgfx/drm_info.o
  CC [M]  /root/Downloads/MESA/vmwgfx/drm_global.o
In file included from /root/Downloads/MESA/vmwgfx/drm_global.c:35:
/root/Downloads/MESA/vmwgfx/vmwgfx_compat.h:378: error: redefinition of ‘struct sg_page_iter’
/root/Downloads/MESA/vmwgfx/vmwgfx_compat.h:388: error: conflicting types for ‘__sg_page_iter_next’
include/linux/scatterlist.h:251: note: previous declaration of ‘__sg_page_iter_next’ was here
/root/Downloads/MESA/vmwgfx/vmwgfx_compat.h:389: error: conflicting types for ‘__sg_page_iter_start’
include/linux/scatterlist.h:252: note: previous declaration of ‘__sg_page_iter_start’ was here
/root/Downloads/MESA/vmwgfx/vmwgfx_compat.h:398: error: conflicting types for ‘sg_page_iter_page’
include/linux/scatterlist.h:259: note: previous definition of ‘sg_page_iter_page’ was here
/root/Downloads/MESA/vmwgfx/vmwgfx_compat.h:408: error: conflicting types for ‘sg_page_iter_dma_address’
include/linux/scatterlist.h:269: note: previous definition of ‘sg_page_iter_dma_address’ was here
In file included from /usr/src/kernels/2.6.32-504.16.2.el6.x86_64/arch/x86/include/asm/swiotlb.h:4,
                 from /usr/src/kernels/2.6.32-504.16.2.el6.x86_64/arch/x86/include/asm/dma-mapping.h:14,
                 from include/linux/dma-mapping.h:104,
                 from /root/Downloads/MESA/vmwgfx/vmwgfx_compat.h:422,
                 from /root/Downloads/MESA/vmwgfx/drm_global.c:35:
include/linux/swiotlb.h:25:41: error: macro "swiotlb_nr_tbl" passed 1 arguments, but takes just 0
make[2]: *** [/root/Downloads/MESA/vmwgfx/drm_global.o] Error 1
make[1]: *** [_module_/root/Downloads/MESA/vmwgfx] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.32-504.16.2.el6.x86_64'
make: *** [modules] Error 2

kkleber
Posts: 2
Joined: 2015/05/08 05:22:22

Re: VMware SVGA3D Guest Driver

Post by kkleber » 2015/05/11 12:04:03

After a weekend full of trying and headache , i found a solution - in my case.

Ok - this is my sequence to install vmwgfx kernel module for CentOS 6
These steps are similar in most cases to http://www.mesa3d.org/vmware-guest.html
Things that i change or add are bold

yum install mesa-libGL-devel xorg-x11-server-devel xorg-x11-util-macros
yum install libXrender-devel
yum install automake gcc libtool expat-devel kernel-devel git-core
yum install makedepend flex bison
yum install gcc-c++

1.)
cd drm
./autogen.sh --prefix=/usr --libdir=/usr/lib64
make
sudo make install

2.)
cd mesa
./autogen.sh --prefix=/usr --libdir=/usr/lib64 --with-gallium-drivers=svga --with-dri-drivers= --enable-xa --disable-dri3 --enable-sysfs
make
make install
reboot

3.)
cd xf86-video-vmware
./autogen.sh --prefix=/usr --libdir=/usr/lib64
make
sudo make install

4.)
cd vmwgfx
# Checkout the Version from 21.Sep.2013
git checkout 9ddfeee4cbbe8ffd418841860216c79b8a61192b
# Copy the files from subdir ttm to the main dir - ask yes to overwrite existing
cp ./ttm/* ./
vim vmwgfx_compat.h

near line 212 change the code

Code: Select all

#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
static inline int set_pages_array_wc(struct page **pages, int addrinarray)
{
        return 0;
}
#endif
to

Code: Select all

#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
#define set_pages_array_wc set_pages_array_wc_LOCAL
static inline int set_pages_array_wc_LOCAL(struct page **pages, int addrinarray)
{
        return 0;
}
#endif
make
sudo make install
sudo cp 00-vmwgfx.rules /etc/udev/rules.d
sudo depmod -ae

vmwgfx.ko will be install under /lib/modules/2.6.32-504.16.2.el6.x86_64/extra

To load the kernel module permanently

touch /etc/sysconfig/modules/vmwgfx.modules
chmod +x /etc/sysconfig/modules/vmwgfx.modules
vim /etc/sysconfig/modules/vmwgfx.modules

Code: Select all

#!/bin/sh
exec /sbin/modprobe vmwgfx
Reboot your machine again and cross your fingers ;)

Before vmwgfx kernel module

Code: Select all

[root@localhost mesa]# glxinfo | grep OpenGL
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 2.1 Mesa 10.1.2
OpenGL shading language version string: 1.20
OpenGL extensions:

Code: Select all

[root@localhost Desktop]# glxgears 
2315 frames in 5.0 seconds = 462.852 FPS
2681 frames in 5.0 seconds = 536.025 FPS
2622 frames in 5.0 seconds = 524.260 FPS
2656 frames in 5.0 seconds = 531.191 FPS
2506 frames in 5.0 seconds = 501.087 FPS
With installed vmwgfx kernel module

Code: Select all

[root@localhost Desktop]# glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on SVGA3D; build: RELEASE;  
OpenGL version string: 2.1 Mesa 10.6.0-devel (git-4348046)
OpenGL shading language version string: 1.20
OpenGL extensions:

Code: Select all

[root@localhost Desktop]# glxgears 
19193 frames in 5.0 seconds = 3838.599 FPS
19610 frames in 5.0 seconds = 3921.927 FPS
19941 frames in 5.0 seconds = 3988.177 FPS
19478 frames in 5.0 seconds = 3895.444 FPS
20171 frames in 5.0 seconds = 4034.173 FPS

KeithS
Posts: 4
Joined: 2008/05/16 10:31:28

Re: VMware SVGA3D Guest Driver

Post by KeithS » 2015/07/02 11:36:40

The post from kkleber is quite useful, but misses out a lot of the original info th the mesa guide (which is completely useless).

For example, no mention of the git stuff. Else you may be wondering why 'cd drm' does not work in step 1). Step 2, you need to cd ../mesa. The original docs made this more clear by defining an env var $TOP.

Also, to build mesa, you need a python installation > 2.6 and you need things like the 'Mako' module installed, which also needs setupTools. The docs on how to download and install these are pretty sparse, but then, hey, bulding a mesa OpenGL driver is not for the fainthearted...

And you need to use 'make -i' for step 2 else make will fail with some junk about msgfmt not found...

And then finally, after all of this... glxinfo gives you:

name of display: :0.0
Error: couldn't find RGB GLX visual or fbconfig.....

Post Reply