Early distributions of the XFree86 4.x X server do not work properly
inside a virtual machine created by any VMware product because they do
not include an SVGA driver for the VMware virtual video adapter.
Unless you install a driver created for the virtual video card, you can run a
Linux virtual machine in VGA mode only.
Follow the instructions below to download and install a driver specifically
designed for the VMware virtual video adapter.
Obtaining a Video Driver Module for VMware SVGA
The drivers in XFree86 4.x are separate modules that are loaded dynamically
by the main X server binary. This means you can add a precompiled driver
for VMware SVGA adapters to an existing installation, or you can build as
much as you want from source. At the completion of either process, you
should have a vmware_drv.o binary.
Go to the XFree86 4.0 SVGA driver
download page to get either the precompiled object file or the source
code patch. Then follow the appropriate instructions below.
In future versions of VMware products, this driver will be included in
the VMware Tools package.
Installing the Precompiled Object File
Log in to your guest operating system as root.
su
Download the precompiled module vmware_drv.o.
Copy the module into place.
cp vmware_drv.o /usr/X11R6/lib/modules/drivers/vmware_drv.o
Modify the XF86Config. This is likely
/etc/X11/XF86Config-4. You need to add a Device section that
looks like this:
Section "Device"
Identifier "VMware SVGA"
Driver "vmware"
BusID "PCI:0:15:0"
EndSection
You then need to make sure that your Screen sections specify
Device "VMware SVGA"
You are ready. Run X normally and you should have SVGA support.
Applying the Source Code Patch
We recommend that you use the precompiled object file described above. However,
if you are working with the XFree86 source code downloaded directly from the
XFree86 Project, and
if you prefer to compile that source for yourself, you may use the source code
patch and follow these guidelines.
- Download the patch, which is created for use with XFree86 4.0.2.
- Apply it to your copy of the source.
- Build everything.
make World
- The module appears as exports/lib/modules/drivers/vmware_drv.o.
- Copy the module into place.
cp vmware_drv.o /usr/X11R6/lib/modules/drivers/vmware_drv.o
Known Issues Using an XFree86 4.x X Server in a
Guest Operating System
You may receive an error message about the color depth that looks
like one of the following:
- Given depth (<x>) is not supported by this driver (<y>
is required)
- Currently unavailable depth of <x> requested. [...]
The X server in the guest operating system must run at the same color
depth as the host. The XFree86 4.x server gives precedence to the default
set in its configuration file (in contrast to XFree86 3.x, which
allows the driver to override the setting in the configuration file).
To resolve the problem, edit your XF86Config file. (Check the
documentation for your Linux distribution for the location. It can usually
be found in /etc or /etc/X11.) Delete or comment out any
DefaultDepth lines. The VMware SVGA driver automatically detects and
uses a compatible color depth.
The version of XFree86 shipped with Red Hat Linux 7.0 exits with a
segmentation violation and core dump when run under VMware GSX Server and
2.0.x versions of VMware Workstation. This is a bug in XFree86 version 4.0.1a
when it is run in the presence of an ISA video card. You can download updated
X servers from the XFree86
Project. You should be able to download just the prebuilt X server and
copy it to /usr/X11R6/bin/XFree86 to upgrade.
As it starts, X prints (WW) VMWARE: No Matching Device Section
for instance (BusID PCI:0:15:0) found. and then (EE) No devices
detected. This happens because the VMware SVGA adapter is detected
as a secondary display controller (secondary to a separate ISA VGA card).
You need to be sure to include the BusID line in the
Device section when you modify XF86Config. See sample
section in Installing the Precompiled Object File
above.