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 Kits10Toolsx64ACPIVerifyasl.exe”
    set 32bit_OS_asl=”C:Program Files (x86)Windows Kits10Toolsx86ACPIVerifyasl.exe”
    copy /y %32bit_OS_asl% c:dsdt > nul & copy /y %64bit_OS_asl% c:dsdt > nul
    if not exist c:dsdtasl.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:dsdtdsdt.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

This entry was posted in Uncategorized. Bookmark the permalink.

4 Responses to Dual-Booting Mac OSX and Windows on MacBookPro

  1. Néstor says:

    Thank you! Very clear instructions. This is so useful! Windows 10 has sound now. iMac mid-2011, 21″.

  2. gary says:

    THis doesn’t seem to work for me.

    Loading the dsdt-modified.aml file disables the trackpad and keyboard. Usb mouse works.

    I turn off testsigning and then its back to normal. No audio at anytime works.

    I tried both intel and the microsoft method.

    MBP mid-2012

  3. ar4757 says:

    This worked, I can’t believe I finally have sound on my late 2011 MacBook pro in windows 10. Thanks!

Leave a comment