Help - Search - Members - Calendar
Full Version: Fix for IOATAFamily / AppleIntelPIIXATA panic in Snow Leopard
InsanelyMac Forum > OSx86 Project > Hardware and Drivers > SATA/IDE Controllers
Pages: 1, 2
sigmaris
For people having panics caused by AppleIntelPIIXATA.kext on Snow Leopard (e.g. on Intel BadAxe or BadAxe2 mobo) this kext may provide a solution. AppleIntelPIIXATA loading on a system with the secondary PCI IDE channel disabled seems to trigger a bug in IOATAFamily causing a NULL pointer dereference. I have patched the source of IOATAFamily from Snow Leopard to avoid the bug and recompiled it.

If you are having panics looking like this, try replacing your IOATAFamily.kext with the attached one, and let me know if it fixes the panic. I have gotten access to my PATA drives on a BadAxe 1 board using this kext.

Note that this is not the IOATAFamily from 10.5.8 as described here, it is compiled from patched Snow Leopard source code. The source is available from Apple here and the small patch I used is also attached to this post. The AppleIntelPIIXATA.kext is also included in the PlugIns folder of the attached kext, but it is unmodified.

Edit: replaced the suspect .tar.gz with a .zip file
Nihilator
It does not work with Boot-132 or BootCD.
rals2007
It doesnt work on P5K ich9. Still waiting for Root device, even though i have applepiiatainjector
THe KiNG
QUOTE (sigmaris @ Sep 15 2009, 04:16 AM) *
The AppleIntelPIIXATA.kext is also included in the PlugIns folder of the attached kext, but it is unmodified.

@rals2007 Wait for -DuNe- fix if you want to use IDE mode on unsupported ichx.
QUOTE (rals2007 @ Sep 15 2009, 06:58 AM) *
It doesnt work on P5K ich9. Still waiting for Root device, even though i have applepiiatainjector

This is a fix for laptops(IMO) that has the secondary pci ide channel disabled.
Thanks for sharing the fix smile.gif
sigmaris
QUOTE (Nihilator @ Sep 15 2009, 04:39 AM) *
It does not with Boot-132 or BootCD. Did you only test your patch by copying it over Snow Leopard's IOATAFamily.kext (inside Snow Leopard's dmg file)?


I haven't tested it with the boot-132 / cdboot as I can't get the CD to boot on my system. It just resets as soon as it it loads off the CD after the BIOS screen. From what I know, it should theoretically work when loaded from boot-132 or /Extra/Extensions, though, as it will load first and override the vanilla IOATAFamily.
zellkern
the tar gz archive you attached is corrupt, at least my winrar says
Chrysaor
Thanks, works great in Snow 32/64.
kmboss
Awesome, it works for me! (Bad Axe 2)

Thank you!!!
slickslick
Hey! U re god biggrin.gif THX 4 THIS
el_charlie
Ok, my impressions about the kext.

It DOES work on 32/64 bits on my motherboard Foxconn G31MV-K with the ICH7 southbridge. However, on 64bits, my SATA hard drive is not recognized. The system boots fine (my Snow Leopard installation is on my 80GB IDE HD) but the 2 partitions of my SATA drive (Windows 7 and Data) doesn't show up.

Now I will test the kext, leaving untouched the vanilla on S/L/E and try this on EFI/Extra/Extensions to see if it works.

EDIT:

It works fu***ng great!

I mean, in my case it doesn't work on EFI/Extra/Extensions (the vanilla still loads and KPs). But it works great on 64 bits on /System/Library/Extensions.

When I said it didn't recognize my SATA drive, I was wrong. NTFS-3G doesn't work on 64 bits. Therefore, my 2 partitions on the SATA drive didn't mount. But the SATA drive appears fine on System profiler.

Thanks for this AMAZING kext. Thank you, thank you, thank you!!!!

Cheers!!
Niatross
QUOTE (sigmaris @ Sep 15 2009, 01:16 AM) *
For people having panics caused by AppleIntelPIIXATA.kext on Snow Leopard (e.g. on Intel BadAxe or BadAxe2 mobo) this kext may provide a solution. AppleIntelPIIXATA loading on a system with the secondary PCI IDE channel disabled seems to trigger a bug in IOATAFamily causing a NULL pointer dereference. I have patched the source of IOATAFamily from Snow Leopard to avoid the bug and recompiled it.

If you are having panics looking like this, try replacing your IOATAFamily.kext with the attached one, and let me know if it fixes the panic. I have gotten access to my PATA drives on a BadAxe 1 board using this kext.

Note that this is not the IOATAFamily from 10.5.8 as described here, it is compiled from patched Snow Leopard source code. The source is available from Apple here and the small patch I used is also attached to this post. The AppleIntelPIIXATA.kext is also included in the PlugIns folder of the attached kext, but it is unmodified.

Edit: replaced the suspect .tar.gz with a .zip file


I'm confused. Why did you include a patch zip file along with the IOATAFamily download? Anyway, give us some more detail on this fix. Does it support ICH7-R chipsets?

QUOTE (sigmaris @ Sep 15 2009, 09:53 AM) *
I haven't tested it with the boot-132 / cdboot as I can't get the CD to boot on my system. It just resets as soon as it it loads off the CD after the BIOS screen. From what I know, it should theoretically work when loaded from boot-132 or /Extra/Extensions, though, as it will load first and override the vanilla IOATAFamily.


Can anyone in the OSx86 community figure out how to fix the IOATAFamily kext (specifically AppleIntelPIIXATA.kext) for a Boot-132 or CDBoot install. This must be a difficult problem, because no one in the community has been able to step up and figure out the problem. Hopefully "Dune" can.

Once you can boot your system from CD, try Boot-132 or BootCD and tell me if your patched IOATAFamily.kext works because on my system it kernel panics. My system has no secondary ATA controller.
VIP-death
I have ICH-7-R and this patched kext works for me in x32 Snow.I put this pathed kext in Extra/Extentions and leaving untouchable the vanilla kext in /System/Library/Extentions and everything works great, no more kernel panic.
Niatross
QUOTE (VIP-death @ Sep 16 2009, 03:37 AM) *
I have ICH-7-R and this patched kext works for me in x32 Snow.I put this pathed kext in Extra/Extentions and leaving untouchable the vanilla kext in /System/Library/Extentions and everything works great, no more kernel panic.


The question is: Are you booting from the Boot-132 or BoodCD using an IDE (ATA) DVD drive when installing Snow Leopard?

If your booting from a SATA DVD-ROM drive and using a Boot-132 or BoodCD, then you'll have no problems installing Snow Leopard. Also, you'll have no problems if your bootloader is on your SATA hard drive and your copying these kexts (mentioned in this thread) to the /Extra/Extensions folder.
timewise
Nice patch! I am now booting my bad axe 2 in ide mode biggrin.gif
I was also able to remove AHCIPortInjector.kext, ATAPortInjector.kext and IOAHCIBlockStorageInjector.kext
THX
Niatross
QUOTE (el_charlie @ Sep 16 2009, 03:12 AM) *
Ok, my impressions about the kext.

It DOES work on 32/64 bits on my motherboard Foxconn G31MV-K with the ICH7 southbridge. However, on 64bits, my SATA hard drive is not recognized. The system boots fine (my Snow Leopard installation is on my 80GB IDE HD) but the 2 partitions of my SATA drive (Windows 7 and Data) doesn't show up.

Now I will test the kext, leaving untouched the vanilla on S/L/E and try this on EFI/Extra/Extensions to see if it works.

EDIT:

It works fu***ng great!

I mean, in my case it doesn't work on EFI/Extra/Extensions (the vanilla still loads and KPs). But it works great on 64 bits on /System/Library/Extensions.

When I said it didn't recognize my SATA drive, I was wrong. NTFS-3G doesn't work on 64 bits. Therefore, my 2 partitions on the SATA drive didn't mount. But the SATA drive appears fine on System profiler.

Thanks for this AMAZING kext. Thank you, thank you, thank you!!!!

Cheers!!


What are you going to do when Software Updates overwrites the IOATAFamily.kext in S/L/E?

It seems this fix is only useful when you install it to S/L/E, but will not work on the EFI partition or from a Boot-132 or BootCD. Not good.

OSBundleRequired=Root doesn't even help.
timewise
It is working for me in chameleon RC1 Extra/Extensions folder with PC EFI 10.1 boot file.
Chameleon is installed to it's own 1 Gb partition.
sigmaris
As far as chipset goes, this patch doesn't add support for any more ICH chipsets than what the standard AppleIntelPIIXATA supports, it just fixes the kernel panic in IOATAFamily that's triggered by AppleIntelPIIXATA. I believe -DuNe- is working on support for additional chipsets in AppleIntelPIIXATA under Snow Leo, see this thread
Brett Whinnen
Brilliant! Great work! This has me one step closer to a perfect installation smile.gif
Logicpro8_user
So here is where i am at now!

I followed the guide step by step,

http://www.insanelymac.com/forum/index.php...p;#entry1268472

There is a problem though.......

1.Booted from my sata drive where the SL install image/DVD was restored to. I did delete the AppleIntelPIIXATA from IOATAFamily before I installed.....

2. Install of SL went 100% ok.

3. It asks me to restart after 100% install.....

3. rebooted then I get this panic when the new SL install drive boots.

Can anyone shine any light on this?

Would be great to sort it out! OH I forgot to say, I now no longer have a 10.5.8 install to work from!!
Only the Boot drive! and a broken SL install..... My system details are in my Sig.



olav
Thanx! Works nice here as well on bad axe 2, only the IDE fix left for the marvell controller in snow leo wink.gif
allenwkk
this solve my KP problem in Snow installation... but my system on boot somehow reset my BIOS HDD setting. Each time I have to enter the Bios to set all the drives.

My configuration
- Pentium 4 , 945 chipset (ICH7R), IDE optical drive, 3 SATA drives.....HD2900 graphic card.

my Extra/Extensions are
AHCIPortinjector.kext
ATAPortInjector.Kext
Disabler.Kext
Dsmos.kext
fakesmc.kext
IOAHCIBlockStorageInjector.kext
JmicronATAinjector.kext
NullCPUPowerManagement.kext
OpenHaltRestart.Kext
SleepEnabler.kext

My s/l/e folders, adding-
IOATAFamily.kext
AppleIntelPIIXATA,kext (as in this thread)


System booting into Snow and working well with Network, Sound (after patching VoodooHDA.kext), and 2400 EFI string...Graphic can only be in 1048 and cannot be changed.

timewise
QUOTE (allenwkk @ Sep 18 2009, 03:04 AM) *
this solve my KP problem in Snow installation... but my system on boot somehow reset my BIOS HDD setting. Each time I have to enter the Bios to set all the drives.

My configuration
- Pentium 4 , 945 chipset (ICH7R), IDE optical drive, 3 SATA drives.....HD2900 graphic card.

my Extra/Extensions are
AHCIPortinjector.kext
ATAPortInjector.Kext
Disabler.Kext
Dsmos.kext
fakesmc.kext
IOAHCIBlockStorageInjector.kext
JmicronATAinjector.kext
NullCPUPowerManagement.kext
OpenHaltRestart.Kext
SleepEnabler.kext

My s/l/e folders, adding-
IOATAFamily.kext
AppleIntelPIIXATA,kext (as in this thread)


System booting into Snow and working well with Network, Sound (after patching VoodooHDA.kext), and 2400 EFI string...Graphic can only be in 1048 and cannot be changed.

Check netkas site for cmos reset fix.
Do you have your dsdt file already?
allenwkk
thanks for the reply

Yes, I have looked at the DSDT and the CMOS reset patch... Mine DSDT.aml is already same as the patched version.

regards
timewise
QUOTE (allenwkk @ Sep 18 2009, 03:31 AM) *
thanks for the reply

Yes, I have looked at the DSDT and the CMOS reset patch... Mine DSDT.aml is already same as the patched version.

regards

Hmm. I added IOATA from this thread to my Extra/Extensions folder.
fakesmc and dsmos do the same thing. Try removing dsmos.
Same withe disabler and NullCPUPowerManagement.kext. Remove disabler.
I was also able to remove AHCIPortinjector.kext, ATAPortInjector.Kext, and IOAHCIBlockStorageInjector.kext after adding patched IOATA (maybe JmicronATAinjector.kext too). I am not sure though as you are on the 945 chipset.
joe2105
Thanks !!! It´s working for me from /Extra/Extensions on an Acer Aspire 5634WLMI in 32 and 64 bit mode :-)
gnychis
thanks OP! worked for me
GoodWorld
Hey, sigmaris.


I am running both 32 bit Mode & 64 bit Mode by using Chameleon2 RC3 r658.
( BIOS : o SATA Mode - Enhanced o JMicron - Disabled ) ( ASUS P5K [ICH9 - Non AHCI Mode] )


- SATA Ports
o AppleIntelPIIXATA2.kext from iATKOS1057 : ( Full working : SATA 1 , 2, 3, 4 Ports ) ( only 32 bit Mode )
o AppleIntelPIIXATA.kext from z0r : ( working : only SATA 1 , 2, Ports ) ( 32/64 bit Mode )
10a432_P5K_PIIXATA(32_64).zip


Can you edit the info.plist of AppleIntelPIIXATA.kext ?
I want to use SATA 3, 4 Ports in 64bit Mode.
zorro7000
QUOTE (olav @ Sep 17 2009, 11:52 AM) *
Thanx! Works nice here as well on bad axe 2, only the IDE fix left for the marvell controller in snow leo wink.gif


Same for me on my Samsung Q45. Thanks.

But can someone please tell me how I can verify if these the kext which I have downloded. I changed more before the last boot (make-*.kext) and so I am a bit confused sad.gif but happy!
DoctorEvil30564
worked great for me on a D945GCLF

my Optical drive is a PATA drive or I would have just shut the ATA controller off in the bios and said heck with it.
el_charlie
QUOTE (morpheiuz @ Sep 21 2009, 01:30 PM) *
worked great for me on a D945GCLF

my Optical drive is a PATA drive or I would have just shut the ATA controller off in the bios and said heck with it.


I don't understand your question. You can use this kext on both 32/64 bits and leave your ATA controller enabled.

Works fine for me (ICH7) but on 64bits the system is very unstable. Also the NTFS-3G driver doesn't work.

Cheers!
rob3r7o
Thanks!!!!!!
Asus m51sn ICH8M (32/64 bit) Great Work
sigmaris
QUOTE (GoodWorld @ Sep 20 2009, 12:40 AM) *
Hey, sigmaris.

I am running both 32 bit Mode & 64 bit Mode by using Chameleon2 RC3 r658.
( BIOS : o SATA Mode - Enhanced o JMicron - Disabled ) ( ASUS P5K [ICH9 - Non AHCI Mode] )

- SATA Ports
o AppleIntelPIIXATA2.kext from iATKOS1057 : ( Full working : SATA 1 , 2, 3, 4 Ports ) ( only 32 bit Mode )
o AppleIntelPIIXATA.kext from z0r : ( working : only SATA 1 , 2, Ports ) ( 32/64 bit Mode )
10a432_P5K_PIIXATA(32_64).zip

Can you edit the info.plist of AppleIntelPIIXATA.kext ?
I want to use SATA 3, 4 Ports in 64bit Mode.


I believe you need -Dune-'s patched AppleIntelPIIXATA.kext to enable all SATA ports in Non-AHCI mode. Info.plist editing may not be sufficient. Apparently a Snow Leopard 32/64 bit version is being worked on, in the thread.
OR - you could just enable AHCI mode in the BIOS and get access to the ports that way.
rals2007
sigmaris

Correct me if im wrong... If Dune's patched AppleIntelPIIXATA comes out, we will not be needing your patched IOATAFamily anymore?
GoodWorld
QUOTE (sigmaris @ Sep 22 2009, 04:09 PM) *
I believe you need -Dune-'s patched AppleIntelPIIXATA.kext to enable all SATA ports in Non-AHCI mode. Info.plist editing may not be sufficient. Apparently a Snow Leopard 32/64 bit version is being worked on, in the thread.
OR - you could just enable AHCI mode in the BIOS and get access to the ports that way.

Thanks.

My board [ASUS P5K Vanilla - ICH9] has no Default AHCI Mode. ( I don`t like the JMicron AHCI Mode. )

OK. I will wait for DuNe`s nice work.
sigmaris
QUOTE (rals2007 @ Sep 23 2009, 06:19 AM) *
sigmaris

Correct me if im wrong... If Dune's patched AppleIntelPIIXATA comes out, we will not be needing your patched IOATAFamily anymore?


I'm not totally sure, as the panic is actually caused by a bug (as I see it) in the IOATAFamily code itself. It is just triggered by the behaviour of AppleIntelPIIXATA when initialising with the secondary IDE channel disabled. It might be possible to rewrite parts of AppleIntelPIIXPATA to avoid the bug, but that would be a more serious undertaking than simply fixing the bug in IOATAFamily, which is relatively straightforward.

Or who knows - Apple may actually fix the bug themselves in future versions of 10.6. Stranger things have happened, although I imagine none of the Mac systems have ICH chipsets with only one IDE channel to trigger it, so from Apple's POV it's not an obvious problem.
THe KiNG
I believe apple left that "bug" intentionally wink.gif
And I don't think they will fix it, unless it cause trouble on apple hw.
triple675
Thanks, working well on Asus P5LP-LE (it's a HP) both 32/64 bits.
BlackCH
Thanx!, works fine on my HP6720s (ICH8).
Now I can boot in AHCI mode without panics.
erudified
Works great on my Dell Vostro 1700, ICH8M - cheers!
philwil007
Worked great for me! Asus p5ld2 THANKS!!!!
Tenisista
Hello. I'm a total mac noob. Installed SL today on my Dell M1530 and having this kernell panic. Can I plug in my pendrive with your file, and copy it somehow to my installed mac? Do I have to open terminal through installation cd? What are the commands for copying? Thank you in advance!
sigmaris
QUOTE (Tenisista @ Oct 1 2009, 05:24 PM) *
Hello. I'm a total mac noob. Installed SL today on my Dell M1530 and having this kernell panic. Can I plug in my pendrive with your file, and copy it somehow to my installed mac? Do I have to open terminal through installation cd? What are the commands for copying? Thank you in advance!


If you can, disable the ATA controller or switch it into AHCI mode. That should let you boot up into SL without panicing, then you can copy the patched IOATAFamily kext to /System/Library/Extensions/ (or /Extra/Extensions) and rebuild the kext cache.
If you can't disable the ATA controller (e.g. if your boot hard drive is attached to it) then if you can boot up using the installation DVD then you can copy the patched kext onto your boot drive using Terminal. The commands to copy would be something like:
CODE
cp -R /Volumes/<usb stick name>/IOATAFamily.kext /Volumes/<boot drive name>/System/Library/Extensions/
(or)
cp -R /Volumes/<usb stick name>/IOATAFamily.kext /Volumes/<boot drive name>/Extra/Extensions/

depending if you want to put it in /System/Library/Extensions/ or /Extra/Extensions/. Then rebuild the kext cache with
CODE
kextcache -m /Volumes/<boot drive name>/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /Volumes/<boot drive name>/System/Library/Extensions
or
CODE
kextcache -m /Volumes/<boot drive name>/Extra/Extensions.mkext /Volumes/<boot drive name>/Extra/Extensions
fassl
Hey sigmaris, nice find smile.gif about the boot132 issues, since IOATAFamily has

<key>OSBundleCompatibleVersion</key>
<string>1.0b1</string>

in its Info.plist you can subclass it in a new kernel extension, and just replace the one broken function, that way it should be possible to have the new kext in /Extra/Extensions and leaving IOATAFamily unpatched in the Extensions folder. This should be more future prove as well. If apple ever will modify this kext again since from what i know there are no real macs that will run Snow Leopard and have IDE?

greezs
swinte
Thanks for putting this together! I'm running into the same problem on my ECS 945-GTC M/1333 board and this kext has helped.
sigmaris
QUOTE (fassl @ Oct 9 2009, 11:34 PM) *
Hey sigmaris, nice find smile.gif about the boot132 issues, since IOATAFamily has

<key>OSBundleCompatibleVersion</key>
<string>1.0b1</string>

in its Info.plist you can subclass it in a new kernel extension, and just replace the one broken function, that way it should be possible to have the new kext in /Extra/Extensions and leaving IOATAFamily unpatched in the Extensions folder. This should be more future prove as well. If apple ever will modify this kext again since from what i know there are no real macs that will run Snow Leopard and have IDE?

greezs


That's interesting... there is some way to make other KEXTs that use IOATAFamily as a provider to use the subclass instead? I should read up on this I guess but I find myself with less and less free time now university term has started...
el_charlie
QUOTE (sigmaris @ Oct 17 2009, 07:48 AM) *
That's interesting... there is some way to make other KEXTs that use IOATAFamily as a provider to use the subclass instead? I should read up on this I guess but I find myself with less and less free time now university term has started...


Is there a way to make it work on a (EFI partition)/Extra/Extensions???

I've tried with OSBlundeRequiered setting to Local-Root and Root only and it doesn't work. It still loads the S/L/E vanilla one. I want to keep my installation as clean as possible by putting all the 3rd party kexts on the EFI partition.

On /S/L/E your kext works fine.

Cheers!
el_charlie
BUMP!!!

Anyone?????
adelara
QUOTE (sigmaris @ Sep 14 2009, 09:16 PM) *
... it is compiled from patched Snow Leopard source code.
The source is available from Apple here and the small patch I used is also attached to this post.


Nice. I am interested in the environment used to recompile it... rolleyes.gif
Are you using another OSX with Xcode ? How about a short desc of the setup ?

Thanks.
adelara
Nope... not on a Lenovo T60 laptop.... sad.gif

It didn't miserably crashed like the unpatched version, but doesn't work either... stuck on the dreaded "Still waiting for the root device"
sigmaris
QUOTE (adelara @ Oct 28 2009, 12:51 PM) *
Nice. I am interested in the environment used to recompile it... rolleyes.gif
Are you using another OSX with Xcode ? How about a short desc of the setup ?

Thanks.


I just downloaded the source of IOATAFamily from that link, opened the XCode project contained within, edited the source and compiled it. I'm using XCode 3.2 on Snow Leopard.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.