Run Vanilla OS X El Capitan, Sierra, High Sierra or Mojave in VMware Workstation on a Windows Host
I wanted to make a simple guide on how to create a vanilla OS X El Capitan virtual machine running on a Windows host. The virtual machine should be useful for testing El Capitan and also for creating installers for use on a real machine/hackintosh.
There are many guides and videos on the net about running OS X on Windows machines using pre-made VMWare disk images but you can never guarantee what else is in there….
I’ve gathered info for this guide from various threads in the Multibooting and Virtualisation section of this forum eg
Workstation 11/12, Player 7/12, Fusion 7/8 and ESXi 6 Mac OS X Unlocker 2 by @Donk How to Install OS X 10.x from Snow Leopard to El Capitan in VMware Workstation 10/12, Player 6/8 or ESXi 5/6 by @MSOK HOW TO: Create a bootable El Capitan ISO for VMware Credit and thanks to @Donk, @Albert Nietsnie and @MSOK for all their hard work in creating and testing the VMware Unlocker program.
Intel PC with four or more CPU cores running Windows 7 X64 or later OS (2 or more cores needed for OS X) 4GB or more RAM (2GB or more will be needed for OS X) Hard Disk with at least 40GB free for Virtual Machine VMware Workstation 12 or later VMware Unlocker 2.0.7 or later Install OS X El Capitan app and Mac or Hack to prepare installation iso <-- Now, no longer necessary to have previous access to a Mac or Hack by building the Installer.app from scratch - see post#41 16GB or larger exFAT formatted USB stick to transfer El Capitan iso from Mac/Hack to Host PC Prepare Installation ISO on your Mac or Hack
1. On your Mac or Hack, download "Install OS X El Capitan.app" from the App Store into your Applications folder.
2. Unmount any attached install image/InstallESD.dmg (if currently mounted) by rebooting the system or running the hdiutil unmount command in terminal eg
3. Download and unzip the CECI.tool (attached to this post) into your ~/Downloads folder. The commands in this executable script are shown below for informational purposes….
4. Open OS X terminal, then run the following commands to execute the script:
cd downloads chmod +x CECI.tool ./CECI.tool 5. At the end of the process, you will have an El Capitan iso on your desktop - copy this onto an exFAT formatted USB for use on the PC Host later.
@shela has created an ISO generating script compatible with OS X 10.6-10.12: create_osx_iso post #362.
See post#30 for macOS_iso_cim.tool script to create ISO for macOS 10.13+ using Apple's createinstallmedia utility.
Install and Patch VMware Workstation 12 on your PC
1. Download and install VMWare Workstation Player 12 or later
2. Download and extract Unlocker 2.0.7 or later to your USB stick…
3. Run the win-install.cmd as administrator by right clicking the file in Windows explorer or run it from an Administrative Command Prompt.
Create an El Capitan Virtual Machine
1. Double click on the VMware Workstation 12 Player icon on your desktop and click “Create a New Virtual Machine”. Choose “I will install the operating system later” at the How will you install screen….
2. Select Apple Mac OS X as the Guest operating system and OS X 10.11 as the version. By default, an OS X 10.11 folder will be created in your Documents\Virtual Machines folder.
3. Under Specify Disk Capacity, you can leave the default 40GB or set a larger value. I personally store the virtual disk as a single file. Click Finish and you will see OS X 10.11 on the Main Screen of Workstation 12.
4. Next, we need to edit the virtual machine settings to map the virtual SATA CD/DVD drive to the El Capitan installation iso we created earlier.
5. To prevent the virtual machine from crashing in Windows, the virtualHW.version set in the vmx configuration file needs to be changed from 12 to 10 (alternatively, the line smc.version = "0" can be added to the file). The OS X 10.11.vmx file can be edited with the WordPad program (navigate to the OS X 10.11 virtual machine folder with Windows Explorer and right click on the file to open in WordPad).
6. For HW10, set USB compatibility to USB 2.0, otherwise your mouse and keyboard might not work in the virtual machine.
7. Finally click “Play virtual machine”
Installation of El Capitan
Installation should be relatively straight forward, just following the prompts of the OS X installer:
1. Select language, agree to legal terms
2. Use Disk Utility from the Utilities Menu to erase and format the virtual hard drive as a single partition GUID Mac OS X Extended. I’ve named the drive Macintosh HD but you can enter whatever you like eg El_Capitan.
3. Quit DU and choose Macintosh HD to install El Capitan on.
4. After 20-30 min (depending on how fast your system is), the installation will complete and the VM will automatically reboot…
5. At the welcome screen, choose your country and keyboard layout. You can skip transfer information, location services and logging in with your Apple ID if you wish…
6. Create a User Account and select your Time Zone. You can skip sending diagnostics and usage data to Apple….
7. Finally, you will arrive at the El Capitan Desktop. You should eject the Installation iso now by right clicking and selecting “Eject OS X Base System”. This will allow you to install VMware Tools….
8. After rebooting, the VM can now be resized or run at full screen resolution. Audio and network/internet should also work OOB.
SMBIOS Customization and iMessage Vars
To make the Virtual Machine more "Mac like", you can edit the vmx file to add unique identifiers from a real Mac's SMBIOS -
eg for an iMac 11,3 SMBIOS, you can enter the following lines....
smbios.reflectHost = "FALSE" board-id.reflectHost = "FALSE" board-id = "Mac-F2238BAE" hw.model.reflectHost = "FALSE" hw.model = "iMac11,3" serialNumber.reflectHost = "FALSE" serialNumber = "W80#######6" Refer How to spoof real Mac in VMware - Multi-booting and Virtualisation.
The critical variables for iMessage/Facetime activation are MLB & ROM. By default, VMware "reflects" the host's MLB and ROM since it assumes you are running the OSX guest on a real Mac host - see post#42 by @Donk.
If the host is a Windows PC, the following lines need to be added to the vmx file (requires virtualHW.version 12 and smc.version = "0")....
efi.nvram.var.ROM.reflectHost = "FALSE" efi.nvram.var.MLB.reflectHost = "FALSE" system-id.enable = "TRUE" and the MLB, ROM and optionally system-id entered manually eg
efi.nvram.var.MLB = "W80######BA1A" (MLB can be 13 or 17 characters long, alphanumeric string) efi.nvram.var.ROM = "<=>?@A" (ROM is entered here as a 6 character ASCII string) uuid.bios = "## ## ## ## ## ## ## ##-## ## ## ## ## ## ## ##" <---Optional (if you want to inject a given system-id hexadecimal value) Note the output for ROM from imessage_debug is a 12 character hexadecimal that needs to be entered here as a 6 character ASCII string eg using an Hex to ASCII converter we find that "3c3d3e3f4041" hex is equivalent to "<=>?@A".
Vanilla Mavericks and Yosemite
The same VM settings for El Capitan will also boot and run vanilla installations of OS X Mavericks and Yosemite . Attached to this post are installer scripts to create bootable Mavericks (CMI.tool) and Yosemite (CYI.tool) ISOs for VirtualBox and VMware.
With the respective OS X installer apps in the Applications folder, download and run the installer tools using terminal ie
To create a Mavericks ISO on your desktop
cd downloads chmod +x CMI.tool ./CMI.tool To create a Yosemite ISO on your desktop
cd downloads chmod +x CYI.tool ./CYI.tool Here is a screenshot of the VM running Mavericks 10.9.5...
Update for macOS 10.12 Sierra
The above settings still work for macOS Sierra after upgrading to VMware Workstation 12.5 and unlocker 2.0.8 - see post #13.
Update for macOS 10.13 High Sierra and 10.14 Mojave
See post#30 for macOS_iso_cim.tool script to create ISO for macOS using Apple's createinstallmedia utility.
Post#41 describes how to build "Install macOS ******.app" on the fly from installer files downloaded beforehand in /SharedSupport folder.
Update for macOS 10.15beta Catalina
See post Update for macOS Catalina 10.15beta
I was inspired by @duduclx post for installing El Capitan on a Dell Latitude E6410, so I decided to install Mojave 10.14.5. Everything works perfectly except for sleep. I'm starting this thread hoping to help others install Mojave on their E6410s and to diagnose and resolve the sleep issue. This thread is not currently intended to be an installation guide and is better suited to the intermediate/advanced hackintosher. Eventually, it may evolve into a guide.
I started with this thread (Many thanks, @duduclx !!!) and ended up with the system captured in the attached files. The keys were to change the LPCB._DSM.Name to "3b09" and remove all CLOVER configs not necessary for Mojave, plus some other items mentioned below.
My system is as follows:
Dell Latitude E6410 (I7-620m, Nvidia 3100M, 8GB DDR3, 512GB SSD, 1440x900 display, BIOS: A17) MacOS: Mojave 10.14.5 (APFS) (Patched with DosDude Mojave Patcher 1.3.3) MacModel: MacBookPro 6,2 (LPCB._DSM.Name "pci8086,3b09") Kexts: Lilu 1.3.6, VoodooHDA 2.9.2, AirportBrcmFixup 2.0.0, IntelMausiEthernet 2.4.1d1, ACPIBatteryManager 1.90.1, BrcmPatchRam2.kext, BrcmFirmwareRepo.kext, VoodooPS2Controller (the "Refined ALPS Touchpad" version - release 5, not the original version) Wi-Fi: Broadcom BCM 94352HMB (with AirportBrcmFixup.kext) MacOS: Mojave 10.14.5 CLOVER (Legacy): R4961
Configuration items that may be different from what you have seen in other E6410 configurations
LPCB._DSM patched with device-id "3b09" AND "name", "pci8086,3b09" for native Nehalem power management with MacBookPro 6,2 ECDV renamed to EC so that AppleBusPowerController loads AGP.VID._DSM patched with device-id "0a29" so that AppleGraphicsPowerManagement loads No CLOVER Generate P or Generate C States (with the correct LPCB._DSM and MacBookPro 6,2, these CLOVER options are unnecessary for this architecture and only limit max multiplier and reduce number of P states) DSDT patched to include HDAU device (device-id 0x0be3)
What is NOT working:
Sleep (display goes blank, but power light stays on. System cannot wake and must be forced off with power button) Display brightness can be controlled with keyboard keys, but cannot be controlled with slider in Display settings. The slider appears in Display settings (because of the backlight DSDT injection in AGP.VID._DSM), but the slider doesn't work (yet). Haven't spent time to figure this out, but would love help. Graphics Power Management - AGPM loads (because 10de,0a29 device is injected), but there's no evidence that 3100m frequency and voltage is changing.
What is NOT tested:
SD Card Slot Smartcard Reader eSata (I have this disabled in my BIOS) Display Port Firewire Port (it does appear in the Network settings, just haven't tried it) Microphone Jack PC Card Slot (I have this disabled in my BIOS) Camera (I have this disabled in my BIOS)
What IS working:
Everything else not mentioned above. Speedstep/CPUPowerManagement is perfect, system temps are low, CPU multiplier operates as expected, battery life is long Shutdown is fast Display/graphics acceleration is perfect (thanks to DosDude's Mojave patcher) Brightness (adjusted with brightness keys on keyboard) works perfectly Battery Manager works (battery status is displayed in menu bar) simply by installing ACPIBatterManager.kext. Wi-Fi (after changing to Broadcom BCM94352HMB and installing AirportBrcmFixup.kext) Audio (volume adjustable, volume indicator appears in menu bar). Switched to VoodooHDA from AppleALC after AppleALC caused slow boot due to "IOHDACodecFunction timeout." Ethernet port (with IntelMausiEthernet.kext) Broadcom BCM20702A0 Bluetooth (with BrcmPatchRam2.kext and BrcmFirmwareRepo.kext) Optical Drive External VGA (with corrected NVCAP. Need NVCAP 04000000 00000100 0E000000 00000007 00000000 (credit: @PlutoDelic) for working external VGA display. Headphone jack
Known issues and their solutions
AAPL,clock-id and device_type do not appear in IORegistry for EHC1. Solution is to use CLOVER on-the-fly patching/fixing/renaming for EHC1 and EHC2. This has been completed and tested, but does not fix the sleep behavior. This fix is not reflected in the attached files. ALPS trackpad performance is not good with the "standard" VoodooPS2Controller.kext that I initially used. Switching to the "Refined ALPS TouchPad driver" is a big improvement. I've implemented and tested this on my system. The ALPS version of VoodooPS2Controller.kext mixes up a few keys. Need to switch the Command and Option keys (System Preferences > Keyboard > Modifier Keys) and change keyboard type to ISO European. The updated VoodooPS2Controller.kext is not reflected in the attached files. This proposed configuration uses an injected device-id (10de,0a29) for NVidia 3100m to get AGPM to load. While I haven't observed any performance differences, a better approach may be to inject AGPM properties for device 10de,0a6c (the actual device-id for the 3100m). This AGPM method is discussed later in this thread. I have briefly tested this "FakeSMC.kext method" for injecting AGPM attributes without any noticeable changes in laptop/graphics behavior and have not updated attached files to reflect this change. IOHWControl is not loaded under AGPM (Should be AGP > VID > NVDA,Display-A@0 > NVDATesla > AGPM > gpu-control > IOHWControl as viewed in IORegistryExplorer). It is loaded on a real MacBookPro6,2 running Mojave and is loaded on this Dell Latitude E6410 running High Sierra. If I "Inject NVidia" via CLOVER, IOHWControl loads properly. I have made this change and am testing it on my system, but have not updated the attached configuration files. The Dell Latitude DSDT (BIOS A17) has a bug in Method (GNOT). In the method, the expression If (LOr (LGreater (OSYS, 0x07D0), LLess (OSYS, 0x07D6))) always evaluates to TRUE, so the patched DSDT has no dependency on the value of OSYS. I suspect that LOr should be replaced with LAnd, so that this expression is TRUE for variants of Windows 2001 and False for any other OS. While this may have no affect on MacOS, it makes one wonder how such an obvious bug made it through Dell QA and is still present in BIOS A17. Also makes one wonder whether the sleep problem (which no one has solved) was fixed in Windows to address another DSDT bug. The DSDT patch that duduclx refers to as "Intel GMA Ready" in his El Capitan Guide is not applied correctly to the DSDT in this thread. Somehow, the contents of patched _DSM are located in the PCI0.VID device instead of in Method (_DSM) within the PCI0.VID device. MaciASL didn't complain about this, so it went unnoticed, but it doesn't appear to have had any affect. The solution is to move the "Intel GMA Ready" patch into Method (_DSM) within the PCI0.VID device.
Brief Installation Guide (for the experienced Hackintosher):
Follow duduclx's guide for BIOS config Create your MacOS installer USB (Use DosDude's Mojave Patcher for Mojave) (start with High Sierra and not Mojave if you're new to hackintosh). Install CLOVER (Legacy) on installer USB using attached EFI as your guide for patched ACPI, kexts and config.plist Install MacOS to your SSD Install the following kexts in /Library/Extensions: ACPIBatteryManager.kext, AirportBrcmFixup.kext, BrcmFirmwareRepo.kext, BrcmPatchRAM2.kext, FakeSMC.kext, FakeSMC_ACPISensors.kext, FakeSMC_CPUSensors.kext, FakeSMC_GPUSensors.kext, FakeSMC_LPCSensors.kext, IntelMausiEthernet.kext, Lilu.kext, USBInjectAll.kext, VoodooPS2Controller.kext (the "Refined ALPS Touchpad driver," not the original) Switch Command and Option keys to compensate for Refined ALPS driver issue (System Preferences > Keyboard > Modifier Keys). Also change keyboard type to ISO European to fix the [ ` ~ ] key (to the left of the "1" (one) key. Install VoodooHDA Install HWMonitor application
Tips for Improved Performance (on this and other older systems)
System Preferences > Spotlight > Search Results: Uncheck all options System Preferences > Spotlight > Privacy: Add all Volumes System Preferences > Accessibility > Display: Check "Reduce motion" System Preferences > Accessibility > Display: Check "Reduce transparency"
If your fan is always running and temps are good, try pressing Fn + z
How to create a macOS Installer which doesn't need bootloader kext injection (FakeSMC in pre-linked kernel), bypass High Sierra firmware and MBR checkBy fusion71au
This is a brief guide on how to create a vanilla El Capitan (also same process for Sierra) OS X Installer USB with an updated prelinked kernel containing FakeSMC.
It is tailored for those users who want to understand the “nuts and bolts” of how to create an installer and also to help brush up on their terminal skills (rather than have one made for them with the numerous automated “tools” available or even Apple’s createinstallmedia) :
Specifically, it is also a “Proof of Concept” which shows that installation is possible without even having to rely on boot loader kext injection.
Existing Yosemite installation (or Mavericks - see post#4 for steps 7,8) “Install OS X El Capitan.app" downloaded to the Applications folder Pacifist FakeSMC.kext - Slice or Kozlek branch Bootloader - Clover or Chameleon 8GB or larger USB drive (16GB recommended), formatted HFS+ (MBR or GUID) named “Installer”
1. Boot into Yosemite with the kext-dev-mode=1 boot flag
2. Open OS X terminal and type the following lines, followed by <Enter> after each line.
The image restore and file copying may take a while to complete, and at the end of the process, the Installer volume is renamed to “OS X Base System"....
sudo -s hdiutil attach /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport/InstallESD.dmg asr restore -source /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg -target /Volumes/Installer -erase -format HFS+ -noprompt -noverify rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages cp -av /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System/System/Installation cp -av /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg /Volumes/OS\ X\ Install\ ESD/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System diskutil unmount /Volumes/OS\ X\ Install\ ESD exit 3. Right click on the “OS X Base System” Volume and click “Get Info”
4. Click on the lock icon and untick “Ignore ownership on this volume”
5. Extract/Copy the El Capitan Kernels folder into /System/Library/ of the USB with Pacifist. NB It is found in the "Essentials.pkg" in /System/Installation/Packages
6. Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel —> OG.prelinkedkernel
7. Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of the installer USB using Finder.
8. Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel…..
sudo -s chmod -R 755 /Volumes/OS\ X\ Base\ System/Library/Extensions chown -R 0:0 /Volumes/OS\ X\ Base\ System/Library/Extensions touch /Volumes/OS\ X\ Base\ System/System/Library/Extensions kextcache -u /Volumes/OS\ X\ Base\ System exit Any errors should be noted but the output below is normal e.g.
9. Install your Bootloader targeting the OS X Base System volume
10. Boot your system with the USB without injected kexts into the OS X Installer GUI....
The original prelinked kernel in a fresh install of El Capitan will also lack FakeSMC ie it will only be linked to Apple signed kexts. In order to boot into El Capitan the first time around without boot loader kext injection, the PLK needs to be rebuilt for the El Capitan volume like we did for the installer:
1. Boot into Yosemite with the kext-dev-mode=1 boot flag
2. Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel for the El Capitan volume —> OG.prelinkedkernel
3. Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of El Capitan using Finder
4. Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel. In this example, the El Capitan volume is named "El_Capitan" - change if you have named it something else...
sudo -s chmod -R 755 /Volumes/El_Capitan/Library/Extensions chown -R 0:0 /Volumes/El_Capitan/Library/Extensions touch /Volumes/El_Capitan/System/Library/Extensions kextcache -u /Volumes/El_Capitan exit 5. Install your Bootloader targeting the El Capitan volume. This step is only necessary if you are installing El Capitan on a new drive without existing boot loader (not required if installing on a disk with existing boot loader beside Yosemite).
6. Reboot your system without injected kexts into El Capitan!
The All-In-One Guide to Vanilla OS X for beginners
Updates for Sierra and High Sierra Custom Prelinkedkernel Generator Tool I have made a custom prelinkedkernel generator "PLK.tool" for Sierra + El Capitan. Instructions: 1. Download and extract the attached BaseSystem_PLK.tool.zip into your ~/Downloads folder. 2. Copy any extra kexts necessary for booting your hack to ~/Downloads/BaseSystem/ExtraKexts (e.g. FakeSMC, VoodooPS2Controller), making sure SIP is disabled. 3. Copy BaseSystem.dmg to ~/Downloads/BaseSystem 4. Open terminal and run the following commands... cd ~/Downloads/BaseSystem chmod +x PLK.tool ./PLK.tool ---> supply your admin password ---> will place your new custom prelinkedkernel on the desktop. macOS High Sierra bypass Firmware and MBR checks in post#13.
BaseSystem_PLK.tool_Mojave.zip (need to run in Mojave to avoid dependency errors)
No success so far.
There is no way I can get Mojave (or High Sierra) to install on this rig.
I'd be really grateful for any help.
My config is
Asus Maximus XI Hero (no WiFi);
Sapphire triX Radeon R9 290;
Corsair Pro RGB 2x16GB CMW32GX4M2C3200C16
I am using my R9 290 I had at home because I don't need powerful graphics really.
So what I've done
1) Created USB installation drive using [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] - UEFi option
2) Bios settings
- Updated BIOS to lastest version
- Load Optimised defaults
- applied the following
Secure Boot Mode, disablef
OS Type set to Other OS
XHCI Handoff Enabled
AI Overclocked set to XMP 3200
Extreme twerking enabled
Graphics Primary display set to PCIe
Legacy USB support enabled
Power on by PCI disabled
Fast boot disabled
Boot logo display disabled
Boot option 1 set to UEFI usb installer
Saved and rebooted.
I either get no screen response (stuck in qcode 99 on MB) or stuck on PCI configuration begins.
So what am I doing wrong?
Five hours of trial and error and I gave up on installing from USB.
I am now installing Mojave from my MacBook Pro to SSD and will use [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] before moving the drive over to my PC
The settings I am going to use in [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url]
Quick Start > UEFI Boot Mode
Drivers > Audio > AppleALC
Drivers > Misc > FakeSMC Plugins
Drivers > Misc > FakeSMC HWMonitor Application
Drivers > Misc > Core Graphics Fixup AKA WhateverGreen
Drivers > Network > Intel > IntelMausiEthernet (I used the latest version)
Drivers > USB > Remove XHCI USB Port Limit <--- Adds PMHeart’s patch to remove XHCI USB Port Limit
Drivers > USB > USBInjectAll
Bootloaders -> Clover v2.4k r4xxx UEFI
Customize -> System Definitions > iMac > iMac18,3
If you have any suggestions please help.
Perhaps someone can share their EFI folder for a similar rig?
Hello, i am trying to boot the installer of MacOS Mojave 10.14.5 on my HP Z220 CMT Workstation, but it gets stuck at this error. i attached pictures of this error and i posted my EFI folder.
i hope someone can help me. Thanks in advance.