Skip to content

Building on Debian 8

zertrin edited this page Apr 30, 2018 · 34 revisions

Introduction

These are steps for building xrdp 0.9.4, on debian 8 (jessie) system. Buildprocess, as described here, confirmed working on 09.10.2017 on Ubuntu-Gnome 16.4.1. There are still caveats with ubuntu due to systemd integration

xrdp can one of these backends:

  • xorgxrdp: use the existing Xorg installation and add a module xorgxrdp for providing modules for RDP suppport
  • X11rdp: a dedicated X server compiled from sources for xrdp
  • Xvnc: a VNC server with X11 support

The preferred backend is xorgxrdp This configuration only activate the Xorg backend, so when connecting with a RDP client, be sure to use this session type.

You must install at least one of these backends!

Dependencies

  • Install xrdp's dependencies
sudo apt-get install git autoconf libtool pkg-config gcc g++ make  libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev  flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev

Note for Ubuntu 16.04: if your system is using -hwe-16.04 suffixed packages (for example linux-generic-hwe-16.04 and xserver-xorg-core-hwe-16.04), then the -dev packages also need to be -hwe-16.04 suffixed (i.e. make sure xserver-xorg-dev is not installed and xserver-xorg-dev-hwe-16.04 is installed instead).

Sources for xrdp and xorgxrdp

Get sources from the release page, or clone xrdp and xorgxrdp repository from GitHub if you need the devel branch:

BD=`pwd`
mkdir -p "${BD}"/git/neutrinolabs
cd "${BD}"/git/neutrinolabs
wget https://github.com/neutrinolabs/xrdp/releases/download/v0.9.4/xrdp-0.9.4.tar.gz
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.4/xorgxrdp-0.2.4.tar.gz
  • Build and install xrdp server (Adapt the configure line to activate your needed features)
cd "${BD}"/git/neutrinolabs
tar xvfz xrdp-0.9.4.tar.gz
cd "${BD}"/git/neutrinolabs/xrdp-0.9.4
./bootstrap
./configure --enable-fuse --enable-mp3lame --enable-pixman
make
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
  • Build and install xorgxrdp
cd "${BD}"/git/neutrinolabs
tar xvfz xorgxrdp-0.2.4.tar.gz
cd "${BD}"/git/neutrinolabs/xorgxrdp-0.2.4
./bootstrap
./configure
make
sudo make install
  • Configure xrdp
  • Generate certificate /etc/xrdp/{cert,key}.pem if you don't want to use the self-signed certificat
  • Edit /etc/xrdp/xrdp.ini and /etc/xrdp/sesman.ini to match your needs
  • Start xrdp
sudo systemctl enable xrdp
sudo service xrdp start

Compilation of X11rdp

If you don't want to use the xorgxrdp module, you can still build a local Xserver dedicated to xrdp: X11rdp

cd "${BD}"/git/neutrinolabs/xorg/X11R7.6
./buildx.sh /opt/X11rdp
sudo ln -s /opt/X11rdp/bin/X11rdp /usr/bin
Clone this wiki locally