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.

Comments (2) Trackbacks (1)
  1. La información no es del todo correcta.
    En 1º lugar decir que sí puedes extraer los drivers del ejecutable, pero con algún programa como UNIEXTRACT, después ya si deja extraer con el parámetro -a. Gracias microsoft por putear a la peña…

    En 2º lugar No es necesario instalar los INF porque eso es precisamente lo que hace el .REG.
    Lo ideal es que funcionasen los iNF y ya está, pero el método es necesario porque no se detecta el harware y, de nuevo, los de microsoft hacen de la suyas.

    El ICH9R/DO/DH no es solo para Raid es AHCI y RAID.

    Por último revisad bien la versión de los drivers que os bajais si quereis tener los últimos ya que las versiones varian dependiendo del lenguaje seleccionado ??? (esta vez son los de intel) ;)

  2. 1) Antiguamente se podía con el -a, en la ultima versión ya no.
    2) No lo niego, yo puse todos los pasos que hice, puede que algunos esten demás, pero no puedo comprobarlo (tendría que empezar el proceso de cero).


Leave a comment