VMware Problems & Solutions
I am a big fan of VMware and virtualization in general.
At work we use the professional version to install servers that are only used a couple of hours a week, like systems for testing new releases of software etc.
At home I use the free vmware-server-1.0.7 version to test new releases of software, different operating systems, etc. I used to have several desktops for testing, taking up a lot of space. Now I create and delete virtual machines on my desktop that has lots of hard disk space.
After upgradingmy Slackware 12.1-current with the latest versions of libX11 (1.1.5) and gtk2 (2.12.12) VMware stopped working and presented this error:
vmware: xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) – (dpy->request)) >= 0 )’ failed.
After some research and testing combinations of the previous versions of libX11 and gtk, I found the following solution:
1) Compile an alternative version of libX11 that does not use xcb
2) Always start VMware using this alternative library
The following script downloads the source code of libX11, compiles it with the ‘–without-xcb’ option and creates a start-up script to use this version with VMware:
#!/bin/bash
#
# vmware_no_xcb Script to compile alternative libX11 library
# (without xcb) for vmware with gtk2 > gtk+2-2.12.9
#
# Version: 1.0.1 – Sun, Sep 21, 2008
#
# Author: Niels Horn
#
# Set constants:
libver=libX11-1.1.5
destlib=/usr/local/bin/vmware_no_xcb
destbin=/usr/local/bin
# Download sources from xorg.freedesktop.org:
test -e $libver.tar.bz2 || wget -c http://xorg.freedesktop.org/archive/individual/lib/$libver.tar.bz2
# Clean old dir and extract sources:
rm -rf $libver
tar xjf $libver.tar.bz2
# Create destination for new lib & new startup script:
mkdir -p $destlib
mkdir -p $destbin
# Go into sources dir, configure, compile & strip:
cd $libver
./configure –without-xcb
make -j 2
strip src/.libs/libX11.so.6.2.0
# Copy new lib to destination & create symlinks:
cp src/.libs/libX11.so.6.2.0 $destlib
ln -s libX11.so.6.2.0 $destlib/libX11.so.6
ln -s libX11.so.6.2.0 $destlib/libX11.so
# Create startup script, using new lib, and make executable:
echo -e “LD_PRELOAD=$destlib/libX11.so vmware” > $destbin/vmware-start.sh
chmod 755 $destbin/vmware-start.sh
# Leave sources dir & remove:
cd ..
rm -rf $libver
# All done. From now on, use ‘vmware-start.sh’ to start vmware
Substitute the libver, destlib & destbin variables with your preferences and run this script to do the rest for you.
From then on, start VWware with ‘vmware-start.sh’ to call your new libX11 library.
This works with the 1.0.x versions of VMware. The new 2.x versions are a completely different story for me, but that’s for a future post…
This entry was posted on Sunday, September 28th, 2008 at 12:40 and is filed under Linux, VMware. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Dutch guy living in Brazil. Has worked in the IT business since it was invented (well, almost...). Interests: Slackware, Lego, Star Wars.
November 4th, 2008 at 17:46
Thanks Niels, I've followed your instructions and the library is built correctly. However, the vmware interface still doesn't start up. Without your script I get a slight flash of a window being created and then destroyed and then the following console message:
vmware: xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) – (dpy->request)) >= 0)' failed.
If I use your script, it just returns to the console and nothing happens. I've also tried editing wrapper-gtk24.sh to add the lib directly there but no difference. I've tried running it as a normal user and as root but no difference. /tmp/vmware-user*.log indicates:
Nov 04 21:41:38: vmui| Log for VMware Server pid=14888 version=1.0.7 build=build-108231 option=Release
Nov 04 21:41:38: vmui| Gdk: locale not supported by Xlib
Nov 04 21:41:38: vmui| Gdk: can not set locale modifiers
Nov 04 21:41:38: vmui| Gtk: cannot open display:
Any assistance appreciated. Regards, Robby
November 5th, 2008 at 9:24
rpedrica:
My script should be run as root, and then you should start VMware with the newly created “vmware-start.sh” as the user that logged in to X (other users, including root, won’t be able to open a display).
November 7th, 2008 at 13:21
Sorry Niels, to clarify, I’ve run the script using root and starting vmware using kdesu ..
November 9th, 2008 at 13:58
Running the script as root was fine, but afterwards you should start VMware as a normal user, with vmware-start.sh, not with kdesu.
February 12th, 2009 at 18:15
Trying it with slack12.2 and Server 1.0.8. I run the script as root, and execute vmware-start.sh as the user (non root) who is logged in KDE. I get the same msg in the log file as rpedrica:
bash-3.1$ cat ui-6828.log
Feb 12 15:12:23: vmui| Log for VMware Server pid=6828 version=1.0.8 build=build-126538 option=Release
Feb 12 15:12:23: vmui| Gdk: locale not supported by Xlib
Feb 12 15:12:23: vmui| Gdk: can not set locale modifiers
Feb 12 15:12:23: vmui| Gtk: cannot open display:
Any other suggestions? –I may try 1.0.7 instead.