Hyper-V增强会话启动失败解决方案

226 阅读1分钟

将下列内容保存到install.sh文件

#===============================================================================

#!/bin/bash

This script is for Ubuntu 22.04 Jammy Jellyfish to download and install XRDP+XORGXRDP via

source.

Major thanks to: c-nergy.be/blog/?p=113… 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-virtualHWEaptinstallylinuxcloudtoolsvirtual{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."