Enable VT on the Mac Mini.

We've been using VT (for our own experiments) on the Mac Mini for a while. It is simple to enable, and involves modifying the EFI Setup variable. Potentially this modification can be made via the kernel API used by the nvram utility under Mac OS X, but we use an EFI utility.

The solution is to change byte 0xe7 of the Setup variable from 0 to 1. This causes the firmware to configure the ia32_feature_control MSR with value 5. After you change the variable, you must reboot via a hard reset (since the MSR is a write-once register). I had to unplug my machine from the power supply to clear the prior contents of my MSR.

Here is our EFI utility. We build it under the GNU environment, and I load it using the rEFIt boot loader on a USB stick. From our experience, it doesn't interfere with the BootCamp firmware update. We observed that Parallels Workstation successfully detects VT on the Mini.

**** Use at your own risk! *****

#include <efi.h>
#include <efilib.h>

EFI_BOOT_SERVICES *BS;
EFI_RUNTIME_SERVICES *RS;
EFI_HANDLE IMAGE;

EFI_GUID guid_apple = // 4DFBBAAB-1392-4FDE-ABB8-C41CC5AD7D5D
{0x4DFBBAAB, 0x1392, 0x4FDE, {0xAB, 0xB8, 0xC4, 0x1C, 0xC5, 0xAD, 0x7D, 0x5D}};

EFI_STATUS
efi_main( EFI_HANDLE image, EFI_SYSTEM_TABLE *system_table )
{
EFI_STATUS status;
UINT32 attr = 0;
unsigned char data[0xfe];
UINTN data_size = sizeof(data);

BS = system_table->BootServices;
RS = system_table->RuntimeServices;
IMAGE = image;

InitializeLib( image, system_table ); // Initialize the EFI library.

status = RS->GetVariable( L"Setup", &guid_apple, &attr, &data_size, data );
if( status == EFI_SUCCESS ) {
data[0xe7] = 1;
status = RS->SetVariable( L"Setup", &guid_apple, attr, data_size, data )
;
if( status != EFI_SUCCESS )
Print( L"failure changing variable\n" );
}

BS->Exit( image, status, 0, NULL );
return status;
}


-Joshua

P.S. The Mac Mini is awesome. And EFI is so nice.
 
No, you said the "fixed it" such that it would NOT work any longer, I'm saying they didn't. VT-x works fine on my core duo with all the latest firmware and OS updates.

I was using "fixed it" in the sense that you did. I was saying Apple didn't make it impossible to use VT-x, at least it works fine on my mini.
 
No ideas at all? I mean... Win 98 installer tells me that it should take about 67 minutes for the lightweight set up! My old pc (400mhz) took not more than 40 minutes for a full set up, and pretty much the same with GuestPC on my iBook :-\


EDIT: i decided to install Win 98 anyway, no matter how long it was going to take. And this is absolutly nuts. Software 0 till i get to the gui, and then it turns into VT-x -_-' i'm both happy and puzzled.
 
Last edited:
How to Enable VT-x (aka VTX) with rEFIt and vmx-var-set.efi

I've seen a bunch of instructions here for doing this; but all of them seemed to leave out one or two crucial details. So I'll try to provide those who need it a more complete list of steps to get this done. Please refer to this thread for complete instructions showing how to enable VT-x permanently on your Intel Mac:

http://forums.parallels.com/thread3273.html
 
Last edited:
monoclast said:
I've seen a bunch of instructions here for doing this; but all of them seemed to leave out one or two crucial details. So I'll try to provide those who need it a more complete list of steps to get this done:


19. Enter command:
Code:
cmx-var-set.efi

Hope this helps!

-mono


mono,

You are a god! I could not get VT-x working for the life of me. Parallels is so fast with it on! What a change.

One typo in your instructions. At step 19 you have "cmx-var-set.efi". For the next person, it should be "vmx-var-set.efi" Thanks again for these instructions that let the average user fix this.

Bry
 
bkm@lawmd.biz said:
mono,
One typo in your instructions. At step 19 you have "cmx-var-set.efi". For the next person, it should be "vmx-var-set.efi" Thanks again for these instructions that let the average user fix this.

Bry

Thanks, Bry! Fixed! :)

-mono
 
0. Don't know if it's related, but i set it so that my mac mini does not go to sleep, ever.

I think it very well could be. I set my mini to Never sleep and after that Parallels starting having the problem with VT-X.

Could definitely be worth researching...
 
Back
Top