MeltIT
22Jan/102

Dell Latitude 2100: AHCI en Windows XP 32bit/64bit (ICH7M/ICH8/ICH9/ICH10 y otros chipsets)

Mi Dell Latitude 2100, vino Windows XP Home Edition SP3 con el AHCI funcionando.

Luego de una reinstalación del sistema, queria instalarle los drivers AHCI nuevamente. El tema es que, oficialmente, se necesita Windows Vista/7 para el AHCI. Esto es una limitación del instalador unicamente. En la pagina de drivers de Dell de la Latitude 2100, entre otros drivers, esta el de Intel Matrix Storage desde Dell, este es para 32bits, el .exe es un auto-extraible y se extrae a un directorio. Para XP64, antiguamente descargando desde Intel, el instalador desde linea de comandos con el modificador "-a", permitia extraer los archivos. Como testee actualmente, esto ya no es posible. Tengo guardado de hace mucho tiempo el viejo instalador donde si se podia, y extraje los drivers de 64bit y los subi.

1) Luego de haber instalado el sistema sin AHCI, descargar los drivers correspondientes de arriba y extraerlos en un directorio a gusto.
2) COPIAR el archivo iaStor.sys desde el directorio de donde se extrajo a "C:\Windows\System32\drivers\"
3) Esto no se si es necesario, pero yo le di boton derecho -> instalar, a los dos .inf. Creo que no es necesario.
4) Abrir el bloc de notas y crear un documento nuevo con el siguiente contenido (para la Latitude 2100, más abajo explico para otros chipsets):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27c5&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_27c5&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001

5) Guardarlo con el nombre que desees, pero de extensión utilizar .reg, ej, ahci.reg (TIP: Hay que poner guardar como "Todos los archivos", sino se guardara como .reg.txt).
6) Doble click al archivo guardado y pedira confirmación para insertar claves en el registro, poner que si.
7) Reiniciar y configurar en SETUP del BIOS el modo AHCI (Consultar manual del mother o investigar). Salvar cambios e iniciar Windows.
8 ) Si el sistema inicia correctamente (sin BSOD, pantalla azul), va a pedir instalar nuevo driver, poner "Seleccionar ubicación manualmente" e indicar el directorio donde se extrayeron previamente los archivos.

Esto funciona efectivamente para la Latitude 2100 como probe. Para otros chipsets tambien funciona, solamente hay que reemplazar "DEV_27c5" del archivo .reg (aparece 2 veces), por lo siguiente:

ICH6R - DEV_2652
ICH6M - DEV_2653
ICH7R - DEV_27C1
ICH7DH - DEV_27C1
ICH7M - DEV_27C5
ICH10D/DO - DEV_3A02
ICH10R - DEV_3A22
ICH9M-E/M - DEV_2929
ICH9R/DO/DH - DEV_2922
ICH8M-E/M - DEV_2829
ICH8R/DH/DO - DEV_2821
ESB2 - DEV_2681

Personalmente, en un Gigabyte EP35-DS3L (ICH9), funciono con "DEV_2923". Aunque hay que agregarle una pequeña modificación al .inf, que es reemplazar la cadena "2821" por "2923" en todas sus apariciones en el IAACHI.inf. Esto unicamente para el gigabyte (u otros ICH9?) porque el .inf no trae información "del 2923", y asumo que no se va a poder hacer el paso de instalar los drivers una vez que funciona.

En caso de que no funcione alguno de los codigos, investigar en internet o probar otro de chipsets similares. Creo que el ICHxR, es para RAID unicamente.

Si obtiene BSOD (pantalla azul), es porque el .reg no es el correcto para el driver.

Más info útil en un thread. Tanto el primer post, como el #15 tienen información util para complementar.