Wednesday, 26 June 2019

Does my CPU/motherboard support VT-x?


I have the same problem described here: https://stackoverflow.com/questions/51863722/visual-studio-2017-android-device-manager-thinks-whpx-is-not-properly-installed i.e. I cannot run Android Emulators using x86 acceleration and hyper-v. Hyper-v and 'Windows Hypervisor Platform' are installed features. I have disabled and enabled them many times.


I have come across this post, which tells me that my Core I7 950 (https://ark.intel.com/content/www/us/en/ark/products/37150/intel-core-i7-950-processor-8m-cache-3-06-ghz-4-80-gt-s-intel-qpi.html) may not be supported: https://social.msdn.microsoft.com/Forums/en-US/aac67adc-cd53-4a19-909b-204ecdcb5719/android-emulator-not-starting?forum=visualstudiogeneral. Note that Eugene159 says: "I believe that it doesn't work with first gen Core i7".


I then same across this question: https://stackoverflow.com/questions/21074535/no-option-to-enable-hyper-v-in-my-bios-settings/21074680#21074680. The answerer (Keeler) talks about installing CPU-Z. I have done this on the PC in question. Here is the result:


enter image description here


Note that VT-x is not contained in the 'Instructions' field. I then did the same on my Surface Pro Tablet (M3-6Y30 CPU - 7 years newer) and I see this (note VT-x appears in the 'Instructions' field):


enter image description here


Unfortunately I cannot use my Tablet for Xamarin development. Therefore can I assume that I have to upgrade the CPU in my PC if I want to do Xamarin development on my PC?


Update


Following on from Ramhounds answer; I have followed these instructions:


1) Disable Hyper-v and Windows Hypervisor Manager. Go to Android SDK tools (in Visual Studio) and enable HAXM under: Tools/Extras.


2) Restart


3) Run: C:\Program Files (x86)\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager\haxm_check.exe. It returns:


VT-No NX-Yes


4) Run C:\Program Files (x86)\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe despite point three. Error appears saying virtualisation is disabled.


5) Disable Hyper-v in DOS: bcdedit /set hypervisorlaunchtype off


6) Restart, then run systeminfo and see minimum requirements for Hyper-V.


7) Run: C:\Program Files (x86)\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager\haxm_check.exe. It returns:


VT-Yes NX-Yes


8) Run C:\Program Files (x86)\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe and it installs.


9) The accelerated x86 emulators run as expected.


As Ramhound says; it appears there is something on my PC that is using hyper-v and blocking android emulator from using it.



Answer




I have the same problem described by Visual Studio 2017 Android Device Manager thinks WHPX is not properly installed, i.e. I cannot run Android Emulators using Hyper-V. Hyper-v and 'Windows Hypervisor Platform' are installed features. I have disabled and enabled them many times.



Your processor supports VT-x (Intel® Virtualization Technology). The simplest way to confirm this is the case is by running the Hardware Virtualization Check Utility. In order to avoid false negative, you should uninstall ANY software that might use the VT-x x86 extension, otherwise if you have software running in the background when you run this tool it will say VT-x is not supported.


You can also look at the performance tab on Task Manager, but again if you have hardware actively running in the background, you can create a condition where it will be reported as disabled. In order to give an accurate reading, you must uninstall ALL software that uses the VT-x extension.


enter image description here


Instead of using a third-party program that might not actually support your processor you should use the Intel Processor Identification Utility allowing you to properly identify the capabilities of your processor. In order to give an accurate reading, you must uninstall ALL software that uses the VT-x extension.



This maybe related to how Microsoft handles that VT-x bit/flag when you enable the HyperV platform. If you disable the HyperV platform, you should be able to run the processor utility and it will inform you that the processor supports those features as expected. If you enable the HyperV platform, you will noticed that same utility will show no as you experienced.



Source: Windows 8 and i7 950 (Bloomfield) CPU and Virtualization


If you ignored everything else in this answer, you need to read the following article submitted back in 2008 by Microsoft, It doesn’t feel like a hypervisor to me


The only requirements for Hyper-V and/or Android Emulator on Windows 10 is the following.




  1. A processor that supports Second Level Address Translation. On an Intel device this would be acomplished having the Intel VT-x with Extended Page Tables (EPT) feature.

  2. A processor that supports Intel Virtualization Technology (VT-x)

  3. Intel Extended Memory 64 Technology (Intel EM64T i.e. Intel 64)

  4. Intel Execute Disable (XD) Bit.



Your processor supports all of these features.


Requirements and recommendations (Android Studio) System Requirements (HAXM)


I don't believe you can use Hyper-V to run the Android Emulator, if you have Intel hardware. The documentation specifically indicates Hyper-V in connection to AMD hardware. HAXM of course only supports Intel hardware. If you don't actually have HAXM installed that might be your entire problem.



Note that VT-x is not contained in the 'Instructions' field.



This is due to the fact you have software installed that is using the VT-x extension.



Therefore can I assume that I have to upgrade the CPU in my PC if I want to do Xamarin development on my PC?



Your processor supports all the requirements for the Android Emulator, Hyper-V, and Intel HAXM. I already pointed out in your previous question there is evidence of system corruption due to the errors you recieved trying to remove the Windows Hypervisor Platform and Hyper-V.


There is a very rare firmware bug I am aware of, that effects enabling and disabling VT-x, basically in order to enable VT-x you have to disable it. Likewise, in order to disable it, you have to enable it. I have only read about this bug, I have no reference the existence of this bug, I only know it does exist in older Intel hardware.


Before you replace hardware that meets all the requirements for the software you are attempting to run, I suggest you perform a clean Windows 10 version 1903 install, and run the tools I suggest. If that is beyond your capabilties, you will need to replace your hardware, since your processor is more than a decade old.


Most people do not understand, that if you have software installed running in the background (i.e. security software), which happens to support VT-x in the background, tools that indicate if VT-x is supported on the processor will indicate it is not supported. This is actually a false negative, in that the processor actually supports it (and it's enabled in the firmware), but the software is currently using it.


I would not hold a great deal of weight on anyone, that indicates that something "might not be supported", if that somebody did not provide any evidence to the reason it might not be supported.


SLAT and VT-x are the only two extensions that modern Intel processors (i.e. literally any Intel Core Processors) might not support. Likewise there are some very specific Pentium products that don't support the Execute Bit (XD) extension. Even fewer Intel processor release even farther back than a decade don't support Intel 64 (typically limited to Celeron processors). While your processor might be old it supports all the required x86 extensions necssary to run the software you have asked about.


Sources:



No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...