XMing

From miki
Jump to navigation Jump to search

XMing is the best X Server out there for windows. Fast and nice rendering, in active development.

Check out the latest website releases here (requires donation password).

Troubleshooting

Freeze at startup / login

This happens on recent release (7.7.0.52).

  • Workaround: try to disable WGL (AIGLX).
  • Workaround: don't use XLaunch, rather start XMing and Plink separately. File XMing.bat:
@echo off

REM Cheap Xlaunch.exe replacement.
REM On XMing 7.7.0.52, XMing freezes when logging in when using Xlaunch.
REM
REM Workarounds:
REM * Start Xming.exe and plink.exe separately (without using Xlaunch)
REM * Disable WGL in XLaunch config

set XMING_EXTRA=-dpi 96 -xkblayout be

cd /d "C:\Program Files\Xming"
start Xming :0 -multiwindow -clipboard -wgl -nolisten inet6 %XMING_EXTRA%

REM Don't start Plink.exe here because it leaves an opened window. Let's try with a VBS script.
And file plink.vbs:
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """C:\Program Files\Xming\plink.exe"" -ssh -2 -X -x11forloc localhost:0 peetersm@vm /usr/bin/terminator", 0
set WshShell = Nothing

Accelerated OpenGL not detected

According to XMing Manual, glxinfo must return the hardware of the server, and not Mesa:

glxinfo | egrep "OpenGL (version|vendor)"
# OpenGL vendor string: VMware, Inc.
# OpenGL version string: 3.1 Mesa 18.3.6            <-- BAD. SW emulation
glxinfo | egrep "OpenGL (version|vendor)"
# OpenGL vendor string: Intel
# OpenGL version string: 1.4 (4.0.0 - Build 9.18.10.3204)  <-- OK, hw detected

To get HW acceleration:

  • On Client, export DISPLAY and launch program directly. This may require removing access control on host:
# On server:
Xming :0 -multiwindow -clipboard -wgl 
xhost +

# On client:
export DISPLAY=...
glxinfo
# ... should report HW card
  • When connecting through SSH, add the following line to /etc/profile
export LIBGL_ALWAYS_INDIRECT=1
As a result, we don't need to remove access control on host:
# On server:
Xming :0 -multiwindow -clipboard -wgl 
plink -ssh -2 -X -x11forloc localhost:0 USER@CLIENT /usr/bin/terminator

# On client:
glxinfo
# ... should report HW card

Performance

We don't get any perforamnce gain in terminator using WGL apparently:

yes | dd count=10k > yes.txt

# With WGL:
time cat yes.txt
# real   0m2.075s
# sys    0m0.927s

# Without WGL:
time cat yes.txt
# real   0m1.956s   1.877s   2.301s   2.726s   2.403s
# sys    0m0.865s   0.848s   0.983s   1.054s   1.031s