Building on Debian 8 - neutrinolabs/xrdp GitHub Wiki

Introduction

These are steps for building xrdp 0.9.x and xorgxrdp 0.9.x, on debian 8 and later.

xrdp can use 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 activates 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!

Build & Install xrdp

Get the sources

Check https://github.com/neutrinolabs/xrdp/releases/latest to find the latest version

XRDP_SRC_DIR="${PWD}"/xrdp
wget https://github.com/neutrinolabs/xrdp/releases/download/v0.9.4/xrdp-0.9.4.tar.gz
tar xvzf xrdp-0.9.4.tar.gz
mv xrdp-0.9.4 "${XRDP_SRC_DIR}"  # renaming to make the other steps clearer
cd "${XRDP_SRC_DIR}"

Alternatively, clone the git repository if you need the devel branch: git clone [email protected]:neutrinolabs/xrdp.git.

Install dependencies

The following command uses the CI script built into xrdp to install all the dependencies used by xrdp:-

sudo ./scripts/install_xrdp_build_dependencies_with_apt.sh max

This script is only regularly tested on Github's latest x86_64 CI version of Ubuntu, but should work on other systems. If it doesn't feel free to raise an issue and we can discuss it.

Build

Note: adapt the configure line bellow to activate your needed features:

./bootstrap
./configure --enable-fuse --enable-mp3lame --enable-pixman
make

Install the xrdp server on your system

If you have xrdp installed from a debian/ubuntu package, remove it first with sudo apt remove xrdp.

cd "${XRDP_SRC_DIR}"
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin

Build & Install xorgxrdp

Get the sources

Check https://github.com/neutrinolabs/xorgxrdp/releases/latest to find the latest version

XORG_XRDP_SRC_DIR="${PWD}"/xorgxrdp
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.4/xorgxrdp-0.2.4.tar.gz
tar xvzf xorgxrdp-0.2.4.tar.gz
mv xorgxrdp-0.2.4 xorgxrdp  # renaming to make the other steps clearer

Alternatively, clone the git repository if you need the devel branch: git clone [email protected]:neutrinolabs/xorgxrdp.git.

Build & Install the sources:

cd "${XORG_XRDP_SRC_DIR}"
./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 "${XRDP_SRC_DIR}"/xorg/X11R7.6"
./buildx.sh /opt/X11rdp
sudo ln -s /opt/X11rdp/bin/X11rdp /usr/bin