Ubuntu 14.04 Desktop under Windows 8.1 Hyper-V

46,886

Solution 1

The desktop lags because Hyper-V is using software rendering instead of using the GPU:

$ /usr/lib/nux/unity_support_test -p

Not software rendered: no
Unity 3D supported: no

This appears to be because Hyper-V has no 3D GPU acceleration capability. Hyper-V is a server-virtualization techonology that is not meant to be used for virtual desktops:

It is fact that physical servers usually don't come with powerful video adapter cards. Consequently, virtualization technologies limit virtual desktops to run only simple 2-D user-interface's applications. (source)

-

Lack of 3D Accelerated Graphics in guest operating systems. Hyper-v client does not give the option to add virtual accelerated graphics card for guest OSes.

That is not what Hyper-V was designed to do. If you want improved video performance, run over RDP from the host. Hyper-V is not a replacement for VMware Player! (source)

-

Hyper-V was being developed solely for server virtualization and therefore is mainly for developers or IT admins looking to test out multiple environments. (source)

Solution 2

I just installed Ubuntu 14.04 Desktop on Hyper-V and was facing the same problem with performance. Later figured out that Hyper-V allocates 1 Virtual Processor to each Virtual Machine by default. Increased it to 4 and its working fine now.

Solution 3

Read first and make the same VM step-by-step:
Benjamin Armstrong: Ubuntu 14.04 in a Generation 2 VM

One chance versus two that is to alternate your hardware with second video controller and proposition for Hyper-V settings to use separate video thread. Most important part here is BIOS Hyper-V settings. Especially for Hyper-V-specific video device option.
Refer to Enabling virtualization in the system BIOS

Also suggested to include numa=off parameter, read more about, and also disabling secure boot on guest os. Refer to common guide and optimize your host and guest:
Ubuntu virtual machines on Hyper-V

Quote: The following daemons must be installed manually for Ubuntu distributions:
VSS Snapshot daemon – This daemon is required to create live Linux virtual machine backups.
KVP daemon – This daemon allows setting and querying intrinsic and extrinsic key value pairs.
To install both daemons, please use the following command (at your GUEST UBUNTU):

$ sudo apt-get update
$ sudo apt-get install hv-kvp-daemon-init

Note: Hyper-V-specific video device option available only for 13.10 and 14.04.


VMware Player perfomance & troubleshooting:

Performance Problem on 64-Bit Windows Hosts with Intel EM64T Processors (1082240)

Quote: If your virtual machine exhibits slow performance and high CPU usage, add the following line to the virtual machine's configuration (.vmx) file:
sched.mem.pshare.enable=FALSE


I think what you should to figure out is only details of your configuration. Your problem possible exist any place where VMware Docs able to cover. So please look this complex guide:

Troubleshooting virtual machine performance issues (1008360)

Share:
46,886

Related videos on Youtube

avo
Author by

avo

Updated on September 18, 2022

Comments

  • avo
    avo over 1 year

    Is it possibly to speed up the graphics of Ubuntu 14.04 Desktop under Windows 8.1 Hyper-V anyhow?

    I've already decreased the screen resolution and disabled the COMPIZ video effects, but it's still very laggy. It used to work with almost native performance under VMware Player, but I have to move on with Hyper-V.

    UPDATE

    Can you post the output of /usr/lib/nux/unity_support_test -p

    Sure:

    OpenGL vendor string: VMware, Inc.
    OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
    OpenGL version string: 2.1 Mesa 10.1.3
    
    Not software rendered: no
    Not blacklisted: yes
    GLX fbconfig: yes
    GLX texture from pixmap: yes
    GL npot or rect textures: yes
    GL vertex program: yes
    GL fragment program: yes
    GL vertex buffer object: yes
    GL framebuffer object: yes
    GL version is 1.4+: yes
    Unity 3D supported: no
    

    Also:

    avo@Ubuntu-Desktop-VM:~$ lsmod | grep hv
    hv_netvsc 31255 0 
    hv_storvsc 17785 2 
    hv_utils 19003 0 
    hv_vmbus 50383 6 hyperv_keyboard,hv_netvsc,hid_hyperv,hv_utils,hyperv_fb,hv_storvsc
    
    • Geo
      Geo almost 10 years
      have you gone under virtual machine configs and set up all settings to max? (I mean, leave a few processors to the windows 8.1, but the video memory can set to the max available which is 128 mega if im not mistaken).
    • avo
      avo almost 10 years
      @Geo, tks, I will try that and let you know.
    • avo
      avo almost 10 years
      @Geo, I could not find a way to increase the video size. There are no child nodes under Microsoft Synthetic Video XML entry. Any ideas? Thanks.
    • bain
      bain almost 10 years
      Can you post the output of /usr/lib/nux/unity_support_test -p
    • avo
      avo almost 10 years
      I updated the question with requested info, @bain.
  • avo
    avo almost 10 years
    Thanks for your answer. My host BIOS has all the relevant visualization options enabled. Did by chance you mean the Hyper-V guest BIOS? Is there a way to even enter it when the guest is booting? I also couldn't find anything on "Hyper-V-specific video device options", where they are? Any hint would be appreciated.
  • swift
    swift almost 10 years
    I mean NOT Hyper-V guest BIOS, but Hyper-V HOST BIOS! Hyper-V-specific video device it is your config at GUEST: what exactly video device should be used. So if you have SECOND video device you can "free" it at HOST and enable it to using at GUEST config. This gain you to using isolated video thread. Config for GUEST exist at your VM player. If you use VMware then you need to look large VMware documentation about. Try install or reinstall VM Tools to your VMware player.
  • swift
    swift almost 10 years
    your Win8.1 is 64 bit?
  • avo
    avo almost 10 years
    Yes, it's Win8.1 64 bit. I'm not using VMware, I had to switch to Hyper-V. I only mentioned VMware in my question to reinstate that performance was great under VMware. Hyper-V has "Allow NUMA spanning" settings, but turning it off did have any noticeable effect. It doesn't appear that Hyper-V allow to select or alter the video driver for a guest.
  • swift
    swift almost 10 years
    oops sorry )) i'm a little blur attention ... do you installed VSS Snapshot Daemon & KVP Daemon ?
  • swift
    swift almost 10 years
    updated for VSS & KVP
  • avo
    avo almost 10 years
    sudo apt-get install hv-kvp-daemon-init didn't change anything. Please check the updated question for some more details.
  • swift
    swift almost 10 years
    Do not mind. And strange that you're talking about Hyper-V Client but runs your guest under VMware: OpenGL vendor string: VMware, Inc. So, Hyper-V Client DO NOT REQUIRE VMware under Windows 8.1. Read how to Install Hyper-V and Configure a Virtual Machine I'm sorry, hope it help you.
  • swift
    swift almost 10 years
    My view your VMware Player CONFLICTED with Hyper-V infrastructure under Win8.1. My opinion how I could to decide this situation: 1. Remove VMware 2. Reinstall Hyper-V Client 3. Reboot and make sure that Hyper-V services works. 4. Make sure that correctly virtual machines which ready to use and available for download from Microsoft (also Ubuntu) can be started EVEN BY DOUBLECLICK from folder. 5. Run one, two, three machines same time and benchmark your system. Approximately.
  • swift
    swift almost 10 years
  • swift
    swift almost 10 years
    thank you. that's educate me alot. feels self temerity due to just now read that Hyper-V do not support GPU virtualization and was have not time to read. think I should to say you about server. maybe we start new +50 bounty? Microsoft said GPU available with RemoteFX infrastructure. Mere need to modify your question and maybe we will catch some luck :)
  • avo
    avo almost 10 years
    I don't have many rep points left for another bounty. I need to earn some first :)
  • swift
    swift almost 10 years
    I have don't worry ... if you want next bounty for question. there +100 next minimum.