Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

Adding Mass Storage Drivers to PE

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
9 replies to this topic

#1
Zaker

Zaker

    Junior

  • Member
  • Pip
  • 77 posts
  • Joined 12-May 04
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.


How to remove advertisement from MSFN

#2
ChrisBaksa

ChrisBaksa

    Member

  • Member
  • PipPip
  • 230 posts
  • Joined 05-March 04
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

#3
Zaker

Zaker

    Junior

  • Member
  • Pip
  • 77 posts
  • Joined 12-May 04
I am replicating your exact dir structure, hopefully it works...
Did you not modify the TXTSETUP.OEM file at all?

Thanks.

#4
ChrisBaksa

ChrisBaksa

    Member

  • Member
  • PipPip
  • 230 posts
  • Joined 05-March 04
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

#5
Zaker

Zaker

    Junior

  • Member
  • Pip
  • 77 posts
  • Joined 12-May 04
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"

#6
ChrisBaksa

ChrisBaksa

    Member

  • Member
  • PipPip
  • 230 posts
  • Joined 05-March 04
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

#7
ChrisBaksa

ChrisBaksa

    Member

  • Member
  • PipPip
  • 230 posts
  • Joined 05-March 04
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

#8
Zaker

Zaker

    Junior

  • Member
  • Pip
  • 77 posts
  • Joined 12-May 04
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.

#9
ChrisBaksa

ChrisBaksa

    Member

  • Member
  • PipPip
  • 230 posts
  • Joined 05-March 04
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

#10
Zaker

Zaker

    Junior

  • Member
  • Pip
  • 77 posts
  • Joined 12-May 04
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.