Jump to content

[Guide] Installing OS X 10.8-10.12 Under VMWare Workstation 8 / 9 / 10 / Player 6 with AMD host CPU


OSXDev
 Share

7 posts in this topic

Recommended Posts

While most of the VMWare guest hardware is virtualized, the guest VM CPU reflects the same CPU features the physical host CPU has.
This guide details the additional work that is needed to run OS X 10.8-10.12 with an AMD CPU under VMWare.

 

If your AMD CPU supports SSE3 and SSSE3 (and SSE4.1 for OS X 10.12):

The installation should be pretty simple:
1. Install VMWare Workstation 8.0.6 / 9.0.4 / 10.0.4 / Player 6.0.4.
2. Run VMWare Unlocker 1.3.0.
3. Prepare an installation ISO from the untouched 10.8 (Mountain Lion) DMG using dmg2img.
4. Create a new VM (select "Mac OS X 10.8" as the guest operating system).
5. Set your 'number of cores per processor' to 1 (the number of processors can be set to more than one).
6. A. For OS X 10.8-10.11:

Open the .vmx file of the virtual machine and add the following lines:

cpuid.0.eax="0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx="0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx="0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx="0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax="0000:0000:0000:0000:0000:0110:1111:0001"
cpuid.1.ebx="0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx="1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx="0000:1111:1010:1011:1111:1011:1111:1111"

(this will identify the guest CPU as an Intel Core 2 Merom, and will help you avoid the 'The CPU has been disabled by the guest operating system. Power off or reset the virtual machine.' error)

 

6. B. For OS X 10.12 Sierra:

cpuid.0.eax="0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx="0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx="0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx="0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax="0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx="0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx="1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx="0000:1111:1010:1011:1111:1011:1111:1111"

(this will identify the guest CPU as an Intel Core 2 Penryn which supports SSE4.1)

 

7. If your Hardware compatibibility is set to Workstation 9.0 (virtualHW.version = "9") or 10, you must also add the following line:
featureCompat.enable = "FALSE"

8. You can now boot from the ISO and proceed with the installation.

9. Even though I could complete the installation without a hitch with my A8-5600K, a few applications consistently crashed (e.g. Grapher), this was resolved by replacing the kernel with a modified kernel that emulates all missing SSE3 / SSSE3 instructions (see below).


If your AMD CPU does not support SSSE3:

You need to replace the kernel with one that has SSSE3 emulation (see below),
the easiest way to do it is to use another computer that has SSSE3 to create the virtual disk and replace the kernel.

1. After you have a working OS X machine, update to 10.8.5, make a copy of the virtual disk and attach it to the same VM.

2. Change the os settings to show hidden files (see here), and delete the hidden 'mach_kernel' from the root folder of the attached disk.
(alternatively, use the terminal to perform this, e.g. 'sudo chflags nohidden mach_kernel' or 'sudo rm mach_kernel')

3. Put the modified kernel (see below) instead of the one you just deleted (use the same file name).

4. Delete the old kernel cache by deleting the content of the '/System/Library/Caches/com.apple.kext.caches/' directory.

5. Optionally: hide back the kernel (with 'sudo chflags hidden mach_kernel').

6. Create a new VM, update the .vmx files to include the 8 cpuid.* lines from above.

7. You can now use the attached disk to boot OS X 10.8.5 from a VM hosted with an older AMD CPU that does not support SSSE3.

Tested With A8-5600K, A8-3850 and VMWare Workstation 8.0.6 / 9.0.4 / 10.0.4 / Player 6.0.4

Modified Kernel:
For your convenience, I have created a modified 10.8.5 kernel (a.k.a. xnu-2050.48.11) specifically to be used with VMWare, and attached it to this post.
The only modification to this kernel is that it includes OpEmu3, the SSE3 and SSSE3 emulator created by Sinetek and AnV (thanks guys!).
This emulator is only used when necessary (i.e. if your CPU support a specific instruction, the emulator will not be used to execute it).

The source code to OpEmu3 is available here and my adaptaion to 10.8.5 is available here.

10.8.5-OpEmu3.zip

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 1 year later...
  • 10 months later...
On 1/7/2016 at 11:46 PM, OSXDev said:

Attached OS X 10.11.2 (El Capitan) kernel binary (Including OpEmu3).

Starting from OS X 10.10, 'mach_kernel' has been renamed to 'kernel' and is located in '/System/Libary/Kernels'

 

Source code:

http://www113.zippyshare.com/v/RlmUsc3W/file.html

 

It seems the file isn't available anymore. I can't download it.

 

Quote

 

2. Change the os settings to show hidden files (see here), and delete the hidden 'mach_kernel' from the root folder of the attached disk.

(alternatively, use the terminal to perform this, e.g. 'sudo chflags nohidden mach_kernel' or 'sudo rm mach_kernel')

Edited by tberty
Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

Trying to run macOS 10.12 (Sierra) inside VMware Workstation Player 12 (patched), on Windows 10 Pro 64-bit on a laptop with AMD PRO A10-8700B R6. However, on starting the VM, I get the warning popup, which says:

 

"This virtual machine requires AVX2 but AVX is not present. This virtual machine cannot be powered on."

 

However, CPU-Z tells me that both AVX and AVX2 are supported by the above AMD processor. What gives ? How can one proceed to solve this issue ?

 

TIA,

f74

Link to comment
Share on other sites

  • 2 weeks later...
On 5/7/2018 at 9:22 PM, falcon74 said:

Trying to run macOS 10.12 (Sierra) inside VMware Workstation Player 12 (patched), on Windows 10 Pro 64-bit on a laptop with AMD PRO A10-8700B R6. However, on starting the VM, I get the warning popup, which says:

 

"This virtual machine requires AVX2 but AVX is not present. This virtual machine cannot be powered on."

 

However, CPU-Z tells me that both AVX and AVX2 are supported by the above AMD processor. What gives ? How can one proceed to solve this issue ?

 

TIA,

f74

falcon74,

 

Vanilla OS X / macOS does not support AMD processors, so to progress you will have to install a modified kernel that supports AMD processors. The CPUID masking technique was tried by Donk, but could not get a consistently working OS X VM. SO I think a modified kernel is the best solution.

Link to comment
Share on other sites

 Share

×
×
  • Create New...