### Build and Install xorgxrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian--(or-Ubuntu,-etc) Installs build dependencies using apt, bootstraps the build process, configures with glamor acceleration, compiles the sources, and installs the binaries. ```bash cd "${XORG_XRDP_SRC_DIR}" sudo scripts/install_xorgxrdp_build_dependencies_with_apt.sh ./bootstrap ./configure --enable-glamor make sudo make install ``` -------------------------------- ### Compile and Install xorgxrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Compiling-and-using-xorgxrdp Compile and install xorgxrdp after cloning the repository. Ensure xrdp is installed first as xorgxrdp depends on its include files. ```bash cd xorgxrdp ./bootstrap ./configure make sudo make install ``` -------------------------------- ### Build and Install xrdp with VideoToolbox Source: https://github.com/neutrinolabs/xrdp/wiki/[WIP]-xrdp-on-macOS-(with-ulalaca) Compiles and installs xrdp with VideoToolbox and ulalaca support, installing to /opt/xrdp. ```shell ./bootstrap ./configure --enable-pixman --enable-videotoolbox --enable-ulalaca PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig --prefix=/opt/xrdp make -j sudo make install ``` -------------------------------- ### Build and Install xrdp without VideoToolbox Source: https://github.com/neutrinolabs/xrdp/wiki/[WIP]-xrdp-on-macOS-(with-ulalaca) Compiles and installs xrdp with ulalaca support but without VideoToolbox, installing to /opt/xrdp. ```shell ./bootstrap ./configure --enable-pixman --enable-ulalaca PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig --prefix=/opt/xrdp make -j8 sudo make install ``` -------------------------------- ### TOML Configuration Example Source: https://github.com/neutrinolabs/xrdp/blob/devel/third_party/tomlc99/README.md An example TOML configuration file structure. ```toml [server] host = "www.example.com" port = [ 8080, 8181, 8282 ] ``` -------------------------------- ### Enable and Start xrdp Service Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian--(or-Ubuntu,-etc) Enables the xrdp and xrdp-sesman services to start on boot and starts them immediately. ```bash sudo systemctl enable --now xrdp xrdp-sesman ``` -------------------------------- ### Install XQuartz via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs XQuartz, an X Window System server, using Homebrew. ```bash brew install xquartz ``` -------------------------------- ### Build and Install XRDP Server Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Centos-7.3-Minimal-install-with-KDE Compiles and installs the XRDP server from its source code. This involves running bootstrap, configure, make, and make install commands within the xrdp directory. ```bash cd xrdp ./bootstrap ./configure make make install cd .. ``` -------------------------------- ### Enable and Start XRDP Services Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Centos-7.3-Minimal-install-with-KDE Enables the XRDP and XRDP session manager services to start on boot and then starts them immediately. This ensures remote desktop access is available after reboots. ```bash systemctl enable xrdp systemctl enable xrdp-sesman systemctl start xrdp-sesman systemctl start xrdp ``` -------------------------------- ### Install libx11 via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs libx11, a core X11 library, using Homebrew. ```bash brew install libx11 ``` -------------------------------- ### Install xrdp Server Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-openSUSE Installs the built xrdp server binaries and creates necessary symbolic links. It also copies the PAM configuration for xrdp-sesman. ```bash sudo make install sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin sudo cp ./instfiles/pam.d/xrdp-sesman.suse /etc/pam.d/xrdp-sesman ``` -------------------------------- ### Install Automake and Autoconf via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs Automake and Autoconf, build automation tools, using Homebrew. ```bash brew install automake ``` -------------------------------- ### Run Xfreerdp with VR Player Plugin Source: https://github.com/neutrinolabs/xrdp/blob/devel/vrplayer/README.txt Example command to run xfreerdp with the xrdpvr plugin to connect to a server. ```bash ./xfreerdp --sec rdp --plugin xrdpvr 192.168.2.149 ``` -------------------------------- ### Install xrdp Server Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian--(or-Ubuntu,-etc) Installs the compiled xrdp server to the system and creates symbolic links for the daemon and session manager. It's recommended to purge existing xrdp packages first if installed from a distribution's repository. ```bash sudo make install sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin ``` -------------------------------- ### Install Required Packages for Building xrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-openSUSE Installs all necessary development packages for building xrdp and xorgxrdp on openSUSE using zypper. ```bash sudo zypper install git autoconf automake libtool make gcc gcc-c++ libX11-devel libXfixes-devel libxkbfile-devel libXrandr-devel fuse3-devel patch flex bison libxslt-tools openssl-devel pam-devel nasm xorg-x11-server-sdk libmp3lame-devel libXfont2-devel ``` -------------------------------- ### Install Pkgconfig via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs Pkgconfig, a helper tool for managing compile flags, using Homebrew. ```bash brew install pkgconfig ``` -------------------------------- ### Build and Install xorgxrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-openSUSE Builds and installs the xorgxrdp component, which provides improved graphics performance for xrdp sessions. ```bash ./bootstrap ./configure make sudo make install ``` -------------------------------- ### Start GNOME Session with ~/.xsession Source: https://github.com/neutrinolabs/xrdp/wiki/Guide-for-Ubuntu-Desktop-24.04-with-working-snap-apps-and-GNOME-session Add the `gnome-session` command to `~/.xsession` to initiate the GNOME desktop environment for the user session. ```shell gnome-session ``` -------------------------------- ### Install Pipewire Audio Module on Debian/Ubuntu Source: https://github.com/neutrinolabs/xrdp/wiki/How-to-set-up-audio-redirection Installs the Pipewire module for xrdp audio redirection using apt. Ensure your window manager launches the necessary script after installation. ```bash sudo apt install pipewire-module-xrdp ``` -------------------------------- ### Install XRDP Pre-requisites Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Centos-7.3-Minimal-install-with-KDE Installs all necessary packages for building and running XRDP, including development tools, libraries, and utilities. Ensure your system is updated before running this command. ```bash yum update -y yum install -y finger cmake patch gcc make autoconf libtool automake pkgconfig openssl-devel gettext file pam-devel libX11-devel libXfixes-devel libjpeg-devel flex bison gcc-c++ libxslt perl-libxml-perl xorg-x11-font-utils xmlto-tex git libXrandr-devel nasm xorg-x11-server-devel xorg-x11-server-Xorg ``` -------------------------------- ### Start xrdp Service Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-openSUSE Enables and starts the xrdp service using systemctl, ensuring it runs on boot and is active immediately. ```bash sudo systemctl enable --now xrdp ``` -------------------------------- ### Install libxfixes via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs libxfixes, an X11 extension library, using Homebrew. ```bash brew install libxfixes ``` -------------------------------- ### Install Libtool via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs Libtool, a library management tool, using Homebrew. ```bash brew install libtool ``` -------------------------------- ### Configure xrdp startwm.sh for GNOME Session Source: https://github.com/neutrinolabs/xrdp/wiki/Guide-for-Ubuntu-Desktop-24.04-with-working-snap-apps-and-GNOME-session Add these environment variables to `/etc/xrdp/startwm.sh` to help start the GNOME session correctly. ```shell export DESKTOP_SESSION=ubuntu export GNOME_SHELL_SESSION_MODE=ubuntu export XDG_CURRENT_DESKTOP=ubuntu:GNOME ``` -------------------------------- ### Install OpenSSL via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs OpenSSL, a required cryptographic library, using Homebrew. ```bash brew install openssl ``` -------------------------------- ### Install NASM via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs NASM, an assembler required by librfxcodec, using Homebrew. ```bash brew install nasm ``` -------------------------------- ### Build and Install XorgXrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Centos-7.3-Minimal-install-with-KDE Compiles and installs the XorgXrdp component, which provides Xorg server support for XRDP. It requires specific include paths and libraries, potentially including custom configurations. ```bash cd xorgxrdp ./bootstrap ./configure XRDP_CFLAGS=-I~/git/neutrino/xrdp/common XRDP_LIBS=" " make make install ``` -------------------------------- ### Install Google Authenticator and QR Code Libraries Source: https://github.com/neutrinolabs/xrdp/wiki/Using-Authy-or-Google-Authenticator-for-2FA-with-XRDP Installs the google-authenticator PAM module and qrencode-libs for QR code generation. qrencode-libs is optional if QR codes are not desired. ```bash sudo dnf install google-authenticator qrencode-libs ``` -------------------------------- ### Install libxrandr via Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs libxrandr, an X11 RandR extension library, using Homebrew. ```bash brew install libxrandr ``` -------------------------------- ### Install Development Tools Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Centos-7.3-Minimal-install-with-KDE Installs the 'Development Tools' group, which includes essential utilities for compiling software. This is necessary for building XRDP from source. ```bash yum groupinstall -y 'Development Tools' ``` -------------------------------- ### Update CentOS and Install KDE Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Centos-7.3-Minimal-install-with-KDE Updates the system and installs the KDE desktop environment and X Window System. Run this command to prepare the graphical environment. ```bash yum update -y yum groupinstall -y 'KDE' 'X Windows System' ``` -------------------------------- ### Build VR Player Source: https://github.com/neutrinolabs/xrdp/blob/devel/vrplayer/README.txt Steps to build the VR Player. Ensure you are in the correct directory and have the necessary packages installed. ```bash cd ../xrdpvr make cd .. qmake make ``` -------------------------------- ### Install xrdp Build Dependencies (Non-Git Clone) Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian--(or-Ubuntu,-etc) Downloads and executes a script to install necessary build dependencies for xrdp using apt. This is for users who did not clone the git repository. ```bash wget https://raw.githubusercontent.com/neutrinolabs/xrdp/refs/tags/v${XRDP_VERSION}/scripts/install_xrdp_build_dependencies_with_apt.sh chmod +x install_xrdp_build_dependencies_with_apt.sh sudo ./install_xrdp_build_dependencies_with_apt.sh max ``` -------------------------------- ### Install xrdp on Fedora/RHEL Source: https://github.com/neutrinolabs/xrdp/blob/devel/README.md Install xrdp on Fedora, RHEL, and their derivatives using the DNF package manager. This command should be run after ensuring the EPEL repository is enabled. ```bash dnf install xrdp ``` -------------------------------- ### Bootstrap, Configure, Build, and Install xorgxrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Standard build process for xorgxrdp after obtaining the source tarball. Ensure necessary dependencies are available. ```bash ./bootstrap ./configure PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig make sudo make install ``` -------------------------------- ### Install Homebrew Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Installs Homebrew, a package manager for macOS, used to install other development tools and libraries. ```bash http://brew.sh/ ``` -------------------------------- ### Running Astyle for Code Formatting Source: https://github.com/neutrinolabs/xrdp/blob/devel/coding_style.md This command demonstrates how to use the astyle tool with a configuration file to format C source files. ```bash astyle --options=/path/to/file/astyle_config.as "*.c" ``` -------------------------------- ### Install xrdp on RedHat/CentOS/Fedora Source: https://github.com/neutrinolabs/xrdp/wiki/README Installs the xrdp package on RedHat, CentOS, or Fedora-based systems using yum. ```bash yum install xrdp ``` -------------------------------- ### Install Xcode Command Line Tools Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Ensures the Xcode command line tools are installed, which are necessary for building software on macOS. ```bash xcode-select --install ``` -------------------------------- ### Build xrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-openSUSE Builds the xrdp server from source after bootstrapping and configuring. The configure step enables specific features like FUSE, MP3 lame, and pixman. ```bash ./bootstrap ./configure --enable-fuse --enable-mp3lame --enable-pixman make ``` -------------------------------- ### Build and Install Sessionbroker Source: https://github.com/neutrinolabs/xrdp/wiki/[WIP]-xrdp-on-macOS-(with-ulalaca) Build the sessionbroker component using xcodebuild and install it to the specified directory. Sessionbroker is responsible for user authentication and session assignment. ```sh $ xcodebuild DSTROOT=/usr/local/opt -workspace Ulalaca.xcworkspace -scheme sessionbroker $ sudo xcodebuild DSTROOT=/usr/local/opt -workspace Ulalaca.xcworkspace -scheme sessionbroker install ``` -------------------------------- ### Example output of xrdp permission check Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian--(or-Ubuntu,-etc) Illustrates the expected output from the 'xrdp-chkpriv' script, showing the status of various xrdp configuration settings and permissions. ```text Settings - [xrdp.ini] runtime_user : xrdp - [xrdp.ini] runtime_group : xrdp - [xrdp.ini] certificate : /etc/xrdp/cert.pem - [xrdp.ini] key_file : /etc/xrdp/key.pem - [sesman.ini] SessionSockdirGroup : xrdp [ OK ] runtime_user 'xrdp' appears to exist [ OK ] runtime_group 'xrdp' appears to exist [ OK ] xrdp.ini and sesman.ini agree on group ownership [ OK ] /etc/xrdp/rsakeys.ini has correct permissions [ OK ] /etc/xrdp/cert.pem is read-only for xrdp:xrdp [ OK ] /etc/xrdp/key.pem is read-only for xrdp:xrdp [ OK ] -Summary- Permissions appear to be correct to run xrdp unprivileged ``` -------------------------------- ### Install xrdp on Ubuntu/Debian Source: https://github.com/neutrinolabs/xrdp/blob/devel/README.md Use this command to install xrdp on Ubuntu or Debian-based systems. It ensures you have the necessary xrdp package for remote desktop access. ```bash apt install xrdp ``` -------------------------------- ### Configure and Build xrdp Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian--(or-Ubuntu,-etc) Configures the build with various features enabled and then compiles the xrdp source code. Adjust configure options as needed for your system. ```bash ./bootstrap ./configure --with-systemdsystemunitdir=/usr/lib/systemd/system \ --enable-ibus --enable-ipv6 --enable-jpeg --enable-fuse --enable-mp3lame \ --enable-fdkaac --enable-opus --enable-rfxcodec --enable-painter \ --enable-pixman --enable-utmp -with-imlib2 --with-freetype2 \ --enable-tests --enable-x264 --enable-openh264 --enable-vsock make ``` -------------------------------- ### Build yami_inf wrapper for Intel libva Source: https://github.com/neutrinolabs/xrdp/wiki/On-EGFX-architecture-and-Dynamic-Monitors Instructions to clone the builders repository, build the yami_inf wrapper, and install it. This wrapper utilizes libyami and libva for hardware-accelerated encoding. ```bash git clone https://github.com/jsorg71/builders.git cd builders/yami/omatic/ ./buildyami.sh --prefix=/opt/yami --disable-x11 ``` -------------------------------- ### PCM Wave Format Example Source: https://github.com/neutrinolabs/xrdp/blob/devel/sesman/chansrv/wave-format-server.txt Example configuration for Pulse-Code Modulation (PCM) wave format with stereo channels and 16 bits per sample. ```text wFormatTag=1 nChannels=2 nSamplesPerSec=44100 nAvgBytesPerSec=176400 nBlockAlign=4 wBitsPerSample=16 cbSize=0 ``` -------------------------------- ### XRDP Create Sockdir Command Sequence Source: https://github.com/neutrinolabs/xrdp/wiki/devel-SCP-Sequence-Diagrams Shows the sequence for creating a sockdir, typically used when chansrv runs outside of sesman, such as with x11vnc. ```mermaid sequenceDiagram actor C as client participant SM as sesman C-)+SM : Create sockdir for the authenticated user SM-)-C : Sockdir creation response ``` -------------------------------- ### Install and Build cppcheck Source: https://github.com/neutrinolabs/xrdp/wiki/Running-cppcheck-in-development Downloads and builds a specified version of cppcheck from a git repository. The built version is placed in `~/cppcheck.local//`. ```bash $ scripts/install_cppcheck.sh https://github.com/danmar/cppcheck.git 1.90 ``` -------------------------------- ### Build xrdp on macOS Source: https://github.com/neutrinolabs/xrdp/wiki/Building-on-OSX-(not-official) Commands to bootstrap, configure, and build xrdp. It specifies compiler paths and host configuration, adapting for Apple Silicon. ```bash ./bootstrap ./configure PKG_CONFIG_PATH=$(brew --prefix)/opt/openssl/lib/pkgconfig CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++ --host=arm-linux --with-cflags="-mfpu=neon" make LIBTOOL="glibtool" sudo make install LIBTOOL="glibtool" ``` -------------------------------- ### Install RHEL/CentOS Dependencies for PulseAudio Configure Source: https://github.com/neutrinolabs/xrdp/wiki/Audio-Output-Virtual-Channel-support-in-xrdp These commands install the necessary development libraries on RHEL/CentOS systems required to successfully run the `./configure` script for the PulseAudio source code. ```bash yum install libtool-ltdl-devel intltool libsndfile-devel speex-devel ```