Introduction to Tigervnc
Tigervnc is an advanced VNC
(Virtual Network Computing) implementation. It allows creation of
an Xorg server not tied to a physical console and also provides a
client for viewing of the remote graphical desktop.
Note
Development versions of BLFS may not build or run some packages
properly if LFS or dependencies have been updated since the most
recent stable versions of the books.
Package Information
Additional Downloads
Note
The version of Xorg may
eventually be a few versions out of date, but is required for the
customizations needed for this package.
Tigervnc Dependencies
Required
CMake-3.31.1, FLTK-1.3.10, GnuTLS-3.8.8, libgcrypt-1.11.0, libjpeg-turbo-3.0.1, Pixman-0.44.2, Systemd-256.5 (with Linux-PAM-1.7.0), Xorg
Applications, xinit-1.4.2, and Xorg Legacy Fonts
Recommended
ImageMagick-7.1.1-36
Installation of Tigervnc
First, make adjustments to the configuration files to make them
compatible with LFS systems:
patch -Np1 -i ../tigervnc-1.14.1-configuration_fixes-1.patch
Install tigervnc by running the
following commands:
# Put code in place
mkdir -p unix/xserver &&
tar -xf ../xorg-server-21.1.14.tar.xz \
--strip-components=1 \
-C unix/xserver &&
( cd unix/xserver &&
patch -Np1 -i ../xserver21.patch ) &&
# Build viewer
cmake -G "Unix Makefiles" \
-D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-W no-dev . &&
make &&
# Build server
pushd unix/xserver &&
autoreconf -fiv &&
CPPFLAGS="-I/usr/include/drm" \
./configure $XORG_CONFIG \
--disable-xwayland --disable-dri --disable-dmx \
--disable-xorg --disable-xnest --disable-xvfb \
--disable-xwin --disable-xephyr --disable-kdrive \
--disable-devel-docs --disable-config-hal --disable-config-udev \
--disable-unit-tests --disable-selective-werror \
--disable-static --enable-dri3 \
--without-dtrace --enable-dri2 --enable-glx \
--with-pic &&
make &&
popd
This package does not come with a test suite.
Now, as the root
user:
#Install viewer
make install &&
mv /usr/share/doc/tigervnc /usr/share/doc/tigervnc-1.14.1
#Install server
( cd unix/xserver/hw/vnc && make install ) &&
[ -e /usr/bin/Xvnc ] || ln -svf $XORG_PREFIX/bin/Xvnc /usr/bin/Xvnc
Command Explanations
tar -xf ..
xorg-server...: This command extracts the standard
Xorg package into the tree in a location needed for modification.
--disable ...
: Most options
that are usually needed for the standard Xorg server are not needed
for the Xvnc instance being built.
[ -e /usr/bin/Xvnc ] || ln ...
Xvnc: If the Xvnc server is not installed in the
/usr/bin
directory, then create a
link so the vncserver
script can find it.
Configuring Tigervnc
Server Configuration
On systemd systems, another method of configuration is available.
This configuration provides the added benefit of making tigervnc
systemd aware for VNC sessions and allows desktop environments like
GNOME to autostart services once
the VNC session is started. This configuration also gives the added
benefit of starting VNC Sessions on system startup. To set up the
VNC server in this fashion, follow these instructions.
First, install a rudimentary Xsession file so that the VNC server
can initialize X sessions properly:
install -vdm755 /etc/X11/tigervnc &&
install -v -m755 ../Xsession /etc/X11/tigervnc
Next, set up a user mapping in /etc/tigervnc/vncserver.users
. This tells the VNC
Server which session is allocated to a user.
echo ":1=$(whoami)" >> /etc/tigervnc/vncserver.users
Next, set up a configuration file to tell vncserver which desktop environment should be
used and what display geometry should be used. There are several
other options that can be defined in this file, but they are
outside the scope of BLFS.
install -vdm 755 ~/.vnc &&
cat > ~/.vnc/config << EOF
# Begin ~/.vnc/config
# The session must match one listed in /usr/share/xsessions.
# Ensure that there are no spaces at the end of the lines.
session=lxqt
geometry=1024x768
# End ~/.vnc/config
EOF
To start the VNC Server, run the following command:
systemctl start vncserver@:1
To start the VNC Server when the system boots, run the following
command:
systemctl enable vncserver@:1