Skip to content

Instantly share code, notes, and snippets.

@ikr4-m
Created June 25, 2022 10:04
Show Gist options
  • Select an option

  • Save ikr4-m/67023682f949c2c22b0e51d0acb68b05 to your computer and use it in GitHub Desktop.

Select an option

Save ikr4-m/67023682f949c2c22b0e51d0acb68b05 to your computer and use it in GitHub Desktop.
Hyper-V Enhanced Session for Debian
#!/bin/sh
# This script based on linux-vm-tools for Ubuntu 22.02.
# Thanks to https://github.com/Hinara/linux-vm-tools/ to script
# 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.
#
###############################################################################
# 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 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/startdebian.sh ]; then
cat >> /etc/xrdp/startdebian.sh << EOF
#!/bin/sh
# If you not using GNOME, remove GNOME_SHELL_SESSION_MODE.
export GNOME_SHELL_SESSION_MODE=debian
# Change the XDG_CURRENT_DESKTOP with your default DE/WM
export XDG_CURRENT_DESKTOP=debian:GNOME
exec /etc/xrdp/startwm.sh
EOF
chmod a+x /etc/xrdp/startdebian.sh
fi
# use the script to setup the ubuntu session
sed -i_orig -e 's/startwm/startdebian/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 "Please turn off your VM Machine and execute 'Set-VM \"Debian\" -EnhancedSessionTransportType HvSocket' in PowerShell Admin and turn on again your VM Machine"
Copy link
Copy Markdown

ghost commented Oct 29, 2025

This is working for me with Debian Trixie in late 2025:

OS: Debian GNU/Linux 13 (trixie) x86_64
Host: Virtual Machine (Hyper-V UEFI Release v4.1)
Kernel: Linux 6.12.43+deb13-amd64

@thayumanavar77
Copy link
Copy Markdown

Thanks a lot for sharing it.

@n-zhi
Copy link
Copy Markdown

n-zhi commented Apr 14, 2026

Much of the script is inapplicable to Debian 13 (Trixie). I've created a new version:
https://gist.github.com/n-zhi/5d598688b6642102c9c3c31c9210bf4c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment