diff --git a/ubuntu/18.04/install.sh b/ubuntu/18.04/install.sh new file mode 100644 index 0000000..033fe7e --- /dev/null +++ b/ubuntu/18.04/install.sh @@ -0,0 +1,108 @@ +#! /bin/bash + +# +# This script is for Ubuntu 18.04 Bionic Beaver to download and install XRDP+XORGXRDP via +# source. +# +# Major thanks to: http://c-nergy.be/blog/?p=11336 for the tips. +# + +############################################################################### +# Update our machine to the latest code if we need to. +# + +sudo apt update +sudo apt upgrade -y + +# Get git if we dont have it. +sudo apt install -y git + +# TODO: Remove the custom kernel logic when 18.04 supports hv_sock by default. +sudo add-apt-repository ppa:billy-olsen/test-kernels-bionic +sudo apt-get update +sudo apt install linux-image-4.14.0-17-generic + +if [ -f /var/run/reboot-required ]; then + reboot +fi + +############################################################################### +# XRDP +# +export XRDP_PATH=~/git/src/github.com/neutrinolabs/xrdp + +# Install the xrdp service so we have the auto start behavior +sudo apt install -y xrdp + +# Get XRDP requirements +# ./bootstrap requirements 'autoconf libtool pkg-config' +# ./configure requirements 'libssl-dev libpam0g-dev libjpeg-dev libfuse-dev libx11-dev libxfixes-dev libxrandr-dev nasm' +sudo apt install -y autoconf libtool pkg-config libssl-dev libpam0g-dev libjpeg-dev libfuse-dev libx11-dev libxfixes-dev libxrandr-dev nasm + +# Get XRDP +if [ ! -d $XRDP_PATH ]; then + git clone https://github.com/neutrinolabs/xrdp $XRDP_PATH +fi + +# Configure XRDP +cd $XRDP_PATH +./bootstrap +./configure --enable-vsock --enable-jpeg --enable-fuse + +sudo systemctl stop xrdp +sudo systemctl stop xrdp-sesman + +# Build/Install XRDP +make +sudo make install + +# Configure the installed XRDP ini files. +# use vsock transport. +sudo sed -i_orig -e 's/use_vsock=false/use_vsock=true/g' /etc/xrdp/xrdp.ini +# use rdp security. +sudo sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini +# remove encryption validation. +sudo sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini +# disable bitmap compression since its local its much faster +sudo sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini + +# use the default lightdm x display +# sudo sed -i_orig -e 's/X11DisplayOffset=10/X11DisplayOffset=0/g' /etc/xrdp/sesman.ini + +# Changed the allowed_users +sudo sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config + +# Enable the hv_sock module +sudo rmmod vmw_vsock_vmci_transport +sudo rmmod vsock +sudo modprobe hv_sock + +# Configure the policy xrdp session +sudo bash -c 'cat >/etc/polkit-1/localauthority.conf.d/02-allow-colord.conf <