Jump to content

progress adding mass storage on bootable xpcd


Recommended Posts

Hi all,

This is my first post here. Ive started researching about adding mass storage drivers via the (winnt.sif/txsetup.oem) method since late 2002, I was never successful then and I gave up.

Its been some time ago since I asked about this, but I am curious if there's any progress on adding mass storage drivers on a bootable xp cd thru:

- copying mass storage driver files to under \$OEM$\Textmode

- editing the txtsetup.oem (\$OEM$\Textmode) and winnt.sif (\i386) with the necessary changes?

With a recent searching thru lots of forums, I found none... I was wondering, does this approach never work at all?

So far, all the working solutions i've seen were all about:

- integrating the necessary entries of the txtsetup.oem (\$OEM$\Textmode) to the txtsetup.sif (\i386)

- compressing/copying the mass storage drivers files to the i386 folder

- copying the driver files to \$OEM$\$1\Drivers) and making the necessary changes to winnt.sif (\i386).

Link to comment
Share on other sites


I haven't to date seen anybody successfully integrate the drivers through that method (though I seem to recall hearing about it now that I think about it).

If you want simplicity, I'd just go with my little package linked in my sig (shameless plug I know :)) as all you have to do is unpack the RAR archive to the CD root, run the batch file to make the necessary changes to txtsetup.sif, and copy/paste some stuff into winnt.sif.

Link to comment
Share on other sites

RyanVM,

I've used your package and thanks. You may want to add integration with DOSNET.INF because the files (drivers) does not get copied if I do a "winn32.exe" installation method not via CDROM.

Link to comment
Share on other sites

I have never tested the Textmode directory method of mass storage driver installation, but, here is some information directly from Microsoft themselves about how to do it:

1) OEMPreinstall has to be set to YES

2) Place the Driver files (.sys) in the Textmode folder

3) Place a valid txtsetup.oem in the Textmode folder (one file for all drivers)

4) In unattend file, add section [OEMBootFiles] with value SCSI_Driver_File_Name=iaStor (for Intel SATA Driver for example)

5) In unattend file, add section [MassStorageDrivers] with value iaStor=OEM (for Intel SATA Driver for example)

That should be it from what I read... I didn't fully understand the section "must match one of the strings defined in the right-hand side of the [sCSI] section" but hey, you will figure it out i guess :)

Syntax mass_storage_driver_description = Retail | OEM

Values Retail

Indicates that the driver is part of the retail Microsoft® Windows® product.

OEM

Indicates that the driver is OEM-supplied. If the value is OEM, you must also list the driver in the [OEMBootFiles]section of the Unattend.txt file.

Example MyDriver_1 = OEM

Comments mass_storage_driver_description must match one of the strings defined in the right-hand side of the [sCSI] section of TxtSetup.sif (for a retail driver) or TxtSetup.oem (for an OEM driver). You can specify multiple instances of mass_storage_driver_description.

Important

Add driver entries only to the [MassStorageDrivers] and [OEMBootFiles] sections for bootable mass-storage devices. Do not include secondary mass-storage devices. Instead, add the drivers for secondary mass-storage devices to the folder specified by the OemPnPDriversPath entry in your unattended Setup answer file. Including drivers for non-bootable mass-storage devices in the [MassStorageDrivers] or [OEMBootFiles] sections causes an error during Setup.

Link to comment
Share on other sites

RyanVM,

I've used your package and thanks.  You may want to add integration with DOSNET.INF because the files (drivers) does not get copied if I do a "winn32.exe" installation method not via CDROM.

Good suggestion, I'll look into it :)

Link to comment
Share on other sites

@[bM]Crusher

yeah.....this is true....

it works mighty fine for a sysprep install, but not unattended. Real shame.

Spheris (he works for Microsoft) awhile back had a few of us try and work up as many errors as possible in relation to using that method. It may get fixed in SP2, but probally not.

Link to comment
Share on other sites

alanoll really? i hope they do fix it...

i've never given it a shot but a bit sad to hear it doesn't work... was looking to be a great alternative to the usual methods...

I mean, seriously, you could just copy your SCSI/RAID floppy driver disk into the Textmode folder, then add the 4 lines of code to winnt.sif and you would be away! :)

Link to comment
Share on other sites

Crusher,Apr 29 2004, 12:26 AM] alanoll really? i hope they do fix it...

i've never given it a shot but a bit sad to hear it doesn't work... was looking to be a great alternative to the usual methods...

I mean, seriously, you could just copy your SCSI/RAID floppy driver disk into the Textmode folder, then add the 4 lines of code to winnt.sif and you would be away! :)

Still a pain in the arse if you have a board with more than one controller like many new motherboards are these days (with RAID supporting south bridges such as ICH5R and an addon RAID controller such as the Promise 378). You'd have to hack up the txtsetup.oem file to include both. Yuck.

And of course, things get even more complicated if you want to use your unattended CD on more than one machine.

Link to comment
Share on other sites

i was simply thinking of dropping the ABIT raid driver disk into the folder :)

it has the silicon, intel and via raid drivers built in... then once quick hack to add the promise376 drivers to the txtsetup

still.. there's no point even trying it, if it doesnt work :rolleyes:

wouldn't hacking the txtsetup.oem be just like hacking the normal windows txtsetup file? adding the SCSI sections?

Link to comment
Share on other sites

Make sure to include the CD IDE/ATAPI drivers- or you wont be able to read from the CD during the GUI portion of the install. I built a single unattended CD for compatibility with HP/Compaq DL360 gen 1's and gen 3's, yes, both chipsets. Adding different ones is fairly easy but tedious. Most of the notes on the net leave out a few nuances of this process.

txtsetup.sif is changed when service packs are applied. modify it after slipstreaming the SP's.

>>unattend.txt start<<

;SetupMgrTag

[unattended]

DriverSigningPolicy=Ignore

ExtendOemPartition=1

FileSystem=ConvertNTFS

NtUpgrade=No

OEMPreinstall=Yes

OemSkipEula=Yes

OemFilesPath=.\;.\hpq;.\I386;..\$oem$;

OemPnPDriversPath=winnt\HPQ;

OverwriteOemFilesOnUpgrade=No

TargetPath=winnt

Win9xUpgade=No

Repartition=No

Unattendmode=FullUnattended

[Data]

AutoPartition=0

MsDosInitiated="0"

UnattendedInstall="Yes"

[GuiUnattended]

AdminPassword=*

AutoLogon=Yes

AutoLogonCount=3

OEMSkipRegional=1

OEMSkipWelcome=1

TimeZone=4

ProfilesDir=C:\WINNT\Profiles

[GuiRunOnce]

; command to install the drivers from the driver media

Command1="C:\bp000171\bp000171.bat"

[OEMBootFiles]

cpqcissm.dll

cpqcissm.Sys

cpqcissm.INF

cpqcissm.CAT

Txtsetup.oem

[MassStorageDrivers]

"Compaq Smart Array Controller" = "RETAIL"

"Smart Array 5i, 532, 5312 Controllers" = "RETAIL"

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

>>end unattend.txt<<

>>txtsetup.oem start<<

[Disks]

d1 = "Smart Array 5i, 532, 5312 Controllers", \cpqcissm.sys, \

[Defaults]

SCSI = B178

[sCSI]

B060 = "Smart Array 5300 Controller"

B178 = "Smart Array 5i, 532, 5312 Controllers"

0046 = "Smart Array 641, 642, 6400 Controllers"

[Files.scsi.B060]

driver = d1,cpqcissm.sys,cpqcissm

inf = d1,cpqcissm.inf

catalog = d1,cpqcissm.cat

[Files.scsi.B178]

driver = d1,cpqcissm.sys,cpqcissm

inf = d1,cpqcissm.inf

catalog = d1,cpqcissm.cat

[Files.scsi.0046]

driver = d1,cpqcissm.sys,cpqcissm

inf = d1,cpqcissm.inf

catalog = d1,cpqcissm.cat

[Config.cpqcissm]

value = "",tag,REG_DWORD,103

value = Parameters\PnpInterface,5,REG_DWORD,1

value = Parameters\Device,NumberOfRequests,REG_DWORD,80

[HardwareIds.scsi.B060]

id = "PCI\VEN_0E11&DEV_B060","cpqcissm"

[HardwareIds.scsi.B178]

id = "PCI\VEN_0E11&DEV_B178","cpqcissm"

[HardwareIds.scsi.0046]

id = "PCI\VEN_0E11&DEV_0046","cpqcissm"

>>end txtsetup.oem<<

My blood and sweat outlined below...

Special note for backward compatibility with older Compaq Boxes with the Compaq System (EISA) partition-

"Repartition=No" is needed to allow selecting the non EISA partition on the HP/Compaq boxes with the unattended CD setup. Without it, the drive (and the Compaq system partition) is wiped leaving no 'F10' functions.

The files listed under oembootfiles (in unattend.txt) are all in the folders-

<cdroot>:\$oem$\i386\$oem$\ and <cdroot>:\$oem$\i386\textmode\

"<cdroot>:\$oem$\i386\$oem$\" (duplicate of textmode) folder location is not a typo, I did this out of frustration trying to determine where to cross reference these files during commandline setup and GUI mode. It works. :)

The line under guirunonce runs bp000171.bat a slightly modified HP script that runs itself from the folder bp000171.w2k copied to C:\ (normal operation) during setup from <cdroot>:\$oem$\$$\bp000171.w2k\

TEXTMODE folder- the txtsetup.oem text file: M$ and most sites that touch on this subject fail to draw out the full syntax for how this process of embedding mass storage device drivers into unattend CD's. Now that I've said that, I will now include my notes modifying dosnet.inf and txtsetup.sif below.

Tech Forum -

http://www.thetechguide.com/forum/index.ph...opic=5090&st=20

indicated the [sourceDisksNames.x86] section must include

Also in unattend.txt :

...

OemFilesPath="..\$OEM$"

...

DL360 MODs-

from the HPQ Proliant Essentials CD, run <CD drive>:\punchout\w2kdrvrs.bat to copy the HPQ drivers to a floppy.

In DOSNET.INF

(To only install the SCSI driver "Smart Array 5i, 532, 5312 Controllers" ) edit the following sections-

begin>>

...

[FloppyFiles.x]

...

d1,cpqcissm.sys

...

[strings]

...

cpqcissm = "Smart Array 5i, 532, 5312 Controllers"

...

[Files]

...

d1,cpqcissm.cat

d1,cpqcissm.dll

d1,cpqcissm.inf

d1,cpqcissm.sys

...

<<end

In txtsetup.sif, (To only install the SCSI driver "Smart Array 5i, 532, 5312 ; Controllers" ) edit the following sections-

begin>>

...

[sourceDisksFiles]

...

cpqcissm.cat = 3,,,,,,_x,4,1

cpqcissm.dll = 3,,,,,,_x,4,1

cpqcissm.inf = 3,,,,,,_x,4,1

cpqcissm.sys = 3,,,,,,_x,4,1

...

[HardwareIdsDatabase]

...

PCI\VEN_0E11&DEV_B178 = "cpqcissm"

...

[sCSI.Load]

...

cpqcissm = cpqcissm.sys,4

...

[sCSI]

...

cpqcissm = "Smart Array 5i, 532, 5312 Controllers"

...

<<end

NOW WHERES MY DONUTS!?!!

I said 'nuances'

j/k - its (donuts) a tradition here at my work....

Link to comment
Share on other sites

Is it OK to have multiple sections of the same name in an INF file such as dosnet.inf?

I believe either the first or last section 'read' is used. Such a file might be ignored or considered corrupt/invalid due to the erpeated sections.

Link to comment
Share on other sites

for dosnet.inf and txtsetup.sif the files are parsed by setup and all sections will be read. In general though, only the last section is read. Best way to test is trial and error.

-gosh

Link to comment
Share on other sites

  • 4 weeks later...

I used the method detailed in the Windows 2003 OPK for integrating bootable mass storage device drivers. Required adding [MassStorageDrivers] and [OEMBootFiles] sections to my unattend.txt file and dropping the files in \$OEM$\TEXTMODE and also \$OEM$\$1\PnP\viaraid. Because I consolidated all 5 files into one directory, I did have to make a single modification to the txtsetup.oem file.

If someone can detail their exact machine configuration and the methods they've tried (including error messages received) maybe the community can work towards a solution.

It just seems to me that while we do have automated methods to make some/all of these source file modifications, it is still a hacky workaround. I don't like modifying files in my \i386 directory ever as 1) it immediately brings you into an unsupported state with Microsoft and 2) you'll have to make those changes to each \i386 directory you'll ever use, including all client and server variations, all integrated service pack points, and any other beta builds you are testing. In addition, separating original Microsoft source files from OEM/corporate customizations puts us in a good position to look forward to Longhorn, which will be using image-based setup only.

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...