Tuesday, October 9, 2007

Installing WinXP on a Dell D630 laptop that came with Vista

*UPDATED 12/19/08* - There are now three ways to go about this. See below for the updated link
Seems like it would be straightforward and easy. I mean, we ghost image and load up latitudes every week with no problem. Lo and behold, a new curve ball from Intel/Microsoft/Dell - "Flash Cache" (http://en.wikipedia.org/wiki/Intel_Turbo_Memory) and "AHCI"(http://en.wikipedia.org/wiki/AHCI). If these two things are enabled, then you get a pretty Blue Screen during bootup. Apparently the new Flash Cache is like the "ReadyBoost" feature that we see on newer USB drives where data is cached from the hard drive to speed up access. In this case, the cache is built into the laptop hardware and I'd imagine is a good deal faster. Unfortunately XP doesn't seem to have a clue what to do with it and it is a feature that is unlikely to be supported in XP as MS is really pushing Vista. And due to legacy apps we have to support, we're stuck with good old rock solid XP for now.

Before I ramble on too far, here's the skinny of it, go into BIOS -> SATA Operations and set the mode to ATA instead of AHCI. If Flash Cache is enabled, you have to turn that off first in BIOS before it'll let you modify the AHCI setting. Then Voila, XP is happy.

Updated 12/19/08 Alternately you can build a XP CD with the Intel Storage Manager drivers integrated into it. I recommend using nLite and follow the instructions at this site:
http://www.msfn.org/board/index.php?showtopic=107504
I have tested this and was able to create a XP SP2 volume cd with these drivers integrated.

Updated: See link in the first comment below to the Dell forums from. (Thanks go out to 'bro_tayo' for his workaround. I tested this out on a D630 this morning (2/1/08) and was able to get it to run now with AHCI and Flash Cache enabled. I also went ahead and installed the latest Intel Storage Manager on top of it just as a precaution. The version that Dell and Lenovo currently are pushing is 7.0.0.1020 whereas Intel has 7.8.0.1012.

Links:
Bro_Tayo's Post:

http://www.dellcommunity.com/supportforums/board/message?board.id=insp_harddrive&thread.id=61287&c=us&l=en&cs=19&s=dhs

Lenovo page for the procedure mentioned in Bro_Tayo's post:

http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-62909
(That link appears to be dead.) Possible alternate:
http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-70477


Intel's latest version of the Storage Manager:

http://downloadcenter.intel.com/filter_results.aspx?strTypes=all&ProductID=2101&OSFullName=Windows*+XP+Professional&lang=eng&strOSs=44&submit=Go%21#UTL

12 comments:

Anonymous said...

Check out this webpage. The drive is noticeably faster with it enabled.

http://www.dellcommunity.com/supportforums/board/message?board.id=insp_harddrive&thread.id=61287&c=us&l=en&cs=19&s=dhs

Gnawgnu said...

Cool, I'll have to try that one out tomorrow.

toby said...

Hi Gnawgnu,
Thank you for posting this information. You saved me much time. BTW, I started blogging a little while back on here for the same reason as you. I come across stuff that by posting, I might save someone else some time, just like you did for me today :)

Thanks,
AJ.

Dhondi said...

I LOVE THE INTERNET !! Where there's a will, there's a website. Thank you gnawgnu for your informative post. You've made me happy !!

Anonymous said...

My D630 came with XP not Vista. When I try to boot the XP installation CD and load the SATA AHCI drivers it blue screens just before it gets a chance to install XP. Am I missing the flash cache module?

Gnawgnu said...

Try going into Bios and look under the SATA options and look to see if Flash Cache even shows up and if it's enabled. I've had better luck with doing the install with the AHCI turned off and just running the workaround posted by Bro_Tayo

Greg said...

Could you estimate the performance increase you get from this? Also, sadly the file is no longer available on IBM's website. I've downloaded the Dell and Intel Matrix software/driver to try this on one of our many D630's, but am unable to "prepare" the install (just states hardware not supported)

Gnawgnu said...

To be honest, I don't think I noticed that much difference overall. It seemed to be a faster in some operations but overall it wasn't a blinding amount of difference.

I found another driver pack from lenovo that looks equivalent. Unfortunately I don't have time to test it out today but I did download it and all the necessary files appear to be in it.
http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-70477

Simon said...

Wow thanks. I've been using Acronis Snap deploy to image D620/30s for ages and the most recent refused to boot to XP - UNTIL I made the BIOS tweaks as suggested, and now all is working fine.

Anonymous said...

Used the latest driver on the Lenovo site. Works like a charm. Thanks!

Anonymous said...

The 2nd Lenovo mirror worked for me, thanks!

For reference/in case the mirror disappears - the "Prepare" folder contains a separate INF, and a batch file, the root folder just appears to be standard intel drivers - I expect this could be re-created w/ newer drivers.

Install.cmd:

rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 %~dp0imsm_pre.inf

imsm_pre.inf:

[Version]
Signature="$Chicago$"

[DefaultInstall]
AddReg=iaStorCritical.Reg, iaStorSvc.Reg
CopyFiles=iaStor_Driver_File

[DefaultUninstall]
DelReg=iaStorCritical.DelReg, iaStorSvc.DelReg

[DestinationDirs]
DefaultDestDir = 12 ; DIRID_DRIVERS

[iaStor_Driver_File]
iaStor.sys,,,0x00000010



;============================================================================================================
; ICH9M - Critical Boot Device Database
; %PCI\VEN_8086&DEV_2929&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_2929&CC_0106
; ICH8M - Critical Boot Device Database
; %PCI\VEN_8086&DEV_2829&CC_0106.DeviceDesc% = iaStor_mobl_Inst,PCI\VEN_8086&DEV_2829&CC_0106
; ICH7M - Critical Boot Device Database
; %PCI\VEN_8086&DEV_27C5&CC_0106.DeviceDesc% = iaStor_mobl_Inst,PCI\VEN_8086&DEV_27C5&CC_0106
;============================================================================================================
[iaStorCritical.Reg]
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2929&cc_0106,Service,%REG_SZ%,%IASTOR_SVC%
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2929&cc_0106,ClassGUID,%REG_SZ%,"{4D36E96A-E325-11CE-BFC1-08002BE10318}"
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2829&cc_0106,Service,%REG_SZ%,%IASTOR_SVC%
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2829&cc_0106,ClassGUID,%REG_SZ%,"{4D36E96A-E325-11CE-BFC1-08002BE10318}"
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27c5&cc_0106,Service,%REG_SZ%,%IASTOR_SVC%
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27c5&cc_0106,ClassGUID,%REG_SZ%,"{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[iaStorCritical.DelReg]
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2929&cc_0106
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2829&cc_0106
HKLM,System\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27c5&cc_0106


;============================================================================================================
; Storage Service - Parameter Set (ICH8M)
;============================================================================================================
[iaStorSvc.Reg]
HKLM,System\CurrentControlSet\Services\iastor,ErrorControl,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor,Group,%REG_SZ%,"SCSI miniport"
HKLM,System\CurrentControlSet\Services\iastor,Start,%REG_DWORD%,0
HKLM,System\CurrentControlSet\Services\iastor,Type,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor,DisplayName,%REG_SZ%,%*PNP0600.DeviceDesc%
HKLM,System\CurrentControlSet\Services\iastor,ImagePath,%REG_SZ%,"System32\Drivers\iaStor.sys"

HKLM,System\CurrentControlSet\Services\iastor,Tag,%REG_DWORD%,25
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port0,%AN%,%REG_DWORD%,0
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port0,%LPM%,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port0,%LPMSTATE%,%REG_DWORD%,0
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port0,%LPMDSTATE%,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port0,%GTF%,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port0,%DIPM%,%REG_DWORD%,1

HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port2,%AN%,%REG_DWORD%,0
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port2,%LPM%,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port2,%LPMSTATE%,%REG_DWORD%,0
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port2,%LPMDSTATE%,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port2,%GTF%,%REG_DWORD%,1
HKLM,System\CurrentControlSet\Services\iastor\Parameters\Port2,%DIPM%,%REG_DWORD%,1

[iaStorSvc.DelReg]
HKLM,System\CurrentControlSet\Services\iastor


[SourceDisksNames]
1=%ProdName%,,

[SourceDisksFiles]
imsm_pre.inf=1
iaStor.sys=1, ..\,

[Strings]
ProdName="IMSM Critical Database Preparation for Windows 2000/XP"
ProdVersion="1.0"

IASTOR_SVC="iaStor"
*PNP0600.DeviceDesc="Intel AHCI Controller"


INTEL="Intel"
AN="AN"
LPM="LPM"
LPMSTATE="LPMSTATE"
LPMDSTATE="LPMDSTATE"
GTF="GTF"
DIPM="DIPM"

;*******************************************
;Handy macro substitutions (non-localizable)
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER = 1
SERVICE_BOOT_START = 0
SERVICE_ERROR_NORMAL = 1
REG_SZ = 0x00000000
REG_EXPAND_SZ = 0x00020000
REG_DWORD = 0x00010001

Pavan Atri said...

Hey, that was of great help.
Many thanks