Xvnc as a X-server (optionally replacing the console Xserver)

Corné Beerse cbeerse "at" lycos.nl
Fri Jan 23 09:54:01 2004

This is a description on how to use Xvnc as the Xserver. It is jet an other way 
to create an always running vnc session on unix/linux. It is based on RedHat 9 
but I think it can easy be moved to every unix that has a Xvnc binary.

My goal was to create a linux server that has a text console (for RedHat: as if 
running in runlevel 3) but still has gdm available (actually running runlevel 
5). Roughly, I just replaced the Xserver (XFree86 on linux) with Xvnc.

I first installed the vncserver packages from the distribution and start 
`vncserver` at least once to have a vnc password file.

Then (sidestep) I installed 
http://www.sourcecodecorner.com/articles/vnc/linux.asp. I don't expect it is 
needed but for me it is the reason to run in runlevel 5 and not in runlevel 3.

The real work is in getting Xvnc used as an Xterminal that runs on the same 
host. For GNOME (gdm) users: edit '/etc/X11/gdm/gdm.conf':
- disable VTAllocation (about line 104)
- add server definitions (at the end, the double inserted lines are continuation 
of the previous line, combine them.)
	# vncsession, using vncpassword from root
	name=ROOTVNC server
	command=/usr/bin/Xvnc -geometry 800x600 -depth 8 -rfbwait 120000
		-rfbauth /root/.vnc/passwd
	# vncsession, using no vncpassword
	name=FREEVNC server
	command=/usr/bin/Xvnc -geometry 800x600 -depth 8 -rfbwait 120000
		-alwaysshared -dontdisconnect
- in the [servers] section, add and/or replace lines that indicate an Xserver:
	# disable the X session on the console
	# use roots vncsession on :0
	# use the free-access vncsession on :4
Now restart gnome (or the entire machine) and see the console stays in its text 
mode and there are 2 vnc sessions running: ONe at `vncviewer machine:0` that 
uses the vncpassword of root and an other one at `vncviewer machine:4` that has 
no vncpassword. All provide a login session.

To get the same setup with a KDE or XDM session, it is even simpler. Edit 
'/etc/X11/xdm/Xservers': add the next lines (and comment out all others). 
WRAPWARNING: each line is either comment or it starts with the same word as it 
ends (:0 to :0 and :4 to :4).
	# disable the X session on the console
	#:0 local /usr/X11R6/bin/X
	# vncsession :0, using vncpassword from root.
	:0 ROOTVNC local /usr/bin/Xvnc -geometry 800x600 -depth 8 -rfbwait
		120000 -rfbauth /root/.vnc/passwd :0
	# vncsession :4, no vncpassword.
	:4 FREEVNC local /usr/bin/Xvnc -geometry 800x600 -depth 8 -rfbwait
		120000 -alwaysshared -dontdisconnect :4

Now restart the display manager (or the machine) and...

Detail, if you want to keep the X11 server on the console (not have the :0 vnc 
session): you might need to add '-vt7' to the 'command=/usr/X11R6/bin/X -vt7' line.

If I can find some time, I might put this description on a website some time. If 
others want to do so, please do. If I come acros any other system (HP-UX might 
be the first) I might mail an update. Be free to test it on any other system. 
Most likely you only need to update the Xservers file according the above 
/etc/X11/xdm/Xservers description.