Dual-Booting Mac OSX and Windows on MacBookPro

NOTE: Thanks to @TGIK on the thread https://discussions.apple.com/thread/250137979 who came up with the solution.

System: MackBook Pro (13-inch, Late 2011), Intel Core i5, 4GB RAM, Intel HD Graphics 3000, SuperDrive

Background:

  • Purpose of this guide: Due to poor EFI support on the earlier MACs (think 2012 and earlier?), when Windows is installed in EFI mode, the audio card does not work (EFI boot mode exposes devices in a different way, which effectively leads to audio not working). This guide uses registry DSDT override in Windows to enable the audio card without using any third party bootloader so your Mac OSX is more or less still vanilla 🙂
  • I first tried to install Windows with BootCamp but got the “GPT/MBR wont install” issue after EFIbooting the Windows 8.1 USB.
  • I then converted the Hybrid GPT/MBR partition scheme the BootCamp had created to GPT with protected MBR by:
    (1) disabling SIP – boot the MAC while holding down command+R to get to OSX Recovery, start Terminal from the Utilities menu, run “crsutil disable”, restart the MAC.
    (2) download gdisk and install gdisk (https://sourceforge.net/projects/gptfdisk/ ), determine your disk device name (e.g., from Disk Utilities), update the partition by running gdisk against the disk, selecting x for advanced, type n, then type w to write, Y to accept changes.
    sudo gdisk /dev/disk0
    x (ENTER key)
    n (ENTER key)
    w (ENTER key)
    Y (ENTER key)
    (3) run gdisk again and check the output that the partition scheme is now listed as GPT with protected MR; quit gdisk
    (4) You may want to re-enable SIP (boot while holding Command+R to get into OSX Recovery, start Terminal from the Utilities menu, run “crsutil enable”, restart the MAC.
  • I installed Windows from the prepared USB (press Option key when booting and select the EFIboot – it should have a USB icon). I chose to reformat the partition I had created in Mac OSX for Windows in the installation wizard.
  • In Windows, I installed the BootCamp Drivers (The BootCamp Assistant should have copied it to the USB for you, otherwise download them from the Apple website). This enables enabled WiFi and everything else but with no audio and the audio device in device manager had the error “This device cannot start. (Code 10)”
  • I then found @TGIK’s solution thread on Apple’s Support Forum after which I did the following to get the audio to work:
  1. Boot into Mac OSX and use MaciASL software to dump your DSDT in OSX : https://sourceforge.net/projects/maciasl/
    Install and run MaciASL. From the MaciASL menu chose the save as disassembled DSL option e.g., with filename DSDT (MaciASL will tag on extension DSL once you choose the right file type in the “save as” dialog box)
  2. Copy the DSDT.DSL to a USB or put it online (e.g., your email or google drive)
  3. Re-boot the MAC into Windows

The remaining steps are extracted from the guide: https://egpu.io/forums/pc-setup/fix-dsdt-override-to-correct-error-12/

4. Download and install the required tools:

  • Windows Binary Tools (WBT – Dec 2016) extracted to c:\dsdt directory. [ https://acpica.org/sites/acpica/files/iasl-win-20161222.zip ]
  • Windows Driver Kit (WDK), which contains the Windows ASL Compiler (asl.exe) [ https://go.microsoft.com/fwlink/p/?LinkId=526733 ]
  • Notepad++ text editor
  • Copy WDK’s ASL compiler into the c:\dsdt directory. Do this by opening Command Prompt (run as administrator) and then copy-and-paste the commands below: mkdir c:\dsdt
    c: & cd \dsdt
    set 64bit_OS_asl=”C:\Program Files (x86)\Windows Kits\10\Tools\x64\ACPIVerify\asl.exe”
    set 32bit_OS_asl=”C:\Program Files (x86)\Windows Kits\10\Tools\x86\ACPIVerify\asl.exe”
    copy /y %32bit_OS_asl% c:\dsdt > nul & copy /y %64bit_OS_asl% c:\dsdt > nul
    if not exist c:\dsdt\asl.exe echo ERROR: Failed to copy asl.exe to c:\dsdt

5. Copy the DSDT.DSL into the c:\dsdt folder

6. Edit the DSL as described and add the QWordMemory section (I used the “Intel method” as recommended in the egpu.io guide). See (iii) under section “OPTION 1: Use the Intel method” i.e.:
… With Notepad++, open the resultant c:\dsdt\dsdt.dsl file and search for ResourceProducer. Beneath it will be a series of “DWordMemory” resource entries. Under the last DWordMemory entry in that area, typically above the _CRS method, add a ‘QWordMemory’ (64-bit) entry as shown in red below. …

(NOTE: the lines starting with “QWordMemory” to the line ending with ” TypeStatic)” are the lines introduced into the DSDT.DSL file)

DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
   0x00000000,         // Granularity
   0x000A0000,         // Range Minimum
   0x000BFFFF,         // Range Maximum
   0x00000000,         // Translation Offset
   0x00020000,         // Length
   ,, , AddressRangeMemory, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
   0x0000000000000000, // Granularity
   0x0000000C20000000, // Range Minimum,  set it to 48.5GB
   0x0000000E0FFFFFFF, // Range Maximum,  set it to 56.25GB
   0x0000000000000000, // Translation Offset
   0x00000001F0000000, // Length calculated by Range Max - Range Min.
   ,, , AddressRangeMemory, TypeStatic)
})
   Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings

7. Create an updated dsdt.aml file from the update DSDT.DSL file (using the commands):
c: & cd \dsdt
iasl -ve DSDT.DSL

Note: the iasl actually creates a file called iASLcnnPCo.aml. Just rename it to anything you want e.g., DSDT.AML

8. Load the updated/modified AML using registry DSDT override:
cd c:\dsdt
asl /loadtable DSDT.aml
bcdedit -set TESTSIGNING ON

9. Reboot Windows and you should have audio working when it comes back up.
(I noticed two devices in the “Sound, video and game controllers” section in Device manager: “Cirrus Logic CS4206B(AB 28)” and “High Definition Audio Device” (with the error “This device cannot start. (Code 10)”).

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

** If your MAC is equipped with a DVD drive (e.g., SuperDrive), you can avoid this long guide by installing Windows in legacy MBR boot mode. Write the Windows ISO to a DVD-R media (or if you have the Windows install DVD already even better). After creating a suitable partition for Windows within Mac OSX, just boot the MAC while holding the Option key, choose to boot from the DVD drive (not EFIboot !), and install Windows into the target partition. Install BootCamp Drivers within Windows and you are done! Everything should just work.

*The Windows USB can be created with unetbootbin, Rufus, or the Windows 7 USB/DVD creator tool.

Referencess:
https://mac.filehorse.com/download-daemon-tools/
https://sourceforge.net/projects/gptfdisk/
https://docs.google.com/viewer?url=http://manuals.info.apple.com/en_US/boot_camp_install-setup_10.7.pdf
https://apple.stackexchange.com/questions/8044/how-can-i-install-boot-camp-off-a-windows-7-usb-flash-drive
https://www.cnet.com/how-to/install-win-7-on-macbook-air-from-a-usb-drive/
https://macriot.com/mcrt/2014/12/08/windows-cannot-be-installed-on-to-this-disk-the-selected-disk-is-of-the-gpt-partition-style/
https://bl.ocks.org/balupton/1603bb4b7769d1af0fd7
https://superuser.com/questions/508026/windows-detects-gpt-disk-as-mbr-in-efi-boot/508454#508454?newreg=06d03dd9848a46babff1704022ce593c
https://www.quora.com/How-do-I-turn-off-the-rootless-in-OS-X-El-Capitan-10-11

The Border Collie

Did you read about me?
Indestructible, or so I thought
Did you hear of me?
Inexhaustible, the tales I wrought

The open road is where I live
The wind in my face
A hard man with no give
Every stop is a new base

I used to wear full body armour
Over my Under Armour
The heat and the tight fit
My excuse for no extra kit

Left to my discretion
I ditched the protection
Forth, I sally
The law is my ally

Gas and oil and grease – my blend
Coming around the bend
The breaks didn’t save me
The road broke me

Doing sixty in a forty
Ahead of my party
It was a Border Collie
It ended my folly

08-Sep-2019