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)
#VTAllocation=true
VTAllocation=false
- add server definitions (at the end, the double inserted lines are continuation
of the previous line, combine them.)
[server-ROOTVNC]
# vncsession, using vncpassword from root
name=ROOTVNC server
flexible=false
command=/usr/bin/Xvnc -geometry 800x600 -depth 8 -rfbwait 120000
-rfbauth /root/.vnc/passwd
[server-FREEVNC]
# vncsession, using no vncpassword
name=FREEVNC server
flexible=false
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
#0=Standard
# use roots vncsession on :0
0=ROOTVNC
# use the free-access vncsession on :4
4=FREEVNC
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.
CBee