Sandokan7100 Posted January 10, 2011 Share Posted January 10, 2011 Hello everybody... this is my first post here and I'd like to share this case... After many weeks of researches on this great forum I managed to setup a full working Hackintosh on my Asus P5E-SLI (intel Core 2 Duo E6600, 4GB RAM, ATI x1950 with QE/QI) running with vanilla kernel 10.5.0 (comboupdate to 10.6.5). Everything looks running fine including USB, Audio (VoodooHDA), etc. And I didn't need to specify any DSDT file... so far. The problem is with the eSATA external HDD which is not automatically detected at boot time. I found this thread: JMicron SATA/IDE PCIe Card eSATA problem When I issue 'lspci' I get this output: 02:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) Also, I confirm that I'm able to fully use the eSATA drive by manually issuing this command (thx to ApexDE!) sudo setpci -s 02:0.0 40.b=b3 41.b=a1 42.b=c2 but the problem is that I'm still unable to see this HDD at boot time as I get the infamous message "Still waiting for the root device..." when trying to boot OSX from there! Note: the same HDD drive (eSATA/USB2) is perfectly booting via the USB2 connection (much slower than eSATA ), so I think problem is with eSATA driver not enabled at boot time. I've tried a lot of injection kexts (JMicron...) but nothing changed. Also I've tried to look at the disassembled DSDT as suggested by ApexDE in above post, but I cannot find any JMB device to be edited. One last note: it's not a BIOS issue, as the same HDD can boot from second partition (Windows XP) using eSATA connection. Is there something I did wrong? Any similar experience? EDIT: I have resolved as follows. The only kext which is able to detect the eSATA interface at BOOT-TIME is the one from the EmpireEFI CD v1.085. size of JMicronATA.kext = 74135 bytes size of binary MacOS/JMicronATA = 71540 bytes contents of pbdevelopment.plist <?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>PBXProjectSourcePath</key> <string>/Users/slashack/Development/ATADrivers/JMicronATA</string> </dict> </plist> contents of Info.plist <?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>CFBundleExecutable</key> <string>JMicronATA</string> <key>CFBundleGetInfoString</key> <string>1.0.1, Copyright JMicron Technology Corporation</string> <key>CFBundleIdentifier</key> <string>com.jmicron.JMicronATA</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>JMicron JMB ATA Driver</string> <key>CFBundlePackageType</key> <string>KEXT</string> <key>CFBundleShortVersionString</key> <string>1.0.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>1.0.6</string> <key>IOKitPersonalities</key> <dict> <key>JMicronATA Driver</key> <dict> <key>CFBundleIdentifier</key> <string>com.jmicron.JMicronATA</string> <key>Hardware Vendor</key> <string>JMicron</string> <key>IOClass</key> <string>JMicronATA</string> <key>IOProviderClass</key> <string>JMicronATAChannel</string> </dict> <key>JMicronATA PCI</key> <dict> <key>CFBundleIdentifier</key> <string>com.jmicron.JMicronATA</string> <key>Hardware Vendor</key> <string>JMicron</string> <key>IOClass</key> <string>JMicronATAPCIRoot</string> <key>IOPCIPrimaryMatch</key> <string>0x2360197b, 0x2361197b 0x2363197b 0x2365197b 0x2366197b 0x2368197b</string> <key>IOProbeScore</key> <integer>10000</integer> <key>IOProviderClass</key> <string>IOPCIDevice</string> </dict> </dict> <key>OSBundleLibraries</key> <dict> <key>com.apple.iokit.IOATAFamily</key> <string>1.6.1f3</string> <key>com.apple.iokit.IOPCIFamily</key> <string>2.0</string> </dict> <key>OSBundleRequired</key> <string>Local-Root</string> </dict> </plist> So, what I did, is to copy this kext in Extra/Extensions. I've also copied AHCIPortInjector, IOAHCIBlockStorageInjector, IOATABlockStorage, IOATAFamily and IOPCIFamily kexts from the same empireEFI CD, but I'm not sure they're really needed. Hope this helps! Cheers. EDIT: Here is the zip with all my kexts from /Extra/Extension directory. Tested on Snow Leopard 10.6.5 @ 32bit. eSATA_for_boot_KEXTs.zip Quote Link to comment https://www.insanelymac.com/forum/topic/242427-solved-boot-snow-leopard-from-esata-jmb360/ Share on other sites More sharing options...
Sandokan7100 Posted January 14, 2011 Author Share Posted January 14, 2011 Hey guys... so, isn't there anyone who is able to boot his Snow Leopard using eSATA? Some additional info: I'm using the following kexts in the Extra/Extensions (Chameleon 2.0 RC4) AHCIPortInjector.kext ATAPortInjector.kext IOAHCIBlockStorageInjector.kext JMicronATAInjector.kext Disabler.kext As said in my original post above, if I connect the HDD via USB2 it's able to boot.. Waiting for boot volume with UUID CDA42...... ... .... Got boot device = IOService ... But if I connect the same HDD drive using eSATA cable it loads the kernel, initialize it and then it hangs just after the "Waiting for boot volume" message... I get "Still waiting for root device". So I'm assuming there is some problem with eSATA device detection at boot time. Is there some way to force the device detection using the EFI strings in chameleon? Or they are just for video cards? PLEASE HEEELP! Quote Link to comment https://www.insanelymac.com/forum/topic/242427-solved-boot-snow-leopard-from-esata-jmb360/#findComment-1622690 Share on other sites More sharing options...
MacUser2525 Posted January 14, 2011 Share Posted January 14, 2011 Hey guys... so, isn't there anyone who is able to boot his Snow Leopard using eSATA? Some additional info: I'm using the following kexts in the Extra/Extensions (Chameleon 2.0 RC4) AHCIPortInjector.kext ATAPortInjector.kext IOAHCIBlockStorageInjector.kext JMicronATAInjector.kext Disabler.kext As said in my original post above, if I connect the HDD via USB2 it's able to boot.. Waiting for boot volume with UUID CDA42...... ... .... Got boot device = IOService ... But if I connect the same HDD drive using eSATA cable it loads the kernel, initialize it and then it hangs just after the "Waiting for boot volume" message... I get "Still waiting for root device". So I'm assuming there is some problem with eSATA device detection at boot time. Is there some way to force the device detection using the EFI strings in chameleon? Or they are just for video cards? PLEASE HEEELP! Try this .kext perhaps removing the ATA one you have as they may conflict. JMicron36xeSATA.kext.zip Quote Link to comment https://www.insanelymac.com/forum/topic/242427-solved-boot-snow-leopard-from-esata-jmb360/#findComment-1622918 Share on other sites More sharing options...
Sandokan7100 Posted January 16, 2011 Author Share Posted January 16, 2011 Try this .kext perhaps removing the ATA one you have as they may conflict. JMicron36xeSATA.kext.zip It didn't work, but I've SOLVED using JMicronATA.kext from EmpireEFI 1.085. I've edited my original post with more details. Thanks! Quote Link to comment https://www.insanelymac.com/forum/topic/242427-solved-boot-snow-leopard-from-esata-jmb360/#findComment-1623710 Share on other sites More sharing options...
MacUser2525 Posted January 16, 2011 Share Posted January 16, 2011 It didn't work, but I've SOLVED using JMicronATA.kext from EmpireEFI 1.085. I've edited my original post with more details. Thanks! Ah good to see you got it, you may want to zip them .kexts up (right click then Compress option will do it) and post as attachment(s) here so others can find the total solution in this thread itself instead of having to search around for them. Quote Link to comment https://www.insanelymac.com/forum/topic/242427-solved-boot-snow-leopard-from-esata-jmb360/#findComment-1623982 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.