MSFN Forum: Slipstreaming Intel Matrix Storage Drivers in XP Pro - MSFN Forum

Jump to content


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Slipstreaming Intel Matrix Storage Drivers in XP Pro Rate Topic: -----

#1 User is offline   bdwilcox 

  • Group: Members
  • Posts: 9
  • Joined: 29-December 08

Posted 30 December 2008 - 04:13 PM

I was hoping someone on this board could help me with slipstreaming Intel's latest Matrix Storage driver into an unattended XP install CD. I am looking to slipstream the files as TEXTMODE drivers, which should make the task easier. Unfortunately, all efforts to do this so far have resulted in failure.

First, before I tried anything, I slipstreamed SP3 into XP, copied my WINNT.SIF file to the I386 directory of the CD, and created a bootable XP unattended install disk that works like a charm. So I know the basic disk works.


Second, I modified this base XP install CD as such:

-At the root of the CD I created a directory called $OEM$ and then created a folder within that called TEXTMODE. Inside this $OEM$\TEXTMODE folder I copied the files from Intel's latest Matrix Storage F6 floppy driver (f6flpy3286.zip):
http://downloadcenter.intel.com/Detail_Des...amp;PrdMap=2842

TXTSETUP.OEM
iaahci.cat
iaAHCI.inf
iastor.cat
iaStor.inf
IaStor.sys


-In the I386 directory of the CD, I created a folder called $OEM$ and once again, copied the contents of Intel's latest F6 floppy (f6flpy3286.zip).

Note: So I now have two directories that hold the contents of Intel's latest F6 floppy: $OEM$\TEXTMODE and I386\$OEM$


-Then I modified the WINNT.SIF by changing the line OEMPreinstall=NO to OEMPreinstall=YES


-Finally, I added the [MassStorageDrivers]* and [OEMBootFiles] sections to the WINNT.SIF as below:

[MassStorageDrivers]
	"Intel(R) ESB2 SATA AHCI Controller" = OEM
	"Intel(R) ICH7R/DH SATA AHCI Controller" = OEM
	"Intel(R) ICH7M/MDH SATA AHCI Controller" = OEM
	"Intel(R) ICH8R/DH/DO SATA AHCI Controller" = OEM
	"Intel(R) ICH8M-E/M SATA AHCI Controller" = OEM
	"Intel(R) ICH9R/DO/DH SATA AHCI Controller" = OEM
	"Intel(R) ICH9M-E/M SATA AHCI Controller" = OEM
	"Intel(R) ICH10D/DO SATA AHCI Controller" = OEM
	"Intel(R) ICH10R SATA AHCI Controller" = OEM
	"Intel(R) ESB2 SATA RAID Controller" = OEM
	"Intel(R) ICH7R/DH SATA RAID Controller" = OEM
	"Intel(R) ICH7MDH SATA RAID Controller" = OEM
	"Intel(R) ICH8R/ICH9R/ICH10R/DO SATA RAID Controller" = OEM
	"Intel(R) ICH8M-E/ICH9M-E SATA RAID Controller" = OEM
	"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]
	TXTSETUP.OEM
	iaahci.cat
	iaAHCI.inf
	iastor.cat
	iaStor.inf
	IaStor.sys


*The OEM entries under [MassStorageDrivers] came from the [SCSI] section of the TXTSETUP.OEM file.


-After all this, I make a bootable CD like before and test it.


Now, technically, this should work. But each time I've tried it, I get the following error during XP's TEXTMODE setup period:

File TXTSETUP.OEM caused an unexpected error (18) at line 1747 in d:\xpsp\base\boot\setup\oemdisk.c.


Does anyone know what needs to be modified to get this to work? I'd rather not use a program like nLite since it makes changes I'm not aware of and I would like to keep this as simple and straightforward as possible.


#2 User is offline   SyntaxError 

  • Member
  • PipPip
  • Group: Members
  • Posts: 150
  • Joined: 04-January 05
  • OS:none specified
  • Country: Country Flag

Posted 30 December 2008 - 08:40 PM

Your method is overly complicated and unnecessary.

Do yourself a favor and use nLite. It will slipstream the Intel mass storage/sata controller drivers and they will be installed during text mode setup and you won't have to edit anything.

I just did this to a brand new Compaq Presario CQ50-209WM laptop yesterday when I dumped Vista and installed XP. Works like a charm.

This post has been edited by SyntaxError: 30 December 2008 - 08:42 PM


#3 User is offline   bdwilcox 

  • Group: Members
  • Posts: 9
  • Joined: 29-December 08

Posted 30 December 2008 - 09:25 PM

Actually, my method is the Microsoft prescribed method (see Microsoft's Deploy.chm) and is the simplest of all the methods described on these boards. The reason I don't want to use nLite is that this is a business build that I will be 100% responsible for and I need to know all the changes made to the installation folders; nLite makes undocumented changes which I can't have with such an important build.

#4 User is offline   cdob 

  • Friend of MSFN
  • PipPipPipPipPip
  • Group: Members
  • Posts: 877
  • Joined: 29-September 05

Posted 31 December 2008 - 06:30 AM

View Postbdwilcox, on Dec 30 2008, 05:13 PM, said:

In the I386 directory of the CD, I created a folder called $OEM$ and once again, copied the contents of Intel's latest F6 floppy (f6flpy3286.zip).

Run IsoBuster, open the ISO image.
Choose files system ISO9660 : the red ISO label.

Does exist file \I386\$OEM$\TXTSETUP.OEM ?

Case is importand and watch for $ sign.

#5 User is offline   bdwilcox 

  • Group: Members
  • Posts: 9
  • Joined: 29-December 08

Posted 31 December 2008 - 08:10 PM

Will look tonight when I get home and report back.

#6 User is offline   SyntaxError 

  • Member
  • PipPip
  • Group: Members
  • Posts: 150
  • Joined: 04-January 05
  • OS:none specified
  • Country: Country Flag

Posted 02 January 2009 - 12:31 AM

View Postbdwilcox, on Dec 30 2008, 10:25 PM, said:

Actually, my method is the Microsoft prescribed method (see Microsoft's Deploy.chm) and is the simplest of all the methods described on these boards. The reason I don't want to use nLite is that this is a business build that I will be 100% responsible for and I need to know all the changes made to the installation folders; nLite makes undocumented changes which I can't have with such an important build.

MS's method is hardly simple. If it's so simple, then why are you having such trouble with it?

The only thing nLite does in this case is adds a couple folders (\i386\NLDRV\001) with the drivers cab-compressed and adds the appropriate entries in \i386\TXTSETUP.SIF as shown below.

[SourceDisksNames.x86]
1984 = %cdname%,%cdtagfilei%,,"\i386\NLDRV\001"

[WinntDirectories]
1984 = NLDRV\001

[SourceDisksFiles.x86]
iaahci.cat = 1984,,,,,,,1984,0,0
iaahci.inf = 1984,,,,,,,1984,0,0
iastor.cat = 1984,,,,,,,1984,0,0
iastor.inf = 1984,,,,,,,1984,0,0
iastor.sys = 1984,,,,,,,1984,0,0

and a comment at the very end of the file:
; Customized by nLite - www.nliteos.com


So what "undocumented changes" are you referring to?

I can understand that your work might prefer using the MS way and that you are responsible for the results, but even a chimp can see that MS's way is overly complicated and unnecessary.

The fact that MS's method requires 2 copies of the driver files and the trouble you are having with such an allegedly "simple" method should have clued you in to this.

nLite will do the job in 4 seconds. Try it out on your own and you will see. Then show your boss how fast it is and how good it works. He or she might then allow you to use nLite and make your job a little bit easier.

This post has been edited by SyntaxError: 02 January 2009 - 12:49 AM


#7 User is offline   bdwilcox 

  • Group: Members
  • Posts: 9
  • Joined: 29-December 08

Posted 05 January 2009 - 04:57 PM

nLite adds a lot more than what you're showing. I used CDCheck to do a comparison between the XP source files and XP with the slipstreamed nLite driver; nLite changed a whole host of source files as well as installing a custom executable helper file.

Microsoft's method is simple, but unfortunately it's also broken (as usual). I guess at this point I shouldn't really be surprised by that, coming from Microsoft and all.

These machines are being loaded for government certification and compliance. I can't let any non-official Microsoft process run on them, especially one I'm not aware of and can't document.

Oh, well, it was worth a try. Thanks anyway. -bw

#8 User is offline   krose 

  • Junior
  • Pip
  • Group: Members
  • Posts: 78
  • Joined: 05-September 05
  • OS:Windows 7 x64
  • Country: Country Flag

Posted 05 January 2009 - 05:44 PM

I followed the instructions in the sticky here and it worked fine for me. It takes a bit of time and requires editing txtsetup.sif but if you are documenting the process then it should be OK for you.

Edit: this is not a Microsoft documented process but I don't know what else you can do.

This post has been edited by krose: 05 January 2009 - 05:47 PM


#9 User is offline   SyntaxError 

  • Member
  • PipPip
  • Group: Members
  • Posts: 150
  • Joined: 04-January 05
  • OS:none specified
  • Country: Country Flag

Posted 05 January 2009 - 06:32 PM

View Postbdwilcox, on Jan 5 2009, 04:57 PM, said:

nLite adds a lot more than what you're showing. I used CDCheck to do a comparison between the XP source files and XP with the slipstreamed nLite driver; nLite changed a whole host of source files as well as installing a custom executable helper file.

Microsoft's method is simple, but unfortunately it's also broken (as usual). I guess at this point I shouldn't really be surprised by that, coming from Microsoft and all.

These machines are being loaded for government certification and compliance. I can't let any non-official Microsoft process run on them, especially one I'm not aware of and can't document.

Oh, well, it was worth a try. Thanks anyway. -bw

The gov't bit explains it. I wasn't aware an entire cd could be compared. I'll definitely check out that tool. Thanks. I seem to learn something new everyday.

At any rate, you could try the method krose linked to. It's the same as nLite's method, without those undocument changes. I might try it myself sometime.

**holy crap, you weren't kidding about those undocumented changes. I just compared an nLite'd share and a non-nLite'd share. Most of the differences were just where nLite uncabbed about 100 files in \i386, but there were changes in the registry hive files and a few other places as well that nLite had no business messing with. It's time I learn a few manual tricks I guess. Thanks.

This post has been edited by SyntaxError: 05 January 2009 - 07:12 PM


#10 User is offline   cdob 

  • Friend of MSFN
  • PipPipPipPipPip
  • Group: Members
  • Posts: 877
  • Joined: 29-September 05

Posted 06 January 2009 - 02:37 AM

bdwilcox said:

Microsoft's method is simple, but unfortunately it's also broken (as usual).

Method does work. However there are addional requirements.

Setupldr.bin read CD at textmode setup.
Setupldr.bin read file system ISO9660 only. A Joliet file system is ignored that early.

$ is a invalid char according to ISO9660 Level 1.
You have to break ISO9660 anyway, to create a NT based boot CD.

cdimage -j:
This creates two file systems: ISO9660 and Joliet. A $ flips to a _ at ISO9660.
\I386\_OEM_\TXTSETUP.OEM : ISO9660
\I386\$OEM$\TXTSETUP.OEM : Joliet

Setupldr.bin read ISO9660 file system and dosn't find \I386\$OEM$\TXTSETUP.OEM.

Create \I386\$OEM$\TXTSETUP.OEM at ISO9660 file system.
Don't use cdimage -j.

Edited: Quote changed

@SyntaxError
Sorry for the quote confusion. It's a kind of syntax error.

This post has been edited by cdob: 06 January 2009 - 01:02 PM


#11 User is offline   SyntaxError 

  • Member
  • PipPip
  • Group: Members
  • Posts: 150
  • Joined: 04-January 05
  • OS:none specified
  • Country: Country Flag

Posted 06 January 2009 - 08:06 AM

That's not my quote.

#12 User is offline   bdwilcox 

  • Group: Members
  • Posts: 9
  • Joined: 29-December 08

Posted 06 January 2009 - 12:57 PM

To cdob,

To make the CD I used the following steps:

I used ISOBuster to extract the Microsoft Corporation.img file.
I then used Nero Burning Rom version 6.6.1.115d with the following settings to burn the XP files to a CD:

On the Boot tab of Nero Burning ROM:
-"Image File" is pointed to the Microsoft Corporation.img file
-Under Expert Settings, Emulation is set to No Emulation, Load Segement of Sectors is set to 07C0, and Number of Loaded Sectors is set to 4

On the ISO tab of Nero Burning ROM:
-Data Mode is set to Mode 1
-File System is set to ISO 9660: 1999 since this is the only one that would allow "$" to show up instead of "_" when I looked at the final CD under ISOBuster. After selecting this setting, every option becomes greyed out except the "Allow more than 255 characters in path".

So let me tell you what I tried.

I tried the above settings with the "Allow more than 255 characters in path" both checked and unchecked. It still failed.

I then tried changing the the File System from ISO 9660: 1999 to both ISO 9660 and ISO 9660+Joliet. With both I set "File Name Length (ISO)" to "Max. of 31 chars (Level 2)". I left "Character Set (ISO)" on ISO 9660 (standard ISO CD-ROM). All ungreyed "Relax Restrictions" checkboxes were also selected. All of these attempts failed.

What settings in Nero should I be using? Or should I be using something other than Nero or a different version of Nero to burn the final CD?

#13 User is offline   bdwilcox 

  • Group: Members
  • Posts: 9
  • Joined: 29-December 08

Posted 06 January 2009 - 02:03 PM

Interestingly, I just tested a number of Nero configurations for CDs containing folder names with dollar signs ("$") and filenames with spaces. At the root of the CD I used a file called Office 2003 Updates.txt. I then created an $OEM$ folder and added the same file. Here's my results:

These tests were conducted on Nero Burning ROM version 6.6.1.115d. Data Mode was set on Mode 1 for all tests. File Name Length (ISO) was always set on Max. of 31 chars (Level 2) when the box was ungreyed. Any ungreyed "Relax Restrictions" checkboxes were checked.

File System: ISO 9660 only
Character Set: ISO 9660 (Standard ISO CD-ROM)
Results: ISO File System Only (No Joliet), "$"s changed to "_"s, and spaces in file names changed to "_"s.

File System: ISO 9660 only
Character Set: DOS
Results: ISO File System Only (No Joliet), "$"s remain intact, but spaces in file names changed to "_"s.

File System: ISO 9660 only
Character Set: ASCII
Results: ISO File System Only (No Joliet), "$"s and spaces in file names unchanged and intact.

File System: ISO 9660+Joliet
Character Set: ISO 9660 (Standard ISO CD-ROM)
Results: For ISO File System, "$"s changed to "_"s, and spaces in file names changed to "_"s. For Joliet File System, "$"s retained intact and spaces in file names untouched.

File System: ISO 9660+Joliet
Character Set: DOS
Results: For ISO File System, "$"s left intact, but spaces in file names changed to "_"s. For Joliet File System, "$"s retained intact and spaces in file names untouched.

File System: ISO 9660+Joliet
Character Set: ASCII
Results: For ISO File System, "$"s retained intact and spaces in file names untouched. For Joliet File System, "$"s retained intact and spaces in file names untouched.

File System: ISO 9660:1999
Character Set: Greyed Out
Results: For ISO File System, "$"s and spaces in file names unchanged and intact. Joliet file system not present.

Seems like the only Nero Burning ROM settings that won't tinker with dollar signs ("$") and spaces in filenames and foldernames for both the ISO and Joliet File systems is a "File System" set at "ISO 9660+Joliet" and a "Character Set (ISO)" set on"ASCII" .

I'll try these out when I get home.

#14 User is offline   cdob 

  • Friend of MSFN
  • PipPipPipPipPip
  • Group: Members
  • Posts: 877
  • Joined: 29-September 05

Posted 06 January 2009 - 03:41 PM

View Postbdwilcox, on Jan 6 2009, 01:57 PM, said:

I then used Nero Burning Rom version 6.6.1.115d with the following settings to burn the XP files to a CD:

I don't use Nero Burning Rom. I don't dare to burn italian capital city ;)

Quote

On the Boot tab of Nero Burning ROM:
-"Image File" is pointed to the Microsoft Corporation.img file
-Under Expert Settings, Emulation is set to No Emulation, Load Segement of Sectors is set to 07C0, and Number of Loaded Sectors is set to 4

On the ISO tab of Nero Burning ROM:
-Data Mode is set to Mode 1
-File System is set to ISO 9660: 1999
Sounds reliable, should work.


Break, let me try myself again:

Previous mentioned iastor v8.6 floppy files.

Your settings to winnt.sif
[Unattended]
OemPreinstall=Yes
DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore
DriverSigningPolicy=Ignore
OemSkipEula=Yes

[Data]
MsDosInitiated="0"

[MassStorageDrivers]
	"Intel(R) ESB2 SATA AHCI Controller" = OEM
	"Intel(R) ICH7R/DH SATA AHCI Controller" = OEM
	"Intel(R) ICH7M/MDH SATA AHCI Controller" = OEM
	"Intel(R) ICH8R/DH/DO SATA AHCI Controller" = OEM
	"Intel(R) ICH8M-E/M SATA AHCI Controller" = OEM
	"Intel(R) ICH9R/DO/DH SATA AHCI Controller" = OEM
	"Intel(R) ICH9M-E/M SATA AHCI Controller" = OEM
	"Intel(R) ICH10D/DO SATA AHCI Controller" = OEM
	"Intel(R) ICH10R SATA AHCI Controller" = OEM
	"Intel(R) ESB2 SATA RAID Controller" = OEM
	"Intel(R) ICH7R/DH SATA RAID Controller" = OEM
	"Intel(R) ICH7MDH SATA RAID Controller" = OEM
	"Intel(R) ICH8R/ICH9R/ICH10R/DO SATA RAID Controller" = OEM
	"Intel(R) ICH8M-E/ICH9M-E SATA RAID Controller" = OEM
	"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]
	TXTSETUP.OEM
	iaahci.cat
	iaAHCI.inf
	iastor.cat
	iaStor.inf
	IaStor.sys


XP files are at directory Thinkpad.
Iastor floppy files copied to I386\$OEM$. Read: there is a I386\$OEM$\TXTSETUP.OEM

Boot sector file (Microsoft Corporation.img) copy and renamed to Thinkpad\bootsect.bin.
That's file bootsect.bin, not BOOTSECT.BIN.

ISO image created: mkIsoThinkpad.cmd
mkisofs -iso-level 3 -U -D -force-uppercase -volid "XP_SLP_LENOVO" ^
 -b bootsect.bin -hide bootsect.bin -hide boot.catalog ^
 -no-emul-boot -boot-load-size 4 ^
 -graft-points ^
 -o Lenovo_OEM.iso ^
  Thinkpad /$OEM$/Textmode/=Thinkpad\I386\$OEM$
Read directory Thinkpad goes to CD root.
And directory Thinkpad\I386\$OEM$ goes to CD \$OEM$\TEXTMODE.

http://smithii.com/f...otcd.ru-w32.zip

Virtual machine does boot. Iastor files are copied to hard disk.
Real machine does boot. There is a hard disk connected to iastor. Installation F3 aborted at partition menu.

#15 User is offline   bdwilcox 

  • Group: Members
  • Posts: 9
  • Joined: 29-December 08

Posted 07 January 2009 - 03:56 PM

Woohoo! Nailed it. My settings in Windows were correct, but my settings in Nero Burning ROM were off. After that tip-off from cdob and a little experimentation, I figured out that I had to set Nero to burn in the ISO 9660+Joliet "File System" and the ASCII "Character set (ISO)" on Nero's "ISO" tab. Otherwise, either the dollar signs in the $OEM$ directory name were changed to underscores, the spaces in file/directory names were changed to underscores, or the Joliet file system was omitted completely. It works now and works well. And it wasn't Microsoft's fault...shocking!

So cdob, thank you very much for all the help and pointing me in the right direction. Major kudos to you, sir!

krose, thanks for the tip. I would have tried it next if this didn't work, but was a little leery since it wasn't officially Microsoft sanctioned.

SyntaxError, yeah I was kind of shocked by how much nLite tinkered with. I might use it for my own personal work, but not for sensitive installs.

Thanks all

-bd

#16 User is offline   Deathtoll 

  • Group: Members
  • Posts: 2
  • Joined: 19-March 09

Posted 19 March 2009 - 10:38 PM

Great post! Thank you guys for posting your knowledge here!

This thread has been very helpful. I have learnt a lot about installing Mass Storage devices during the TEXTMODE portion of Windows XP Pro setup from CD.

I have been trying to run up Lenovo M58 machines that do not have an ATA compatible mode and MUST run in AHCI mode and I have not been able to find a method that works. Until now!

For me, two things are essential to get this to work:
  • The ISO character set MUST exist on the CD
  • The TEXTMODE directory MUST be in the i386 AND root directory
I tried to use Nero to burn the CD using your settings but it kept failing to boot.

All my system images are created using CDImage GUI. It works, is simple and creates an ISO which can be burnt and modified just about anywhere.

I use the CDImage GUI method described in MSFN's Unattended Windows but with a few modifications.
 
cdimage -h -n -c -bC:\boot.img -m -lXPVOL_EN 

This will ensure that the character set can be read by the TEXTMODE portion. File names beyond the DOS 8.3 format and in ANSI.
All files will be written in capitals, but at least be readable by both portions of setup.

Hopefully this thread will help others trying to install AHCI hardware.

#17 User is offline   fuselage 

  • Group: Members
  • Posts: 1
  • Joined: 29-May 09

Posted 09 December 2009 - 07:27 AM

View PostDeathtoll, on Mar 20 2009, 04:38 AM, said:

I use the CDImage GUI method described in MSFN's Unattended Windows but with a few modifications.
cdimage -h -n -c -bC:\boot.img -m -lXPVOL_EN

This will ensure that the character set can be read by the TEXTMODE portion. File names beyond the DOS 8.3 format and in ANSI.
All files will be written in capitals, but at least be readable by both portions of setup.

I've found that the ANSI switch (-c) is not necessary and adding the -d switch doesn't force the conversion of lowercase filenames to uppercase. My ISO image has no Joliet extensions but works fine and I haven't come across any problems with.

This is what I use to create the image:
CDIMAGE.EXE -h -n -d -x -o -m -bboot.img -lWINXP xpcd xpcd.iso


Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2013 msfn.org
Privacy Policy