Jump to content

Dell Latitude E6440 with i5-4300M, HD4600 and 1600x900 LCD - Mavericks/Yosemite/El Capitan/Sierra


Hervé

Recommended Posts

  • Administrators

The left side USB port is not functional OOB under El Capitan. It's the well-known USB ports problem... I have therefore revised the patched DSDT for El Capitan, with USB2.0 devices renamed from EHCx to EH0x in order to use the attached USB2.0 injector kext.

 

The original DSDT code shows 2 x USB2.0 controllers:

  1. EHC1 @1D: 8 x ports, numbered PR11 to PR18 under hub PR01
  2. EHC2 @1A: 6 x ports, numbered PR11 to PR16 under hub PR01

and the physical USB ports appear arranged in the following manner (as visible in IOReg when a device is plugged in the ports):

  • EHC1 controller, port #1 (PR11) @1D11: rear port
  • EHC1 controller, port #2 (PR12) @1D12: right-rear port
  • EHC1 controller, port #3 (PR13) @1D13: right-front port
  • EHC2 controller, port #2 (PR12) @1A12: left port

Some hardware accessories such as integrated webcam or BT module (part of combo mini-PCIe cards) are also visible @1A15, @1D15 or @1D18.

E6440_native_USB_tree_Mav10.9.jpg

 

In order to regain full USB functionality, the attached USB2.0 injector (based on Info plist of vanilla AppleUSBEHCIPCI PlugIn of /S/L/E/IOUSBHostFamily kext) reflects the above arrangements with the following settings:

  1. 1 x hub PR01 attached to MacBookPro11,1-EH01 USB controller
  2. 1 x hub PR01 attached to MacBookPro11,1-EH02 USB controller

USB2.0_injector_config.jpg E6440_EC10.11_IOReg_USB2.0_tree.jpg

 

All 4 x external ports are then fully functional as USB2.0 under EC 10.11.

 

[E6440_DSDT_ElCap10.11_EHCx-patched.zip] [E6440_ElCap10.11_USB2.0_Injector.kext.zip]

 

Edit: See below for a further USB ports update

Link to comment
Share on other sites

  • Administrators

I had missed an important DSDT patch in Method _INI that is necessary to activate USB3.0 capability...

* Before:

       Method (_INI, 0, NotSerialized)        {
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
[...]
                If (_OSI ("Windows 2006"))
                {
                    Store (0x07D6, OSYS)
                }
[...]

* After:

       Method (_INI, 0, NotSerialized)        {
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
[...]
                If (LOr (_OSI ("Darwin"), _OSI ("Windows 2006")))   /* Simulates Win Vista mode in OS X */
                {
                    Store (0x07D6, OSYS)
                }
[...]

`

USB3.0 XHCI controller cannot be activated in I/O without this patch and will not register in IOReg @14!

 

The patch applies to all OS X versions.

 

E6440_XHCI_lspci.jpg

E6440_XHCI_IOReg.jpg E6440_XHCI_SysProfiler.jpg

 

All ports working at USB3.0/USB2.0 speed afterwards with USBInjector. No generic XHCI kext required. The ports work OOB, so to speak, with the right injector.

 

Link to comment
Share on other sites

  • Administrators

Finally got round to implement the HPET fix in DSDT to avoid loss of USB functionality rather than systematically remove the HPET kext. It's a simple matter of removing the IRQs as detailed by Slice (and others) for instance:

 

Before:

               Device (HPET)
               {
[...]
                    Name (BUF0, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y0F)
                    })
[...]

After:

               Device (HPET)
               {
[...]
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags ()           // Excludes IRQs 0, 8 and 11 to prevent loss of USB ports
                            {0,8,11}
                        Memory32Fixed (ReadWrite,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y0F)
                    })
[...]
  • Like 1
Link to comment
Share on other sites

  • Administrators

Last update: -
 
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:
 
E6440_i5-4300M_HD4600_10.11.6.png
E6440_EC.png E6440_SpeedStep.png
E6440_HDMI-video.png E6440_HDMI-audio.png
E6440_SysProfiler_iGPU.png
E6440_SysProfiler_USB.png
 
Working:

  • full QE/CI with HD4600 graphics (with DSDT patch for Azul FB #12)
  • HDMI output with patched AppleIntelFramebufferAzul kext
  • DVI output through port replicator E-Port K07A002 with patched AppleIntelFramebufferAzul kext
  • full audio, including jack microphone input and headset output (with patched AppleHDA kext)
  • HDMI audio (with patched AppleIntelFrameBufferAzul kext)
  • built-in Gigabit Ethernet (with AppleIntelE1000e kext)
  • native speedstep (with tuned Kozlek's FakeSMC (SMC keys=2.13f9/SMC compatible=smc-huronriver) and MBA11,1 SMBIOS profile)
  • Turbo boost to x33 3.3GHz (getting CPU multipliers x8/12/26 + Turbo multipliers x27/28/29/30/31/32/33)
  • sleep & wake (with DSDT patch for EHCx/XHC/HDEF/GLAN _PRW; sleeps Ok on Energy Savings settings/Fn-F1/Apple menu option/power button/lid closure; wakes Ok through lid opening/power button
  • wireless with any compatible card
  • battery management and monitoring (with ACPIBatteryManager kext)
  • SD card reader (with DSDT patch for compatibility with Apple's default reader)
  • integrated webcam OOB
  • keyboard backlight control OOB (for backlit models)
  • all USB3.0 ports (with DSDT EHCx/XHC/Darwin patch + FakePCIID_XHCIMux & USB injector kexts)
  • Express card slot OOB

Not Working:

  • VGA output unsupported

Not tested:

  • SmartCard reader
  • fingerprint scanner

 

 

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 r2848 (latest at time of writing) on the USB installer with all default settings
  • Copy the above Enoch r2848 installer package to the root of the USB installer
  • Copy the following (unzipped/extracted) E6440 bootpack to the root of the USB installer
  • Create a folder called Kernels under /System/Library (normally, it won't exist at that stage)
  • Copy the appropriate El Capitan 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 (i.e. presence of a logical disk), 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 r2848 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
  • :excl: 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 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 (ignore and acknowledge the permissions-related error messages)
  • 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 (this will suspend kext injection from /E/E and speedup boot time)
<key>KernelBooter_kexts</key>
<string>No</string>
  • If your E6440 is fitted with a different CPU than the i5-4300M, 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 El Capitan 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. But it's a useful recovery method if add-on kexts placed in /L/E or kernel cache get screwed! As such, keep /E/E untouched.
  • After any kexts modification, whether to /S/L/E or to /L/E, repair permissions and rebuild cache as detailed above.

 

:!:     :!:     :!:  Other E6440 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).

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

  • Administrators

Last update: -
 

Target macOS release:

  • Sierra 10.12.x

 

This is an Enoch-based installation using the well-known/well-documented vanilla manual method detailed below:

 

E6440_i5-4300M_HD4600_Sierra.png

E6440_10.12.3.png E6440_SpeedStep.png

 

Working:

  • full QE/CI with HD4600 graphics (with DSDT patch for Azul FB #12)
  • HDMI output (with patched AppleIntelFrameBufferAzul kext)
  • full audio, including jack microphone input and headset output (with patched AppleHDA kext)
  • HDMI audio (with patched AppleIntelFrameBufferAzul kext)
  • built-in Gigabit Ethernet (with AppleIntelE1000e kext)
  • native speedstep (with tuned Kozlek's FakeSMC (SMC keys=2.13f9/SMC compatible=smc-huronriver) and MBP11,1 SMBIOS profile)
  • Turbo boost to x33 3.3GHz (getting CPU multipliers x8/17/26 + Turbo multipliers x27/28/29/30/31/32/33)
  • sleep & wake (with DSDT patch for EHCx/XHC/HDEF/GLAN _PRW; sleeps Ok on Energy Savings settings/Apple menu option/power button/lid closure; wakes Ok through lid opening/power button
  • wireless with any compatible card
  • battery management and monitoring (with ACPIBatteryManager kext v1.70.2)
  • SD card reader (with DSDT patch for compatibility with Apple's default reader)
  • integrated webcam OOB
  • keyboard backlight control OOB (for backlit models)
  • All USB3.0 ports (with DSDT EHCx/XHC/Darwin patch + FakePCIID_XHCIMux & USB injector kexts)
  • Express card slot OOB

 

Not Working:

  • VGA output unsupported
  • DVI output no longer available off port replicator through previous Azul FB patches

 

Not tested:

  • SmartCard reader
  • fingerprint scanner

 

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 r2848 (latest at time of writing ) on the USB installer with all default settings
  • Copy the above Enoch r2848 installer package to the root of the USB installer
  • Copy the following (unzipped/extracted) E6440 bootpack to the root of the USB installer
  • Create a folder called Kernels under /System/Library (normally, it won't exist at that stage)
  • Copy the appropriate Sierra 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 macOS 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 (i.e. presence of a logical disk), 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 r2848 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 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 (ignore and acknowledge the permissions-related error messages)
  • 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>
  • If your E6440 is fitted with a different CPU than the i5-5300M, 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.
  • In Sierra, the AppleHDA binary patch for codec ALC292 consists of:
    • replace 8419D411 by 9202EC10 (2 x instances)
    • replace 8508EC10 by 00000000 (2 x instances)
    • replace 8408EC10 by 00000000 (2 x instances)

 

⚠️ ⚠️ ⚠️ Other E6440 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).

  • Like 5
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...