VNC Server on Solaris for remote access to Display Manager

The generally supported method of remote access to the Unix Foxboro AW/WP V4.X (Solaris 2.5.1). There are 2 methods:

  • XTerminal that connects to XDM on the AW/WP. This method runs the window manager on the AW/WP
  • Log in to the AW/WP as IA and start a Display Manager

There are a number of issues with the Foxboro Display managers on X windows 1. The special Foxboro fonts must be available for the X Terminal 2. The X Terminal must be able to use the Save Unders and Backing Store. This facility is not currently supported on modern X Servers. 3. The Display Manager does not work correctly with more than 8bit colour.

An alternative to using the X Protocol is VNC. The AW/WP can host the X server in a known environment and clients connect to the server using the VNC protocol. The issues can all be addressed with this approach.

This approach can host as many sessions as the AW/WP has memory, CPU. The normal DM licenses still apply.

Note that VNC is linked against Xorg or XFree86. Modern versions also do not support Save Unders and Backing Store. You must find the VNC Server based on XFree86 3.3.x. The binaries for Solaris 2.5.1 based on XFree86 3.3.x, search for vnc-3.3.3r2_sun4_sosV_5.5.

Installation

Install the binaries on your AW/WP in the location of your choice, My examples install under /opt.

The method described works functionally identically to using an X Terminal that uses XDM.


Configuration

Assuming the VNC binaries are installed under /opt/vnc

1. Create a file /opt/vnc/vnc.inetd with the following contents

 #!/bin/sh
 exec /opt/vnc/Xvnc -inetd -once -query localhost \
 -wm -geometry 1010x750 -depth 8 -dpi 100 -cc 3   \
 -fp   /usr/openwin/lib/X11/fonts/misc/,\
 /usr/openwin/lib/X11/fonts/Speedo/,\
 /usr/openwin/lib/X11/fonts/Type1/,\
 /usr/openwin/lib/X11/fonts/75dpi/,\
 /usr/openwin/lib/X11/fonts/100dpi/,\
 /usr/fox/wp/fonts >>/var/tmp/vnc.log 2>&1

Note the settings for the VNC Server

  • -depth 8 (256 colours)
  • -geometry 1010x750 (open a window 1010x750)
  • -cc 3 (Pseudocolor)
  • -dpi 100 (Use 100 dots per inch)
  • -wm ( Use backing store when mapped)
  • -query localhost ( Use the localhost XDM )
  • -once (the VNC process will die once the session ends)

Make the file executable

  1. chmod +x /opt/vnc/vnc.inetd

2. Add a connection port in /etc/services Add the following line to /etc/services

 vnc             5955/tcp

The port number 5955 equates to VNC port 55. The number can be changed to anything >5900, eg 5900 is VNC port 0 etc. 3. Add a service line into /etc/inetd.conf

 vnc    stream    tcp  nowait  root   /opt/vnc/vnc.inetd vnc.inetd

Tell inetd to re-read the inetd.conf file. In this case the inetd daemon is process 891. Substitute the correct PID.

 # ps -ef | grep inetd
    root   891     1  0   Oct 04 ?        0:00 /usr/sbin/inetd -s
 # kill -HUP 891

Operation

The VNC client can be Windows, Solaris or Linux that connects to the VNC server and can be a recent version.

Point the VNC client to the AW/WP IP Address port 55. The Linux VNC client works best with the -UseLocalCursor=0 option, eg:

 /usr/bin/vncviewer -UseLocalCursor=0 -WMDecorationHeight=0 -WMDecorationWidth=0 <fox IP Address>:55

Notes on configuring a central Linux box to host all Foxboro VNC sessions are available here [1](http://wiki.ltsp.org/twiki/bin/view/Ltsp/VNC).

The default VNC server on modern Linux is compiled against Xorg or XFree86 4.x. These are unsuitable for Foxboro display managers because they do not support 'save unders ...' Search for a version of Xvnc that is based on XFree86 3.3.x.