Administrators Hervé Posted April 23, 2015 Administrators Share Posted April 23, 2015 Last update: 13 Aug 2019 Specifications: BIOS A13 A14 with HDD set to AHCI mode. Intel QM67 (6 Series/C200) Express chipset Intel dual-core Sandy Bridge i5-2520M 2.50GHz CPU (Turbo boost to 3.0GHz (2 cores) or 3.2GHz (1 core)) Integrated Intel HD3000 graphics (650MHz/1.3GHz) with 12.5" 1366x768 WLED LCD 4GB 8GB DDR3-1333 RAM Intel 82579LM Gigabit Ethernet (PCI ven id 0x8086, dev id 0x1502) IDT 92HD90 (Codec 76E7) High Def audio (PCI ven id 0x8086, dev id 0x1c20) O2 Micro SD card reader (PCI ven id 0x1217, dev id 0x8231) Internal-USB Broadcom-based DW375 Bluetooth 3.0 module (PCI ven id 0x413c, dev id 0x8187) Internal-USB Sunplus Innovation Technology webcam (PCI ven id 0x1bcf, dev id 0x2804) Backlit keyboard 2 x USB 2.0 ports 1 x combo eSATA/USB2.0 port 1 x VGA output 1 x HDMI output 1 x headset jack port 1 x 34mm ExpressCard slot E6220:~ admin$ lspci -nn pcilib: 0000:00:02.0 64-bit device address ignored. 00:00.0 Host bridge [0600]: Intel Corporation 2nd Generation Core Processor Family DRAM Controller [8086:0104] (rev 09) 00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0126] (rev 09) 00:16.0 Communication controller [0780]: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 [8086:1c3a] (rev 04) 00:16.3 Serial controller [0700]: Intel Corporation 6 Series/C200 Series Chipset Family KT Controller [8086:1c3d] (rev 04) 00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04) 00:1a.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 [8086:1c2d] (rev 04) 00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 04) 00:1c.0 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 [8086:1c10] (rev b4) 00:1c.1 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 [8086:1c12] (rev b4) 00:1c.2 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 [8086:1c14] (rev b4) 00:1c.5 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 [8086:1c1a] (rev b4) 00:1d.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 [8086:1c26] (rev 04) 00:1f.0 ISA bridge [0601]: Intel Corporation QM67 Express Chipset Family LPC Controller [8086:1c4f] (rev 04) 00:1f.2 SATA controller [0106]: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller [8086:1c03] (rev 04) 00:1f.3 SMBus [0c05]: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller [8086:1c22] (rev 04) 01:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 01) 02:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6205 [8086:0082] (rev 34) 09:00.0 SD Host controller [0805]: O2 Micro, Inc. Unknown device [1217:8221] (rev 05) 09:00.1 Mass storage controller [0180]: O2 Micro, Inc. Unknown device [1217:8231] (rev 03) E6220:~ admin$ For recommended BIOS settings, see here. Target OS X release: Mavericks 10.9.5 Installation fully successful with myHack v3.3.1 and attached E6220 bootpack on a 7mm SATA-III SSD partitioned GUID and formatted Mac OS X (journaled). NB: only thin/7mm HDD/SSD 2.5" drives fit in, regular 9.5mm drives do not. mSATA modules require a dedicated adapter. Working: full QE/CI with HD3000 graphics OOB VGA output (with patched AppleIntelSNBGraphicsFB kext) HDMI output OOB full audio, including HDMI (with patched AppleHDA + AppleIntelSNBGraphicsFB kexts. VoodooHDA v2.8.7 & AppleHDADisabler work too w/o HDMI audio) built-in Gigabit Ethernet (with AppleIntelE1000e kext) bluetooth OOB (on/off supported with patched BroadcomBluetoothHostControllerUSBTransport PlugIn of IOBluetoothFamily kext) native SpeedStep (with patched AppleIntelCPUPowerManagement kext, generated SSDT, tuned Kozlek's FakeSMC (SMC keys=1.69f4 (or 1.68f98)/SMC compatible=smc-huronriver) and MBP8,1 SMBios profile) Turbo boost to x32 3.2GHz (getting CPU multipliers x8/10/12/14/16/21/22/25 + Turbo multipliers x26/27/28/29/30/31/32) system sleeps Ok through lid closure, power button, Fn-F1, Apple menu->Sleep and energy savings settings with hibernation mode set to 0 (sleep to RAM) and /var/vm/sleepimage file deleted. Wakes Ok through lid opening and power button. wireless with any compatible card (2 x 1/2 size mini-PCIe slots + 1 x full-size mini PCIe slots available)) battery management & monitoring (with ACPIBatteryManager or VoodooBattery or SmartBatteryManager kext) SD card reader (with DSDT patch for compatibility with Apple's default device 14e4:16bc) integrated Webcam OOB keyboard backlight control OOB (for backlit models) left combo/USB2.0 + right USB2.0 ports OOB ExpressCard slot OOB Not working Nothing Not tested: SmartCard reader GeekBench v2.4.3 (32bit) gives a near-6100 rating: Once system is installed, you may update Chameleon to a recent release such as r2395, r2401, r2468 or r2679. Enoch branch is a suitable alternative too. Everything in the pack below: E6220_i5-2520M_HD3000_Mav-Pack.zip E6220_i5-2520M_HD3000_Mav-Pack_#2.zip E6220_i5-2520M_HD3000_Mav-Pack_#3.zip E6220_i5-2520M_HD3000_Mav-Pack_#4.zip E6220_i5-2520M_HD3000_Mav-Pack_#5.zip Other E6220 laptops fitted with a different CPU will require a different (and suitable) SSDT table than provided in the above pack (can be looked up on the web or created with SSDT generator tool -> See RampageDev's blog for detailed guide). In such cases and in order to avoid CPU power management-related kernel panics (KP), NullCPUPowerManagement kext is probably required until the CPU-specific SSDT is generated. The kext just needs to be added to /Extra/Extensions followed by myHack->myFix (quick). - - - - - - - - - - Edit #1: 13 May 2015 Revised bootpack #2 with updated DSDT + patched AppleHDA kext to support HDMI audio - - - - - - - - - - Edit #2: 16 May 2015 Revised bootpack #3 with patched BroadcomBluetoothHostControllerUSBTransport PlugIn kext to support DW375 enabling/disabling - - - - - - - - - - Edit #3: 12 Apr 2016 Revised bootpack #4 with updated _PRW methods settings for DSDT devices EHCx/GLAN/HDEF in order to fix occasional/intermittent issues when waking laptop - - - - - - - - - - Edit #4: 28 Jul 2016 Revised bootpack #5 with updated DSDT devices to improve compatibility with MacBookPro8,1 and remove the need for VoodooSDHC kext which causes issues with sleep/wake. wireless: renamed RP05.PXSX to RP05.ARPT SD card reader: renamed RP06.PXSX to RP06.SDXC + added compatibility with Apple's own pci14e4,16bc lid: renamed LID to LID0 - - - - - - - - - - Edit #5: 13 Aug 2019 Added link to recommended BIOS settings 1 Link to comment Share on other sites More sharing options...
Administrators Hervé Posted May 10, 2015 Author Administrators Share Posted May 10, 2015 Last update: 28 Jul 2016 Target OS X release: Yosemite 10.10.x Installation fully successful with usual manual procedure and attached E6220 bootpack on a 7mm SATA-III SSD partitioned GUID and formatted Mac OS X (journaled). Working: full QE/CI with HD3000 graphics OOB VGA output (with patched AppleIntelSNBGraphicsFB kext) HDMI output OOB full audio, including HDMI (with patched AppleHDA kext in /S/L/E. VoodooHDA v2.8.7 & AppleHDADisabler work too from /S/L/E w/o HDMI audio) built-in Gigabit Ethernet (with AppleIntelE1000 kext) bluetooth OOB (on/off supported with patched BroadcomBluetoothHostControllerUSBTransport PlugIn of IOBluetoothFamily kext) native SpeedStep at CPU multipliers x8/10/12/14/16/21/22/25 (with patched AppleIntelCPUPowerManagement kext, generated SSDT, tuned Kozlek's FakeSMC (SMC keys=1.69f4 (or 1.68f98)/SMC compatible=smc-huronriver) and MBP8,1 SMBios profile) Turbo boost to x32 3.2GHz at Turbo multipliers x26/27/28/29/30/31/32 system sleeps Ok through lid closure, power button, Fn-F1, Apple menu->Sleep and energy savings settings with hibernation mode set to 0 (sleep to RAM) and /var/vm/sleepimage file deleted. Wakes Ok through lid opening and power button wireless with any compatible card (having an unsupported Intel N-6205 in half-size WLAN port, I added a DW1390 in the full-size WWAN slot) battery management & monitoring (with ACPIBatteryManager or VoodooBattery or SmartBatteryManager kext) SD card reader (with DSDT patch for compatibility with Apple's default device 14e4:16bc) integrated Webcam OOB keyboard backlight control OOB (for backlit models) left combo eSATA/USB2.0 + right USB2.0 ports OOB ExpressCard slot OOB Not working Nothing Not tested: SmartCard reader USB installer creation procedure: Mount InstallESD.dmg found in Install OS X Yosemite.app/Contents/SharedSupport Then mount BaseSystem.dmg (hidden file) open /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg Use Disk Utility to restore the contents of BaseSystem.dmg on a USB key (or HDD partition) formatted Mac OS extended (journaled). Remove link for Packages in folder System/Installation of your USB key rm /Volumes/OS\ X\ Base\ System\ 1/System/Installation/Packages Copy folder Packages located in InstallESD.dmg to folder System/Installation of your USB key cp -R /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System\ 1/System/Installation Copy the 2 hidden files (BaseSystem.dmg & Basesystem.chunklist) of InstallESD.dmg to the root of your USB key cp /Volumes/OS\ X\ Install\ ESD/BaseSystem.* /Volumes/OS\ X\ Base\ System\ 1 Copy the patched AICPUPM kext available below to /System/Library/Extensions of the USB installer to avoid Sandy/Ivy Bridge CPU-related KP (due to BIOS-locked MSR) or use NullCPUPowerManagement: 10.10.x patched AppleIntelCPUPowerManagement kext Repair kexts permissions sudo chmod -R 755 /Volumes/OS\ X\ Base\ System\ 1/System/Library/Extensions sudo chown -R 0:0 /Volumes/OS\ X\ Base\ System\ 1/System/Library/Extensions To boot with Chameleon (you can safely use versions r2395, r2401 or r2468): Download the appropriate package off InsanelyMac's repo and install Chameleon on the USB installer partition called "OS X Base System" Create a folder "Kernels" under /System/Library of the USB installer and place a copy of the vanilla kernel there as "kernel" Yosemite 10.10.x kernel available here Create a folder "Extra" at root of your USB installer using the following pack: E6220_i5-2520M_HD3000_Yos-Pack.zip E6220_i5-2520M_HD3000_Yos-Pack_#2.zip E6220_i5-2520M_HD3000_Yos-Pack_#3.zip E6220_i5-2520M_HD3000_Yos-Pack_#4.zip Copy the kexts from the pack to /System/Library/Extensions, repair permissions and rebuild kext cache sudo chmod -R 755 /Volumes/OS\ X\ Base\ System\ 1/System/Library/Extensions sudo chown -Rf 0:0 /Volumes/OS\ X\ Base\ System\ 1/System/Library/Extensions sudo touch /Volumes/OS\ X\ Base\ System\ 1/System/Library/Extensions sudo /Volumes/OS\ X\ Base\ System\ 1/usr/sbin/kextcache -Boot -U /Volumes/OS\ X\ Base\ System\ 1 -K /Volumes/OS\ X\ Base\ System\ 1/System/Library/Kernels/kernel With Chameleon, it's critical to rebuild the cache with above commands if you use the FileNVRAM.dylib module or the installer/Yosemite installation will be unbootable without cache. Ok without the module though. Reinstate the module to boot with cache. Bear that in mind any time you add or modify kexts in Yosemite. Yosemite installation procedure: Boot your USB installer and proceed with installation (if prompted for Bluetooth keyboard and mouse, just press [space]) Upon completion, reboot your freshly made Yosemite installation via your USB installer and complete 1st boot system configuration Install Chameleon bootloader on Yosemite partition Copy the patched AICPUPM kext to /S/L/E If applicable, patch the BroadcomBluetoothHostControllerUSBTransport kext of /S/L/E/IOBluetoothFamily PlugIns to gain enabling/disabling of DW375 BlueTooth through Finder bar icon Copy the Extra folder of your USB installer to your Yosemite partition From Terminal, repair kext permissions and rebuild cache sudo chmod -R 755 /S*/L*/E* sudo chown -R 0:0 /S*/L*/E* sudo touch /S*/L*/E* sudo kextcache -Boot -U / From Terminal, adjust Sleep mode sudo pmset hibernatemode 0 sudo rm -f /var/vm/sleepimage Again, E6220 laptops fitted with a CPU other than an i5-2520M will require a different and suitable SSDT table than provided in the above pack (can be looked up on the web or created with SSDT generator tool -> See RampageDev's blog for detailed guide). - - - - - - - - - -Edit #1: 14 May 2015 Added patched AppleSNBGraphicsFB kext to support VGA output - - - - - - - - - -Edit #2: 17 May 2015 Added patched BroadcomBluetoothHostControllerUSBTransport PlugIn kext to support DW375 enabling/disabling + revised patched AppleHDA to support HDMI audio - - - - - - - - - -Edit #3: 12 Apr 2016 Updated bootpack #3 with revised _PRW methods settings for DSDT devices EHCx/GLAN/HDEF in order to fix occasional/intermittent issues when waking laptop - - - - - - - - - -Edit #4: 28 Jul 2016 Revised bootpack #4 with updated DSDT devices to improve compatibility with MacBookPro8,1 and remove the need for VoodooSDHC kext which causes issues with lid sleep. wireless: renamed RP05.PXSX to RP05.ARPT SD card reader: renamed RP06.PXSX to RP06.SDXC + added compatibility with Apple's own pci14e4,16bc lid: renamed LID to LID0 Thread/post clean-up 1 Link to comment Share on other sites More sharing options...
Administrators Hervé Posted July 1, 2015 Author Administrators Share Posted July 1, 2015 Bluetooth patch In the case of DW375, simply add the following entry to the Info plist of BroadcomBluetoothHostControllerUSBTransport plugin of IOBluetoothFamily kext: <key>Dell DW375: PID 33159/0x8187, VID 16700/0x413C</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport</string> <key>IOClass</key> <string>BroadcomBluetoothHostControllerUSBTransport</string> <key>IOProviderClass</key> <string>IOUSBInterface</string> <key>LMPLoggingEnabled</key> <true/> <key>IOProviderClass</key> <string>IOUSBDevice</string> <key>idProduct</key> <integer>33159</integer> <key>idVendor</key> <integer>16700</integer> </dict> Always patch from the current version of the kext as Apple as a long tendency of modifying its Bluetooth/USB kexts at each release. Previous kext versions are usually not compatible, so you cannot usually port a previous patch from an earlier OS X version. 2 Link to comment Share on other sites More sharing options...
Administrators Hervé Posted August 19, 2015 Author Administrators Share Posted August 19, 2015 Further to new study, the patch for SNB framebuffer kext was further refined to support DVI output off docking stations such as port replicator E-Port K07A002 (tested Ok) or E-Port Plus K09A001 (tested Ok). Full details available here. NB: The USB3.0 ports of those docking stations/port replicators work OOB but only at USB2.0 speed on the E6220 since this laptop has no built-in XHCI controller. 1 Link to comment Share on other sites More sharing options...
Administrators Hervé Posted March 1, 2016 Author Administrators Share Posted March 1, 2016 I've spent some additional time on the E6220 and the E-Port replicator K07A002 trying to work out multiple external displays. At 1st, things looked hopeful and promising, but I never reached the targeted goal. Even though OS X did report 3 x displays (LCD + VGA + DVI), only one external display worked, never both... No problem getting 2 x external displays with LID closed though. That works perfectly. Then I found that SandyBridge graphics do not support 3 independant displays, only 2, so that figured! I slightly updated my SNB FB kext's patch to reflect port numbers and connector types as reported in IOReg:FB@0 -> LVDS, port #0, connector-type 0200 0000FB@1 -> HDMI, port #5, connector-type 0008 0000FB@2 -> VGA, port #8, connector-type 0004 0000 or 0001 0000 or 0010 0000 or 1000 0000FB@3 -> DVI, port #7, connector-type 0004 0000 01 02 04 00 10 07 00 00 10 07 00 00 // vanilla: nb of connectors -> "04" 05 03 00 00 02 00 00 00 30 00 00 00 // vanilla: laptop's own LCD display 02 05 00 00 00 08 00 00 05 00 00 00 // patched: HDMI, display port #5 (built-in port) 06 02 00 00 00 04 00 00 08 00 00 00 // patched: VGA, display port #8 (built-in + docking-station port) 04 06 00 00 00 04 00 00 07 00 00 00 // patched: DVI, display port #7 (docking-station port) 10.10.5_Patched_AppleIntelSNBGraphicsFB.kext.zip Link to comment Share on other sites More sharing options...
Administrators Hervé Posted March 25, 2016 Author Administrators Share Posted March 25, 2016 'played a little further to get the DP port of my E-Port Replicator K07A002 to work. I don't have a DP-capable display so I used a DP-to-HDMI adapter to connect to my HD TV. Output display + HDMI audio through DP port was then obtained when setting port number to 6 in any of the display output lines. For instance: 02 05 00 00 00 08 00 00 06 00 00 00 or 04 06 00 00 00 04 00 00 06 00 00 00 We can therefore deduct that DP output is available through port #6. With that revised config I retain direct HDMI output through the E6220 built-in HDMI port but no HDMI audio, except through DP port (!). In terms of FB and connector type details, IOReg shows: FB@2 -> DP, port #6, connector-type 0004 0000 'seems to go to the detriment of VGA output though... Link to comment Share on other sites More sharing options...
Administrators Hervé Posted April 10, 2016 Author Administrators Share Posted April 10, 2016 Last update: 01 Nov 2016 Target OS X release: El Capitan 10.11.x This is an Enoch-based installation using the well-known/well-documented vanilla manual method detailed below: Working: full QE/CI with HD3000 graphics OOB HDMI output OOB DVI + DP output OOB through port replicator E-Port K07A002 VGA output (with patched AppleIntelSNBGraphicsFB kext) full audio, including jack microphone input and headset output (with patched AppleHDA kext) HDMI audio (with patched AppleHDA + AppleIntelSNBGraphicsFB kexts) built-in Gigabit Ethernet (with AppleIntelE1000e kext v3.1.0) bluetooth OOB (on/off supported with patched BroadcomBluetoothHostControllerUSBTransport PlugIn of IOBluetoothFamily kext) native SpeedStep at CPU multipliers x8/10/12/14/16/21/22/25 (with patched AppleIntelCPUPowerManagement kext, generated SSDT, tuned Kozlek's FakeSMC (SMC keys=1.69f4 (or 1.68f98)/SMC compatible=smc-huronriver) and MBP8,1 SMBios profile) Turbo boost to x32 3.2GHz at Turbo multipliers x26/27/28/29/30/31/32 system sleeps Ok through lid closure, power button, Fn-F1, Apple menu->Sleep and energy savings settings with hibernation mode set to 0 (sleep to RAM) and /var/vm/sleepimage file deleted. Wakes Ok through lid opening and power button wireless with any compatible card battery management and monitoring (with ACPIBatteryManager kext v1.60.5) SD card reader (with DSDT patch for compatibility with Apple's default device 14e4:16bc) integrated webcam OOB keyboard backlight control OOB (for backlit models) left combo eSATA/USB2.0 + right USB2.0 ports OOB ExpressCard slot OOB Not Working: N/A Not tested: SmartCard reader 1) 10.11 USB installer creation Double click on InstallESD.dmg found in Install OS X El Capitan.app/Contents/SharedSupport to mount the dmg image Then mount BaseSystem.dmg (hidden file) open /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg Use Disk Utility to restore the contents of BaseSystem.dmg on a USB key (or HDD partition) formatted Mac OS extended (journaled). Remove link for Packages in folder System/Installation of your USB key rm /Volumes/OS\ X\ Base\ System\ 1/System/Installation/Packages Copy folder Packages located in InstallESD.dmg to folder System/Installation of your USB key cp -R /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System\ 1/System/Installation Copy the 2 hidden files (BaseSystem.dmg & Basesystem.chunklist) of InstallESD.dmg to the root of your USB key cp /Volumes/OS\ X\ Install\ ESD/BaseSystem.* /Volumes/OS\ X\ Base\ System\ 1 Install Enoch r2795 (latest at time of writing) on the USB installer with all default settings Enoch-rev.2795.pkg.zip Copy the above Enoch r2795 installer package to the root of the USB installer Copy the following (unzipped/extracted) E6220 bootpack to the root of the USB installer E6220_i5-2520M_HD3000_EC-Pack.zip E6220_i5-2520M_HD3000_EC-Pack_#2.zip E6220_i5-2520M_HD3000_EC-Pack_#3.zip E6220_i5-2520M_HD3000_EC-Pack_#4.zip Create a folder called Kernels under /System/Library (normally, it won't exist at that stage) Copy the appropriate El Capitan vanilla kernel to /System/Library/Kernels. Copies of the kernels are available here. 2) 10.11 installation Boot the 10.11 USB installer (it may take a little time to kick in) with -f -v boot flags At OS X installer main screen, open up Disk Utility in Utilities menu If applicable, partition your target disk in GPT/GUID scheme Create your target 10.11 partition and format it as OS X Extended (Journaled) Close Disk Utility and proceed with OS X 10.11 installation as usual 3) Post-installation fine-tuning Reboot the 10.11 USB installer (it may take a little time to kick in) At OS X installer main screen, open up Terminal in Utilities menu Verify CoreStorage installation disk mode diskutil list If CoreStorage activated for Fusion drive, revert to legacy mode diskutil corestorage revert <device> (for example: /dev/disk1) Identify your freshly made 10.11 partition name df Copy the Extra folder from the USB installer to your identified 10.11 disk partition cp -R /Extra /Volumes/<your fresly made 10.11 partition name> (for example: cp -R /Extra /Volumes/OSX_disk) Reboot the 10.11 USB installer, press a key at delay bar (or F8) to interrupt boor process and select your freshly made 10.11 disk partition. You'll then be booting El Capitan for the 1st time Complete the 1st boot installation finalisation Once at the 10.11 desktop, run the Enoch r2795 package from your USB installer to install Enoch on your HDD; it should be installed on the 1st partition of the disk Eject the 10.11 USB installer and put it aside Disable hibernation (can be done later, but should be done): open up Terminal and type the following commands sudo pmset hibernatemode 0 sudo pmset hibernatefile /dev/null sudo rm -f /var/vm/sleepimage Reboot your finalised El Capitan installation After reboot, enabled audio and optimise prelinked kernel: copy all kexts from /Extra/Extensions to /Library/Extensions (ignore and acknowledge the permissions-related error messages) copy patched AppleHDA from /Extra/Extensions/Copy_to_SLE to /System/Library/Extensions repair kexts permissions and rebuild cache: sudo chmod -Rf 755 /S*/L*/E* sudo chown -Rf 0:0 /S*/L*/E* sudo chmod -Rf 755 /L*/E* sudo chown -Rf 0:0 /L*/E* sudo touch -f /S*/L*/E* sudo touch -f /L*/E* sudo kextcache -Boot -U / Edit /Extra/kernel.plist and set KernelBooter_kexts parameter to No <key>KernelBooter_kexts</key> <string>No</string> Boot time will be faster in that configuration mode where add-on kexts are cached from /L/E, not injected from /E/E. NB: After any kexts modification, whether to /S/L/E or to /L/E, you must repair permissions and rebuild cache as detailed above. Again, E6220 laptops fitted with a CPU other than an i5-2520M will require a different and suitable SSDT table than provided in the above pack (can be looked up on the web or created with SSDT generator tool -> See RampageDev's blog for detailed guide). - - - - - - - - - -Edit #1: 12 Apr 2016 Updated pack #2: fixes some incorrect settings in _PRW methods of DSDT devices EHCx/GLAN/HDEF that could prevent proper wake. - - - - - - - - - -Edit #2: 28 Jul 2016 Revised bootpack #3 with updated DSDT devices to improve compatibility with MacBookPro8,1 and remove the need for VoodooSDHC kext which causes issues with lid sleep and wake in general. wireless: renamed RP05.PXSX to RP05.ARPT SD card reader: renamed RP06.PXSX to RP06.SDXC + added compatibility with Apple's own pci14e4,16bc lid: renamed LID to LID0 - - - - - - - - - -Edit #3: 01 Nov 2016 Revised bootpack #4: replaced older VoodooPS2Controller v1.8.9 which caused KP from 10.11.4 onwards by Dr Hurt's Release 4 which works perfectly in El Capitan ported DW375 Bluetooth module + DW5550/HP hs2430/F5521gw WWAN module patches to FakeSMC (avoids patching vanilla kexts) added AppleHDA_IDT_92HD90 + patched AppleHDA v274.12 kexts (latter to be copied to /S/L/E) added Patched_AppleRTC_v2.0 + patched AICPUPM up'ed to v918.0.0 + patched IOGraphicsFamily up'ed to v92.4.1 (all to take precedence over vanilla kexts in /S/L/E) added the correct USBInjector kext tuned to MBP8,1 SMBIOS profile 1 Link to comment Share on other sites More sharing options...
Administrators Hervé Posted November 3, 2016 Author Administrators Share Posted November 3, 2016 Target macOS release: Sierra 10.12.x This is an Enoch-based installation using the well-known/well-documented vanilla manual method detailed below: Working: full QE/CI with HD3000 graphics OOB HDMI output OOB DVI + DP output OOB through port replicator E-Port K07A002 VGA output (with patched AppleIntelSNBGraphicsFB kext) full audio, including jack microphone input and headset output (with patched AppleHDA kext) HDMI audio (with patched AppleHDA + AppleIntelSNBGraphicsFB kexts) built-in Gigabit Ethernet (with AppleIntelE1000e kext v3.1.0) bluetooth OOB (on/off supported with BroadcomBluetoothHostControllerUSBTransport patch injected to FakeSMC) native SpeedStep at CPU multipliers x8/10/12/14/16/21/22/25 (with patched AppleIntelCPUPowerManagement kext, generated SSDT, tuned Kozlek's FakeSMC (SMC keys=1.69f4 (or 1.68f98)/SMC compatible=smc-huronriver) and MBP8,1 SMBios profile) Turbo boost to x32 3.2GHz at Turbo multipliers x26/27/28/29/30/31/32 system sleeps Ok through lid closure, power button, Fn-F1, Apple menu->Sleep and energy savings settings with hibernation mode set to 0 (sleep to RAM) and /var/vm/sleepimage file deleted. Wakes Ok through lid opening and power button wireless with any compatible card battery management and monitoring (with ACPIBatteryManager kext v1.60.5) SD card reader (with DSDT patch for compatibility with Apple's default device 14e4:16bc) integrated webcam OOB keyboard backlight control OOB (for backlit models) left combo eSATA/USB2.0 + right USB2.0 ports OOB ExpressCard slot OOB Not Working: N/A Not tested: SmartCard reader 1) 10.12 USB installer creation Double click on InstallESD.dmg found in Install macOS Sierra.app/Contents/SharedSupport to mount the dmg image Then mount BaseSystem.dmg (hidden file) open /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg Use Disk Utility to restore the contents of BaseSystem.dmg on a USB key (or HDD partition) formatted Mac OS extended (journaled). Remove link for Packages in folder System/Installation of your USB key rm /Volumes/OS\ X\ Base\ System\ 1/System/Installation/Packages Copy folder Packages located in InstallESD.dmg to folder System/Installation of your USB key cp -R /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System\ 1/System/Installation Copy the 2 hidden files (BaseSystem.dmg & Basesystem.chunklist) of InstallESD.dmg to the root of your USB key cp /Volumes/OS\ X\ Install\ ESD/BaseSystem.* /Volumes/OS\ X\ Base\ System\ 1 Install Enoch r2839 (latest at time of writing) with default settings on the USB installer Enoch-rev.2839.pkg.zip Copy the above Enoch r2839 installer package to the root of the USB installer Copy the following (unzipped/extracted) E6220 bootpack to the root of the USB installer E6220_i5-2520M_HD3000_Sie-Pack.zip Create a folder called Kernels under /System/Library (normally, it won't exist at that stage) Copy the appropriate Sierra vanilla kernel to /System/Library/Kernels. Copies of the kernels are available here. 2) 10.12 installation Boot the 10.12 USB installer (it may take a little time to kick in) with -f -v boot flags At macOS installer main screen, open up Disk Utility in Utilities menu If applicable, partition your target disk in GPT/GUID scheme Create your target 10.12 partition and format it as OS X Extended (Journaled) Close Disk Utility and proceed with OS X 10.12 installation as usual 3) Post-installation fine-tuning Reboot the 10.12 USB installer (it may take a little time to kick in) At macOS installer main screen, open up Terminal in Utilities menu Verify CoreStorage installation disk mode: diskutil list If CoreStorage activated for Fusion drive, revert to legacy mode: diskutil corestorage revert <device> (for example: /dev/disk1) Identify your freshly made 10.12 partition name: df Copy the Extra folder from the USB installer to your identified 10.12 disk partition: cp -R /Extra /Volumes/<your fresly made 10.12 partition name> (for example: cp -R /Extra /Volumes/OSX_disk) Reboot the 10.12 USB installer, press a key at delay bar (or F8) to interrupt boor process and select your freshly made 10.12 disk partition. You'll then be booting Sierra for the 1st time Complete the 1st boot installation finalisation Once at the 10.12 desktop, run the Enoch r2839 package from your USB installer to install Enoch on your HDD; it should be installed on the 1st partition of the disk Eject the 10.12 USB installer and put it aside Disable hibernation (can be done later, but should be done): open up Terminal and type the following commands: sudo pmset hibernatemode 0 sudo pmset hibernatefile /dev/null sudo rm -f /var/vm/sleepimage Copy the appropriate Sierra patched AICPUPM kext to /System/Library/Extensions. Copies of the kext are available here copy all kexts from /Extra/Extensions to /Library/Extensions (ignore and acknowledge the permissions-related error messages) copy patched AppleHDA from /Extra/Extensions/Copy_to_SLE to /System/Library/Extensions repair kexts permissions and rebuild cache (if you end up with "Error 77..." message, repeat the touch + kextcache commands): sudo chmod -Rf 755 /S*/L*/E* sudo chown -Rf 0:0 /S*/L*/E* sudo chmod -Rf 755 /L*/E* sudo chown -Rf 0:0 /L*/E* sudo touch -f /S*/L*/E* sudo touch -f /L*/E* sudo kextcache -Boot -U / Edit /Extra/kernel.plist and set KernelBooter_kexts parameter to No: <key>KernelBooter_kexts</key> <string>No</string> If your E6220 is fitted with a different CPU than the i5-2520M, download Pike R Alpha's SSDT generator tool and generate your own CPU-specific SSDT. Copy the resulting SSDT.aml file to /Extra folder (it's normally prompted by the tool) Reboot your finalised Sierra installation Please note that: Loading injected kexts from /E/E with boot option KernelBooter_kexts=Yes is slower than loading cached kexts placed in /S/L/E or /L/E. After any kexts modification, whether to /S/L/E or to /L/E, repair permissions and rebuild cache as detailed above. At each Sierra version update: type option KernelBooter_kexts=Yes at 1st reboot to boot with NullCPUPM from /E/E or you'll encounter CPU PM-related KP once new Sierra version installation has completed, replace vanilla AICPUPM in /S/L/E by the corresponding patched version, repair kexts permissions and rebuild cache In Sierra, the AppleHDA binary patch for codec IDT 92HD90 consists of: replace 8419D411 by 00000000 (2 x instances) replace 8A19D411 by 00000000 (2 x instances) replace 8B19D411 by E7761D11 (2 x instances) Other E6220 laptops fitted with a different CPU will require a different (and suitable) SSDT table than provided in the above pack (can be looked up on the web or created with Pike R Alpha's SSDT generator tool). In such cases and in order to avoid CPU power management-related kernel panics (KP), NullCPUPowerManagement kext (available in folder RemovedExtensions of bootpack) is required until the CPU-specific SSDT is generated. The kext just needs to be added to /Library/Extensions followed by permissions repair/cache rebuild. 1 Link to comment Share on other sites More sharing options...
Administrators Hervé Posted November 10, 2017 Author Administrators Share Posted November 10, 2017 Further to additional tests with forum member MikeGiff, the following SNB framebuffer patch supports direct DP output (tested out of docking station to DP screen): 03 04 00 00 00 04 00 00 06 00 00 00 The tests were validated with combinations of dual-screens setups: built-in LCD + DP built-in LCD + DVI DVI + DP 01 02 04 00 10 07 00 00 10 07 00 00 // vanilla: nb of connectors -> "04" 05 03 00 00 02 00 00 00 30 00 00 00 // vanilla: laptop's own LCD display 02 05 00 00 00 08 00 00 05 00 00 00 // patched: HDMI, display port #5 (built-in port) 03 04 00 00 00 04 00 00 06 00 00 00 // patched: DP, display port #6 (docking-station port) 04 06 00 00 00 04 00 00 07 00 00 00 // patched: DVI, display port #7 (docking-station port) Link to comment Share on other sites More sharing options...
Administrators Hervé Posted August 12, 2019 Author Administrators Share Posted August 12, 2019 Last update: 16 May 2021 Target macOS release: High Sierra 10.13.x This is a Clover-based installation using the well-known/well-documented vanilla manual method detailed below: VGA: HDMI: Working: full QE/CI with HD3000 graphics OOB HDMI output OOB DVI + DP output OOB through port replicator E-Port K07A002 VGA output (with AppleIntelSNBGraphicsFB kext patch) full audio, including jack microphone input and headset output (with AppleALC kext and layout-id 12) HDMI audio (with AppleIntelSNBGraphicsFB kext patch) built-in Gigabit Ethernet (with AppleIntelE1000e or IntelMausiEthernet kext) DW375 bluetooth OOB (on/off supported with Broadcom Controller Transport patch injected to FakeSMC kext) native SpeedStep at CPU multipliers x8/10/12/14/16/21/22/25 (with AICPUPM patch + generated CPUPM SSDT) Turbo boost to x32 3.2GHz at Turbo multipliers x26/27/28/29/30/31/32 system sleeps Ok through lid closure, power button, Fn-F1, Apple menu->Sleep and energy savings settings with hibernation mode set to 0 (sleep to RAM) and /var/vm/sleepimage file deleted. Wakes Ok through lid opening and power button wireless & bluetooth with any compatible card battery management and monitoring (with ACPIBatteryManager kext) SD card reader (with DSDT patch for compatibility with Apple's default device 14e4:16bc) integrated webcam OOB keyboard backlight control OOB (for backlit models) left combo eSATA/USB2.0 + right USB2.0 ports OOB ExpressCard slot OOB Not Working: N/A Not tested: SmartCard reader GeekBench v2.4.3 (32bit) gives a good 6500+ rating: 1) 10.13 USB installer creation Using a USB key of 8GB minimum, create a High Sierra USB installer through the following Terminal command: sudo <path>/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/<USB key> where: <path> = location of High Sierra installation package (eg: /Applications if freshly downloaded) <USB key> = name of formatted USB volume (eg: USB_8GB) The process will take several minutes. Once completed: install Clover bootloader on the USB installer with the following customised settings: Install Clover in the ESP Boot Sectors -> Install boot0af in MBR Clover for BIOS (legacy) booting -> Clover EFI 64-bits SATA BIOS Drivers, 64 bit -> FSInject-64 / ApfsDriverLoader-64 / AppleImageLoader-64 BIOS Drivers, 64 bit -> GrubEXFAT-64 / GrubNTFS-64 you may use version r4689 attached below or any subsequent version available at Dids' Github repo: Clover_v2.4k_r4689.pkg.zip once Clover is installed, launch Clover Configurator app and mount the freshly created EFI partition of the USB installer Clover Configurator.zip open this EFI partition and transfer the files & folders from the E6220 High Sierra Clover pack below to the EFI/Clover folder Clover_pack_E6220_HiSie.zip Clover_pack_E6220_HiSie_#2.zip 2) 10.13 installation boot the High Sierra USB installer at the Clover main menu, select the "Install macOS High Sierra" partition (but don't press [ENTER]) press [SPACE], select -v verbose option in the menu, then choose to boot with the selected options proceed with installation, creating & formatting the target High Sierra installation through Disk Utility as/if required on 1st reboot, boot off the USB installer and select the freshly created "macOS install from <target High Sierra partition>" repeat this until this partition is no longer offered and only the target High Sierra partition is left to boot 3) Post-Installation tuning Once the target High Sierra partition has booted, complete the 1st boot configuration finalisation Once at the desktop, install Clover bootloader on the High Sierra partition/disk: if operating in BIOS legacy mode, use the customised settings listed above if operating in BIOS UEFI mode, install Clover with UEFI settings instead Once Clover is installed, launch Clover Configurator app and mount the freshly created EFI partition of the High Sierra partition/disk Open this EFI partition and transfer the files & folders from the above E6220 High Sierra Clover pack to the EFI/Clover folder You may then reboot and verify that High Sierra boots off your disk through Clover After that reboot, finalise post-installation tuning actions such as disabling hibernation, allowing all apps download from anywhere, changing all serial numbers, etc. Please note that: Clover config of the pack contains enabled HDMI-audio + VGA output + DVI output patches Clover config of the pack contains disabled 384MB-to-1GB and 512MB-to-2GB VRAM patches. To be enabled if desired. Must be accompanied by the patch of Info.plist of AppleIntelHD3000 kext to add the necessary key: <key>VRAMSize</key> <integer>xxxx</integer> where xxxx=512|1024|1536|2048 Caching add-on kexts from /L/E is faster than injecting them from E/C/k/O After any kexts modification, whether to /S/L/E or to /L/E, repair permissions and rebuild cache Other E6220 laptops fitted with a different CPU will require a different (and suitable) SSDT table than provided in the above pack (can be looked up on the web or created with Pike R Alpha's SSDT generator tool). In such cases and in order to avoid CPU power management-related kernel panics (KP), NullCPUPowerManagement kext is recommended to be used temporarily until the CPU-specific SSDT is generated. The kext just needs to be added to /Library/Extensions followed by permissions repair/cache rebuild. - - - - - - - - - - Edit #1: 17 Aug 2019 Revised bootpack #2: repatched DSDT (from freshly extracted A14 BIOS) and added support for Fn-UP/Fn-DOWN brightness keys Hackintool-generated USBPorts kext to replace USBInjectall Edit #2: 16 May 2021 Added a note about installing Clover on target High Sierra partition according to BIOS mode (legacy vs. UEFI) Link to comment Share on other sites More sharing options...
Recommended Posts