Contribute
Register

Eject Button in ML

Status
Not open for further replies.
Before I answer your question, I want to let everyone know how pleased I am that this simple little fix has helped so many people here. I never expected it to work so well for so many!!! Thanks to all who support and use my solution!! Maybe it will be added to MultiBeast someday........ ;)
Also, keep in mind that I've just simply added more info to the kexts already present in MultiBeast, and that I am by no means responsible nor take the credit for making the actual kexts myself.

Now to answer your question: There is just no need to use both at the same time. Both kexts do the same thing for the DVD drive fix, it's just that AHCI_3rdParty_SATA.kext has information for many 3rd party SATA controllers contained in the plist so you will see your 3rd party SATA controller listed in System Info properly instead of just "Unknown AHCI Standard Controller". It seems that you must have a 3rd party SATA controller on your motherboard, so if you want it to show up properly in your System Information then you need to use my AHCI_3rdParty_SATA.kext instead.

Hope this helps,

Dil83

thank you !!!!:)
!!! ITS REALY WORKS !!! like charm!!!
BIL83, YOU ARE THE MAN!!!
And stop saying about credits .,ITS ALL FOR YOU ,MAN your modification made it useable so the credits all for you
great thanks for your sharing.
 
Dil83 your version of the AHCI_3rdParty_SATA.kext is awesome. Is there a way we can make this version the one installed with Multibeast? I think most people would appreciate having their DVD drives recognized as internal and having DVD player working properly by default.
 
Dil83 your version of the AHCI_3rdParty_SATA.kext is awesome. Is there a way we can make this version the one installed with Multibeast? I think most people would appreciate having their DVD drives recognized as internal and having DVD player working properly by default.

It's completely up to Tony and Macman whether they choose to add it to MultiBeast. I just used the same logic that is used in IOAHCIBlockStorageInjector.kext/AHCI_3rdParty_SATA.kext to make OS X ML think that the HDD's are internal, and applied it to the driver that manages the DVD drives (IOAHCISerialATAPI.kext). Really a completely separate injector kext could be used specifically for the DVD drive fix, but I just chose to add it to the kexts that most people are already using. I may just upload a specific DVD Drive/DVD Player fix kext in another thread.

Dil83

EDIT: I have now uploaded a new kext specifically for the DVD Drive/DVD Player/Eject Button fix here: http://www.tonymacx86.com/mountain-...eject-button-dvd-player-fixed.html#post511155

Enjoy
 
I suspect this issue has crept into Lion as well (10.7.5). I've been experiencing these exact same issues for the past week shortly after updating iTunes. I tried running Multibeast for the 3rd party SATA kexts, thinking that would fix any problems with my SATA ports but after ~10 mins (probably when the HDD spins down to save power) Disk Utility becomes unresponsive, all my drives become listed as external, and my DVD drive disappears from system report. At times Remote Disc would appear in Finder. I was about to to a Time Machine Restore when I wisely chose to consult the brain trust. I urge everyone to recommend this post (top right corner).

—Many thanks to Dil83, good work :clap:
 
All my SATA 3 ports (both Intel Z68 and Marvell 88SE917) are detected as External now, even if AHCI_3rdParty_SATA.kext is installed and the system cache is rewritten by Kext utility. I tried the AHCI_3rdParty_SATA.kext from Multibeast 5.2.1, no good.

I also tried the kext supplied by Dil83 in this thread, hoping to have my LG BH10LS30 detected as an internal drive and have the eject key working. It didn't work either...

Only my SATA2 ports are detected as internal drives.
 
Ok, I have slightly changed each of the kexts in order to try to make them have priority while loading. You can give either of these new kexts a try to see if that works for you. I didn't see a problem with your DSDT, but if it still doesn't work, we can try putting your SATA device-id directly into the DSDT to see if that helps.

Dil83

Awesome Dil.....to the 83rd..... :clap:
 
I personally didn't want to replace any kexts in S/L/E with older ones, nor did I want to use the ESB2 device id in my DSDT since that device id is for ICH6 and I have ICH10 on an X58 board. I use an injector kext to fix the Orange Icons, and I thought I'd look into making sure that the DVD drives were being injected as "Internal" the same way that the HDD's were. Turns out that they aren't. I personally use AHCI_3rdParty_SATA.kext from MultiBeast, but you can also use IOAHCIBlockStorageInjector.kext. I noticed that the Protocol Characteristics were only being injected into IOAHCIBlockStorage.kext located in the PlugIns folder within IOAHCIFamily.kext in S/L/E. There are 2 PlugIns inside IOAHCIFamily.kext: IOAHCIBlockStorage.kext, and IOAHCISerialATAPI.kext. In IORegistryExplorer I can see that my DVD drives use the IOAHCISerialATAPI.kext PlugIn. So inside AHCI_3rdParty_SATA.kext, I just added in the information to inject the Protocol Characteristics into IOAHCISerialATAPI.kext also.

Here is what the first 2 keys in AHCI_3rdParty_SATA.kext look like after:

Code:
<key>AppleAHCIDiskDriver</key>
<dict>
	<key>CFBundleIdentifier</key>
	<string>com.apple.iokit.IOAHCIBlockStorage</string>
	<key>IOClass</key>
	<string>AppleAHCIDiskDriver</string>
	<key>IOProbeScore</key>
	<integer>25000</integer>
        <key>IOProviderClass</key>
        <string>IOAHCIDevice</string>
	<key>Protocol Characteristics</key>
	<dict>
		<key>Physical Interconnect</key>
		<string>SATA</string>
		<key>Physical Interconnect Location</key>
		<string>Internal</string>
	</dict>
</dict>
<key>IOAHCISerialATAPI</key>
<dict>
	<key>ATAPI</key>
	<true/>
        <key>CFBundleIdentifier</key>
	<string>com.apple.iokit.IOAHCISerialATAPI</string>
	<key>IOClass</key>
	<string>IOAHCISerialATAPI</string>
	<key>IOProbeScore</key>
	<integer>25000</integer>
        <key>IOProviderClass</key>
	<string>IOAHCIDevice</string>
	<key>Protocol Characteristics</key>
	<dict>
		<key>Physical Interconnect</key>
		<string>SATA</string>
		<key>Physical Interconnect Location</key>
		<string>Internal</string>
	</dict>
</dict>

I just added the IOAHCISerialATAPI key and dict after the AppleAHCIDiskDriver key and dict. You can add the exact same information to IOAHCIBlockStorageInjector.kext if that's the kext you use, but you should replace <string>Internal/External</string> with <string>Internal</string>.

If you use "UseKernelCache=No", you can use this kext in the /Extra/Extensions folder and it works fine. If you use "UseKernelCache=Yes", then you MUST install the kext in /System/Library/Extensions. No need to do any DSDT editing, or replace any 10.8 kexts with 10.7 kexts. (If you're not sure where to install, then install in /System/Library/Extensions. The kext will always be loaded from there.)

Eject button and DVD Player work perfectly now! Hopefully this will work for others.

Dil83

I attached both kexts already edited for those who want to try it out. Use whichever you prefer, not both. These kexts are now the same as the ones I uploaded on page 3. Keep in mind that you only need to use ONE of the kexts below. If you have 3rd party SATA controllers on your motherboard or as an add in card, use AHCI_3rdParty_SATA.kext. If you only have Intel SATA onboard, then just use IOAHCIBlockStorageInjector.kext

Your post was a long while ago now but I just wanted to say a big thank-you! for this remedy, which I only discovered today.

I was pulling my hair out and didn't want to go down the (in my view) extreme route of fiddling with a DSDT.

Having an Intel chipset I chose the appropriate kext you kindly offered and installed it. Keyboard eject problem resolved.

What is great about this solution is that all the kext contains in an info.plist and the contents are easily viewable with TextEdit.

:thumbup:
 
Code:
<key>AppleAHCIDiskDriver</key>
<dict>
	<key>CFBundleIdentifier</key>
	<string>com.apple.iokit.IOAHCIBlockStorage</string>
	<key>IOClass</key>
	<string>AppleAHCIDiskDriver</string>
	<key>IOProbeScore</key>
	<integer>25000</integer>
        <key>IOProviderClass</key>
        <string>IOAHCIDevice</string>
	<key>Protocol Characteristics</key>
	<dict>
		<key>Physical Interconnect</key>
		<string>SATA</string>
		<key>Physical Interconnect Location</key>
		<string>Internal</string>
	</dict>
</dict>
<key>IOAHCISerialATAPI</key>
<dict>
	<key>ATAPI</key>
	<true/>
        <key>CFBundleIdentifier</key>
	<string>com.apple.iokit.IOAHCISerialATAPI</string>
	<key>IOClass</key>
	<string>IOAHCISerialATAPI</string>
	<key>IOProbeScore</key>
	<integer>25000</integer>
        <key>IOProviderClass</key>
	<string>IOAHCIDevice</string>
	<key>Protocol Characteristics</key>
	<dict>
		<key>Physical Interconnect</key>
		<string>SATA</string>
		<key>Physical Interconnect Location</key>
		<string>Internal</string>
	</dict>
</dict>

Thanks Dil83,

Your method worked perfectly for me using AHCI_3rdParty_SATA.kext.....GA-H55M-D2H....i5 760
 
Hey all!

Complete and utter Hackintosh noob here but I just bought my first one today.

Anyone know if this fix will work in El Capitan
 
Status
Not open for further replies.
Back
Top