integrating RAID/SATA drivers
Sucka said:
Shouldn't need a driver unless you're using RAID. A single sata drive is plug'n'play.
I'm afraid not. I set my sata to onboard ide, but windows still wouldn't see the drive. However, I am using an unattended installation of windows, and I just recently found out that the unattended setup won't work if you do the f6/floppy thing, so after searching long and hard, I found a way to integrate the SATA/RAID drivers so I don't have to use a floppy on MSFN.org. I hated the Idea of having to use a floppy in the first place.
Creating a Microsoft Windows XP SP2 disc with Slipstreamed SATA/RAID Drivers
Michael Hollinger
This guide is intended to provide instruction on how to create a Microsoft Windows XP Professional with Service Pack 2 install CD with slipstreamed SATA/RAID drivers. By the completion of this guide, at a minimum the reader should be able to perform a Windows XP Professional install that does not require third party SATA/RAID drivers added via a floppy drive. This document is considered public information and may be only added to or used as reference in free or non-profit publications.
Those wishing to use this guide as reference material must contact Michael Hollinger at
[email protected].
1. Create a folder that you will use to store all drivers and intermediate files that you will be configuring before the deployment stage. For this document, we will use C:\preload.
2. Create the folders necessary to create the following directory structure:
C:\preload\$OEM$\$1\drivers\
3. Obtain drivers for your SATA and/or RAID controllers, preferably from the manufacturer of your motherboard or laptop
4. Extract the drivers to a folder named after the controller. I personally prefer the following structure:
C:\preload\$OEM$\$1\drivers\motherboard\controller \
Note that all subdirectories of drivers should be 8 characters or less. This ensures compatibility with DOS – the reasons for doing this will become apparent later in this document. For an example, there are two different Silicon Images drivers for the ABIT IC7-MAXIII motherboard, labeled Si3112r and Si3114r. In this case, the following folders would need to be created
C:\preload\$OEM$\$1\drivers\IC7_MAX3\Si3112r
C:\preload\$OEM$\$1\drivers\IC7_MAX3\Si3114r
If your drivers came in an *.exe setup program (such as with many Intel drivers), use a compression program like WinRAR to extract the files from the setup program.
5. At this point you should at least have the following files in their proper folder(s):
*.sys
*.cat
*.inf
Special case for Intel drivers: If you do not see these files, you should see (most likely) 2 *.cab files and a setup.exe file. If so, open a command window and run the following command:
c:\setup.exe –a –p c:\path
where path is a destination folder on the C: drive of your computer. Navigate to path with Explorer; the correct drivers are either in a XP labeled directory or in a directory simply marked drivers. Copy the contents of that folder. If you are following the example from before, you should place the contents in
C:\preload\$OEM$\$1\drivers\mobo\intel
Where mobo is the name you gave to your motherboard in step 4.
6. You can safely delete any readme files and delete any folders that contain drivers for other operating systems than XP, such as Windows 2000 drivers or Windows 98 drivers. If the drivers are for both 2000 and XP, keep those. To follow our examples from before, we should now have the following files in C:\preload$OEM$\$1\drivers\IC7_MAX3\Intel
TXTSETUP.OEM
iaAHCI.cat
iaStor.cat
iaAHCI.inf
iaStor.inf
iaStor.sys
We should now have the following files in C:\preload\$OEM$\$1\drivers\IC7_MAX3\Si3112r
SilSupp.cpl
TxtSetup.oem
si3122r.cat
Si3122r.inf
Si3122r.sys
SIWinAcc.sys
SiiSupp.vxd
…and so on with the rest of the controller drivers.
7. At this point, insert your original Windows XP with Service Pack 2 disc into your CD drive. Create the directory C:\myXP and copy the entire contents of your Windows disc to that folder.
8. Copy the $OEM$ folder and its contents from C:\preload to C:\myXP.
9. Now we will make compressed copies of all our *.sys files and copy them to the C:\myXP\I386 directory by using the MAKECAB utility. Open a command window and use the following command
MAKECAB C:\myXP\$OEM$\$1\drivers\mobo\controller\controller.sys C:\myXP\I386\controller.SY_
Where mobo is the name you gave to your motherboard, controller is the name you gave to your controller, and controller.sys is the name of the *.sys file. Note that you may have more than one *.sys file, but we are only concerned with the file whose name matches with the *.inf file. Looking back to the Si3112r directory from step 6, we would only use the file Si3112r.sys.
Repeat this step as necessary to add your *.sys files.
10. Navigate to and open the file C:\myXP\I386\txtsetup.sif in notepad or any other text editor (I prefer to use a coding development environment, such as Microsoft Visual Studio .NET, which ensures that the file is saved without any unintended formatting, such as word wrap).
11. Search for the first instance of [SourceDisksFiles], which should be located near line 189. Directly under the line [SourceDisksFiles], enter the following line
controller.sys = 1,,,,,,3_,4,1
where controller.sys is the name of one of the *.sys files we used in step 9. Make sure each entry is on its own line. Continuing our example, we have
[SourceDisksFiles]
iaStor.sys = 1,,,,,,3_,4,1
Si3112r.sys = 1,,,,,,3_,4,1
Si3114r.sys = 1,,,,,,3_,4,1
viasraid.sys = 1,,,,,,3_,4,1
A big portion of the entry seems very mysterious: What do all those numbers and commas mean? Using an image from raskren , we have the following description:
For our purposes, the first number seems to be able to arbitrarily be 100 or 1 according to what can be derived from the documents listed in the references section of this document.
I would argue with the image regarding the second number shown (3_). After conducting tests, the number refers to the file being compressed or uncompressed, and is important in telling the XP setup how to find the file. Since we compressed the files in step 9, we need to use 3_. If we instead just directly made a copy of the *.sys file into the I386 directory, we would instead use _x.
12. Search for [HardwareIdsDatabase], which should be near line 18800. Leave txtsetup.sif open. If you have a *.oem file associated with the *.sys file for the controller we wish to add, open it, otherwise open the *.inf file. The *.oem file, if available, contains a superset of the data we need for this step, but if it is not included, then the *.inf has all the information needed.
If using the *.oem file, find all the entries that begin with PCI\VEN_ which are surrounded with quotation marks. For those who are using the *.inf file, Scroll down to the [Strings] section, where you will find the same style of listings, however they are not in quotation marks. Ignore all lines that are preceded with %. Copy each entry up to and not including the period, so if the entry is
PCI\VEN_8086&DEV_2652&CC_0104.DeviceDesc = "Intel(R) 82801FR SATA RAID Controller"
Only copy
PCI\VEN_8086&DEV_2652&CC_0104
Place each copied entry in the [HardwareIdsDatabase in the txtsetup.sif file on separate lines and follow the entry with
= “sysfile”
Where sysfile is the name of the *.sys file associated with the *.oem or *.inf file you found the PCI\VEN_ entry in. Following our example, we should now have
[HardwareIdsDatabase]
PCI\VEN_8086&DEV_2652&CC_0104 = "iaStor"
PCI\VEN_8086&DEV_2652&CC_0106 = "iaStor"
PCI\VEN_8086&DEV_24DF&CC_0104 = "iaStor"
PCI\VEN_8086&DEV_25B0&CC_0104 = "iaStor"
PCI\VEN_1095&DEV_3112 = "Si3112r"
PCI\VEN_1095&DEV_3512 = "Si3112r"
PCI\VEN_1002&DEV_436E = "Si3112r"
PCI\VEN_1002&DEV_4379 = "Si3112r"
PCI\VEN_1002&DEV_437A = "Si3112r"
PCI\VEN_1095&DEV_3114 = "Si3114r"
PCI\VEN_1106&DEV_3149 = "viasraid"
Located within our txtsetup.sif file
Still looking at txtsetup.sif, search for [SCSI.load] which should be around line 19266. Add the following line for each *.sys file you are adding
sysfile = sysfile.sys,4
Where sysfile is the name of the *.sys file. Continuing our example, we have
[SCSI.Load]
iaStor = iaStor.sys,4
Si3112r = Si3112r.sys,4
Si3114r = Si3114r.sys,4
viasraid = viasraid.sys,4
13. Now find [SCSI] near line 21613. Add the following line for each *.sys file you are adding
sysfile = “Description”
Where sysfile is the name of the *.sys file and des is any sting you wish to enter to describe your controller. I prefer to find the description that is given in the *.inf file. Continuing our example, we have
[SCSI]
iaStor = "Intel(R) 82801FR/82801ER/6300ESB SATA RAID Controller"
Si3112r = "Silicon Image SiI 3x12 SATARaid Controller"
Si3114r = "Silicon Image SiI 3114 SATARaid Controller"
viasraid = "VIA Serial ATA RAID Controller"
Note that each entry should take only one line; spreading the description to multiple lines will corrupt your file.
14. Save and close txtsetup.sif
15. Now it is time to create winnt.sif. You can be as fancy as you want with this file by using the SP2 setup manager found at
http://www.microsoft.com/downloads/...91-AC56-4665-949B-BEDA3080E0F6&displaylang=en, or you can do a minimal amount. To do the minimal amount, create a file in c:\myXP\i386 titled winnt.sif and edit it in your text editor with the following lines
[Unattended]
OEMPreinstall=Yes
OemPnPDriversPath=”Drivers\path”
Where path is the full directory path to your controller driver. Following our example, we have
[Unattended]
OEMPreinstall=Yes
OemPnPDriversPath=”drivers\IC7_MAX3\intel; drivers\IC7_MAX3\Si3112r; drivers\IC7_MAX3\Si3114r; drivers\IC7_MAX3\via”
Notice that since we have multiple directories for our drivers, we list them all within the quotation marks and separate with semicolons. Even though this document wrapped OemPnPDriversPath to multiple lines, Make sure that the entry takes only one line.
16. Save and close winnt.sif.
17. With your original Windows XP with Service Pack 2 CD in the CD drive, open IsoBuster (download:
http://www.smart-projects.net/isobuster/). Select Bootable CD and select Microsoft Corporation.img. Right click, select Extract Microsoft Corporation.img, and extract the image to C:\myXP.
18. Open Nero – Burning ROM and select CD-ROM (boot).
19. For the image file, enter C:\myXP\Microsoft Corporation.img
20. Select Enable Expert Settings, No Emulation, and set Number of loaded sectors to 4.
21. Select the ISO tab. Select ISO Level 2, Mode 1, ISO 9660, and check all the checkboxes.
22. Select the Label tab. Select ISO 9660 and set the Volume Label to the same name of your original Windows XP with Service Pack 2 (mine was VRMPFPP_EN).
23. Select New.
24. Drag the entire contents of C:\myXP to the disc and record the CD.
References
1. Chandra, Omeeda. (2004 October). Update Your Windows XP CD.
Maximum PC, 68-70
2. GreenMachine (Date unknown). Slipstreaming SATA/RAID Drivers. Retrieved October 19, 2004, from
http://greenmachine.msfnhosting.com/READING/addraid.htm
3. Gosh. (2004 February 10). Txtsetup.sif. Retrieved October 19, 2004, from
http://gosh.msfnhosting.com/txtsetup.htm
4. raskren (2004, January 5) Unattended install, SATA drivers, and NO Floppy , I finally got it to work!
Message Posted to
http://www.msfn.org/board/index.php?showtopic=13173&st=0
5. raskren (2004, February 9) Switches in TXTSETUP.SIF , Here's what "1,,,,,,,,,_x,4,0" means.
Message Posted to
http://www.msfn.org/board/index.php?showtopic=14852&st=0&#entry103063