Tested working on Fedora Workstation 39, 40, 41, 42, and 43.
(Commands prefixed with a # should be run as the root user or with sudo. Commands prefixed with a $ should be run as a regular/unprivileged user.)
# dnf install xrdp(with Xorg session support:# dnf install xrdp xorgxrdp)- If using GNOME:
# $EDITOR /etc/pam.d/xrdp-sesmanand comment and uncomment the appropriate lines. - If using Xfce:
$ echo startxfce4 > $HOME/.xsessionand$ chmod +x $HOME/.xsession. - Optionally, rename the shared drives mount:
# $EDITOR /etc/xrdp/sesman.iniand setFuseMountName=shared-drives # $EDITOR /etc/xrdp/xrdp.iniand set:port=vsock://-1:3389([Globals]section)vmconnect=true(uncomment)security_layer=rdpbitmap_compression=false- If you chose to install the
xorgxrdppackage: uncomment the whole[Xorg]section.
$ systemctl enable xrdp xrdp-sesman- Shut down the virtual machine (do NOT reboot) and close the Virtual Machine Connection window.
- On your host, in PowerShell (as admin or as a user in the "Hyper-V Administrators" group):
Set-VM -VMName "Name of your Fedora VM" -EnhancedSessionTransportType HvSocket - Connect to your VM by reopening the Virtual Machine Connection window, and boot it.
You can now enable Enhanced Session Mode.
This might be less to do with getting an enhanced session to work, but I had trouble booting into a fresh 43 install using the non rescue kernel. The rescue kernel did work, so it seems that some modules/drivers were missing from the other kernel image. I had to do the following, otherwise I would get an indefinite hang looking for a device that doesn't exist:
The error:
Create a new config file specifically for Hyper-V drivers
echo 'add_drivers+=" hv_vmbus hv_netvsc hv_storvsc hv_utils "' | sudo tee /etc/dracut.conf.d/hyperv.conf
Get the version of the bad kernel.
ls /lib/modules
Replace [VERSION] with the string from step 2
sudo dracut -f --kver [VERSION]
Update initramfs.
$ dracut -f --kver 6.17.12-300.fc43.x86_64
Then I was able to boot under Hyper-V.
Can confirm that this guide got enhanced session working for me.