===== 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 <
:!: После данных действий необходимо выключить нашу 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//.
;#;
{{:wiki:xorg_ench_sess_hyperv.png|}}
;#;
{{tag>Microsoft HYPER-V RDP Ubuntu Linux}}