Jump to content

Adding Mass Storage Drivers to PE


Zaker

Recommended Posts

Greetings.

We have read lots about this topic, but still cannot make this work.

We use WinPE to boot our IBM x225 servers, attach to the network, and run a batch file that runs diskpart and formats the drives, then finally launches an unattend.txt to build a Win2k3 Standard Server.

The new RAID controller for the x225s, the IBMServerRAID 6i has newer drivers than what comes with PE or 2k3.

Without them, PE does not recognize the drives.

We are trying to incorporate them into the PE boot CD, and have had no luck.

Here's what we've done.

- copy the entire PE 1.2 CD to a machine, say C:\PECD

- modify the i386\system32\startnet.cmd to include the NET USE stuff that will map

the drive to the network and run our .bat file.

- create a dir called i386\system32\Drivers\IBMRAID

- copy all files from the IBM ServerRAID v7 diskette that we created that contains

all the files it needs, including TXTSETUP.OEM

- modify i386\system32\WINPEOEM.SIF and remove the comment from;

[massstoragedrivers.append]

mydriver = nfrd960.sys

- remove the comment from;

[OemDriverParams]

OemDriverRoot=""

OemDriverDirs=\system32\Drivers\IBMRAID

- create an ISO via the OSCDIMG command, and burn the ISO

- boot the server to the CD, and that works fine

- PE starts loading and not long after, we get the infamous error;

File TXTSETUP.OEM caused and unexpected error (18) at line 1742 in d:\xpsp1\base\boot\setup\oemdisk.c

I have read all the posts that I can about editing TXTSETUP.OEM, but nothing changes.

PLEASE OFFER ANY SUGGESTIONS THAT YOU MAY HAVE.

If I ommited important info, please advise.

Thanks in advance to anyone who responds.

Link to comment
Share on other sites


Here is what works for me...

The ServeRaid Driver is NOT included in Win2k3 or XP. It is 100% a new addition.

The Destination directory for my driver is ...

I386\System32\Drivers\ADDITIONAL_OEM\IBM_SERVERAID

My winpeoem.sif file looks like this...

[Version]

signature="$Windows NT$"

[OemDriverParams]

OemDriverRoot="drivers\additional_oem"

OemDriverDirs=IBM_SERVERAID, VMWARE_SCSI, IBM_MEGARAID

I have not integrated the Latest Servraid 7 drivers yet But they should be a direct replacement of what I have in my IBM_SERVERAID Directory which looks like this...

Directory of I386\System32\Drivers\ADDITIONAL_OEM\IBM_SERVERAID

05/04/2004 01:50 PM <DIR> .

05/04/2004 01:50 PM <DIR> ..

06/17/2003 07:45 AM 30,509 readme.txt

06/17/2003 07:45 AM 1,202 txtsetup.oem

05/04/2004 01:50 PM <DIR> win2003

2 File(s) 31,711 bytes

Directory of I386\System32\Drivers\ADDITIONAL_OEM\IBM_SERVERAID\win2003

05/04/2004 01:50 PM <DIR> .

05/04/2004 01:50 PM <DIR> ..

05/04/2004 01:50 PM <DIR> driver

0 File(s) 0 bytes

Directory of I386\System32\Drivers\ADDITIONAL_OEM\IBM_SERVERAID\win2003\driver

05/04/2004 01:50 PM <DIR> .

05/04/2004 01:50 PM <DIR> ..

05/04/2004 01:50 PM <DIR> server

0 File(s) 0 bytes

Directory of I386\System32\Drivers\ADDITIONAL_OEM\IBM_SERVERAID\win2003\driver\server

05/04/2004 01:50 PM <DIR> .

05/04/2004 01:50 PM <DIR> ..

05/04/2004 01:50 PM <DIR> i_v

05/04/2004 01:50 PM <DIR> powerpc

0 File(s) 0 bytes

Directory of I386\System32\Drivers\ADDITIONAL_OEM\IBM_SERVERAID\win2003\driver\server\i_v

05/04/2004 01:50 PM <DIR> .

05/04/2004 01:50 PM <DIR> ..

07/15/2003 08:27 AM 8,779 ibmnfrd3.cat

06/17/2003 07:45 AM 35,328 nfrd960.sys

06/17/2003 07:45 AM 32,009 nfrdci03.dll

06/17/2003 07:45 AM 5,450 oemsetup.inf

4 File(s) 81,566 bytes

Directory of I386\System32\Drivers\ADDITIONAL_OEM\IBM_SERVERAID\win2003\driver\server\powerpc

05/04/2004 01:50 PM <DIR> .

05/04/2004 01:50 PM <DIR> ..

07/15/2003 08:27 AM 8,623 ipsraid3.cat

06/17/2003 07:45 AM 85,504 ipsraidn.sys

06/17/2003 07:45 AM 32,009 nfrdci03.dll

06/17/2003 07:45 AM 5,215 oemsetup.inf

4 File(s) 131,351 bytes

Hope This helped...

Chris

Link to comment
Share on other sites

No. I have modified the TXTSETUP.OEM.

If you keep the same driver dir structure as it came on the Cd, you will not need to modify the file.

You issue might be the winpeoem.sif

You are missing the entry for OemDriverRoot

Yours....

[OemDriverParams]

OemDriverRoot=""

OemDriverDirs=\system32\Drivers\IBMRAID

Mine...

[OemDriverParams]

OemDriverRoot="drivers\additional_oem"

OemDriverDirs=IBM_SERVERAID, VMWARE_SCSI, IBM_MEGARAID

Chris

Link to comment
Share on other sites

Thanks for the help, I think I'm getting somewhere now.

I followed your instructions, and get the following error now during PE bootup

when the bar is going across the bottom during hardware inspection;

The file nfrd960.sys could not be found.

Press any key to continue.

Then of course it reboots when I do...

Here is my dir structure, winpeoem.sif, and my txtsetup.oem.

I have NOT modified the txtsetup.oem file.

Please assist if possible.

Much appreciated.

----------------------

DIR STRUCTURE:

\i386\system32\drivers\additional_oem\ibm_serveraid

The txtsetup.oem and a readme.txt exist here.

Under this structure is;

windows\win2003\scsi\driver\server\i_v

These files exist here;

ibmnfrd3.cat

nfrd960.sys

nfrdci04.dll

oemsetup.inf

My winpeoem.sif file is as follows, under system32;

------------------------------------------------------------

;

; WinPE OEM driver list

;

[Version]

signature="$Windows NT$"

;

; Use this section to replace the inbox driver

; list with your own files

;

;[massstoragedrivers.replace]

;mydriver = mydriver.sys

;

;

; Use this section to append non-pnp drivers to

; the list of the drivers already present

; in the inbox

; [massstoragedrivers.append]

; mydriver = nfrd960.sys

;

;

; Use this section to load pnp/non-pnp oem drivers

; in addition to the inbox driver list

;

; OemDriverRoot : Indicates the path relative to

; the system directory of WinPE. If

; none, then specify ""

;

; OemDriverDirs : Specifies series of directories separated

; by comma. Each specified directory has the

; txtsetup.oem which has the information on

; what driver to load.

;

; e.g. OemDriverRoot = "" and OemDriverDirs = drv1, drv2

; indicates to the WinPE that under WinPE's system32 directory

; there are two directories named drv1 and drv2. Each of these

; directories contain txtsetup.oem file which lists which

; driver to load

;

[OemDriverParams]

OemDriverRoot="Drivers\ADDITIONAL_OEM"

OemDriverDirs=IBM_SERVERAID

------------------------------------------------------------

My txtsetup.oem is as follows;

[Disks]

d1 = "IBM ServeRAID Device Driver Diskette", \windows\win2003\scsi\driver\Server\i_v\NFRD960.SYS, \windows\win2003\scsi\driver\Server\i_v

d2 = "IBM ServeRAID Device Driver Diskette", \windows\win2003\scsi\driver\Server\powerpc\IPSRAIDN.SYS, \windows\win2003\scsi\driver\Server\powerpc

[Defaults]

scsi = NFRDDotNet32

[scsi]

NFRDDotNet32 = "IBM ServeRAID 4M/4Mx/4L/4Lx/5i/6M/6i Controller (Windows Server 2003)"

IPSDotNet32 = "IBM ServeRAID 2x/3H/3L/4H Controller (Windows Server 2003)"

[Files.scsi.NFRDDotNet32]

driver = d1, nfrd960.sys, NFRD960

dll = d1, nfrdci04.dll

catalog = d1, ibmnfrd3.cat

inf = d1, oemsetup.inf

[Files.scsi.IPSDotNet32]

driver = d2, ipsraidn.sys, IPSRAIDN

dll = d2, nfrdci04.dll

catalog = d2, ipsraid3.cat

inf = d2, oemsetup.inf

[Config.NFRD960]

value = parameters\PnpInterface,5,REG_DWORD,1

value = parameters\Device,NumberOfRequests,REG_DWORD,128

[Config.IPSRAIDN]

value = parameters\PnpInterface,5,REG_DWORD,1

value = parameters\Device,NumberOfRequests,REG_DWORD,128

[HardwareIDs.scsi.NFRDDotNet32]

id = "PCI\VEN_1014&DEV_01BD", "nfrd960"

id = "PCI\VEN_9005&DEV_0250", "nfrd960"

[HardwareIDs.scsi.IPSDotNet32]

id = "PCI\VEN_1014&DEV_002E", "ipsraidn"

Link to comment
Share on other sites

I'm going to Update my PE disk with the SereRaid 7 drivers today.

I'll get back to you when I've completed and tested this.

Based on your post I think it's just a path issue.

In theory... All you need to do is copy the directory structure off the Drivers cd and add the path to it to the SIF file.

No modification of the files in the directory are required.

If you are updating a current driver... Then it gets tricky.

I had to update the existing Smart Array 5xxxx driver to the new 5xxx/6xxx driver. That was a pain in the Backside.

Chris

Link to comment
Share on other sites

Just finished and tested.

Here is what I did.

Keep in mind that MY PE is comliled with 2003 Server Binaries.

If you Use XP, then use the same process but take keep the XP drivers.

(altho the 2003 drivers should work too)

Delete everything you currently have under the IBM_SERVERAID directory (leave the folder).

Copy the entire folder (and sub directories) "WINDOWS" from the root of the ServRaid 7 CD into the IBM_SERVERAID directory.

Delete the following Directories (not required and will keep size down)

IBM_SERVERAID\windows\manager

IBM_SERVERAID\windows\win2k_xp

IBM_SERVERAID\windows\winnt

IBM_SERVERAID\windows\win2003\sata\cmdline

IBM_SERVERAID\windows\win2003\scsi\cmdline

On the ServeRaid 7 CD... Open up the \diskette\scsi\win2003.img with Winimage or some other imaging software.

Extract the txtsetup.oem file and place it in the root of the IBM_SERVERAID folder.

Your SIF file should look like this....

[OemDriverParams]

OemDriverRoot="drivers\additional_oem"

OemDriverDirs=IBM_SERVERAID

If you added additional Drivers... Add them to the end like so...

OemDriverDirs=IBM_SERVERAID, MORE_DRIVERS

Compile your new PE CD.

Chris

Link to comment
Share on other sites

I did exactly as you posted, didn't even touch the txtsetup.oem, and I STILL get the following error;

The file nfrd960.sys could not be found.

Press any key to continue.

I don't even know what to try at this point.

You mentioned that you had just done this and got it working.

What is different about our testing?

I am using the newest Serveraid d/l from IBM.

The raid controller is the new 6i.

The server model is the new x225 (8649).

I am even following the exact dir structure that is posted in this thread.

Unfortunately, I have to get this working ASAP because it has taken so long that it's affecting the project now.

Is there anything else that I can do here?

Thanks in advance.

Link to comment
Share on other sites

Sorry ...

I don't know what is happening to your PE.

Are you compiling manually or are you using Barts?

Make sure you didn't copy any file into the system32 dir.

If you give me an E-mail address I'll zip up my dir and mail it to you.

Chris

Link to comment
Share on other sites

I have emailed you my email address...thanks again.

For all that have been helping...

I have modified the txtsetup.oem file, and dir structure to try and get around the error, NFRD960.SYS could not be found, and it doesn't matter what I do,

the error is the same.

It doesn't look like its a syntax issue within txtsetup.oem.

I have tried modifying the path to the source in oemsetup.oem, although I'm not sure PE uses this boot, but either way it doesn't change the error.

I have tried copying the NFRD960.SYS file to multiple locations, no change.

I am not using Barts PE stuff, just working with the original PE1.2 CD, and the IBM Serveraid files.

The error occurs right after pressing the ANY key to boot to the CD.

PE starts up and while the white bar is going across the bottom of the screen,

I get the error.

If I use the stupid diskette and press F6, it will boot.

Hope this helps explain my nightmare a little clearer.

Thanks.

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