Modular XF4VNC
The XF4VNC code is now based off the
X.org modular tree.
Previously, XF4VNC was based on the XFree86 monolithic tree. The
monolithis XF4VNC sources are still in the SourceForge CVS tree.
Relative to the X.org tree, only the X.org
xserver module is actually
modified.
The XF4VNC tree also contains a few extra
proto and
library modules, described below.
Prerequisites
You'll need an installation of the modular X.org distribution, version
X11R7.0 or later. If you need to upgrade first check if
ready-made packages are
available for your OS distro (like Fedora Core,
Debian, etc).
Alternately, you can download, compile and install X yourself by going
to the
X.org website and following the
modular build
instructions. You can either install into the standard
location (
/usr/X11R6) or a
custom location (such as /home/joe/xorg). If you install into
/usr/X11R6 you should probably make complete back-up of that directory,
just in case (
cp -pr /usr/X11R6
/usr/X11R6.ORIG).
When you're done, you should have a working X server installation.
Getting and building the modular XF4VNC sources
This section covers getting and building the modules from the XF4VNC
tree. There are modules for the VNC-enabled X server(s) and the
VNC
and Xcliplist libraries and protocol/extension headers.
- Begin by making a directory for your XF4VNC sources, such as
~/xf4vnc/
mkdir
~/xf4vnc
cd ~/xf4vnc
- Get the sources from SourceForge CVS:
As an anonymous user:
cvs
-d:pserver:anonymous@xf4vnc.cvs.sourceforge.net:/cvsroot/xf4vnc login
cvs -z3
-d:pserver:anonymous@xf4vnc.cvs.sourceforge.net:/cvsroot/xf4vnc co -P
modular
Or, as a project developer:
cvs
-z3 -d:ext:USERNAME@xf4vnc.cvs.sourceforge.net:/cvsroot/xf4vnc co
modular
When done, you'll have this directory
tree:
~/xf4vnc/
modular/
src/
lib/
proto/
- Set environment variables:
If you're using an existing
installation of X11R7.x everything should have been installed under
/usr/X11R6. Set the DEST environment variable as follows:
export
DEST=/usr/X11R6
Otherwise, if you built X11R7.x yourself and installed it in a
non-standard location, such as /home/joe/xorg/modular, set the DEST
environment variable as follow:
export
DEST=/home/joe/xorg/modular
Set the PKG_CONFIG_PATH environment
variable to the location of
the X-related .pc (package config) files:
export
PKG_CONFIG_PATH=${DEST}/lib/pkgconfig:/usr/lib/pkgconfig
(Note that /usr/lib/pkgconfig/ is also included in the path to get
other
system package descriptions.)
Set the ACLOCAL environment variable to the location of the
aclocal files:
export
ACLOCAL="aclocal -I ${DEST}/share/aclocal"
- Compile the modular XF4VNC components:
The VNC extension protocol and headers
(vnc.h and vncstr.h):
cd
~/xf4vnc/modular/src/proto/vncproto
./autogen.sh --prefix=${DEST}
make install
The XCliplist extension protocol and headers (Xcliplist.h and
Xclipliststr.h):
cd
~/xf4vnc/modular/src/proto/xcliplistproto
./autogen.sh --prefix=${DEST}
make install
The VNC client-side library
(libVncExt.so):
cd
~/xf4vnc/modular/src/lib/libvnc
./autogen.sh --prefix=${DEST}
make install
The XCliplist client-side library (libXcliplist.so):
cd
~/xf4vnc/modular/src/lib/libXcliplist
./autogen.sh --prefix=${DEST}
make install
The XF4VNC xserver tree:
Without GLX support:
cd
~/xf4vnc/modular/src/xserver
./autogen.sh --prefix=${DEST} --disable-dbus
make install
With GLX support (and DMX glxproxy):
You'll need a copy of the Mesa sources (version 6.5.3 or 7.0 at this time).
Set the MESA environment variable to the location of the Mesa sources.
cd
~/xf4vnc/modular/src/xserver
./autogen.sh --prefix=${DEST} --disable-dbus --enable-glx --with-mesa-source=${MESA}
make install
This will produce several X server
binaries (Xvnc, Xorg and Xdmx) and two special X server
modules: libvnc.so and libxcliplist.so.
Configuration for using the libvnc.so module
If you plan to use the lib
vnc.so
X server module (so that VNC viewers can attach to your normal X
display)
you'll need to configure a few things in your
xorg.conf file. See the
XF4VNC documentation for instructions.
Start the X server and check that the VNC and XClipList extensions
were loaded by running xdpyinfo and looking
at the extension list. If either module is missing examine
your /var/log/Xorg.0.log file.
If it says
the VNC module did not load because of an ABI version problem, try
this:
startx -- -ignoreABI
Configuration for Xvnc
The Xvnc server is an off-screen X server that uses no graphics
hardware. The only way to see the Xvnc desktop is with a VNC
viewer.
To run the Xvnc server you only need to specify a display name for the
server. For example:
Xvnc
:2
To start the Xvnc server with your usual desktop environment, use the
startx script:
startx
-- Xvnc :2
If you have an X font server available, you can specify the
-fp option to use it. For
example:
startx
-- Xvnc :2 -fp unix/:7100
Other useful options are the
-geometry
and
-depth options. For
example:
startx
-- Xvnc :2 -fp unix/:7100 -geometry 1280x1024 -depth 24