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
- 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:
- 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)
- Copy the DSDT.DSL to a USB or put it online (e.g., your email or google drive)
- 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:
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.
Thank you! Very clear instructions. This is so useful! Windows 10 has sound now. iMac mid-2011, 21″.
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.
This worked, I can’t believe I finally have sound on my late 2011 MacBook pro in windows 10. Thanks!
I assume you used a DSDT you generated from your system and not some generic one?
@gary: it appears some drivers require testsigning to be off otherwise they won’t work. Try turning testsigning on and adding this command as well:
bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS
With DVD install (not EFIboot) still got GPT wont install error. Even with gdisk protected MBR. Same machine and system. Looks DSDT is the only option to get sound back.
Tried to install from DVD without EFI boot. End up with GPT error during installation (even with MBR protected). Installed from EFI boot and modified DSDT (intel method)- worked perfectly.
Macbook pro late 2011, 8,1.
MacOS: Mojave (patched).
Windows 10 pro N. (direct partition without Bootcamp)
Instructions worked for me till 8. There it ended with
Error: Could not access the registry path: System\CurrentControlSet\Services\ACPI\Parameters\DSDT\APPLE_\MacBookP\00090001
c:\dsdt>bcdedit -set TESTSIGNING ON
The boot configuration data store could not be opened. Access is denied.
Same result when adding bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS Windows remains silent on my MBP 13-inch, Mid 2012 (EFIbooting from separate SSD)
Solved: At 8. you have to run as administrator. Load the updated/modified AML using registry DSDT override:
.\asl /loadtable DSDT.aml
bcdedit -set TESTSIGNING ON
Voila! Audio works through Windows on MBP 13-inch Mid 2012 with dual SSD
Legend. Thanks. Great work. Got this old 2008 MacBook Pro working 100% using this guide.
I have iMac mid 2011 and in the same boat. Have managed to install Window 10 on 2nd internal SSD and both Windows 10 and High Sierra able to boot on separate SSDs. The sound is not working but managed a work around via blue tooth headset. My primary question; What unique steps from the above process would be required for my model. Thanks!
Ayotunde, thanks for your post. It worked perfectly on MacBook Pro Mid 2012 using Intel method.
I’m using Windows 10 (UEFI Mode) on External USB SSD installed using VirtualBox method
Pingback: I cloned a Windows 10 laptop to an external SSD running on a pre-UEFI MacBook Air 2012 ~ Ask Different ~ TroubleToday.net
Hey itayemi aka Ayotunde,
I’ve sent you an email to your Gmail. The Unsupported Mac Discord server and my server Howeitworks Support Discord server (Valor & Valor Lite Script that does what you posted automatically) to come and join. You in both communities have became a legend and we would like to welcome you! Links are in the email.
Hi itayemi aka Ayotunde,
many, many thanks for this post. It worked for me on my MacBookPro8,1. Sound is wonderful on W10 Pro.
Pingback: I cloned a Windows 10 laptop to an external SSD running on a pre-UEFI MacBook Air 2012 - PhotoLens
I using mac book pro mid 2012 operating system windows 10 pro 64 bit everythink working good but audio drivers problem please share driver link or solution