Created
November 29, 2022 00:22
-
-
Save banasiak/650497cfdf333a4f2a08638a6fafec33 to your computer and use it in GitHub Desktop.
Hyper-V Enhanced Session (Ubuntu 22.04 LTS)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Instructions: https://gist.github.com/jepio/39bd91d63ee7f02851b5253694f07908 | |
# This Script: https://github.com/Hinara/linux-vm-tools/blob/ubuntu20-04/ubuntu/22.04/install.sh | |
# | |
# 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 <<EOF | |
[Allow Colord all Users] | |
Identity=unix-user:* | |
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile | |
ResultAny=no | |
ResultInactive=no | |
ResultActive=yes | |
EOF | |
# reconfigure the service | |
systemctl daemon-reload | |
systemctl start xrdp | |
# | |
# End XRDP | |
############################################################################### | |
echo "Install is complete." | |
echo "Reboot your machine to begin using XRDP." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
solves my teal screen problem with enhanced session; but doesn't allow me to connect from external hosts using bridged virtual switch.
ss -an |grep 3389
It seems once v_sock is specified, I can't get TCP to listen on external IPs. The following is set, but it doesn't take effect?
Not sure I understand what the comments mean here?