Help - Search - Members - Calendar
Full Version: Adding PERC S300 drivers (new to this)
The CD Forum > Bart's PE Builder > Troubleshooting
PittWolfBW
This is one of my earlier attempts at creating a BartPE disk, and my specific issue seems to be with adding in the Dell PERC S300 RAID drivers.

I've been reading through various posts on these forums, and the first question I have regards the discrepancy between exactly how drivers should be imported. Let me explain first what I have done:

I've installed BartPE twice now, once on a WinXP box, and once in a Win 2003 Standard box. The installation files I am using are for Win 2003 Standard, as most of the machines I would be using this on run that.

I have also installed the Driverpacks base, as well as the Mass Storage and LAN packs for it, their plugins appear in BartPE. However, it doesn't seem that the LAN or RAID (PERC S300) drivers I need are included. Still, that was a first step.

First, I followed instructions found both on the BartPE help and on the site:

http://www.nu2.nu/pebuilder/help/english/drivers.htm - I created the folder as follows:

C:\BartPE3110a\drivers\SCSIAdapter\PERCS300

And inside it were the six files of the PERC S300 drivers I used when I installed Windows on the box in question. I extracted InfCacheBuild.exe into the BartPE folder and ran it after creating the build (more on that later). I burned the ISO to CD and tested it, and the following happens:

As BartPE boots up, I get a blank screen, with one of two error messages:

1) BCRAID.SYS could not be found (this is one of the six files in C:\BartPE3110a\drivers\SCSIAdapter\PERCS300, so I know it's there. I created this media on the WinXP box, using WinXP installation files at the time.)

2) QL2300.SYS is corrupted (this is when I ran it from the Windows 2003 server installation, using Windows 2003 Server Standard CD files that I've used previously to install on servers.)


So, I then found the other side of the conflict, where they said to ignore the above:

http://www.911cd.net/forums//index.php?showtopic=24124
Which lead me to
http://www.911cd.net/forums//index.php?showtopic=21226

I tried using the instructions on these pages, which is when I used the DriverPacks and attempted to run InfCacheBuild. I do not think I am doing that properly, as the instructions on that page say to run it before creating the ISO, but there does not seem to be any separation between running the build (and hence creating the BartPE directory with the files), and creating the ISO. When I ran the InfCacheBuild, it ran successfully but I saw nothing to suggest what changes were made.

I'm sure I'm just misinterpreting something and not doing it exactly right, but I've re-read all these and more forum posts, and I confess I am getting nowhere. Does anyone have any suggestions, or can perhaps point me to a more unified and clear-cut process to try out?

Thanks very much,
BW
jaclaz
Three steps:
  1. add drivers to your C:\BartPE3110a\drivers\ directory structure
    (DO NOT run Pebuilder "full" disable .iso and CD creation)
  2. run !infCacheBuild.cmd as in:
    http://www.911cd.net/forums//index.php?showtopic=21226
    run it as follows:
    !infCacheBuild.cmd log
    so that you will find a infcachebuild.log file containing what infcachebuild.exe did
    (DO NOT run Pebuilder)
  3. run Pebuilder ONLY with the F5 to create the .iso/CD


Mind you it is very possible that the actual particular .inf files you have need to be modified:
semi-random example:
http://www.911cd.net/forums//index.php?showtopic=22983
(you can always try with an F6 image+grub4dos)

jaclaz
Ed_P
QUOTE (PittWolfBW @ Oct 27 2010, 12:10 PM) *
I tried using the instructions on these pages, which is when I used the DriverPacks and attempted to run InfCacheBuild. I do not think I am doing that properly, as the instructions on that page say to run it before creating the ISO, but there does not seem to be any separation between running the build (and hence creating the BartPE directory with the files), and creating the ISO. When I ran the InfCacheBuild, it ran successfully but I saw nothing to suggest what changes were made.

I'm sure I'm just misinterpreting something and not doing it exactly right, but I've re-read all these and more forum posts, and I confess I am getting nowhere. Does anyone have any suggestions, or can perhaps point me to a more unified and clear-cut process to try out?

When you run PEBuilder you need to run it in two phases. After you have added your Mass Storage and LAN drivers run PEBuilder with the ISO and CD options disabled. When PEBuilder finishes and the BartPE folder has been created then run InfCacheBuild. It updates the BartPE folder. When it ends then restart PEBuilder, enable the ISO and CD options then PRESS F5. PEBuilder will then simply create the ISO and burn the CD.

hth
jaclaz
Sorry, I posted "wrong" info. blush.gif

Now hopefully corrected.

jaclaz
PittWolfBW
QUOTE (Ed_P @ Oct 27 2010, 02:10 PM) *
When you run PEBuilder you need to run it in two phases. After you have added your Mass Storage and LAN drivers run PEBuilder with the ISO and CD options disabled. When PEBuilder finishes and the BartPE folder has been created then run InfCacheBuild. It updates the BartPE folder. When it ends then restart PEBuilder, enable the ISO and CD options then PRESS F5. PEBuilder will then simply create the ISO and burn the CD.

hth


Thanks very much Ed, I was missing that bit. I will try that when I do my next attempt.

And thanks also Jaclaz, I am going to try your method and I'll post my results when it's done.
PittWolfBW
Midpoint note:

I have not yet created the ISO, I tried two times to run Infcachebuild but didn't get a log file.

First time, this was my .cmd file script:

~~~~~
@echo off
echo.
echo !infCacheBuild
echo.
if %1! == log! start C:\PEBuilder3110a\InfCacheBuild.exe "%~dp0%BartPE" > C:\PEBuilder3110a\infcachebuild.log
start C:\PEBuilder3110a\InfCacheBuild.exe "%~dp0%BartPE"
echo.
echo !infCacheBuild Finished.
pause
~~~~~

I ran this from a command prompt, by running: infcachebuild.cmd log

I saw the DOS box come up and it referenced some changes it was making, but no log file was created.

So, I tried a second script (with a fresh build):

~~~~~
@echo off
echo.
echo !infCacheBuild
echo.
if %1! == log! (
start InfCacheBuild.exe "%~dp0%BartPE" > infcachebuild.log
else
start InfCacheBuild.exe "%~dp0%BartPE" )
echo.
echo !infCacheBuild Finished.
if %1! == log! echo "%~dp0"infcachebuild.log created.
pause
~~~~~

This time, I ran from a command prompt: infcachebuild2.cmd log

This is what happened.

Microsoft Windows XP [Version 5.1.2600]
© Copyright 1985-2001 Microsoft Corp.

C:\>cd pebuilder3110a

C:\pebuilder3110a>infcachebuild2.cmd log

!infCacheBuild

'else' is not recognized as an internal or external command,
operable program or batch file.

!infCacheBuild Finished.
"C:\pebuilder3110a\"infcachebuild.log created.
Press any key to continue . . .

And it appears that INFCacheBuild tried to run twice (and in doing so crashed itself twice). It *does* produce the infcachebuild.log however, it's blank (of course, since it ran twice and crashed).

I'm inclined to go with the first script, even if it doesn't produce a log file, but what am I missing here? I can tell that the coding of the second script is wrong, as it references the 'else' line, but I'm not sure on the precise syntax I should be using. Am I just off on my placement of the parentheses?

(Note: I didn't write these two scripts myself, I obtained both of them from these forums in two separate posts on this subject.)

UPDATE EDIT:

I modified the second script a bit, like so:

~~~~~
@echo off
echo.
echo !infCacheBuild
echo.
if %1! == log! (
start InfCacheBuild.exe "%~dp0%BartPE" > infcachebuild.log
) else (
start InfCacheBuild.exe "%~dp0%BartPE" )
echo.
echo !infCacheBuild Finished.
if %1! == log! echo "%~dp0"infcachebuild.log created.
pause
~~~~~

By setting off both commands on either side of the ELSE, it doesn't double-run and crash now. Here is the output from that script's DOS box:

C:\pebuilder3110a>infcachebuild.cmd log

!infCacheBuild


!infCacheBuild Finished.
"C:\pebuilder3110a\"infcachebuild.log created.
Press any key to continue . . .

C:\pebuilder3110a>

It seems to be running properly, but the infcachebuild.log file is empty, so I'm still evidently not doing it quite right.
cdob
QUOTE (PittWolfBW @ Oct 27 2010, 04:10 PM) *
Dell PERC S300 RAID

The installation files I am using are for Win 2003 Standard

1) BCRAID.SYS could not be found (this is one of the six files in C:\BartPE3110a\drivers\SCSIAdapter\PERCS300, so I know it's there. I created this media on the WinXP box, using WinXP installation files at the time.)

That's a 2003 driver, not XP.
Dell request 2003 SP2 files. 2003 Standard is not supported.
http://support.euro.dell.com/support/edocs...g.htm#wp1221989

Most likely it's a outdated storport.sys.

QUOTE
2) QL2300.SYS is corrupted (this is when I ran it from the Windows 2003 server installation, using Windows 2003 Server Standard CD files that I've used previously to install on servers.)

That's the same reason: outdated storport.sys
http://forum.driverpacks.net/viewtopic.php?id=3590
PittWolfBW
I have decided to play with the ISO that I created in the meantime, and come back to the log problem.

The first time I created the ISO and burned it, I got this message:

CDBOOT: Couldn't find NTLDR

I was able to fix this thanks to this post ( http://www.911cd.net/forums/lofiversion/in...php/t22264.html ), and I created a filecase.ini file based off your example here, Ed P (http://www.911cd.net/forums//index.php?showtopic=19822&st=30&p=132958&#entry132958 - thanks for that by the way, it was hugely helpful!)

I am starting to wonder - going back to my OP, I am now wondering if the BCRAID.SYS can't be found error was because it was the wrong case as well. I will let you know what happens with this new CD that was created using filecase.ini.

-BW

UPDATE:

THe problem still happens when I boot the CD up, it fails with this exact message just as BartPE is starting:

"The file bcraid.sys could not be found. Press any key to continue."

So I wonder now, is it the reverse? Is the problem that the file is uppercase and should it be lowercase? The files are all lowercase in the C:\pebuilder3110a\drivers\SCSIAdapter\PERCS300 folder where I placed them. But I am thinking that when they were copied into C:\pebuilder3110a\BartPE\I386\SYSTEM32\DRIVERS, the filecase.ini file is capitalizing them. And hence, they're not the lowercase 'bcraid.sys' that's being searched for now.

If that's so, do I want to modify either txtsetup.oem for that driver, or bcraid.inf? Or should I remove i386\system32 from filecase.ini? I am not sure which isthe proper resoluation.


Here are those two files:

txtsetup.oem for the PERCS300 driver:
~~~~~~~~~~
#
# TXTSETUP.OEM
#
# Copyright © 2002-2008, Ciprico Inc. All rights reserved.
#
# DriverVer = "10/20/2009",1.0.9292.1
# (1.0.1-0021)

#-----------------------------------------------------------------------------
[Disks]
disk1 = "Dell PERC S100 S300 Controller 32 Bit",\bcraid,\

#-----------------------------------------------------------------------------
[Defaults]
SCSI = DELL_SATA_VST

#-----------------------------------------------------------------------------
[SCSI]
DELL_SATA_VST = "Dell PERC S100 S300 Controller 32 Bit [storport]"

#-----------------------------------------------------------------------------
[Files.SCSI.DELL_SATA_VST]
inf = disk1, bcraid.inf
driver = disk1, bcraid.sys, bcraid_VST
driver = disk1, bccfg.sys, bccfg
catalog = disk1, bcraid.cat

#-----------------------------------------------------------------------------
[HardwareIds.SCSI.DELL_SATA_VST]
id = "PCI\VEN_1028&DEV_0016&subsys_1F241028", "bcraid"
id = "PCI\VEN_8086&DEV_3A25&subsys_020F1028", "bcraid"
id = "PCI\VEN_8086&DEV_3A25&subsys_028D1028", "bcraid"
id = "PCI\VEN_8086&DEV_3B24&subsys_02A51028", "bcraid"
id = "PCI\VEN_8086&DEV_3B25&subsys_02A51028", "bcraid"
id = "PCI\VEN_8086&DEV_3A25&subsys_02F11028", "bcraid"
id = "PCI\VEN_8086&DEV_3B24&subsys_02A61028", "bcraid"
id = "PCI\VEN_8086&DEV_3B25&subsys_02A61028", "bcraid"
id = "PCI\VEN_8086&DEV_3B24&subsys_02A41028", "bcraid"
id = "PCI\VEN_8086&DEV_3B25&subsys_02A41028", "bcraid"
id = "PCI\VEN_8086&DEV_2925&subsys_02101028", "bcraid"
id = "PCI\VEN_8086&DEV_3B24&subsys_02A31028", "bcraid"
id = "PCI\VEN_8086&DEV_3B25&subsys_02A31028", "bcraid"
id = "PCI\VEN_8086&DEV_3A25&subsys_028C1028", "bcraid"

#-----------------------------------------------------------------------------
[Config.bcraid_VST]
value = parameters\PnpInterface, 5, REG_DWORD, 1
value = "Parameters\Device", "NumberOfRequests", REG_DWORD, 254
value = "Parameters\Device", "DriverParameter", REG_SZ, "VST"
value = "", Tag, REG_DWORD, 1

~~~~~~~~~~


and bcraid.inf for the PERCS300 driver:

~~~~~~~~~~
;-----------------------------------------------------------------------------
;
; bcraid.inf = Installation for Dell PERC S100 S300 device driver
;
; Copyright © 2002-2008 Ciprico Inc. All rights reserved.
; Copyright © 2008-2009 Dot Hill Systems Corp. All rights reserved.
;
;-----------------------------------------------------------------------------
; - This version supports Windows XP and later operating systems.
; - Class and ClassGUID specify the type of driver and must match
; (see $DDKPATH/inc/api/devguid.h).
; - Driver provided by Dell Inc. for PERC S100 S300 1.0 software.
; (1.0.1-0021)
;-----------------------------------------------------------------------------


;-----------------------------------------------------------------------------
[Version]
Signature = "$Windows NT$"
Class = SCSIAdapter
ClassGUID = {4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider = %DELL%
CatalogFile = bcraid.cat
DriverVer = 10/20/2009,1.0.1.0021
PnpLockDown = 0
DriverPackageDisplayName = %bcraid_Desc%
DriverPackageType = PlugAndPlay

;-----------------------------------------------------------------------------
[SourceDisksNames]
1 = %bcraid_Desc%

;-----------------------------------------------------------------------------
[SourceDisksFiles]
bcraid.sys = 1
bccfg.sys = 1

;-----------------------------------------------------------------------------
[DestinationDirs]
DefaultDestDir = 12 ;%WinDir%\System32\Drivers directory on NT-based systems

;-----------------------------------------------------------------------------
[ControlFlags]
ExcludeFromSelect = *

;-----------------------------------------------------------------------------
[Manufacturer]
%DELL% = DELL,ntx86

;-----------------------------------------------------------------------------
[DELL.ntx86]
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_1028&DEV_0016&subsys_1F241028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3A25&subsys_020F1028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3A25&subsys_028D1028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B24&subsys_02A51028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B25&subsys_02A51028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3A25&subsys_02F11028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B24&subsys_02A61028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B25&subsys_02A61028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B24&subsys_02A41028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B25&subsys_02A41028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_2925&subsys_02101028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B24&subsys_02A31028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3B25&subsys_02A31028
%bcraid_Desc%=bcraid_Inst_VST,PCI\VEN_8086&DEV_3A25&subsys_028C1028

%bccfg_Desc% = bccfg_Inst, SCSI\ProcessorRAIDCOREConfiguration___V1.1

;-----------------------------------------------------------------------------
[bcraid_Inst]
CopyFiles = DefaultDestDir

;-----------------------------------------------------------------------------
[bcraid_Inst_VST]
CopyFiles = DefaultDestDir

;-----------------------------------------------------------------------------
[DefaultDestDir]
bcraid.sys,,,0x00002004
bccfg.sys,,,0x00002004

;-----------------------------------------------------------------------------
[bcraid_Inst.Services]
AddService = bcraid,0x00000002,bcraid_Service_Inst

;-----------------------------------------------------------------------------
[bcraid_Inst_VST.Services]
AddService = bcraid,0x00000002,bcraid_Service_Inst_VST

;-----------------------------------------------------------------------------
[bcraid_Service_Inst]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_BOOT_START
ErrorControl = 2 ; SERVICE_ERROR_SEVERE
ServiceBinary = %12%\bcraid.sys
DelReg = bcraid_Inst_DelReg
AddReg = bcraid_Inst_AddReg

;-----------------------------------------------------------------------------
[bcraid_Service_Inst_VST]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_BOOT_START
ErrorControl = 2 ; SERVICE_ERROR_SEVERE
ServiceBinary = %12%\bcraid.sys
DelReg = bcraid_Inst_DelReg,bcraid_Inst_VST_DelReg
AddReg = bcraid_Inst_AddReg,bcraid_Inst_VST_AddReg

;-----------------------------------------------------------------------------
[bcraid_Inst_DelReg]
HKR, "Parameters\PnpInterface", 5
HKR, "Parameters\Device", "NumberOfRequests"
HKR, "Parameters", "BusType"

;-----------------------------------------------------------------------------
[bcraid_Inst_AddReg]
HKR, "Parameters\PnpInterface", 5, 0x00010001, 0x00000001
HKR, "Parameters\Device", "NumberOfRequests", 0x00010001, 254
HKR, "Parameters", "BusType", 0x00010001, 0x00000008
HKLM,"System\CurrentControlSet\Services\Disk","TimeOutValue",0x00010001,0x0000003C

;-----------------------------------------------------------------------------
[bcraid_Inst_VST_DelReg]
HKR, "Parameters\Device", "DriverParameter"

;-----------------------------------------------------------------------------
[bcraid_Inst_VST_AddReg]
HKR, "Parameters\Device", "DriverParameter", 0, "VST"

;-----------------------------------------------------------------------------
[bccfg_Inst]
CopyFiles = DefaultDestDir

;-----------------------------------------------------------------------------
[bccfg_Inst.Services]
AddService = bccfg,0x00000002,bccfg_Service_Inst

;-----------------------------------------------------------------------------
[bccfg_Service_Inst]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\bccfg.sys
DisplayName = %bccfg_Desc%

;-----------------------------------------------------------------------------
[Strings]
DELL = "Dell Inc."
bcraid_Desc = "Dell PERC S100 S300 Controller [storport]"
bccfg_Desc = "Dell PERC S100 S300 Configuration Device [storport]"


~~~~~~~~~~
PittWolfBW
QUOTE (cdob @ Oct 27 2010, 04:06 PM) *
That's a 2003 driver, not XP.
Dell request 2003 SP2 files. 2003 Standard is not supported.
http://support.euro.dell.com/support/edocs...g.htm#wp1221989

Most likely it's a outdated storport.sys.


That's the same reason: outdated storport.sys
http://forum.driverpacks.net/viewtopic.php?id=3590


I'm a little confused - the CDs I have on hand are Windows Server 2003 Standard, Windows Server 2003 Standard R2, and I have one for Windows Server 2003 Enterprise R2 (used only for our cluster servers).

Speaking specifically about the server that has the PERC S300 RAID, it has Windows Server 2003 Standard R2 installed. I was able to install it on that server by use of the same PERC S300 RAID drivers that I'm trying to add to my BartPE install.

If 2003 Standard is not supported, why was I able to use the Dell PERC S300 drivers (most current and only available version) to install Win 2003 Standard R2? I'm not sure I follow the problem, here.

Of the available Windows 2003 sources I have, I've tried both the 2003 Standard and 2003 Standard R2, to the same error ("QL2300.SYS is corrupted "). All I have left is 2003 Enterprise R2, so I assume I should try using that to create a BartPE disk?
cdob
QUOTE (PittWolfBW @ Oct 27 2010, 08:28 PM) *
If 2003 Standard is not supported, why was I able to use the Dell PERC S300 drivers (most current and only available version) to install Win 2003 Standard R2? I'm not sure I follow the problem, here.

Ask the manufacturer about manufacturer requirements.

Try slipstream SP2 to your 2003 files.
Ed_P
QUOTE (PittWolfBW @ Oct 27 2010, 03:11 PM) *
!infCacheBuild

'else' is not recognized as an internal or external command,
operable program or batch file.

!infCacheBuild Finished.
"C:\pebuilder3110a\"infcachebuild.log created.
Press any key to continue . . .

blush.gif Oops blushing.gif

QUOTE
I'm inclined to go with the first script, even if it doesn't produce a log file, but what am I missing here? I can tell that the coding of the second script is wrong, as it references the 'else' line, but I'm not sure on the precise syntax I should be using. Am I just off on my placement of the parentheses?

Your placement of the missing parentheses is fine.

If you're going to always run with the log option, which is what I do, rework the "if" to be:
CODE
::if %1! == log! (
start InfCacheBuild.exe "%~dp0%BartPE" > infcachebuild.log
::) else (
::start InfCacheBuild.exe "%~dp0%BartPE" )

(or simply delete the commented lines) then rather than having to open a command prompt you can simply dbl click on it (which was the original intent of the script in the 1st place). The log should be created in the PEBuilder folder since that is where the script was designed to be run. If you run it from a command prompt you should navigate to the PEBuilder folder before running it or the log may end up in your Documents and Settings folder and the value of the ~dp0 parms will be invalid.

Of course you can also just run the app from the command prompt and specify the locations of both the BartPE folder and the log. At this point it might be quicker. huh.gif

hth
Ed_P
QUOTE (PittWolfBW @ Oct 27 2010, 04:07 PM) *
I have decided to play with the ISO that I created in the meantime, and come back to the log problem.

The first time I created the ISO and burned it, I got this message:

CDBOOT: Couldn't find NTLDR

I was able to fix this thanks to this post ( http://www.911cd.net/forums/lofiversion/in...php/t22264.html ), and I created a filecase.ini file based off your example here, Ed P (http://www.911cd.net/forums//index.php?showtopic=19822&st=30&p=132958&#entry132958 - thanks for that by the way, it was hugely helpful!)

If you use PEBuilder to burn the ISO it uppercases everything properly. If you use infcachebuild's filecase.ini it works well on everything except BartPE\I386\setupldr.bin which results in the NTLDR missing error.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.