#!/bin/bash # # This script is for Ubuntu 22.04 Jammy Jellyfish to download and install XRDP+XORGXRDP via # source. # # Major thanks to: http://c-nergy.be/blog/?p=11336 for the tips. # ############################################################################### # Use HWE kernel packages # HWE="" #HWE="-hwe-22.04" ############################################################################### # Update our machine to the latest code if we need to. # if [ "$(id -u)" -ne 0 ]; then echo 'This script must be run with root privileges' >&2 exit 1 fi apt update && apt upgrade -y if [ -f /var/run/reboot-required ]; then echo "A reboot is required in order to proceed with the install." >&2 echo "Please reboot and re-run this script to finish the install." >&2 exit 1 fi ############################################################################### # XRDP # # Install hv_kvp utils apt install -y linux-tools-virtual${HWE} apt install -y linux-cloud-tools-virtual${HWE} # Install the xrdp service so we have the auto start behavior apt install -y xrdp systemctl stop xrdp systemctl stop xrdp-sesman # Configure the installed XRDP ini files. # use vsock transport. sed -i_orig -e 's/port=3389/port=vsock:\/\/-1:3389/g' /etc/xrdp/xrdp.ini # use rdp security. sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini # remove encryption validation. 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 sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini # Add script to setup the ubuntu session properly if [ ! -e /etc/xrdp/startubuntu.sh ]; then cat >> /etc/xrdp/startubuntu.sh << EOF #!/bin/sh export GNOME_SHELL_SESSION_MODE=ubuntu export XDG_CURRENT_DESKTOP=ubuntu:GNOME exec /etc/xrdp/startwm.sh EOF chmod a+x /etc/xrdp/startubuntu.sh fi # use the script to setup the ubuntu session sed -i_orig -e 's/startwm/startubuntu/g' /etc/xrdp/sesman.ini # rename the redirected drives to 'shared-drives' sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini # Changed the allowed_users sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config # Blacklist the vmw module if [ ! -e /etc/modprobe.d/blacklist-vmw_vsock_vmci_transport.conf ]; then echo "blacklist vmw_vsock_vmci_transport" > /etc/modprobe.d/blacklist-vmw_vsock_vmci_transport.conf fi #Ensure hv_sock gets loaded if [ ! -e /etc/modules-load.d/hv_sock.conf ]; then echo "hv_sock" > /etc/modules-load.d/hv_sock.conf fi # Configure the policy xrdp session cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <