PDA

View Full Version : AHCI/SATA Hard Disk not recognized!


iPixel
03-10-2011, 07:20 PM
Hello everyone,

I'm hopelessly making this thread in case someone could help me detect/fix this annoying issue...
Thanks a lot in advance for taking some of your time to read my post... ANY reply is greatly appreciated!!


Problem

My AHCI-enabled SATA Hitachi hard disk is not recognized. When I try to boot from my installation, this results in a "Still waiting for root device" error.

However, the hard disk DOES get recognized most of the time when i boot with safe mode!


My ideas and attempts

I've noticed a (maybe) interesting difference between the case where my HDD gets detected and the case where it's not detected:
Whenever it is detected, I can see (in the System information) the extension "IOAHCIBlockStorage" is loaded.
Whenever it is not detected, that kext is NOT present in the list of loaded kexts.

I added my SATA controller's device id (0x43911002) to AppleAHCIPort.kext. Now it doesn't show up as "Unknown AHCI controller" anymore, but it didn't fix the issue.

I tried every combination of AHCIPortInjector.kext and IOAHCIBlockStorageInjector.kext, supplied with Chameleon. Tried putting them both in /Extra/Extensions and /System/Library/Extensions. They seem to do absolutely nothing. They also don't show up in the list of loaded kexts.

I've tried every fix I could find related to "Still waiting for root device". No success.

I've found, after 3 days of intensive googling, ONE single similar case: http://www.insanelymac.com/forum/index.php?showtopic=187856
I created a modified DSDT as described by the posted in that thread, but to no avail.

If it can help, this is what an ioreg -b -f result looks like (limited to SATA, didn't include details):
SATA@11
+-o AppleAHCI
+-o PRID@0
+-o PRT1@1
+-o IOAHCIDevice@0
+-o IOSerialATAPI
+-o IOSCSIPeripheralDeviceNub
+-o IOSCSIPeripheralDeviceType5
+-o IODVDServices
+-o IODVDBlockStorageDriver
+-o SCSITaskUserClientIniter

When my HDD does get detected, a path to my HDD is shown under PRID@0. Here you can see that node is empty...

I found PRID in my DSDT, and tried applying a fix known as "Native AHCI SATA" (came with DSDTSE), but again, without result. I may not have done it correctly though... I don't understand all the device names and methods (like PRID, what's that?)...


Laptop specifications

HP G62-series Notebook

AMD Athlon II P320 Dual-Core Processor
Northbridge AMD 785GX rev. 00
Southbridge AMD SB800 rev. 40
SATA Controller details:
- Location: bus 0 (0x00), device 17 (0x11), function 0 (0x00)
- Vendor: 0x1002
- Model: 0x4391
Bootloader: Chameleon RC4 with/without (tried both) PC_EFI 10.6 boot file
Modified (added id 0x43911002) AppleAHCIPort.kext, added disabler.kext, fakesmc.kext, Apple's PS2 kexts
Other kexts are the original unmodified ones
(For a detailed hardware report of my notebook, see http://px-online.0sites.org/iPixel.html)


HDD Structure

MBR disk

disk0s1: An NTFS system partition made by HP
disk0s2: Windows 7, NTFS
disk0s3: Snow leopard partition
disk0s4: Extended partition (container for the partitions listed below)
disk0s5: Logical partition, ext4, Ubuntu partition
disk0s6: Logical partition, swap, used by Ubuntu
disk0s7: Logical partition: ntfs, a recovery partition made by HP

I don't think the fact that my HDD contains an extended partition is the cause of this trouble, but correct me if I'm wrong (then I'll say bye bye to ubuntu). Note that OSX is running on a primary partition, so there should be no issues...

I'm so close to a working hackbook pro, but I'm running out of ideas... The OSX86 community is really my last hope!!

Imkantus
03-13-2011, 03:18 PM
How about using IDE mode with AppleATIATA.kext as device driver - my experience is that this works better on AMD/ATI chipsets then AHCI...

iPixel
03-22-2011, 09:47 PM
Thanks for your answer and please excuse my late reaction...
I'll try your suggestion... if I can... through a DSDT patch, because my BIOS is locked. No way to modify any advanced feature (it's an HP notebook...). :(

scififan68
04-08-2011, 01:43 AM
If you can only use AHCI, than download this kext(attached), which I added the device id you posted. Install to /Extra/Extensions then rebuild kext caches, reboot and no more waiting for root device! :) Tested this on my AMD board with AHCI enabled.