Handling X-window display for VMS running on Charon-VAX
Description
This article describes how to start a DECwindow / CDE login box for VMS running on Charon-VAX. The pre-requisite for this setup is that UCX is installed, configured and started in VMS; and the display server is on Linux which can communicate with VMS over TCP/IP. We will concentrate on the following topics:
Files on VMS to be modified
Using VMS fonts
Proper key mapping
Install X display server package like Xephyr on CentOS
Step-by-step guide
In VMS, there are two ways to get the login box, and both ways need TCP/IP connection
Use xdmcp
Enable xdmcp on UCX configuration. This will be available in newer UCX version only
Modify the file SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.COM (may need to copy from the .TEMPLATE), add the following lines at the session "do_default:"
$define/sys/nolog decw$default_transport tcpip
$decw$appsnode=="192.168.1.2" ! this is the address of the PC
$decw$device=="network" ! this can be anything except NONE
$decw$appsserver==1 ! this should be 1 for X-windows on Linux
Fonts on PC are different from VMS. There are two ways to handle fonts
Enable font server on VMS by
editing the file DECW$PRIVATE_SERVER_SETUP.COM
change DECW$START_FONT_SERVER to "TRUE" ($DECW$START_FONT_SERVER=="TRUE")
In the X-server command, add “-fp tcp/<ip of VMS>:7100”
Copy all the fonts from VMS to Linux and put them into the folder /usr/share/X11/fonts. Go into the folder and run command "mkfontdir". Then create a softlink at /etc/X11/fontpath.d to link to the folder.
Keymap is different as the old server use LK keyboard. To map the keys
Disable "printscrn" by editing the file /usr/share/X11/xkb/keycodes/evdev, and then add //in front of <PRSC>=107;
Create a keymap text file with content below
keycode 107 = F13
keycode 78 = F14
keycode 110 = Menu
keycode 67 = KP_F1
keycode 68 = KP_F2
keycode 69 = KP_F3
keycode 70 = KP_F4
keycode 71 = Help
keycode 86 = comma
Enable the keymap (must run every time before starting X-server) by xmodmap <the key map file name>
On Linux
Install X11 related packages, e.g. xorg-x11-server-Xephyr
Enable ports 6000-6100 and 7100 in firewall of Linux
Start the X display server by command like this for xdmcp configuration
/usr/bin/Xephyr :1 –ac –query 192.168.1.3 – from 192.168.1.2 -screen 1280x1024x8 –once –fullscreen &
add -fp tcp/192.168.1.2:7100 if font server is being used
Start the X display server by command like this for non-xdmcp configuration (passive mode)
/usr/bin/Xephyr :1 –ac –listen tcp -from 192.168.1.2 –once -screen 1280x1024x8 – fullscreen &