Working and usable Manjaro on Hyper-V - Instructions

Just in case anyone else is interested, I put together these instructions on getting a working Manjaro on Hyper-V that is actually very usable.

I use both Linux and Windows as daily drivers with Linux installed on my laptops and older Mac. On one particular machine, I use Windows 10 and VMWare running Manjaro due to past choppy performance in Hyper-V with KDE , however, with the upcoming WSL 2 in Windows, and the Sandbox now available, I wanted to be able to use Manjaro inside a Hyper-V VM.

My first, and really preferred option, was to install Windows under KVM and pass through my Nvidia 1070 and though this actually worked well for the most part, it suffered from really bad frame drops when running certain games.

As this machine was used for gaming as well, this was not really an option. So I went back to the original configuration with Windows 10 as the host OS and getting Manjaro to work in a VM solution, preferrably Hyper-V so I can use the latest Windows features.

Important specs of the machine

CPU: Intel I7-4790K, no overclock
GPU: Nvidia 1070
Memory: 32GB
SSD: Samsung 860 EVO, 1TB
OS: Windows 10, 1909

Creating the VM

  • Generation 1 (Manjoro was a pain to boot on Gen 2)
  • Memory 4098 (No Dynamic)
  • Default Switch
  • 30GB HD (Or whatever you want)
  • VCPU = 1 < Play with CPUs to improve UI refresh performance. When I gave it to 4, KDE performance in Hyper-V viewer was worse than with 1.

Installing Manjaro

Install as normal
Do a shutdown
When complete, in Hyper-V, remove the CD from the Bios section, or move below IDE
Restart VM and Manjaro should boot normally
Do an update after first start. <- This is faster in the GUI then at the command line

I know everyone follows this rule, but as a reminder, all the following should be run as a normal user with sudo as needed...

Increasing the screen resolution for the Hyper-V viewer

Hyper-V locks the screen resolution to 1024....let's bump that up

sudo pacman -S xf86-video-fbdev

Add this to
/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="....... video=hyperv_fb:1920x1080"

Remove Video Vesa :

sudo mhwd -r pci video-vesa
sudo  update-grub 

Reboot

This is a fully workable VM with KVM running, but imo, resize would be nice and responsiveness could be better. We can fix this with VNC

Install VNC

sudo pacman -S tigervnc

start server to make sure everything is working as a normal user

vncserver
vncserver -kill :1

We need Xterm

sudo pacman -S xterm

restart vnc

vncserver

KDE in VNC as opposed to the Hyper-V viewer.
Since you'll have both VNC and the Hyper-V viewer at the same time, I've found you may end up with application running in one or the other if you don't kill -9 the process. Logging out from the Hyper-V viewer generally works, but for a more consistent experience, I do a kill on the kde process.

Connect to VNC Server from windows (I'm using the tigervnc viewer for windows)

You should have a few xterm in front of you so

Logout from kde in the hyper-v viewer (this should work fine here) or

ps -ef |grep plasma_session
kill -9 <the pid>

in the VNC Viewer xterm, type

plasma_session

You should now have kde in VNC and can resize to full screen or any other resolution.

At this point, you may not be able to login and see anything in the Hyper-V viewer and get a KDE desktop, so, you will need to kill the new plasma session and relogin.

Mesa Drivers for VNC

Not sure if this is needed, but it felt like vnc performance was improved when I reinstalled the mesa drivers

inside the VNC Viewer

ps -ef |grep plasma_session
kill -9 <the pid>

go back to hyper-v connect and login and enable mesa drivers

vncserver -kill :1
sudo pacman -S mesa
vncserver

connect to vnc server
logout of the hyper-v kde viewer
in xterm, type

plasma_session

Install linux tools (Optional)

We need to get a package first

sudo pacman -S git 
git clone https://aur.archlinux.org/packages/xorgxrdp/
cd xorgxrdp
makepkg

This will fail when you build it....so if you're comfortable and really want the tools, add the missing key

gpg --recv-keys  <the missing key>
makepkg

Install the actual tools

git clone https://github.com/Microsoft/linux-vm-tools.git
cd linux-vm-tools/arch

edit makepkg.sh and comment out the last lines for XORGXRDP build. This will fail.

# git clone....
# cd xorgxrdp-devel
# makepkg -sri.....

Build and install

makepkg.sh
sudo install-config.sh

Remove the key you added

gpg --delete-key  <the missing key>

start VNC, logout etc...

Other commands that may be useful for different scenarios.

kquitapp5 plasmashell
kstart5 plasmashell
1 Like

Forum kindly sponsored by