Saturday, 18 October 2014

VMware - Where the X is my X ?

On a freshly minted VM of Red Hat Enterprise Linux 6.6 on VMware Fusion 7.0.0, I am trying to resolve a problem with a GUI application failing with a rather nice exception: -

java: cairo-misc.c:380: _cairo_operator_bounded_by_source: Assertion `NOT_REACHED' failed.

As part of my problem determination regime, I want to check whether the problem only occurs when tunnelling X11 from my Mac, via SSH, to the RHEL VM.

Therefore, I wanted to use X11 within the VMware terminal itself.

When I type startx, I get : -

-bash: startx: command not found

which makes sense since I didn't explicitly install X11 when I first built the VM.

Therefore, I need to install X11: -

yum install gdm

Some seventy RPMs later, I've got: -

Installed:
  gdm.i686 1:2.30.4-64.el6                                                                                        


so I again try startx: -

...
xauth:  creating new authority file /root/.serverauth.3966
xauth: (argv):1:  bad display name "tameb.uk.ibm.com:0" in "list" command
xauth: (stdin):1:  bad display name "tameb.uk.ibm.com:0" in "add" command
...

...
Loading extension GLX
(EE) 
Fatal server error:
(EE) no screens found(EE) 
(EE) 
...

which isn't too nice :-(

I go to check the video adapter: -

lspci | grep VGA

00:0f.0 VGA compatible controller: VMware SVGA II Adapter

at which point the penny drops.

I forgot to install VMware Tools ....

Having done this, alas, I got the same issue - no screens found :-(

Having rebooted, I tried running the VMware configuration utility again: -

vmware-config-tools.pl

taking the defaults: -

...
Distribution provided drivers for Xorg X server are used.

Skipping X configuration because X drivers are not included.

...

which made me think.

I checked to see what VMware drivers were available in the Yum repository: -

yum list | grep -i vmware

xorg-x11-drv-vmware.i686               13.0.1-9.el6                      server 

and installed the ( assume to be ) missing driver: -

yum install xorg-x11-drv-vmware.i686

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package xorg-x11-drv-vmware.i686 0:13.0.1-9.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================
 Package                            Arch                Version                       Repository             Size
==================================================================================================================
Installing:
 xorg-x11-drv-vmware                i686                13.0.1-9.el6                  server                 33 k

Transaction Summary
==================================================================================================================
Install       1 Package(s)

Total download size: 33 k
Installed size: 53 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : xorg-x11-drv-vmware-13.0.1-9.el6.i686                                                          1/1 
  Verifying  : xorg-x11-drv-vmware-13.0.1-9.el6.i686                                                          1/1 

Installed:
  xorg-x11-drv-vmware.i686 0:13.0.1-9.el6                                                                         

Complete!


That did the trick, I can now start X11: -

xauth:  creating new authority file /root/.serverauth.2222


X.Org X Server 1.15.0
Release Date: 2013-12-27
X Protocol Version 11, Revision 0
Build Operating System: x86-022 2.6.18-371.11.1.el5 
Current Operating System: Linux tameb.uk.ibm.com 2.6.32-504.el6.i686 #1 SMP Tue Sep 16 01:56:19 EDT 2014 i686
Kernel command line: ro root=/dev/mapper/vg_tameb-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=uk LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_tameb/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=129M@0M rd_LVM_LV=vg_tameb/lv_root rd_NO_DM rhgb quiet
Build Date: 03 September 2014  11:17:40AM
Build ID: xorg-x11-server 1.15.0-22.el6 
Current version of pixman: 0.32.4
Before reporting problems, check https://www.redhat.com/apps/support/
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat Oct 18 09:29:20 2014
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
gnome-session[2324]: WARNING: Unable to find provider 'gnome-panel' of required component 'panel'
gnome-session[2324]: WARNING: Unable to find provider 'nautilus' of required component 'filemanager'
GNOME_KEYRING_SOCKET=/tmp/keyring-fG4etF/socket
SSH_AUTH_SOCK=/tmp/keyring-fG4etF/socket.ssh
GNOME_KEYRING_PID=2358


I seem to have no keyboard or mouse support within the VMware console itself.

This gave me a pointer: -


and had me check what I had installed in terms of Xorg.

Xorg -version

X.Org X Server 1.15.0
Release Date: 2013-12-27
X Protocol Version 11, Revision 0
Build Operating System: x86-022 2.6.18-371.11.1.el5 
Current Operating System: Linux tameb.uk.ibm.com 2.6.32-504.el6.i686 #1 SMP Tue Sep 16 01:56:19 EDT 2014 i686
Kernel command line: ro root=/dev/mapper/vg_tameb-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=uk LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_tameb/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=129M@0M rd_LVM_LV=vg_tameb/lv_root rd_NO_DM rhgb quiet
Build Date: 03 September 2014  11:17:40AM
Build ID: xorg-x11-server 1.15.0-22.el6 
Current version of pixman: 0.32.4
Before reporting problems, check https://www.redhat.com/apps/support/
to make sure that you have the latest version.


rpm -qa | grep -i xorg

xorg-x11-xauth-1.0.2-7.1.el6.i686
xorg-x11-font-utils-7.2-11.el6.i686
xorg-x11-xinit-1.0.9-14.el6.i686
xorg-x11-apps-7.7-6.el6.i686
xorg-x11-server-Xorg-1.15.0-22.el6.i686
xorg-x11-utils-7.5-6.el6.i686
xorg-x11-drv-vmware-13.0.1-9.el6.i686
xorg-x11-drv-ati-firmware-7.3.99-2.el6.noarch
xorg-x11-fonts-Type1-7.2-9.1.el6.noarch
xorg-x11-server-utils-7.7-2.el6.i686
xorg-x11-proto-devel-7.7-9.el6.noarch
xorg-x11-xkb-utils-7.7-4.el6.i686
xorg-x11-server-common-1.15.0-22.el6.i686
xorg-x11-drv-wacom-0.23.0-4.el6.i686


This led me to install mouse and keyboard drivers for Xorg: -

yum install xorg-x11-drv-vmmouse.i686
yum install xorg-x11-drv-keyboard.i686

but I was still finding that the same problem persisted.

I checked the logs: -

cat /var/log/Xorg.0.log

...
[  3403.228] (EE) Failed to load module "evdev" (module does not exist, 0)
[  3403.228] (EE) No input driver matching `evdev'
[  3403.228] (EE) config/hal: NewInputDeviceRequest failed (15)
[  3411.917] (II) vmware(0): Terminating Xv video-stream id:0
[  3412.022] (EE) Server terminated successfully (0). Closing log file.
...

and installed the missing evdev driver: -

yum install xorg-x11-drv-evdev

Hurrah, now I have a working mouse and keyboard within the X11 console session :-)


6 comments:

Big Al said...

Thanks for your detailed breakdown of the steps you took but I'm not clear on whether you resolved the original problem, java: cairo-misc.c:380: _cairo_operator_bounded_by_source: Assertion `NOT_REACHED' failed. or if you just resolved the X11 display/mouse/keyboard issues?

I am experiencing the original problem, java: cairo-misc.c:380: _cairo_operator_bounded_by_source: Assertion `NOT_REACHED' failed. but I do not have issues around X11, etc.
Tellingly, when my app exits I don't see any issues in the Xorg.0.log

Dave Hay said...

Hi Al

So, thanks to my extended network, I found a circumvention to the problem that I was seeing.

I added: -

-Dorg.eclipse.swt.internal.gtk.cairoGraphics=false -Dorg.eclipse.swt.internal.gtk.useCairo=false

to the .ini file that I use to start Eclipse.

This comes from a variety of sources, including this one: -

http://blog.vogella.com/2012/07/26/using-windowbuilder-on-linux/

Please let me know if it's of use.

Cheers, Dave

Big Al said...

Excellent! Works like a charm.

Thank you.

Dave Hay said...

Sweet :-)

Dave Hay said...

Al, I *think* this is the Eclipse bug to which this relates: -

https://bugs.eclipse.org/bugs/show_bug.cgi?id=441705

Cheers, Dave

Barbara said...

Thanks for posting this - good stuff. :)

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...