Jump to content
arsradu

[HOW TO] Fix second stage boot logo and loading bar for some dedicated desktop video cards

389 posts in this topic

Recommended Posts

Advertisement

In my experience, you don't need a custom one. Clover does a good job at injecting the correct EDID for you monitor.

 

But on some monitors, especially on higher resolution ones (over 1080p) some people were saying that they don't have the Apple logo for the second stage boot.

 

Try to set Clover resolution to 1080p and also OS X resolution to 1080p. Just for testing purposes. See if it makes any difference.

 

Also, if your motherboard supports this feature and if you don't have any MBR-booted drives (legacy drives), you can try to turn OFF CSM in your UEFI Bios. See if that works for you.

 

Exactly, have a little bit other configuration,

2560x1440 on 13inch screen...

 

What i can say, if i set clover to 1280x720 and OS X to 1280x720 = perfect logo + perfect loading bar

if i use default 2560x1440 both, i get with "second boot fix" perfect logo + loading bar little bit distored...

without the bin patch it is completely distored on 2560x1440...

 

so I'm using hidpi mode, 1600x900 = 3200x1800, but i can't set that resolution to clover because clover can't patch integrated graphics vbios as far i know, since this vbios is inside laptops bios in core_dxe... 

edid patching won't help here, since a new modeline makes a distored screen on first draw... if you changing resolution and change back, its working... but you won't do that every time after system start :-)

 

So what i can say, use a 16:10 screen for OS X or 16:9 but anything greater 2800+ (2880xxx, 3200xxx...)

there is a hole in OS X for 16.9 resolutions from 1920xxxx till 2800xxxx...

what i mean with the hole is, distorted boot or not working hiDPI modes on 16:9 screens...

 

Dunno why, but i tested some other systems, everything else is fine :-)

 

Cheers :-)

Share this post


Link to post
Share on other sites

Just did this with my 970 on a 1440p DVI-DL screen (along with setting 1440p within Clover) and it works perfectly. The second stage isn't glitched at all - the loading bar is centered and looks perfectly and the Apple logo looks great! :D

Share this post


Link to post
Share on other sites

Just did this with my 970 on a 1440p DVI-DL screen (along with setting 1440p within Clover) and it works perfectly. The second stage isn't glitched at all - the loading bar is centered and looks perfectly and the Apple logo looks great! :D

 

Thank you very much for your feedback! And glad to hear that this works for you too.

 

What about the resolution in OS X? Is it set to 1440p, as well?

Share this post


Link to post
Share on other sites

Dunno if that was mentioned before, but at least for me, the solution was way simpler as described in this guide, so it might be of interest.

 

Really, all I had to do was adding this entry:

"@2,AAPL,boot-display", 
Buffer (One)
{
    0x00
}, 

to my GPU Device in my SSDT.

 

The whole entry currently looks like this: (I have a NVIDIA card)

Device (_SB.PCI0.NPE3.PXS1)
    {
        Name (_ADR, Zero)
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }

            Return (Package (0x12)
            {
                "AAPL,slot-name", 
                Buffer (0x0B)
                {
                    "PCI Slot 1"
                }, 

                "@0,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@1,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@2,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@2,AAPL,boot-display", 
                Buffer (One)
                {
                    0x00
                }, 

                "@3,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@4,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@5,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "hda-gfx", 
                Buffer (0x0A)
                {
                    "onboard-1"
                }
            })
        }
    }   

Note that I did not have to add "Load VBIOS" in Clover, and also not "Inject EDID". Actually I was surprised that the solution was so minimalistic. Works in both 10.10 and 10.11. Of course you might need to change the connector from "@2" to something that corresponds on your System.

 

Maybe it even works if you add this entry to all availbale connectors in the SSDT, but I have not tried that.

Edit: if you do that, you will have multiple loading bars. So it should be only one entry that matches the connected main display. Just FYI

Share this post


Link to post
Share on other sites

Dunno if that was mentioned before, but at least for me, the solution was way simpler as described in this guide, so it might be of interest.

 

Really, all I had to do was adding this entry:

"@2,AAPL,boot-display", 
Buffer (One)
{
    0x00
}, 

to my GPU Device in my SSDT.

 

The whole entry currently looks like this: (I have a NVIDIA card)

Device (_SB.PCI0.NPE3.PXS1)
    {
        Name (_ADR, Zero)
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }

            Return (Package (0x12)
            {
                "AAPL,slot-name", 
                Buffer (0x0B)
                {
                    "PCI Slot 1"
                }, 

                "@0,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@1,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@2,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@2,AAPL,boot-display", 
                Buffer (One)
                {
                    0x00
                }, 

                "@3,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@4,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "@5,connector-type", 
                Buffer (0x04)
                {
                    0x00, 0x08, 0x00, 0x00
                }, 

                "hda-gfx", 
                Buffer (0x0A)
                {
                    "onboard-1"
                }
            })
        }
    }   

Note that I did not have to add "Load VBIOS" in Clover, and also not "Inject EDID". Actually I was surprised that the solution was so minimalistic. Works in both 10.10 and 10.11. Of course you might need to change the connector from "@2" to something that corresponds on your System. Maybe it even works if you add this entry to all availbale connectors in the SSDT, but I have not tried that.

 

I did mention in the initial post (pretty long one, I know, but this is somewhere on the top) that this can also be achieved by using DSDT editing. Actually a few of my friends got it fixed this way. However I do not know how to do it right now (I'm still very much a noob in DSDT editing), so I can't teach others ether. :))

 

Also, you don't have to Inject EDID and Patch VBIOS if you're using an UEFI GOP Vbios (this is also mentioned on the first post :P). And even if you're not using a UEFI VBIOS, apparently not all the people need that. I needed it, so I mentioned it for other people to know about it.

 

Thanks for sharing! And also, glad it works for you! :D

Share this post


Link to post
Share on other sites

I did mention in the initial post (pretty long one, I know, but this is somewhere on the top) that this can also be achieved by using DSDT editing. Actually a few of my friends got it fixed this way. However I do not know how to do it right now (I'm still very much a noob in DSDT editing), so I can't teach others ether. :))

 

Also, you don't have to Inject EDID and Patch VBIOS if you're using an UEFI GOP Vbios (this is also mentioned on the first post :P). And even if you're not using a UEFI VBIOS, apparently not all the people need that. I needed it, so I mentioned it for other people to know about it.

 

Thanks for sharing! And also, glad it works for you! :D

 

Yeah, sorry if I may have overlooked something ;)

 

And I am absolutely no expert in DSDT editing, so if I can do it, everyone can ;)

 

So you also have some type of SSDT patch for your GPU, right? So apparently, the only thing needed is to add this entry in the _DSM method, using the correct connector adress of course.

Share this post


Link to post
Share on other sites

Yeah, sorry if I may have overlooked something ;)

 

And I am absolutely no expert in DSDT editing, so if I can do it, everyone can ;)

 

So you also have some type of SSDT patch for your GPU, right? So apparently, the only thing needed is to add this entry in the _DSM method, using the correct connector adress of course.

 

I'm not using any kind of patched SSDT/DSDT files. Only Clover patching. :D

 

I'll try to learn a bit more about it and, maybe I'll add that part as well. I think it would be a nice addition.

Share this post


Link to post
Share on other sites

Ah, understand. Even if I am not an expert I still try to avoid Clover patches when possible. And there is always something new to learn ;)

Share this post


Link to post
Share on other sites

If you would like to avoid having to patch your DSDT ever time your change your monitor setup or default you can use this DSM method,

                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }

                        Return (Package (0x12)
                        {
                            "@0,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@0,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "@1,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@1,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "@2,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@2,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "@3,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@3,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "hda-gfx", 
                            Buffer (0x0A)
                            {
                                "onboard-2"
                            }
                        })

Share this post


Link to post
Share on other sites

 

If you would like to avoid having to patch your DSDT ever time your change your monitor setup or default you can use this DSM method,

                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }

                        Return (Package (0x12)
                        {
                            "@0,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@0,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "@1,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@1,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "@2,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@2,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "@3,AAPL,boot-display", 
                            Buffer (Zero) {}, 
                            "@3,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            }, 

                            "hda-gfx", 
                            Buffer (0x0A)
                            {
                                "onboard-2"
                            }
                        })

 

So..basically setting the same boot-display property for all ports? Did I get that part right?

Share this post


Link to post
Share on other sites

So..basically setting the same boot-display property for all ports? Did I get that part right?

 

@asradu

 

This above seems for me like boot display for every frame buffer... dunno if this is useless or not...

 

But, there must be some registers, which changes, based where your display is connected,

just need to read in the Nvidia/Amd Specification sheet...

 

Like Rehab found the BAR1 register in the Intel Graphics specification sheet... (different thing, because BAR1 is for brightness)

 

But theoretically i think its possible...

 

If we find the register it should be very easy to make an ACPI Method for this...

 

 

PS: i don't have here Nvidia/Amd Graphics, since i have on my laptop only Iris5100...

So i can't test... Im Sry...

 

Cheers :-)

Share this post


Link to post
Share on other sites

This above seems for me like boot display for every frame buffer... dunno if this is useless or not...

 

Imho, it is. When I do this, I get the Apple Logo, but also a second loading bar bottom-left, just like without the patch.

Share this post


Link to post
Share on other sites

I followed the guide and got my 2nd stage boot screen 95% working but for some reason my monitor still blinks blank before the logo/loading screen finishes?

 

Before it did the same but I didn't have the logo/loading screen properly centred as it just showed the bar on the bottom left hand corner.

 

I'm guessing this is an EDID issue with my monitor?

Share this post


Link to post
Share on other sites

I followed the guide and got my 2nd boot screen 95% working but for some reason my monitor still blinks blank before the logo/loading screen finishes?

 

Before it did the same but I didn't have the logo/loading screen properly centred as it just showed the bar on the bottom left hand corner.

Yeah, that's a glitch that most of us have (especially desktop users). Interestingly, even some real iMacs have it too. And no, I'm not sure it has anything to do with the EDID. But I might be wrong.

 

So far, that's the best we can have. When there will be a solution for that as well, I'll post it.

Share this post


Link to post
Share on other sites

Yeah, that's a glitch that most of us have (especially desktop users). Interestingly, even some real iMacs have it too. And no, I'm not sure it has anything to do with the EDID. But I might be wrong.

 

Ah OK. I thought I was alone. Seems like a weird glitch -- it would be nice to have a fix for it sometime but it's already much better than before. Thanks for the guide!

Share this post


Link to post
Share on other sites

So..basically setting the same boot-display property for all ports? Did I get that part right?

 

Yes that's all I did... Makes not difference on my end with multi-monitors or single monitor switched to a different port...

 

I guess OS X thinks the displays are mirrored for the boot process maybe?

Share this post


Link to post
Share on other sites

Yes that's all I did... Makes not difference on my end with multi-monitors or single monitor switched to a different port...

 

I guess OS X thinks the displays are mirrored for the boot process maybe?

 

That is really interesting. :D I wonder if it works with the device-properties method. Should work..I guess. I just can't test this. :))

Share this post


Link to post
Share on other sites

Hi I've followed steps 1-4 but the only thing I got from step 5 is the loading bar at the center with no logo. Patch Vbios and Inject EDID made the first stage logo bigger with the loading bar at the center with no logo on the second stage. I've tried with/without CsmVideoDrv.efi but to no avail. My bios, tho UEFI, had no CSM option (it's an H61M). I'm booting in UEFI and I'm not using DSDT/SSDT coz Clover does the good job already. I'm using Manli GeForce 210 on this one. Any ideas?

I'm using the VGA port BTW.

Please have a look at the file (attached) I edited using @1 as the default.

device-properties.xml

Share this post


Link to post
Share on other sites

Hi I've followed steps 1-4 but the only thing I got from step 5 is the loading bar at the center with no logo. Patch Vbios and Inject EDID made the first stage logo bigger with the loading bar at the center with no logo on the second stage. I've tried with/without CsmVideoDrv.efi but to no avail. My bios, tho UEFI, had no CSM option (it's an H61M). I'm booting in UEFI and I'm not using DSDT/SSDT coz Clover does the good job already. I'm using Manli GeForce 210 on this one. Any ideas?

I'm using the VGA port BTW.

Please have a look at the file (attached) I edited using @1 as the default.

 

1. What's your display resolution? What's the resolution set in Clover? What's the resolution set in OS X?

2. Did you set a specific display-cfg in Clover config or anywhere else? Does it work without it?

 

Also, something seems a bit off in your xml... Is this the one that you edited or the one generated after reboot, when extracting it again from the system?

 

Also, a screenshot of your IOreg might help in this case.

Share this post


Link to post
Share on other sites

My display resolution is set to 1600x900 in OS X and in Clover.

 

No I didn't set any display-cfg in Clover. 

 

The xml I sent was the edited xml already.

 

What seems to be off in the xml?

 

Here's my ioreg. Thanks

post-942609-0-96357200-1447537139_thumb.png

Share this post


Link to post
Share on other sites

My display resolution is set to 1600x900 in OS X and in Clover.

 

No I didn't set any display-cfg in Clover. 

 

The xml I sent was the edited xml already.

 

What seems to be off in the xml?

 

Here's my ioreg. Thanks

 

 

I'm pretty sure hda-gfx is not in the initial tutorial. I'm not sure it's the cause of the issue. Probably not. But let's just do it exactly like it is on the first page for once.

 

So, could you please, try the hex txt in the attachment? Please, make a copy of your current one, just to be safe. And let's see if that makes any difference. Also please, try with and without PatchVbios.

hex_txt.txt

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Pentothal.Z
      Hello all,
      I have a working hackintosh....ok.....but it takes a lot to boot and according to the boot.log there are a few problems.
      One of them is a black screen that stays on for a long time.
      I would like to ask anyone in this community some help to fine tune my machine.
      Boot.log and config.plist attached


      Any help would be appreciated.
      bootlog.txt
      config.plist
    • By fusion71au
      Clover r4989 ISO compiled with GCC and minimal config.plist compatible for use in VMWare Workstation.
       
      Tested with unlocked Workstation 15 running OSX 10.9 -->10.15 guest in Windows X64 host.
       
      Installation
      1. Download and unzip "EFI_Clover_r4989 for VMware.zip". Mount Clover-v2.4k-4989-X64.iso by double clicking on it.
      2. Mount your VM's EFI System Partition eg in terminal
      sudo diskutil mount disk0s1   3. Copy EFI folder from step 1 into the EFI partition
      4. Shutdown the VM, add bios.bootDelay = "3000" to your VM's vmx file
      5. Reboot your VM, press <F2> to access the VMware Boot Manager and add CLOVERX64.efi to the boot menu.
       
      Substitute your own unique and valid MLB and ROM variables in the /EFI/CLOVER/config.plist (Rt Variables section) to activate iMessage/Facetime on your VM.
    • By fusion71au
      Run Vanilla OS X El Capitan, Sierra, High Sierra or Mojave in VirtualBox 5.x.x on a Windows Host
      Following on from my previous guide on how to create a VMware virtual machine running Vanilla OS X El Capitan in Windows, I’ve decided to write a similar guide for creating a VirtualBox El Capitan VM. 
       
      The virtual machine should be useful for testing El Capitan and also for creating installers for use on a real machine/hackintosh.
       
      There are other tutorials and videos on the net about running OS X on Windows machines using pre-made VMDK disk images but you can never guarantee what else is in there….
       
      I’ve gathered info for this guide from several threads in the Multibooting and Virtualisation section of this forum and also the wider internet eg
       
      @colt2 HOW TO: Create a bootable El Capitan ISO for VMware
      @dsmccombs comment on faking Ivybridge Processor
      @E:V:A http://forum.xda-developers.com/showpost.php?p=55572430&postcount=6
      @Tech Reviews video tutorial https://www.youtube.com/watch?v=t7X07U63lwg.
      VirtualBox Forum: Status of OSX on OSX
       
      Requirements
         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    Oracle VM VirtualBox v 5.0.34    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#75    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.  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.  Note: you will need approx 16GB of free space on your hard disk for the script to complete.
       
       
       
      3.  Open OS X terminal, then run the following commands to execute the script:
      cd downloads chmod +x CECI.tool ./CECI.tool 4.  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.
       
       
      Create an El Capitan Virtual Machine in VirtualBox
      1.  Open the VirtualBox program and click the "New" button to create a new VM.
       

       
      2.  Select Mac OS X and Mac OS X 10.11 El Capitan (64 -bit) for Operating System type and version.  I named my Virtual Machine "El_Capitan", then clicked next...
       

       
      3.  Leave the Memory size at the recommended 2048 MB, then click next.
       

       
      4.  Choose to "Create a virtual hard disk now", then click the create button.
       

       
      5.  For the hard disk file type, the default is VDI (VirtualBox Disk Image) but I have selected VMDK for inter-operability with VMWare.  Click next...
       

       
      6.  For Storage on physical hard disk, I have chosen the default Dynamically allocated (grows larger to a set limit as you need more disk space).
       

       
      7.  On the File location and size screen, you can set the location of the new virtual hard disk and its size - I recommend changing disk size to 40GB or larger.  When you click the create button, you will now see your new VM in the VirtualBox main GUI.
       

       
      8.  Click the settings button on the Main Menu to tweak a few settings....
         a.  On the System/Motherboard tab in Boot Order, you can uncheck the Floppy Drive (who has these now?)
       

       
         b.  On the System/Processor tab, you can increase the allocated CPU cores to 2
       

       
         c.  On the Display tab, you can increase the allocated Video Memory to 128MB
       

       
         d.  On the Storage tab, click on the icon of the Optical Drive and select "Choose Virtual Optical Disk File". 
       

       
      Navigate and select the El Capitan ISO we created earlier...
       

       
         e.  Click the OK button to finalise the VM settings.
       
       
      Patch El Capitan vbox configuration file with DMI Settings from a Mac
      1.  From the start menu, type cmd and click run as administrator to open an administrative command prompt. 
       

       
      2.  Choose a Mac Model similar to your host system, then type the following lines, followed by <enter>  after each line.  Make sure you first close all VirtualBox Windows and the VirtualBox program, otherwise any changes you make won't stick...
       
      Eg iMac11,3
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-F2238BAE" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 MacBookPro11,3
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro11,3" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-2BD1B31983FE1663" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 Macmini6,2
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "Macmini6,2" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-F65AE981FFA204ED" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 3.  Optional- For some host systems eg those with Haswell and newer CPUs, you might have to spoof an older CPU to avoid VirtualBox errors.  You can try from one of the following if this happens:

      To spoof Lynnfield i5 750 CPU
      VBoxManage.exe modifyvm "El_Capitan" --cpuidset 00000001 000106e5 06100800 0098e3fd bfebfbff To spoof IvyBridge CPU
      VBoxManage.exe modifyvm "El_Capitan" --cpuidset 00000001 000306a9 04100800 7fbae3ff bfebfbff or
      VBoxManage.exe modifyvm "El_Capitan" --cpuidset 00000001 000306a9 00020800 80000201 178bfbff 4.  Close the command prompt window.
       
       
      Installation of El Capitan
      We are now ready to start the El_Capitan Virtual Machine....
       



       
      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 named my 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.  At this point, unmount the El Capitan ISO by clicking the Devices menu from the VM window, click Optical Drives, then choose Remove disk from virtual drive.  The VM is now ready to reboot into OS X from the virtual hard drive.
      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.
       

       
      8.  Network/internet and audio should work OOB but on my system, the sounds were distorted.  Unfortunately, there is no QE/CI and the VM resolution will be fixed without the ability to dynamically resize the VM window (no VirtualBox additions for OS X guests atm). 
       
       
      Customization with VBoxManage
      1.  You can change the default resolution of 1024*768 (after shutting down the VM) with the VBoxManage command from the Windows Administrative Command Prompt:
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" VBoxInternal2/EfiGopMode N (Where N can be one of 0,1,2,3,4,5) referring to the 640x480, 800x600, 1024x768, 1280x1024, 1440x900, 1920x1200 screen resolution respectively.
       
      Update:  For VirtualBox 5.2.x, the command for changing screen resolution has changed...
       
      VBoxManage setextradata "<MyVM>" VBoxInternal2/EfiGraphicsResolution XxY (where X=Horizontal screen resolution, Y=Vertical screen resolution)
      eg
      VBoxManage setextradata "<MyVM>" VBoxInternal2/EfiGraphicsResolution 1280x1024 2.  Adding serials and other SMBIOS details for the System Information Screen
      VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "W8#######B6" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardSerial" "W8#########1A" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVendor" "Apple Inc." VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemFamily" "iMac" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBIOSVersion" "IM112.0057.03B" A listing of known issues with Mac OS X guests can be found in the VirtualBox Manual - link https://www.virtualbox.org/manual/ch14.html.
       
      Vanilla Mavericks and Yosemite, Snow Leopard from Retail DVD
      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...
       

       
      Finally, those without a Mac/Hack to prepare the install media can purchase a retail Snow Leopard DVD directly from Apple and install OSX 10.6.3 on their virtual machines (Snow Leopard, Lion and Mountain Lion run quite happily in VirtualBox with 1 CPU, 1-2 GB of RAM and the rest of the settings unchanged from above).  Once you update by combo update to SL 10.6.8, you can directly download El Capitan from the App Store for free .
       

       
      UPDATE macOS Sierra 10.12 to 10.12.6: For macOS Sierra, use CSI.tool in post#51.
      UPDATE macOS High Sierra 17A365:  For macOS High Sierra, use CHSI.tool in post#73.
      UPDATE macOS Mojave 18A391:  For macOS Mojave or High Sierra, use macOS_iso_creator.tool on page 4 of thread.
      UPDATE macOS Catalina Beta DP3_19A501i:  For Catalina, @jpz4085 has made an automated batch file to create a Catalina VM in Windows with iMac 14,2 SMBIOS.  You can still use my macOS_iso_creator.tool on page 5 to make an installer ISO to attach to the VM.
       
       
       
      Good luck and enjoy
      CECI.tool.zip
      CYI.tool.zip
      CMI.tool.zip
×