Jump to content

TEXTMODE MassStorageDrivers Method


trainee

Recommended Posts

RASOR IS CURRENTLY *NOT* AVAILABLE (NO ETA SET)

I have written a utility called RASOR that is able to slipstream drivers with this method. It can be found: HERE.

UPDATE: 10/15/2004

  • Guide updated to reflect new research from members, especially rcordorica
  • Known working list added
  • Previous update notices removed

KNOWN WORKING LIST:

  • 3ware 7k/8k Driver
  • Silicon Image 3112r Driver

PREAMBLE

First, if there has already been a big post on this then I'm sorry for making another one. Second, I tend to have *very* verbose posts, so I will try to keep this short.

Disclaimer: I only claim that this will work for my hardware setup but I am posting this in the hopes that someone else can get theirs to work as well. I will try to help where I can, but I'm no expert.

INTRO

I have a complete (for all intents and purposes) XP PRO slipstream via XPCREATE *with* 3ware Raid 7k/8k drivers installed via the $OEM$\TEXTMODE Method; aka Method 2. From here on I'm calling this M2 because I'm tired of typing it out so much. I have tried the txtsetup aka Raskren's aka GM's aka RyanVM aka M1 method but was never able to get the 3ware drivers to load properly with that. It doesn't seem like too many people are running 3ware Raid cards, but if you are then *this* IS the method you should use. This should not be confused with the similar but more complex method outlined by Pure Krome (which I have not tried, but I do believe works) as listed here.

SETUP

I am using a XPCD slipstreamed with SP2, WMP10, Journal Viewer, .NET framework w/ SP1

THE PART YOU CARE ABOUT: EDITING DRIVER FILES

So how do you use M2 to get your raid drivers on the CD? There have been a lot of posts about this as well as the somewhat erroneous information provided in deploy.chm (part of the MS SP1/SP2 deployment pack). I will assume you have your driver files (the equivalent of a floppy driver disk). A driver file-list *might* look like this (where driver is some relevant driver name):

  • txtsetup.oem (this file sets the driver up for textmode)
  • driver.inf (may also be named something like oeminstall.inf)
  • driver.sys (1+ driver files)
  • driver.cat (WHQL signing)
  • driver.cpl (control panel file)
  • driver.dll/.exe/.vxd (other libraries/executables for your driver)
  • disk1 (a weird disk file may or may not be included; possibly plaintext)
  • readme (of some sort)

Many driver packages will NOT include .cpl, .dll, .exe, or .vxd files. There is nothing missing and this will usually make your install even easier to deal with. *IF* however you do have any of these files you *may* need to edit your txtsetup.oem file. Once again this is only for people who have files other than .inf, .cat, .sys and .oem in their driver packages. Okay you need to open up your txtsetup.oem file (notepad or any text editor will do) and change any reference to "DLL = " to "INF = " (thanks to rcordorica for figuring this out). For some reason textsetup chokes on these entries. These entries should be easy to find and replace in the file. Save the modified file and close it. Again if you don't have any "DLL = " references in your txtsetup.oem then you don't need to change anything and you read this entire section of the guide for nothing :rolleyes:.

THE PART YOU CARE ABOUT: COPYING DRIVER FILES

Now you are ready to copy the driver files to the proper locations. You *can* strip the disk1 type files and the readme however I usually copy them for good measure. I also do not compress any of the sys files, although you *probably* could. So I choose to copy ALL of the driver files to these 2 directories:

  • $OEM$\TEXTMODE\
  • I386\$OEM$\

If you have .cpl, .dll, .exe, .vxd files you need to copy these to a third location (A really big thank you goes to rcordorica for his tireless work figuring this out). Copy these additional files to:

  • $OEM$\$$\OemDir\

THE PART YOU CARE ABOUT: EDITING WINNT.SIF

Now 2 things need to be added to winnt.sif (if you don't know what that is, you really shouldn't have gotten this far in the post).

  • A new [MassStorageDrivers] heading with 2+ entries (New Controller & CD-ROM Driver)
  • A new heading [OEMBootFiles] which will list all of the files from the new driver

This is best illustrated with my own winnt.sif (the whole of which is presented here)

;SetupMgrTag
[Data]
   MsDosInitiated="0"
   UnattendedInstall="Yes"

[Unattended]
   DriverSigningPolicy=Ignore
   Repartition=Yes
   UnattendMode=FullUnattended
   OemSkipEula=Yes
   OemPreinstall=Yes
   UnattendSwitch="Yes"
   WaitForReboot="No"
   TargetPath=\WINDOWS

[GuiUnattended]
   AdminPassword=XXXXX
   EncryptedAdminPassword=Yes
   OEMSkipRegional=1
   TimeZone=4
   OemSkipWelcome=1

[UserData]
   ProductKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
   FullName="Trainee"
   OrgName="Thunderwalker"
   ComputerName=XXXXX

[Identification]
   JoinWorkgroup=XXXXX

[Networking]
   InstallDefaultComponents=Yes

[MassStorageDrivers]
"3ware Escalade 7000/8000 Series ATA RAID Controller" = "OEM"
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]
TXTSETUP.OEM
oemsetup.inf
3waregsm.cat
3WDRV100.SYS
3WFLTDRV.SYS

For the [MassStorageDrivers] entry I have been told that the listing must *exactly* match the description in txtsetup.oem. I have not confirmed this but I opened up txtsetup.oem and copied the description out of it, it should be very easy to find under the [sCSI] heading. I am 99% sure you must also list the IDE controller for your CD drive. If you don't, I don't believe that the setup can continue after the first reboot. I do not know if order matters, however I chose to list my RAID controller first followed by my IDE cd-rom controller. Anyone who has an IDE cd/dvd drive can pretty much just copy my line. The new controller should be listed as "OEM" as in look around in OEM to find the drivers. Any other controller (like the cd-rom) that use already built-in drivers should be listed as "RETAIL" as in included with the retail cd.

Now the [OEMBootFiles] listings are basically the files from your driver disk. I do not know if order is important, but I chose to list the txtsetup.oem first, followed by any .inf, .cat, .sys and so on. I do not list the readme, or the crazy Disk1 type files.

COMMON MISTAKES/MISCONCEPTIONS

  • A number of posts list the TEXTMODE directory incorrectly as TXTMODE
  • Deploy.chm states that if a txtsetup.oem file does not contain the HardwareID (as listed in the .inf) that it must be added. I know for a fact that this is WRONG. I screwed up my own install many times trying to add this to my txtsetup.oem. The 3ware txtsetup.oem does not have the hardwareID and installs perfectly.
  • Make sure to list both your new controller AND your cd-rom controller under [MassStorageDrivers]
  • There have been claims that ntfs won't read the /'s and all /'s must be changed to .'s and visa versa. IMHO: WTF.
  • In most cases you shouldn't have to alter any of the driver files including txtsetup.oem (see next point).
  • If your txtsetup.oem file contains "DLL =" entries (without the quotes), you will need to change them to "INF =" to get around a textmode parsing error (thanks rcordorica).

NOW YOU TRY IT

While this post is very long, I think you will agree that this is a fairly simple method to add drivers to your slipstreamed XP CD *IF* it works. Right now the only drivers known to work are the 3ware 7k/8k drivers and the Silicon Image 3112Raid driver. Unfortunately I don't have the hardware to test any other drivers right now. If you have any questions please ask them here, or PM me and I will do my best to answer them.

ERRATA

I'm including links to the 3ware txtsetup.oem and oemsetup.inf for reference, however neither of these files were altered (note that these were changed to .txt files so they aren't a pain to open).

:) <--me, because I talk and talk and talk until even I'm bored!

Edited by trainee
Link to comment
Share on other sites


I wish I could do that ...

Before deciding to use the simplified raskren method, I attempted to get the [MassStorageDevices] with no luck. I do like that it does not require TXTSETUP.SIF modification, though the way it is done is still very clean (tacking on the OEM info at the end, but you know that ... ) As soon as I get some time, I may have to have another look at this.

Still, the XPCREATE way seems to work fine for for nearly everyone. The few that don't go off and post elsewhere ...

Nice job! Thanks!

Link to comment
Share on other sites

Thanks for the comments guys! I'm sure it will take a while for people to actually try the method out on different hardware setups, since it involves formatting their hard drive(s).

@Bashrat: Thanks for the .cat clarification. And I've been meaning to say: cool avatar.

@edmoncu: yeah I saw that you've been looking at this method for well over a year now.

@GM: XPCREATE is awesome! Unfortunately the 3ware drivers aren't digitally signed which I believe is a prerequisite for their inclusion with XPCREATE. I kept trying to integrate them at a lot of different points with XPCREATE (before, after, and I even tried hacking the xpcreate.cab to put the 3ware drivers in) but no dice. I was afraid of messing up the changes that XPCREATE makes to TXTSETUP.SIF, and ultimately I was unable to make M1 work. I agree that your simplified Raskren method is clean as well (and involves fewer copies of the driver files!), I just couldn't make it work (please see additional errata below). I absolutely think that having XPCREATE detect and add the drivers is the best way to go so any chance you want to add the 3ware's to it?

Additional Errata:

I think one of the weird things about the 3ware drivers is that there are 2 drivers, but only 1 PCI/VEN ID #. I know that some drivers associate with multiple PCI ID's, but I don't know of another example where a single PCI ID associates with multiple drivers. This left me kind of dumbstruck when it came to editing the TXTSETUP.SIF. Anyone else come across a similar situation?

I'm hopeful that someone will be able to confirm M2 with another driver just so the option exists.

Link to comment
Share on other sites

Ah, now I remember the 3ware drivers. I did not include them, in part for the fact that, as you mention, there are two .sys file for one piece of hardware, and also because the file names did not fit in with my "conventions". There are other drivers that also list two .sys file, but not many. I am at a great disadvantage with neither hardware nor time to test these different configurations. But like I said, XPCREATE does work for the majority. Next time I pass through the SATA integration code, I'll see what I can come up with, but that is not for the near future.

Link to comment
Share on other sites

Windows 2000 Unattended install of mass storage drivers for HP/Compaq ProLiant Servers with SmartStart Scripting Toolkit:

  • uses a single TXTSETUP.OEM
  • sample WINNT.SIF sections for all Mass Storage Drivers supported by ProLiant Servers
  • cat files are not added to OEMBootFiles section when using this method to install Mass Storage Drivers.
    The Windows setup program don't check Digital Signature during textmode part of install.

[MassStorageDrivers]
"Adaptec Ultra160 Family Manager Set"=OEM
"Smart Array 5300 Controller"=OEM
"Smart Array 5i, 532, 5312 Controllers"=OEM
"Smart Array 6i, 641, 642, 6400 EM, 6400 Controllers"=OEM
"Compaq Smart Array Controllers"=OEM
"Integrated Ultra ATA-100 Dual Channel Controller (Windows 2000)"=OEM
"Integrated Ultra ATA-100 IDE RAID Controller (Windows 2000)"=OEM
"LSI Logic Ultra320 1020/1030 Driver (Windows 2000)"=OEM
"Carte h“te SCSI PCI Symbios Logic C8100"=RETAIL
"Carte h“te SCSI PCI Symbios Logic C896"=RETAIL
"Carte h“te SCSI PCI Symbios Logic C8xx"=RETAIL
"CD-ROM IDE (ATAPI 1.2)/Contr“leur IDE PCI"=RETAIL
"CSB-6 Ultra ATA-100 IDE RAID Controller (Windows 2000)"=OEM
[OEMBootFiles]
ADPU160M.SYS
CPQARRY2.SYS
CPQCISSM.SYS
MegaIDE.sys
Symmpi.sys
LsiCsb6.sys
TXTSETUP.OEM

@BTS

Obtaining Digital Signatures for Windows Drivers

Driver Signing uses the existing Digital Signature cryptographic technology to store identifying information in a catalog file (*.cat, or CAT file). CAT files are stored in <Windir>\Catroot. This information identifies the driver as having passed testing by Windows Hardware Quality Labs (WHQL). No change is made to the driver binary itself. Instead, a CAT file is created for each driver package and the CAT file is signed with a Microsoft digital signature. The relationship between the driver package and its CAT file is referenced in the driver's INF file, and is maintained by the computer after the driver is installed.

INF File Changes

The digital signature is stored in a CAT file. The following modifications to INF files are required for IHVs/ISVs who want to obtain digital signature for their drivers:

In the [Version] section of the INF, the entry CatalogFile=<filename.cat> is added.

An entry for the CAT file in the [sourceDisksFiles] section is added. For example, an IHV submits a driver package to a WHQL that includes files named Sample.inf, Sample.drv, and Sample.txt.

If the package passes WHQL testing, WHQL will return the original Sample.inf, Sample.drv and Sample.txt with the addition of Sample.cat.

Link to comment
Share on other sites

  • 1 month later...

@trainee: Are you using this method for a network install of the OS or a CD install? I asked because I have been successful using this method in the network installs at work (Windows 2003), but have not had success with a CD install of Windows XP at home. When I try to do a CD install I receive the following error:

File txtsetup.oem caused an unexpected error (18) at line 1742 in d:\xpsp1\base\boot\setup\oemdisk.c

Just to be thorough, here is my txtsetup.oem file:

[Disks]

d1 = "HPT3xx ATA RAID Controller Driver Diskette",\Disk1,\

[Defaults]

scsi = hpt3xx

[scsi]

hpt3xx = "HighPoint HPT3xx ATA RAID Controller",hpt3xx

[Files.scsi.hpt3xx]

driver = d1, hpt3xx.sys, hpt3xx

driver = d1, hptpro.sys, hpt3xx

inf = d1, hpt3xx.inf, hpt3xx

catalog= d1, hpt3xx.cat

[Config.scsi.hpt3xx]

value = "", Tag, REG_DWORD, 1

value = "Parameters\PnpInterface", 5, REG_DWORD, 1

[HardwareIds.scsi.hpt3xxXP]

id = "PCI\VEN_1103&DEV_0005","hpt3xx"

id = "PCI\VEN_1103&DEV_0004","hpt3xx"

id = "PCI\VEN_1103&DEV_0006","hpt3xx"

And, a portion of my winnt.sif:

[MassStorageDrivers]

"HighPoint HPT3xx ATA RAID Controller" = "OEM"

"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]

TXTSETUP.OEM

hpt3xx.sys

hptpro.sys

hpt3xx.inf

hpt3xx.cat

Disk1

I decided against posting the hpt3xx.inf file as I did not make any changes to it and it is rather large.

Link to comment
Share on other sites

@Inferno: see if this thread helps (link)

@Inferno: yes I have been successful using this method from CD. However very few people seem to have confirmed with their own hardware, so if you are up to it, lets try to get yours to work. And welcome to MSFN, I'm surprised your name wasn't taken!

First, the txtsetup.oem and your additions to the winnt.sif appear to be fine. You shouldn't need to post the .inf file however the following information / tips would be helpful:

  • When posting code / codelike files, please put them in
 tags because it is much easier to read
If possible please post your entire winnt.sif (with personal stuff like product ID removed) because some of the other entries may be relevant
What is the exact hardware you are trying to install?
Where do you get the error? (ex. before drive format, after drive format, after first reboot, during file copy, etc)
What does your Disk1 file contain?

Okay, here is the weird thing about your error: the filename does not appear to be associated with the driver. The file "oemdisk.c" is not listed in your txtsetup.oem or winnt.sif oembootfiles. So I don't understand how these would be related.

So have you..

  • Compared your install to the one described in the guide?
  • Copied the driver files to ALL the locations described in the guide?
  • Tried NOT listing Disk1 in your [oembootfiles] entry?
  • Ensured that your CD isn't 'FULL'? I know this sounds stupid, but I was using 650mb CD-RWs and I couldn’t figure out for about half a day why I kept getting random errors. I never had a write error, but I had crazy error 18's and file read errors for hours, until I switched to 700mb CD-R's. (no comments from the n-lite crowd please)
  • tried installing with virtualpc from the CD image? You can try a failsafe this way too, without the driver files, to make sure it isn't something with the rest of the CD that is causing the problem and not the textmode driver.

I believe that a error (18) is a file not found error (but don't take my word for it). I also am not an expert on slipstreamed CD's but I use XPCREATE and the path you have listed is very different from anything I appear to have.

Hope this helps. If you tell me the exact driver I can try to replicate your problems with my slipstreamed CD in virtualpc.

Link to comment
Share on other sites

  • 4 weeks later...
File txtsetup.oem caused an unexpected error (18) at line 1742 in d:\xpsp1\base\boot\setup\oemdisk.c

Just to be thorough, here is my txtsetup.oem file:

[Disks]

d1 = "HPT3xx ATA RAID Controller Driver Diskette",\Disk1,\

I decided against posting the hpt3xx.inf file as I did not make any changes to it and it is rather large.

The problem is the d1 line. I'll bet that the directory \Disk1 does not exist on your CD? I'm not sure what that last field is for, but here's the line from my TEXTINFO.OEM file for my SCSI controller:

d1 = "SIIG AP-20/AP-40 SCSI Pro Windows XP MINIPORT DRIVERS",winxp\sc247xu.sys,winxp

In my $OEM$\TEXTMODE directory, I do have a WinXP directory. Note there is no leading backslash. I'm still working on getting my hardware to work, and this will be the first time that I try method 2. Method 1 flat refused to work.

Link to comment
Share on other sites

d1 = "SIIG AP-20/AP-40 SCSI Pro Windows XP MINIPORT DRIVERS",winxp\sc247xu.sys,winxp

In my $OEM$\TEXTMODE directory, I do have a WinXP directory.  Note there is no leading backslash.  I'm still working on getting my hardware to work, and this will be the first time that I try method 2.  Method 1 flat refused to work.

@Maelstorm: I'm still around to help people try to make this method work, but in general I need some more info to go on that you have supplied in your previous post. What card do you have exactly? Just looking at the D1 line you quote it appears that you have either a SIIG AP-20 or AP-40 Ultra Wide Scsi controller card. Soooo.... I went over to the SIIG site to download the drivers myself. I'm guessing you have harware revision #2 with the acard chipset since hardware revision #1 already has its drivers built into winXP. I also assume that you have tried this with a floppy and everything was A-OK so you know the driver works. One of the craziest problems I ever had was when my driver download became corrupted and I didn't figure it out for hours. And again another assumption: your unattended XP cd actually does work.

Okay I don't see anything terrible awry with the TXTSETUP.OEM file but if you could tell me more about where the error occurs and what the exact error you encounter is that would be helpful. Believe it or not the wierd D1\Disk1\etc entries have yet to be the problem in the ohhhhh... two whole cases I've dealt with, but still.

I am going to go ahead and slipstream-up a set of the AP-40 using M2 and see where I can get in Virtualpc. I can't vouch for them actually working with the hardware, but I will be able to see if the TXTSETUP.OEM parses out correctly. I'll post my results ASAP, but like I said any additional information would help us both get this working for you.

Link to comment
Share on other sites

@Maelstorm:

Okay as far as i can tell windows doesn't have any problems parsing the TXTSETUP.OEM file with virtualpc. Even though it doesn't simulate the hardware, an XP install on virtualpc will choke if it doesn't like the file or can't find a file referenced from it (I know from experience) I have included the changes I made below for you (using M2)

Note: CDROOT\ indicates the root of you CD... so if your CD drive was D:\ then CDROOT\ would correspond to D:\ after you have created the cd.

I downloaded the driver zip from the SIIG website and unzipped it. There is a TXTSETUP.OEM file and a lot of subfolders. Since this is going to be an XP install (it is right?) we only need the TXTSETUP.OEM file and the WinXP directory. I copy the file and the whole directory to 2 locations.

CDROOT\$OEM$\TEXTMODE\TXTSETUP.OEM
CDROOT\$OEM$\TEXTMODE\WinXP\*    <the entire folder resides inside the TEXTMODE folder>
CDROOT\I386\$OEM$\TXTSETUP.OEM
CDROOT\I386\$OEM$\WinXP\*        <again the entire folder is copied>

Now a few additions need to happen in your winnt.sif:

[MassStorageDrivers]
   "SIIG AP-20/AP-40 SCSI Pro Windows XP MINIPORT DRIVER" = "OEM"
   "IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OemBootFiles]
   TXTSETUP.OEM
   WinXP\Sc247xu.inf
   WinXP\SC247XU.SYS

See how the [OemBootFiles] entry references the subdirectory?

this is actually one of the most basic TXTSETUP.OEM files I have seen (it only reference 2 files!) so I have high hopes that this will work for you.

Below is my entire winnt.sif (with personal information x'd out of course) so that you can see all of the options I have set. I am pretty sure that you must have OemPreinstall=Yes for this method to work. Just use this as a comparison to your own.

;SetupMgrTag
[Data]
   MsDosInitiated="0"
   UnattendedInstall="Yes"

[Unattended]
   DriverSigningPolicy=Ignore
   Repartition=Yes
   UnattendMode=FullUnattended
   OemSkipEula=Yes
   OemPreinstall=Yes
   UnattendSwitch="Yes"
   WaitForReboot="No"
   TargetPath=\WINDOWS
   OemPnPDriversPath="Sources\System\Microsoft;Sources\System\ATI\Driver"

[GuiUnattended]
   AdminPassword=xxxxxxxx
   EncryptedAdminPassword=No
   OEMSkipRegional=1
   TimeZone=4
   OemSkipWelcome=1
   AutoLogon=Yes
   AutoLogonCount=1

[UserData]
   ProductKey=xxxxxxxx
   FullName="xxxxxxxx"
   OrgName="xxxxxxxx"
   ComputerName=xxxxxxxx

[Identification]
   JoinWorkgroup=xxxxxxxx

[Networking]
   InstallDefaultComponents=Yes

[MassStorageDrivers]
   "SIIG AP-20/AP-40 SCSI Pro Windows XP MINIPORT DRIVER" = "OEM"
   "IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OemBootFiles]
   TXTSETUP.OEM
   WinXP\Sc247xu.inf
   WinXP\SC247XU.SYS

I hope that this helps and if you have any more problems OR SUCCESS! please post back here. If you see windows formatting your harddrive then you know that it worked! So if you have a problem subsequent to formatting then the error is somewhere else.

Link to comment
Share on other sites

this is my first post here, and i'm really impressed by this forum.

@inferno:

File txtsetup.oem caused an unexpected error (18) at line 1742 in d:\xpsp1\base\boot\setup\oemdisk.c

i got a similar error some month ago while adding drivers to a Powerquest V2i Boot-CD.

What helped me out (after a long time of googling.....) was a thread from the Techguide Forum.

@trainee

i will try your method in the next days, i'm very interested in that.

For the moment i have to correct some bugs within my BartPE CD after upgrading to SP2 :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...