Jump to content
InsanelyMac Forum
Wallfacer

How to load an IDE hard-drive in os x?

Recommended Posts

hello,

 

my HD can't be recognized in the OS installation, when trying hacintosh my antique PC, but it works ok in MS Win10. After a few weeks' research, it looks that the OS X only support ACHI mode SATA? with detailed check, I figured out that the MB doesn't have an ACHI option for SATA at all, only IDE in there.

 

my PC settings are listed,

1. CPU: intel Xeon 3210 (lga775)

2. MB: P35AX (with ICH9, phoenix bios, v1.2)

3. HD: wd 1TB 7200rps, Sata

 

Then i found there is "ACHI/IDE" kexts(below) which seems to be able to fix this,

AppleIntelPIIXATA

ATAPortInjector

 

however, it still doesn't work, the HD is not there in os installation with the kexts injected. Does anyone could help?

ATAPortInjector.kext.zip

AppleIntelPIIXATA.kext.zip

Share this post


Link to post
Share on other sites
Advertisement

thanks, MARZILLO, will go take a try, feedback after that.


those kexts are useless w/o your device id in it

 

thx, which device id do you mean to add in the kext? and how (please)?

Share this post


Link to post
Share on other sites

Your HDD controller will carry a different PCI id whether it operates in AHCI/SATA mode or IDE/ATA/PATA (legacy) mode. You can identify this in Windows Device Manager by looking at the details of the controller driver. You may also use other IOReg browsing app such as CPUz, Aida64, etc.

 

Now OS X does support HDD ATA/IDE mode but only if the relevant driver/kext AppleIntelPIIXATA supports the underlying controller. As it turns out, OS X does not support all Intel ICHx controllers in IDE mode by default. This is why you must either inject the necessary info or patch the vanilla driver.

 

As stated by ellaosx, your ATA injector or patched AppleIntelPIIXATA kexts are useless unless your controller's id is covered by them, i.e. listed in the Info.plist file of the kexts. I attach Yosemite's latest version as found in AppleIntelPIIXATA.kext v2.5.1 (the kext being a PlugIn of IOATAFamily.kext v2.5.3 found in /S/L/E):

Info.plist.zip

 

If you open the file with a plain text editor, you will notice that it only supports a few ICH controllers in ATA/PATA/IDE mode, like ICH7 or ICH8. For instance:

<key>ICH8 ATA/100</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleIntelPIIXATA</string>
<key>Controller Name</key>
<string>ICH8 ATA/100</string>
<key>IOClass</key>
<string>AppleIntelPIIXATARoot</string>
<key>IOPCIPrimaryMatch</key>
<string>0x28508086</string>
<key>IOProbeScore</key>
<integer>2000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>Supported Transfer Modes</key>
<string>0x3f061d</string>
</dict>

The id of the controller is the hexadecimal number listed for the field IOPCIPrimaryMatch; it's specified in the form <device id><vendor id> (and 8086 = Intel). In the above example, the supported ICH8 ATA/IDE controller bears id 2850 (in hex).

 

There is no specific entry for an ICH9 ATA controller in the kexts you uploaded so, unless your controller was covered by the other ATA entries of the Info.plist file of the kexts, it cannot be supported.

 

To add suport for your missing ICH9 IDE mode, you can either:

  1. patch the vanilla kext to add your controller's info in the Info.plist
  2. add the injector kext, previously updated with your controller info
  3. install a pre-patched kext that will take precedence over the vanilla's version

 

The data to inject will look like:

<key>ICH9 ATA/100</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleIntelPIIXATA</string>
<key>Controller Name</key>
<string>ICH9 ATA/100</string>
<key>IOClass</key>
<string>AppleIntelPIIXATARoot</string>
<key>IOPCIPrimaryMatch</key>
<string>0xYYYY8086</string>
<key>IOProbeScore</key>
<integer>2000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>Supported Transfer Modes</key>
<string>0x3f061d</string>
</dict>

where YYYY will be your identified controller PCI device id.

 

In a similar fashion to the injector kext, this data can also be added to FakeSMC's Info.plist file and the kext related to the injection will need to be referred at the top of the injected data. But that's secondary and more "advanced" stuff...

 

I hope this helps in demystifying the matter. Find your ICH9 IDE controller id to begin with and we'll see to get it supported afterwards.

Share this post


Link to post
Share on other sites

re: Herve

thank you so much for help, this is very detailed and helpful, not only to resolve my problem but explained the methods too.

 

P.S. can I paste & translate your post to a Chinese hacintosh bbs, so that more people may be benefited?

Share this post


Link to post
Share on other sites

I've only summarised information that's been known and published for years. You can sure paste and translate on a Chinese forum but I've not invented anything.

Share this post


Link to post
Share on other sites

I've only summarised information that's been known and published for years. You can sure paste and translate on a Chinese forum but I've not invented anything.

ye, still it is very helpful..there are lots of hacintosh beginners everywhere like me. In china, i see many people eager to hacintosh their PC/laptop, some of them succeeded by chance (simply follow the instruction); and some failed, without knowing & trying approaches other than the instruction -- which definitely can not cover all devices. Your guide is clear and understandable, I think it would be helpful for those hacintosh-er who would like to pay a little more efforts than stop at the basic problems only.

 

BTW, is it the same logic to drive the other devices in os X, e.g. 

1, make sure if the system support this device;

2, if yes, figure out your device ID and patch into the relevant kext;

 

then the problems turn to:

1, how to determine if certain device is supported or not?

2, how to find the relevant kext to a device? (maybe by device function/name is a shortcut, is there any other clue?)

3, if both are negative, does it mean the device is a NO-SOLUTION one?  

 

thanks again

Share this post


Link to post
Share on other sites

Yes, the principle is general.

 

There are various ways to determine if a device may be supported or not, it's not necessarily empirical. Most of the time, it's a matter of hardware family or core chip/chipset. For instance, various graphics cards can be based on a chip of a particular GPU family (eg: nVidia XXX chip); in the same respect, various wireless cards can be based on a given chip (eg: Atheros XXXX or Broadcom YYYY).

 

Some other times, you can also simply declare as a DSDT patch that a given PCIe device is compatible with Apple's device (eg: SD card readers).

Share this post


Link to post
Share on other sites

thanks again, Herve.

 

hope this doesn't bother you a lot -- is it possible to make a comparison amongst the different patching methods?

Like, pre-patched kext (3rd party kext), DSDT injection, Clover config.plist injection, device ROM injection, vanilla kext patch etc..

Share this post


Link to post
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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Posts

    • yes. please check it between 10.7~10.9. need to know supported minimum os.
    • Not sure but I think Netinstall starting in 10.8 ? I need chek for confirmation ?
    • Il post purtroppo è diventato chilometrico  e mi dispiace, ma ho ancora qualcosa da chiedere nella speranza che qualcuno di voi di buona volontà riesca ad aiutarmi.  Ho qualche problema di ottimizzazione riguardante l'audio che ogni tanto inspiegabilmente non va dalle casse integrate impostato in config su 28 (che è quello che normalmente funziona sua sulle cuffie che con le casse) ma ogni tanto non va. Ed infine il bluetooh della scheda, adesso son funziona più ( (BrcmFirmwareRepo e BrcmNonPatchRAM2 in clover) e invece BTFirmwareUploader in L/E.). Magari c'è qualche errore nel dsdt o nel config.  Vi allego la cartella clover https://drive.google.com/open?id=1d7qfHs3KYEWANjtSlKyR29aEbgTFsytd Non so come mai ma da quando il forum ha cambiato server l'upload diretto da sempre errore  e anche il caricamento delle pagine è molto lento. Vi ringrazio per la disponibilità .
    • can Netinstall support media for os version? 10.6~10.13? Netinstall Mac OS X Snow Leopard Netinstall Mac OS X Lion Netinstall OS X Mountain Lion Netinstall OS X Mavericks Netinstall OS X Yosemite Netinstall OS X El Captian Netinstall macOS Sierra Netinstall macOS High Sierra   right?
    • read that post and it looks like it's not a fix for the black screen . I did add whatever green and lily to clover folder on the USB but no luck.   


×