Press "Enter" to skip to content

Enhanced Hyper-V session on Manjaro VM

Reading Time: 2 minutes

Warning! Only works with Hyper-V host newer than 1803. Make sure you have “Enhanced Session Mode Policy” enabled on your host.

Download and install Hyper-V tools to enable Enhanced session on Linux VM – support for clipboard, custom resolution and spanning across multiple screens.

Tip: If you use remote manager to access Hyper-V console (nested windows) you may not be able to use some of the special shortcuts on Manjaro with i3 window manager. For example, I am using mRemoteNG with RDP connection to my Hyper-V host and I wasn’t able to use “Windows+Enter” to open terminal within the VM. “Windows” key is special “Mod” key that allows interaction with i3 WM.

Two ways to resolve this: use full screen on RDP session to your host or run Hyper-V Manager locally to connect to your host.

On the VM, open Terminal (Windows key + Enter on i3 WM) and download and install VM tools using following commands:

sudo pacman -Sy
sudo pacman -S git
cd ~/Downloads
git clone https://github.com/Microsoft/linux-vm-tools
cd linux-vm-tools/arch
./makepkg.sh
./install-config.sh

https://wiki.archlinux.org/index.php/Hyper-V#Enhanced_Session_Mode

Edit .xinitrc file and remove following line “–exit-with-session”

sudo vim ~/.xinitrc

Save the file and shut down VM. Using PowerShell modify Enhanced Session Transport Type on the VM to HvSocket (only available from Windows 1803):

Set-VM -VMName __Your_Arch_Machine__ -EnhancedSessionTransportType HvSocket

After you start your VM, you should see a prompt for Enhanced Session:

UPDATE: There is an issue with recent XRDP version (https://github.com/neutrinolabs/xrdp/issues/1403). To fix it, I rolled back XRDP to version 0.9.10 as per GitHub thread, which resolved this problem for the time being.

Some steps and details below.

Check version of xrdp on your VM with pacman:

pacman -Q xrdp

If it’s XRDP 0.9.11-1, enhanced session won’t work properly.

Using wget to download the archive of XRDP 0.9.10:

wget https://aur.archlinux.org/cgit/aur.git/snapshot/aur-e228e40ada0b171edf887ff7c1b42aa873674717.tar.gz

Extract the archive and build package:

tar -xzvf  aur-e228e40ada0b171edf887ff7c1b42aa873674717.tar.gz
cd  aur-e228e40ada0b171edf887ff7c1b42aa873674717
makepkg -scri

There will be a lot of commands scrolling through the screen while package is being build. Just confirm your choice when you are asked with “Y”.

Once XRDP 0.9.10 is installed, you can restart your VM and close Hyper-V console window. Then start your VM again and re-open the console window and you should see XRDP session manager asking you for credentials:

Share & contribute

3 Comments

  1. Efreak
    Efreak September 16, 2020

    Any new info on installing it from scratch? This isn’t working on current fresh install of manjaro. After building xrdp, using the above, I commented out the xorg build in linux-vm-tools/arch/makepkg.sh and re-ran it to build xorgxrdp, however xorgxrdp requires a newer version of xrdp to build it. I looked for commits to revert in xorgxrdp-devel-git.git repo mentioned in makepkg.sh, however there’s no history in the git repo it clones.

    • Jacob Sobczak
      Jacob Sobczak November 15, 2020

      Hi there, unfortunately I haven’t had time to do this again from scratch. However, I will update this post with new information for the current release of Manjaro when I get a chance to do it.

      If you figure it out before then, let me know!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.