Jump to content

Revised LegacyAppleAHCIport.kext & LegacyJMicronATA.kext


thorazine74
 Share

47 posts in this topic

Recommended Posts

An update: I noticed similar reports on startup of dependancy errors, only two lines right before it goes to the BSD part when starting verbose.

 

extension LegacyAppleAHCIPortIntelICHx is not loadable

Can't determine dependancies for LegacyAppleAHCIPortIntelICHx (these lines aren't the exact dialog just from memory)

 

However I have no conflicts with my SATA drives, everything works perfectly and after editing the plist System Profiler is reported as Intel ICH9 AHCI. Hmmmm.....

 

Still have not got a good install of 5.6 going though, neither this kext or others I've tried give me good SATA stability. There seems to be a long wait while accessing info on SATA drives, ATA drives are fine. This occurs in the Finder, often taking a minute or two after boot before manifesting, then long pauses (Application Not Responding info in Dock) and then ultimately a lock up of the system. 5.5 is just great though and I'm wondering if it's even worth the bother to waste any more late nights.

Link to comment
Share on other sites

THX Thorazine,

 

in addition your revisited SATA kexts even brought automatic sleep back to my system.

( it worked always manually, but automatic never since 10.5.4)

EDIT: Shouted to early, run 3 times and then stayed awake.

 

the dependencies are cosmetic, but dont bother ( only if you read to much console logs)

 

@DWP

try to repair permissions,

or revisit your kexts ( maybe you got a double load, legacy in extra/extensions and system/extensions)

 

try to disable disk sleep in energy options

 

or inspect your disks with SMART tool ( maybe they gone lame)

 

or maybe its just a Finder problem ( has been reported for 10.5.6)

some people took old Finder from 10.5.5. ( with better results)

 

even my finder crashes, if i try to go into preferences, but thats bearable.

Link to comment
Share on other sites

Westwaerts,

 

Permissions repaired regularly after any Extensions editing and for fun, no double loading kexts, no disk sleep always selected, SMART reports just fine.

 

I discovered that my ViaATA kext was my culprit for messing up SATA disk reading but nothing else seemed to work to get ATA recognition so I noodled around with the ViaATA kext and removed the SATA strings, reinstalled and everything is working great. No more Finder problems or disk read/write big files on the HD or burning on the optical.

 

Still am having fan problems in 5.6 but it's a stable system, tried trashing the AppleHPET kext and of course removed Appleintelcpupowermanagement. Still noodling....

Link to comment
Share on other sites

Yes I was trying to get the intel look as internal, and the jmicron as external.

 

In the past I didn;t bother about the orange icons, but if you have a internal raid volume that is orange and ejectable , sometimes in finder i accidently eject the whole volume because the eject button is besides the volume icon. So it has to be re-activated.

 

btw what is your solution really fixing? the use of AHCI and IDE together on the jmicron controller? without halts...

Link to comment
Share on other sites

Yes I was trying to get the intel look as internal, and the jmicron as external.

 

In the past I didn;t bother about the orange icons, but if you have a internal raid volume that is orange and ejectable , sometimes in finder i accidently eject the whole volume because the eject button is besides the volume icon. So it has to be re-activated.

 

btw what is your solution really fixing? the use of AHCI and IDE together on the jmicron controller? without halts...

 

I dont know if thats posible, you can set the Protocol Characteristics to Internal/External in the IOAHCIBlockStorageDevice but I dont know how to set only one instance of that as Internal (Intel) and the other as External (JMicron).

And the solution allows using JMicron SATA ports as AHCI and keep the IDE ports working, not sure what halts are you referring to...

Link to comment
Share on other sites

Little Update:

 

You can try this legacy plist-only kext, it should make disks connected to it look as internal, while keeping the original LegacyAppleAHCIPortJMicronJMB36xSATA.kext posted up there will make the disks connected to the JMicron SATA ports as external.

It only changes the icons, physical interconnect location its still external and you will still be able to eject disks with contextual menu.

 

Not sure how it will work, if you find any troubles let me know.

 

AppleAHCIPort_plist_IntelICHx_internal.kext.zip

Link to comment
Share on other sites

  • 3 weeks later...

Thanks for this.

 

I have a P5K-E Wifi-AP mobo that has both ICH9R and JMB363. and 4GB Ram

 

I installed your plist patched JMicronATA.kext.darwinata.v0.6.PlistFix.IDE_mode_only extension and it solved the KP issue. GREAT . . . thanks again.

 

Looking at SATA information in the System Profiler still shows Unknown AHCI Standard Controller...

 

Just wondering if I should install the plist only intel kext (LegacyAppleAHCIPortIntelICHx.kext) next?

Or is there really no point?

 

Regards

Fish

Link to comment
Share on other sites

You can install it if you want to have it properly detected, either that one or the other LegacyAppleAHCIPortJMicronJMB36xSATA.kext if you have the JMIcron SATA ports in AHCI mode.

Its mostly for proper display only, but it should not cause any troubles either.

Link to comment
Share on other sites

You can install it if you want to have it properly detected, either that one or the other LegacyAppleAHCIPortJMicronJMB36xSATA.kext if you have the JMIcron SATA ports in AHCI mode.

Its mostly for proper display only, but it should not cause any troubles either.

 

Ok great - gave it a try and it works as expected

Tested both DVD drives 1 x IDE and 1 x SATA (at the same time) while running Rember for 1 cycle.

No KP !

Awesome

thanks

 

Fish

Link to comment
Share on other sites

  • 4 weeks later...
The image should show the second image from post #01.

 

This tool where can I find it? What is its name?

 

Thanks

IORegistryExplorer; part of XCode which you get from Apple or on your Leopard disk (make sure to use version 3.1.2).

Link to comment
Share on other sites

  • 1 month later...
I have troubles using both kext at the same time, so I revised the plist of both of them.

They should work together now without problems and we should be able to use all of the Intel SATA and JMicron SATA ports at the same time with all of the JMicron PATA ports. This way the AppleAHCIport will drive both Intel and JMicron SATA ports in AHCI/RAID mode and the JMicronATA will drive only the PATA ports.

 

post-250411-1232040175_thumb.png

 

post-250411-1232040224_thumb.png

 

Here are the two plist-only kext:

 

 

 

They are made to work alongside with these vanilla AppleAHCIport.kext v1.5.2 and vanilla JMicronATA.kext v1.0.0 from Leo 10.5.6:

 

EDIT: removed the vanilla kext attachments, not sure if it goes against the rules to attach them here.

In case you dont have those particular versions you can get them from Apple Combo Update I think.

 

Only tested in Leo 10.5.6, it might work on older versions but not tested by me (AppleAHCIport.kext version changed in latest update I think). I still dont understand the logic behing legacy and binary kext, so maybe if you modify versions values in the plist (so binary and legacy kext match versions) it can be adapted to previous binaries.

 

CHANGES I MADE:

- Only plist, no binary change.

- Adding controller class matching to JMicron personalities in both kexts so only AHCI driver is used for SATA ports and only ATA driver is used for PATA ports, avoiding crashes caused by using only device id matching.

- Assign AppleICH8AHCI class to all ICH8/9/10 controllers instead of generic AppleAHCI. I dont know what are the differences between those 2 classes but ICH9 and 10 are very similar to ICH8 so it feels more right to me. If anyone knows this will break something please let me know.

- Revise all of the Intel ICHx device ids and names according to Intel infs for proper identification of each controller model in AHCI and RAID mode (except the device ids already present in vanilla kext, those I havent touched, some models might still get the wrong name). This only has a aesthetical benefit.

- Add all theoretically compatible device ids to JMicron personalities. They might or might not work with the original binary, as it only supported JMB368, but it works for me withe JMB363.

 

NOTES:

- I have only tested this on my machine config (ICH9R & JMB363) so before testing it on your own make sure you know how to go back to your original setup in case something goes wrong.

- This assumes you are running both Intel ICHx and JMicron controllers in either AHCI or RAID mode, not in IDE mode. Some motherboards might not allow you to change that so check your BIOS settings and manual to be sure.

- Some motherboards have 1 internal SATA port and 1 (hardwired) eSATA port driven by the JMicron controller. Using this kext in those boards should work but it might not give you full eSATA functionality (drives might show as internal not ejectable). If someone knows how to set SATA protocol interconnection parameters on a port by port basis please modify the kext to do it that way.

- There are at least 2 other JMicronATA binary variants, the one from DarwinATA project for +2Gb RAM and the one available from JMicron's FTP site. They should work too with this kext but I havent tried those drivers.

- Some AppleViaATA.kext version include JMicron device ids too, but they might cause some conflicts if present (like making JMicron PATA devices appear as connected to the SATA bus) so I would advice removing it if you have it installed (if you dont need AppleVIAATA to drive other hardware you might have, its definitely not needed for JMicron with these 2 kext).

 

This is of course based on cyclonefr and Gujal's work.

 

UPDATE:

I split the AHCI plist in 2 so it can be installed separately for Intel & JMicron, so mobos without JMicron can install only Intel kext for example.

I think its cleaner to keep different manufacturer personalities in different kext instead of crowding one plist (or the vanilla kext plist).

I also included ICH6 device ids, it seems to be AHCI compliant too. So now includes all Intel ICH AHCI/RAID controllers ids from ICH6 to ICH10.

Also increased IOProbeScore for the JMicron in AHCI/RAID mode trying to avoid other JMicron kext from taking over the SATA controller.

 

- AppleAHCIport plist-only kext for Intel ICHx SATA ports in AHCI/RAID mode:

 

LegacyAppleAHCIPortIntelICHx.kext.zip

 

- AppleAHCIport plist-only kext for JMicron JMB36x SATA ports in AHCI/RAID mode:

 

LegacyAppleAHCIPortJMicronJMB36xSATA.kext.zip

 

- JMicronATA plist-only kext for JMicronJMB36x SATA ports in IDE-compatibility mode (& PATA ports):

 

LegacyJMicronATASATAIDEmode.kext.zip

 

Alternatively, if instead of the vanilla JMicronATA from leopard you need to use the 2Gb+ memory fixed version from darwinata here its v0.6 of that kext with plist fixed to work with the SATA controller in AHCI mode:

 

If there is some mistake or I missed/mistaked some device ids please report and I'll try to fix it.

 

Also, according to this Linux SATA driver status report it seems some newer ATI, NVIDIA, SiS, ULi and VIA chipsets are AHCI compliant. If you have such chipset and have a BIOS option to switch the controller to AHCI/RAID you might try using it with AppleAHCI kext. The vanilla kext has a generic personality for any AHCI controller class so it should pick it up if there is no other driver taking over it.

 

Sorry haven't read this entire thread. Has this been used on a GA-965P-S3 board? Anyone know? Right now I can not get my optical drives to be seen. I have used the kext from the google code page which on load up works but on reboot I get panic's and have to revert back to the kext which allows me to boot into osx but can't see my opticals. I also have 3 gigs ram.

 

Update: Happy to report the driver for 2+ gigs ram worked for me. THANKS

Link to comment
Share on other sites

  • 2 months later...
Thanks, I cant believe there is a typo in original Apple vanilla plist. I just copy and paste the generic ahci, I think it still works with that mistake or maybe not? I remember seeing some generic AHCI controller but not sure if it was with this version. I guess its better to fix it right?

 

I did a little google searching and it seems there is many more south bridges that declare to be AHCI-compliant nowadays, here its the list I could compile from various sources (mainly linux drivers):

 

- NVIDIA: MCP65 (nForce 560?), MCP67 (nForce 610/630a?), MCP73 (nForce 610i/630i), MCP77, MCP79, MCP7B [not sure awhat are the right nForce names for the MCP code-names...]

- AMD: SB600, SB700, SB750, SB800

- VIA: VT8251

- SIS: 966, 968

- ULI: M1573, M1575, M1697, M5288

- MARVELL: 88SE6121, 88SE6145

- PROMISE: PDC42819

Also some Silicon Image SteelVine series support AHCI but not sure which chipsets are...

 

It could be interesting to test if any of this chipsets work with the ahci driver supplied by Apple. I've read some of them have various quirks that prevents them to work with a pure ahci driver (in Linux) without patches but others seem to be pretty standard, nobody tried to run any of those in AHCI or RAID mode with the AppleAHCIport? If they work with the AHCI driver it should be much better than using AppleViaATA or similar things.

Best candidates could be the nForce chipsets as the vanilla driver already supports MCP79...

If we find out some of those work without troubles or data corruption we could add the ids to the AHCI driver.

 

My Mainboard : MSI MCP73/Nforce610i

I have AHCI in my BIOS configurated. My Mainboard didn't use the NforceATA or VIAATA. He use the AppleAHCIPort.

 

Look here from my System.log :

 

Aug 21 12:37:23 localhost kernel[0]: Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/ATA0@E/AppleAHCI/PRT3@3/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/WDC WD2500JD-00HBB0 Media/IOFDiskPartitionScheme/Untitled 1@1

 

In "About this Mac" under Serial-ATA it says: Unknown AHCI Standard Controller

 

So how could I change this?

 

 

------------------------------------------------------------------------------------------

 

 

And I get this F*** message on boot :

kextd[10]: IOKitWaitQuiet() timed out waiting to write kernel symbols

configd[44]: InterfaceNamer: timed out waiting for IOKit to quiesce

 

So with this it boots up in 5 minutes.

 

 

 

 

thepraxXx

 

regards

Link to comment
Share on other sites

So I fix the message with IOkitwaitquiet... :

 

I Installed iDeneb 10.5.5 and then it stuck at:

 

Mac framework successfully initialized

Using 10485 buffer headers and 4096 cluster IO buffer headers

 

I installed then from the iAtkos 5i DVD the "APIC Driver". And so the problem was solved.

I Don't test in iDeneb DVD the ACPI Fix.

 

Then He needed the AppleAHCIPort.kext and I install this again from the iAtkos DVD:

"IntelAHCISata".

 

And then he booted very quick up.And I get no error like IOKitWaitQuiet..^^ :P

 

Sorry for my English.

Link to comment
Share on other sites

So I fix the message with IOkitwaitquiet... :

 

I Installed iDeneb 10.5.5 and then it stuck at:

 

Mac framework successfully initialized

Using 10485 buffer headers and 4096 cluster IO buffer headers

 

I installed then from the iAtkos 5i DVD the "APIC Driver". And so the problem was solved.

I Don't test in iDeneb DVD the ACPI Fix.

 

Then He needed the AppleAHCIPort.kext and I install this again from the iAtkos DVD:

"IntelAHCISata".

 

And then he booted very quick up.And I get no error like IOKitWaitQuiet..^^ :P

 

Sorry for my English.

 

Glad you got it working.......even though it is unusual to have to mix kexts from two distros..... :P

Link to comment
Share on other sites

Yes and I am so happy. No more long wait ;)

I think the error with IOKitWaitQuiet and long wait comes because the Leopard Build or the Distro.

 

You should check here.....

 

BTW I have mentioned your success with AppleAHCIPort.kext and IntelAHCISata.kext in my Pre-Series 7 thread to help those with 610i and 630i MOBOs....... :P

Link to comment
Share on other sites

  • 2 months later...

Hi thorazine74,

 

I have the same controllers as you,ICH9R & JMB363, on my P5K Premium WiFi/AP.

 

I read and reread your post and I am aware of the files you made but I can't figure out what you used and where.

And what do you use to inject those plist kexts? Chameleon?

 

The main problem I am trying to fix is with IDE drives.

I also think that my external esata ports will read but will not let me eject.

The system is unstable when hight demands are asked of it. Disk Utility can't format or repair a single IDE drive.

 

I have 10.5.8 on an internal sata drive. When only SATA drives are used the system is 100% rock solid.

I also have 4gm of ram.

 

Last question, what is the application you are using in the 2nd picture?

 

Thanks' in advance for your help.

Link to comment
Share on other sites

 Share

×
×
  • Create New...