Jump to content
[ IMPORTANT ] Premium and Donators users ×
Olarila Professional Hackintosh Services ×

LPC patch for 10.8.5-10.9?


XLR

Recommended Posts

Just replace "device-id" by "compatible".


Example:


instead of

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "device-id", \n
           Buffer (0x04)\n
           {\n
               0xb9, 0x27, 0x00, 0x00\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

use

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "compatible", \n
           Buffer (0x0D)\n
           {\n
               "pci8086,27b9"\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Link to comment
Share on other sites

Just replace "device-id" by "compatible".

 

Good advice :)


An old Core 2 ICH9 Notebook LPC patch for DSDT does not work anymore since 10.8.5 and Maverick.

 

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "device-id", \n
           Buffer (0x04)\n
           {\n
               0x16, 0x29, 0x00, 0x00\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

 


I used suggestion by RehabMan on AppleLPC.kext not loading after 10.8.5 update causing wrong temp readings


For novice users, I explain a bit why and what I did. I searched for "device-id" is and added appropriate changes. I added before "device-id" line additional line "name", "pci8086,????", where ???? was appropriate device id. For example 0x16, 0x29, 0x00, 0x00 gives 2916, so the name line is "name", "pci8086,2916". Also I removed package size from line Package (0x02) that compiler can add these values by-self.


Change is needed as since 10.8.5 IOkit matches PCI devices for drivers using IONameMatch.

 

                Method (_DSM, 4, NotSerialized)
               {
                   Store (Package ()
                       {
                           "name", "pci8086,2916",
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x16, 0x29, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

 

Compiled the DSDT and replaced. Removed kexts caches:

 

sudo rm -rf /System/Library/Caches/com.apple.kext.caches

 

And rebooted. Voila :)

 

kextstat | grep LPC

   95    0 0xffffff7f82341000 0x3000     0x3000     com.apple.driver.AppleLPC (1.7.0) <75 11 5 4 3>

Link to comment
Share on other sites

I guess if you inject both properties it should work on all versions

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x04)\n
       {\n
           "device-id", \n
           Buffer (0x04)\n
           {\n
               0xb9, 0x27, 0x00, 0x00\n
           }, \n
           "compatible", \n
           Buffer (0x0D)\n
           {\n
               "pci8086,27b9"\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Link to comment
Share on other sites

Been messing with one of my systems today trying to get AppleLPC.kext to load in Mavericks (DELL M6400) , and couldn't get it load using any of these patches with my systems LPC device ID (2917,8086) but eventually found that by patching my dsdt using an ID that actually exists in the IONameMatch of the 10.9 AppleLPC.kext itself, then it would load (Currently I am using 2916, 8086).


However, I don't like the fact that it didn't actually point to the correct ID of the LPC device in my system, so I am not a fan of this method.


UPDATE: I've made use of an injector kext which now properly loads the new AppleLPC.kext using my correct device ID, and (after applying EHCI and USB fixes to my DSDT) have verified that sleep is working perfectly! :)


Here is the patch that I used in my DSDT with the correct device ID for my LPC device (note that in my system, the LPCB device is actually named ISAB - the default naming of the LPC device for Dell/Intel boards?):

 

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x04)\n
       {\n
           "device-id",\n
           Buffer (0x04)\n
           {\n
                0x17, 0x29, 0x86, 0x80\n
           },\n
           "name",\n
           "pci8086,2917"\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

 

Attached is the injector kext that I used, and contains the following device IDs for identifying LPC (you may also add your own device ID to the info.plist within this kext):

 

  <string>pci8086,25a1</string>
			<string>pci8086,2640</string>
			<string>pci8086,2641</string>
			<string>pci8086,2642</string>
			<string>pci8086,27b0</string>
			<string>pci8086,27b8</string>
			<string>pci8086,27bc</string>
			<string>pci8086,27bd</string>
			<string>pci8086,2810</string>
			<string>pci8086,2812</string>
			<string>pci8086,2814</string>
			<string>pci8086,2910</string>
			<string>pci8086,2911</string>
			<string>pci8086,2912</string>
			<string>pci8086,2914</string>
			<string>pci8086,2917</string>
			<string>pci8086,2918</string>
			<string>pci8086,2919</string>
			<string>pci8086,3a10</string>
			<string>pci8086,3a14</string>
			<string>pci8086,3a16</string>
			<string>pci8086,3a1a</string>
			<string>pci8086,3a1e</string>
			<string>pci8086,3b04</string>
			<string>pci8086,3b06</string>
			<string>pci8086,3b08</string>
			<string>pci8086,3b0d</string>

 

Enjoy!

AppleLPCInjector.kext.zip

Link to comment
Share on other sites

You don't need to inject the actual ID of your LPC device in DSDT, it's already that.


The idea of injecting a different (compatible) ID in DSDT is to get AppleLPC loaded without patching it or using an injector kext.


If you use the injector kext you can leave DSDT as it is.

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Link to comment
Share on other sites

thank you so much,my AppleLPC load by this one

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "compatible", \n
           Buffer (0x0D)\n
           {\n
               "pci8086,27b9"\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

INTEL E8400 - DFI DK P45 T2RS PLUS - Ram - 4 GB - ALC885 - INNO3D GTX260 GOLD - ML 10.8.3/ Lion 10.7.5/WIN7 x64/Ubuntu 13.04

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...