User Tools

Site Tools


enhanced_session

Enhanced Session

Правим сохраненные настройки подключения к сессии VM

Если мы сохранили настройки коннекта к какой-то VM, а теперь нам необходимо их изменить - сделать это можно из PowerShell следующим образом:

 VMConnect.exe HYPERV_SERVER HYPERV_VM /edit

Настройка Enhanced Session для Ubuntu 22.04

Обновляем apt

 apt update && apt upgrade -y

Устанавливаем hv_kvp драйвер HYPER-V

 apt install -y linux-tools-virtual${HWE}
 apt install -y linux-cloud-tools-virtual${HWE}

Устанавливаем xRDP

 apt install -y xrdp

Настраиваем автостарт xRDP

 systemctl stop xrdp
 systemctl stop xrdp-sesman

Правим конфиги xRDP следующим образом:

sed -i_orig -e 's/port=3389/port=vsock:\/\/-1:3389/g' /etc/xrdp/xrdp.ini
sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini
sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini
sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini

Пилим скрипт для настрройки сессии

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

Устанавливаем скрипт

 sed -i_orig -e 's/startwm/startubuntu/g' /etc/xrdp/sesman.ini

Делаем ренейм дисков в общие

sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini
sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config

Настраиваем запуск vmw, если необходимо

echo "blacklist vmw_vsock_vmci_transport" > /etc/modprobe.d/blacklist-vmw_vsock_vmci_transport.conf

Настраиваем запуск hv_sock

 echo "hv_sock" > /etc/modules-load.d/hv_sock.conf

Настраиваем политику для xRDP сессий.

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

systemctl daemon-reload
systemctl start xrdp

:!: После данных действий необходимо выключить нашу VM.

Дальнейшие действия выполняем на хост-системе с HYPER-V.

Проверям, включена ли поддержка Enhanced session в принципе - на уровне политики HYPER-V.

 Get-VMHost | select Name, EnableEnhancedSessionMode

Если нет - включаем

 Set-VMHost -EnableEnhancedSessionMode $true

Переключаем нашу VM с VMBus на HVSocket

 Set-VM -VMName AdronsPrimaryWorkstation -EnhancedSessionTransportType HvSocket

Теперь Enhanced session должна заработать.

:!: Внимание, если при подключении через Enhanced session мы вводим данные на экране Xorg, но никакого успешного логина (или ошибки) нет - вероятно в Ubuntu УЖЕ залогинен пользователь, под которым мы пытаемся войти. Для работы сессии необходимо РАЗЛОГИНИТЬСЯ сначала, а потом снова зайти через Enhanced session и Xorg.

enhanced_session.txt · Last modified: 2024/12/13 13:11 by jp