VMware Communities
m_30
Contributor
Contributor
Jump to solution

Enable Intel-VT on a Mac Pro

How do I enable VT on a Mac Pro, which has an EFI (Extensible Firmware Interface) instead of a BIOS?

I'm running Vista Business 64-bit under boot camp (natively on the processor, not in a VM) on a Mac Pro (Early 2008), which has 2 quad core XEONs E5462, which fully support EM64T and VT. I'm using VMware Workstation 6.0.3 and I've just tried to install Ubuntu 8.04 Hardy Heron 64-bit in a VM, which resulted in the following error message:

"This CPU is VT-capable, but VT is not enabled (check your BIOS/firmware settings)."

I have no clue what to do now. Anyone who had the same problem and has resolved it successfully?

All my 32-bit VMs run fine. But I assume that they would run faster, if VMware Workstation could use Intel-VT. By the way, is there any way of telling, when VMware Workstation is actually using VT?

Reply
0 Kudos
1 Solution

Accepted Solutions
admin
Immortal
Immortal
Jump to solution

Apple's EFI has a number of bugs regarding VT activation. On some Mac systems, VT is only enabled on some processor cores. On some Mac systems, VT is not reactivated after waking the system from certain sleep states. Since it is a Mac-specific product, Fusion has workarounds for these issues. The ideal solution is to get an updated EFI release from Apple that fixes these bugs.

In the interim, you can try the following:

Add "hv.enableIfUnlocked = TRUE" to your system-wide VMware configuration file. On Linux hosts, this is /etc/vmware/config. On Windows hosts, try

C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation\config.ini

or

C:\Users\All Users\Application Data\VMware\VMware Workstation\config.ini

If the firmware leaves VT disabled but does not lock it in this state, this setting should enable VT for you.

(In the interest of full disclosure, I have never tried this, since I have no systems with broken firmware.)

View solution in original post

Reply
0 Kudos
20 Replies
matthuk124
Enthusiast
Enthusiast
Jump to solution

sounds like you just have to go to the bios and enable VT. are you trying to run a 64 bit o.s. on a 32 bit o.s.? that might not always work.

Reply
0 Kudos
RDPetruska
Leadership
Leadership
Jump to solution

Check the Fusion forums for possible ideas on enabling the VT support... I think there were some issues with certain Macs.

"By the way, is there any way of telling, when VMware Workstation is actually using VT?"

If you can run a 64-bit guest, then Workstation is using VT. Otherwise it is not.

Reply
0 Kudos
admin
Immortal
Immortal
Jump to solution

All my 32-bit VMs run fine. But I assume that they would run faster, if VMware Workstation could use Intel-VT.

That is typically not the case, due to the extremely long latencies associated with VM-entry/VM-exit under VT, particularly on the earlier VT implementations. However, there are some applications for which VT offers greater performance. See this ASPLOS paper for an analysis.

By the way, is there any way of telling, when VMware Workstation is actually using VT?

With VMware Workstation 6.0.3, you should be able to check the vmware.log file for the monitor extensions that are loaded. If you see hv-vt.vmm32, then the 32-bit monitor is using Intel VT. If you see hv-svm.vmm32, then the 32-bit monitor is using AMD-V. If you see hv-none.vmm32, then the 32-bit monitor is using binary translation. Substitute 'vmm64' for 'vmm32' and you get the answer for the 64-bit monitor.

Reply
0 Kudos
m_30
Contributor
Contributor
Jump to solution

@ matthuk124:

> sounds like you just have to go to the bios and enable VT.

Well, as I just wrote, the Mac Pro has no BIOS. It has an EFI. Therefore my question was, how to enable VT on a Mac Pro running Vista 64-bit!

> are you trying to run a 64 bit o.s. on a 32 bit o.s.?

As I also wrote before, I'm running Vista 64-bit and I'm trying to install Ubuntu 64-bit on VMware Workstation.

@ :

> Check the Fusion forums for possible ideas on enabling the VT support.

It appears that this problem is limited to boot camp,

Windows/Vista, and VMware Workstation. The installation of Ubuntu

64-bit using VMware Fusion 1.1.2 under Mac OS X 10.5.2 works fine. Therefore I assume that VT is enabled under Mac OS X. But as I'm working mostly under Vista 64-bit, I'd still like to know, how to enable VT for this configuration.

@ :

> If you see hv-vt.vmm32, then the 32-bit monitor is using Intel VT. If you see hv-svm.vmm32, then the 32-bit

> monitor is using AMD-V. If you see hv-none.vmm32, then the 32-bit monitor is using binary translation.

Thanks a lot for this explanation! All the log-files of my 32-bit VMs running in VMware Workstation show "hv-none.vmm32", so there is no VT active under Windows XP 32-bit and/or Vista 64-bit. Unfortunately I couldn't find the log-file using VMware Fusion, but as I wrote, running Ubuntu 64-bit in VMware Fusion under Mac OS X is no problem. And we are talking about the very same computer.

Anyway, the quad core XEONs E5462 are well capable of VT, so the question remains: How can I enable VT on a Mac Pro running Vista 64-bit? Maybe the other question should also be, if VT is deactivated by boot camp or if this problem is related to the combination EFI and Windows/Vista?

Reply
0 Kudos
admin
Immortal
Immortal
Jump to solution

Apple's EFI has a number of bugs regarding VT activation. On some Mac systems, VT is only enabled on some processor cores. On some Mac systems, VT is not reactivated after waking the system from certain sleep states. Since it is a Mac-specific product, Fusion has workarounds for these issues. The ideal solution is to get an updated EFI release from Apple that fixes these bugs.

In the interim, you can try the following:

Add "hv.enableIfUnlocked = TRUE" to your system-wide VMware configuration file. On Linux hosts, this is /etc/vmware/config. On Windows hosts, try

C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation\config.ini

or

C:\Users\All Users\Application Data\VMware\VMware Workstation\config.ini

If the firmware leaves VT disabled but does not lock it in this state, this setting should enable VT for you.

(In the interest of full disclosure, I have never tried this, since I have no systems with broken firmware.)

Reply
0 Kudos
m_30
Contributor
Contributor
Jump to solution

@jmattson:

Wow, it worked! You're my personal hero today!

I tested the configuration switch "hv.enableIfUnlocked = TRUE" both in Windows XP and in Vista x64. Now my Ubuntu 64-bit VM runs fine, even under Windows XP 32-bit. By the way, in Vista x64 the "config.ini" file is actually located here:

"C:\ProgramData\VMware\VMware Workstation\config.ini"

Apple's EFI has a number of bugs regarding VT activation.

I heard that before. I guess that Apple has to hear a few more complaints about this, before they will take action. But you never know;-)

Anyway I'm glad that you guys found a workaround!!! Why is this not documented anywhere? At least I couldn't find anything about this. Even a Google-search on "hv.enableIfUnlocked" doesn't show anything. I assume that this is a very useful hint for all Mac Pro users.

Reply
0 Kudos
koip
Contributor
Contributor
Jump to solution

Thanks, this fix worked for me aswell running linux as host.

I have a follow up question tho, i have the original osx installed on /dev/sda and am running linux64 off /dev/sdb with WS6 for linux.

I'd

like to create an osx vm using the raw disk /dev/sda. unfortuantely when i boot

it ws6 seems to ignore the efi and go straight into the grub

bootloader. Any ideas for how to get it to startup osx?

Device Boot Start End Blocks Id System

/dev/sda1 1 26 204819+ ee EFI GPT

/dev/sda2 * 26 38897 312235312 af Unknown

Device Boot Start End Blocks Id System

/dev/sdb1 1 29652 238179658+ 83 Linux

/dev/sdb2 29653 30401 6016342+ 5 Extended

/dev/sdb5 29653 30401 6016311 82 Linux swap / Solaris

Reply
0 Kudos
mnucci
Contributor
Contributor
Jump to solution

---Sorry, I meant to reply to jmattson

Reply
0 Kudos
mnucci
Contributor
Contributor
Jump to solution

I am trying to get VIMA running on a ESXi 3.5.0 VMware hosted by VMware Fusion 2.0 on a MacBook Pro. I keep getting "Your CPU does not support long mode. Use a 32bit distribution." which all my research points to VT-x not being enabled. My Macbook Pro has an Intel Core 2 Duo T7700 CPU so it has VT-x capabilites. I have installed ESXi on it and it is running fine. I tried the "hv.enableIfUnlocked = True" setting but it didn't help. By the way, I found the config file in /Library/Application Support/VMware Fusion/. I have the latest EFI updates.

Is there a way to check and see if both cores have VT-x enabled?

Is there any other reasons that I would be receiving the "Your CPU doesn't support long mode." error?

This has been driving me crazy for the past 4 hours. I really want to get VIMA working. Please help.

Reply
0 Kudos
ksc
VMware Employee
VMware Employee
Jump to solution

What processor do you have? Some of the early macs shipped with Core Duo chips (instead of the later Core 2 Duo chips), which have VT but not x86_64 (a.k.a. long mode); Fusion requires both features. The error messages are usually quite exact, and they are mentioning long mode.

If in doubt, you can examine the vmware.log file for your virtual machine. The CPUID log entries contain enough information to figure out what is enabled. The "hv.enableIfUnlocked" setting will turn on VT if it is in any way possible, so if you are still experiencing failures it is most likely that the processor does not support all the features necessary.

Reply
0 Kudos
mnucci
Contributor
Contributor
Jump to solution

I have the T7700 so it should have both. I also noticed last night that in reality, my EFI has not been updating since I don't have the correct type of partition, so that may be my problem. I will be rebuilding my partition and reloading my OS today.

But does any of this explain why I couldn't force it to run VT with the "hv.enableIfUnlocked = TRUE" setting?

Here is the CPUID info from my vmware.log file; How do I tell whether VT is enabled or not?

Feb 19 23:15:13.243: vmx| CPUID[0] vendor: GenuntelineI

Feb 19 23:15:13.243: vmx| CPUID[0] name: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000000, 0: 0x0000000a 0x756e6547 0x6c65746e 0x49656e69

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000001, 0: 0x000006fb 0x00020800 0x0000e3bd 0xbfebfbff

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000002, 0: 0x05b0b101 0x005657f0 0x00000000 0x2cb43049

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000003, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000004, 0: 0x04000121 0x01c0003f 0x0000003f 0x00000001

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000005, 0: 0x00000040 0x00000040 0x00000003 0x00022220

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000006, 0: 0x00000001 0x00000002 0x00000001 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000007, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000008, 0: 0x00000400 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000009, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 0000000a, 0: 0x07280202 0x00000000 0x00000000 0x00000503

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000000, 0: 0x80000008 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000001, 0: 0x00000000 0x00000000 0x00000001 0x20100000

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000002, 0: 0x65746e49 0x2952286c 0x726f4320 0x4d542865

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000003, 0: 0x44203229 0x43206f75 0x20205550 0x54202020

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000004, 0: 0x30303737 0x20402020 0x30342e32 0x007a4847

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000005, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000006, 0: 0x00000000 0x00000000 0x10008040 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000007, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000008, 0: 0x00003024 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] vendor: GenuntelineI

Feb 19 23:15:13.243: vmx| CPUID[1] name: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000000, 0: 0x0000000a 0x756e6547 0x6c65746e 0x49656e69

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000001, 0: 0x000006fb 0x01020800 0x0000e3bd 0xbfebfbff

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000002, 0: 0x05b0b101 0x005657f0 0x00000000 0x2cb43049

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000003, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000004, 0: 0x04000121 0x01c0003f 0x0000003f 0x00000001

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000005, 0: 0x00000040 0x00000040 0x00000003 0x00022220

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000006, 0: 0x00000001 0x00000002 0x00000001 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000007, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000008, 0: 0x00000400 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 00000009, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 0000000a, 0: 0x07280202 0x00000000 0x00000000 0x00000503

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000000, 0: 0x80000008 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000001, 0: 0x00000000 0x00000000 0x00000001 0x20100000

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000002, 0: 0x65746e49 0x2952286c 0x726f4320 0x4d542865

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000003, 0: 0x44203229 0x43206f75 0x20205550 0x54202020

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000003, 0: 0x44203229 0x43206f75 0x20205550 0x54202020

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000004, 0: 0x30303737 0x20402020 0x30342e32 0x007a4847

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000005, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000006, 0: 0x00000000 0x00000000 0x10008040 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000007, 0: 0x00000000 0x00000000 0x00000000 0x00000000

Feb 19 23:15:13.243: vmx| CPUID[1] level 80000008, 0: 0x00003024 0x00000000 0x00000000 0x00000000

Reply
0 Kudos
ksc
VMware Employee
VMware Employee
Jump to solution

Feb 19 23:15:13.243: vmx| CPUID[0] level 00000001, 0: 0x000006fb 0x00020800 0x0000e3bd 0xbfebfbff

Feb 19 23:15:13.243: vmx| CPUID[0] level 80000001, 0: 0x00000000 0x00000000 0x00000001 0x20100000

VT support is CPUID leaf 1, ecx:5, which is set.

EM64T is CPUID leaf 8..1, edx:29, which is set.

So your processor definitely does support all the details needed to enable VT. If the hv.enableIfUnlocked isn't working, this means the firmware has expressly disabled it.

Most likely (and especially if you think firmware hasn't been updating), it's buggy firmware; a few of the older firmwares locked VT off by accident. Have not seen that variety of bug in a while, though ignoring (e.g. leaving off but unlocked) is still somewhat common.

Reply
0 Kudos
mnucci
Contributor
Contributor
Jump to solution

So what are my options? Is there any way I can see what the firmware settings are? With BIOS, you can actually see how things are set and change them if you like. Can you not see what is set with EFI?

Reply
0 Kudos
ksc
VMware Employee
VMware Employee
Jump to solution

Firmware settings control whether or not the firmware runs a piece of code that enables VT. The buggy firmwares mentioned has broken code code, so changing firmware settings won't fix things.

Reply
0 Kudos
canepan
Contributor
Contributor
Jump to solution

I'm tryiing ESXi natively on a MacPro, but Intel-VT is not enabled, and putting that line in /etc/vmware/config doesn't help.

What else can I try?

Reply
0 Kudos
tomasallan
Contributor
Contributor
Jump to solution

I am having the same issue, Mac Pro April 2007 Dual Quad Core 3GHz Xeons. (Intel Xeon 5300 series)

Not able to run 64-bit guest OS's

I tried that fix/suggestion on the global config file under OSX but nothing.

Help

Reply
0 Kudos
admin
Immortal
Immortal
Jump to solution

I am trying to get VIMA running on a ESXi 3.5.0 VMware hosted by VMware Fusion 2.0 on a MacBook Pro. I keep getting "Your CPU does not support long mode. Use a 32bit distribution." which all my research points to VT-x not being enabled.

Just noticed this thread since it's not in the Fusion forums. You're running a nested virtual machine (VIMA on ESXi on Fusion), but the problem is that the virtual hardware seen by ESXi does not support VT-x - nested virtualization is hard. One possibility you might consider would be running VIMA as a second virtual machine on Fusion directly.

Reply
0 Kudos
admin
Immortal
Immortal
Jump to solution

If you're running Fusion, you should not have to do any of this tweaking, Fusion should do it for you. Please repost with more details in the Fusion forum.

Reply
0 Kudos
tomasallan
Contributor
Contributor
Jump to solution

Reply
0 Kudos