Packaging Drivers

The WolfPrep CD-ROM uses Plug and Play (PnP) id numbers to automatically detect devices installed in a computer during imaging and download the appropriate Windows drivers.

Windows 2000 is unable to automatically recognize and use these drivers, and so you must go through the "Found New Hardware" Wizard.

Windows XP will automatically install most if not all such drivers when the image automatically runs Sysprep on startup.

Packaging drivers for use with WolfPrep involves the following steps:

Determining a device's PnP ID

Understanding the Layout of a driver package

Using Zen Image Explorer to build a driver package

Determining a device's PnP ID

In order to make a driver package, you must determine the PnP ID number of the device that will use the driver. Each WolfPrep package is named with the PnP ID number of the single device it supports. Sometimes many separate devices, with unique PnP IDs can share the same driver files. For such drivers, a separate WolfPrep driver package is made for each PnP ID, containing the same driver files for each device.

You can determine the PnP ID's for a device using DOS tools on the WolfPrep CD-ROM. WolfPrep may not be able to detect all devices, for example, you cannot package drivers for USB devices or for monitors.

For the impatient, the steps are:

Boot the WolfPrep CD-ROM and select "tools" from the pre-boot menu.

Choose "BIOS and Hardware tools from the main menu

Choose "PCI Information" (save results if you so desire)

Identify the PnP numbers in the PCI.TXT file

(skip to Driver Package Layout)

Boot the WolfPrep CD-ROM and select "tools" from the pre-boot menu.

You will get a series of informational messages as the DOS partition on the CD-ROM starts up. There is a menu that allows you to choose the memory manager DOS should use. It does not matter what you select (it defaults to "maximum memory" after a short delay).

You will get one popup from Bart's excellent boot disk indicating that the DOS CD-ROM drivers are loading. Select "OK" or wait 10 seconds for it to automatically move along.

picture of CD-ROM loading popup

Eventually, you will be presented with a menu of options

picture of the tools menu

Choose "BIOS and Hardware tools from the main menu

You will be presented with another menu

The 3 options are 1. PCI Information, 2. Detect BIOS/Chipset, and 3. Check/Set Asset Tag in Dell BIOS

Choose "PCI Information"

If you wish to save the PCI information to a file, perhaps because you have been asked to send it to the Microsys group for support purposes, you have several options.

Menu with 6 options. 1. View only, don't save results 2. Floppy Drive 3. Zip Disk 4. 1st FAT/FAT32 Disk 5. 2nd FAT/FAT32 Disk 6. Q:\TMP\PCI.TXT (RAM drive)

The 1st and 2nd FAT/FAT32 disks allow you to save your results to a network share or removable media device that is partitioned with a DOS accessible FAT (File Allocation Table) partition. DOS cannot access the C: partition of a Wolfprep prepared computer, as the C: drive is partitioned with NTFS (New Technology File System) which DOS cannot understand.

You can also simply view the information on the screen.

Identify the PnP numbers in the PCI.TXT file

At the top of the PCI.TXT file, you'll find information similar to the following example:

Bus Dev Func Slot Vend Dev. Class Name Subclass Name
1 0 0 20 1002 5446 Display VGA
2 C 0 4C 10B7 9200 Network Ethernet
0 0 0 0 8086 2530 Bridge CPU/PCI

The PnP ID for a device is the two numbers in the "Vend" (Vendor) and "Dev." (Device) columns.

In the example above, the PnP ID for the VGA video adapter is "1002-5446" and for the Ethernet adapter "10B7-9200"

The PnP number for the CPU to PCI bridge can be used to identify a particular motherboard "chipset" which sometimes requires special drivers.

The remainder of the PCI.TXT file will give details about the installed devices, but all we need for the purposes of making a driver package are these numbers.

Layout of a driver package

A WolfPrep driver package is a Zen add on image file (.zmg file extension) named with the PnP ID of the device it supports in the format

drv-VendorID-DeviceID.zmg

The drivers for the VGA card from the example above would be named drv-1002-5446.zmg, and the ethernet card drv-10b7-9200.zmg .

The driver files are arranged into the following folder structure

Driver Directory Structure
\Drivers    
The Drivers folder on the primary partition
  \WinXP  
All WinXP drivers in a folder under Drivers
    \Video
XP Video drivers
    \Audio
XP Audio drivers
    \Net
XP Network/communications drivers
    \System
XP System/Chipset drivers
    \RunMe
Commands to execute during XP Sysprep
  \Win2k  
All Win2000 drivers in a folder under Drivers
    \Video
Win 2000 Video drivers
    \Audio
Win 2000 Audio drivers
    \Net
Win 2000 Network/Communications drivers
    \System
Win 2000 System/Chipset drivers
    \RunMe
Commands to execute during Win2k Sysprep
  \Legacy  
Additional directories required by legacy or non-compliant applications

Not all directories are used for every driver package. The \Drivers\WinXP directories searched by Sysprep on Windows XP images, and the \Drivers\Win2k directories are searched by Sysprep on Windows 2000 images. Sometimes, the same driver files are used by both XP and 2000. Such drivers should be copied to BOTH locations, so that they can be installed by either operating system.

The "Video, Audio, Net, and System" directories under \Drivers\WinXP and \Drivers\Win2k are where the PnP drivers suitable for unattended installations should go. Generally, these will be one or more driver files (.dll, .dl_, .drv, .dr_, .exe, .ex_, .sys, or .sy_) an unattended installation information (.inf) file, and possibly some digital signature catalogs (.cat).

Sometimes, a vendor will not provide drivers that meet Microsoft's requirements for silent installation. In such cases, some sort of Setup.EXE program that the end user is expected to run is provided.

If there is some provision to run the provided setup program silently, you can put a .cmd batch file into the "runme" folder for the appropriate operating system which invokes the setup program in the appropriate manner. Any files found in the runme directory is passed to the operating system to be executed during the Sysprep process. Place the drivers used by such undesirable vendors directly under the \Drivers directory, so they won't be confused with silently installable, modern drivers.

Using Zen Image Explorer to build a driver package

You can find the "Zen Image Explorer" tool on the IT_APPS netware volume (aka L:) at L:\ITD\labsetup\Tools . The file name is IMGEXP.EXE .

The Image Explorer tool will allow you to examine the contents of .zmg files, or to create new one.

picture of Zen Image Explorer running

To create a new driver package once you have the proper driver files downloaded and have identified the PnP ID number(s) for the device(s) you wish to support, do the following

  1. Choose "New" from the File menu to create a new .zmg file
  2. Use the "Create Directory" option from the "Image" menu, or press the Insert key to create the appropriate directory structure.
  3. Use "Add Files/Add Directory" from the "Image" menu, or drag and drop to place the proper driver files into the directories where they will be found by Sysprep.

Once you have created a driver package, you can have one of the Microsys staff install it on the Zen imaging server. This server is not generally writable, so you will need assistance.

About Microsys | Accessibility in our Services | Feedback | Microsys RSS Feeds | May 15, 2006