BDD 2007 for Server OS Deployment - Trial 1
Posted
Sunday, January 28, 2007 5:58 PM
by
jhuston
As I indicated before, I'm going to include some of the information that I've learned about adapting BDD 2007 for server operating system deployment (specifically Windows Server 2003).
The first trial that has come up is the use of Windows PE 2.0 in combination with certain "unusual" network drivers. Here's my example system: a Dell PowerEdge 1950 (also PowerEdge 2950). These puppies use the Broadcom NetXtreme II network interface cards. These high-falutin' NICs not only gain access to the network, but include support for a TCP Offload Engine (TOE) as well as an iSCSI driver. In order to accomplish this, Broadcom has written a two-driver stack. The first is the Virtual Bus Driver (VBD). This is a "System" driver (at least according to the Deployment Workbench. This is the base level interface that you then plug in the NDIS or iSCSI drivers.
Because of this two-tier structure, Windows PE 2.0 cannot correctly determine and load the drivers. Under Windows PE 2005, this was curable by using the -winpe switch instead of the -minint switch which would effectively perform an exhaustive plug and play detection. Since Windows PE 2.0 no longer has these switch options, it does not seem to do an exhaustive PNP detection and therefore does not load both drivers.
Broadcom has "tried" to help by offering a monolithic driver (which they call their RIS driver stack). This is a purpose built driver for networking only (no TOE or iSCSI support). Unfortunately, the driver is not signed. I believe that it is for this reason that Windows PE 2.0 will not load the driver (but I cannot be certain).
Here's how I've gotten around this. First, I created a directory and placed the HWPNP utility from Paraglider (http://www.paraglidernc.com/plugins/HWPnP1022a.cab extract the contents) in it. This is a pretty nifty utility that forces a plug and play enumeration and installs the device drivers, signed or not. It was originally written for the BartPE set of tools, but works just fine over here.
In my LAB distribution point, I configured it to load the additional set of files (this directory). This will put the files at the root of the PE image (X:\).
Next, I modified the Unattend_PE_x86.xml file to run the HWPNP.EXE when PE starts. This file can be found in the C:\Program Files\BDD 2007\Templates directory.
I changed the <ORDER> value of the litetouch.wsf command to be 2 and added a new section just above it with an order of 1. Here's the snippet:
<RunSynchronousCommand wcm:action="add">
<Description>HW Plug and Play</Description>
<Order>1</Order>
<Path>X:\HWPNP.EXE +all /a /p</Path>
</RunSynchronousCommand>
The +all forces the HWPNP utility to check all drivers and add them. The /a command will attempt to load all drivers even if one is loaded with a matching PNP ID. The /p parameter shows a progress bar.
Now, I include the RIS version of the Broadcom driver in the Out-of-box drivers listing and assign it to a group that is included in the LAB Windows PE build. Build out the Windows PE image and voila - network connectivity is there.