Contribute
Register

How to show Z77 correctly in system profiler

Status
Not open for further replies.
Oh, I see.
So this is just making another kext to inject correct device id. I thought this was to add a string to AppleAHCIport.kext.

So having this kext installed in S/L/E will have the correct Z77 chipset show even after future update which replaces AppleAHCIport.kext.

Right?
 
The other option, if you are using a DSDT is to simply do a little DSDT edit.




Code:
Device (SAT0)
        {
            Name (_ADR, 0x001F0002)
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x02)
                    {
                        "device-id", 
                        Buffer (0x04)
                        {
                            0x03, 0x1E, 0x00, 0x00
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }


This simply makes OSX think your AHCI controller has the device ID that Mac use for their own Series 7 boards. This means that there is no kext to edit whenever Apple do a OS update. Be aware too that often wherever there is a DSDT edit, usually you can also do the same thing with an injection into the boot plist.
 
I made a DSDT for my system. So just find (SAT0) and add that line?

If you want to edit DSDT, shoudn't (SAT1) also have the same line? or does it matter?
 
Hi,
Look for the device at this address: "Name (_ADR, 0x001F0002)" (search in DSDTSe for instance) and then add the method
Code:
Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x02)
                    {
                        "device-id", 
                        Buffer (0x04)
                        {
                            0x03, 0x1E, 0x00, 0x00
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
beneath that line....
 
Hi,
Look for the device at this address: "Name (_ADR, 0x001F0002)" (search in DSDTSe for instance) and then add the method
beneath that line....

Thank you for very useful info.

If I just add this to my DSDT, do I have to remove the string from the kext or remove the kext you provided?
 
The DSDT mod. does not need any kext mod. and will of course continue to work without there being problems when Apple does a software update.
However, in practice it makes no difference to you to retain your kext mod for the moment and to use the DSDT mod too. This is because the operating system will think it is a genuine apple provided device and will load the appropriate kext using the Apple Device ID rather than your own native device ID - so there should be no conflict. In other words when you look in ioreg you should see the fact that the kext has loaded based upon the Apple device ID and not based upon the one that has been added to the kext.
 
I don't think it's a good idea to modify a standard apple kext just to do a device injection. Much cleaner just to create a simple injector kext. That way, even if apple updates AppleAHCIPort.kext, the devices will still show up correctly.

Here's how to create a device injector:
  1. Create a folder on your desktop called "AHCISeries7Injector"
  2. In AHCISeries7Injector folder, create a subfolder called "Contents"
  3. Create a new file with the text specified below and save it as "Info.plist" inside the Contents folder
  4. Rename the "AHCISeries7Injector" folder to "AHCISeries7Injector.kext"
  5. The folder icon will change to a kernel extension icon
  6. Use Kext Wizard to install the AHCISeries7Injector.kext
  7. Reboot

If you previously modified your original AppleAHCIPort.kext, you'll want to revert back to the original (you made a backup, didn't you?)

Contents of Info.plist:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleIdentifier</key>
    <string>com.corknation.driver.AHCISeries7Injector</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>AHCISeries7Injector Fix</string>
    <key>CFBundlePackageType</key>
    <string>KEXT</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1.0.0</string>
    <key>IOKitPersonalities</key>
    <dict>
        <key>Intel7SeriesAHCI</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AppleAHCIPort</string>
            <key>Chipset Name</key>
            <string>7 Series Chipset</string>
            <key>IOClass</key>
            <string>AppleIntelPchSeriesAHCI</string>
            <key>IONameMatch</key>
            <array>
                <string>pci8086,1e02</string>
            </array>
            <key>IOProbeScore</key>
            <integer>2000</integer>
            <key>IOProviderClass</key>
            <string>IOPCIDevice</string>
            <key>Vendor Name</key>
            <string>Intel</string>
        </dict>
    </dict>
    <key>OSBundleRequired</key>
    <string>Local-Root</string>
</dict>
</plist>

For those people that would rather just download a file instead of learning how these things actually work, here's a LINK


Thanks for this, Just tried it on a Z77X UD5H and it works great, I even did it all myself, so I have learn't something new as well.
 
Thanks for the tip. I didn't know making a kext could be so easy. Now my AHCI controller isn't "unknown."
 
Status
Not open for further replies.
Back
Top