Driver Pack Catalog - Enterprise Client - Wiki - Client and Mobile Solutions - Dell Community

Driver Pack Catalog

Driver Pack Catalog

Enterprise Client - Wiki

The Dell Command | Deploy Catalog (a.k.a Driver Pack Catalog) 1.0 (Release Notes) is metadata about the latest System and WinPE Driver Packs released by Dell. It supports Dell Tablets, Latitude, OptiPlex and Precision systems. It allows customers to locate and download the current Dell Command | Deploy Driver Packs (a.k.a Driver Packs or CABs) with the automation method of their choice. 

Driver Pack Catalog and Driver Packs are updated as per the release schedule. Driver Pack Catalog is available for download at any of the three links below:

http://downloads.dell.com/catalog/DriverPackCatalog.cab

ftp://downloads.dell.com/catalog/DriverPackCatalog.cab

ftp://ftp.dell.com/catalog/DriverPackCatalog.cab

 

Driver Pack Catalog is an XML file “DriverPackCatalog.xml” and is a traversable list of System and WinPE Driver Packs applicable to Dell Enterprise class systems (Latitude, OptiPlex, Precision and Tablets). The “DriverPackCatalog.xml” is compressed, digitally signed and delivered over the Internet as “DriverPackCatalog.cab”. The XML-Schema for “DriverPackCatalog.xml” is available for download at DriverPackManifest.xsd (referenced XSDs are available at same location: DataModelCore.xsd and Package.xsd).

Check out the blog of Dell TechCenter RockStar, Dustin Hedges where he "automagically" gets his driver CABs by using the driver pack catalog. MDT guru, Keith Garner has a script for MDT (with a video tutorial) as well!

The content of “DriverPackCatalog.xml” can be of two categories:

1.       Metadata about Driver Pack Catalog: 

This section serves as parent node to the Driver Pack releases and contains metadata about the catalog itself. Significant information or attributes present in this section are described below: 

  • baseLocation:

URL component, to locate the root folder while downloading a Driver Pack.

  • baseLocationAccessProtocols

 Network Protocols allowed on base location. By Default HTTP and FTP are allowed.

  • dateTime:

Information about the date and time of the Catalog build.

  • Version:

Release version of the catalog. Version number is in the following format: Year.Month.ReleaseNumber (YYYY.MM.RN).

 

  • schemaVersion:

Information about the XML Schema version used to build the catalog.

2.       Metadata about Driver Packs: 

Each “Driver Package” node represents a Driver Pack as an entity. Information or data present as attributes and child nodes serve for two basic purposes:

  • Find or locate a Driver Pack for download.
  • Evaluate the applicability of the driver pack. 

Based on the mentioned purpose, some of the significant attributes and child nodes are explained in detail: 

Significant Attribute of “Driver Package” node

  • format:

The default value is “cab” as Driver Packs are delivered as .CAB file. 

  • hashMD5:

MD5 for .CAB file. 

  • size:

Size of .CAB file. 

  • dateTime:

Release date of Driver Pack. 

  • vendorVersion:

Generally the default value is: 1.0. But, the version changes if the internal structure of Driver Pack changes. 

  • dellVersion:

Dell assigned version of the Driver Pack Release. The version number is usually assigned from A00 to A99 incrementally. 

  • path:

Displays information about the relative URL from the root download location or the “baselocation” of “DriverPackManifest” node. 

  • releaseID:

Dell assigned unique identification to the Driver Pack. 

  • type:

Driver Pack Catalog supports System and WinPE Driver Packs, type will be “Win” for System Driver Packs and “WinPE” for WinPE Driver Packs. 

 

Significant Child nodes of “Driver Package” node:

 

  • SupportedSystems:

“SupportedSystems” node defines the applicability of a Driver Pack with respect to the Model. “Brand” (child) node provides information about the Line of Business and “Model” (grandchild) node provides information about the Model. 

Key attributes of “Brand” & “Model” node used to evaluate the Model applicability are:

  • key & prefix

 

Dell assigned identification key and prefix of Line of Business.

 

Key

Prefix

Line of Business

4

LAT

Latitude

1

OP

OptiPlex

11

PRE

Precision

90

TABLET

Tablet

72

XPSNOTEBOOK

XPS Notebook

 

  • systemID

Dell assigned unique identification to a System BIOS of a Model.

  • name

Dell assigned Name of a Model.

 

Note: Both, “systemID” and “name” are flashed on to the BIOS, but “systemID” is not readily accessible WMI query. Hence use of “name” is recommended.

Note: Use of “Display” node’s CDATA programmatically is not recommended. 

 

  • SupportedOperatingSystems:

Operating System applicability of a Driver Pack is defined by “SupportedOperatingSystems” and “OperatingSystem” nodes.

 

Key attributes of “Operating System” node used to evaluate the Operating System applicability are:

 

  • osVendor:

As Driver Packs are targeting only Microsoft Windows Operating Systems, the default value is Microsoft.

 

  •  osArch:

System and WinPE Driver Packs from Dell support 32-bit(x86) and 64-bit(x64) operating system architecture.

 

  •  majorVersionminorVersionspMajorVersionspMinorVersion:

These attributes represent Windows Operating System’s major, minor, service pack major and service pack minor version.  For more information, see Operating System Version.

 

Note: Driver Packs are built and released only for client operating systems such as Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, etc. Driver Packs for all operating systems for a given Model, may not be available due to hardware-software compatibility and so on.

 

Note: The uses of other data that are present in the xml file such as Language, Name or Title, etc. are not recommended i.e. “majorVersion”, “minorVersion”, “osArch” and “osVendor” should be used to identify the OS applicability.

 

1. How to “Download DriverPackCatalog.cab” from Dell?

 

Note: The latest Driver Pack Catalog-“DriverPackCatalog.cab” file is available at Dell support site. The earlier versions are removed from the site with every update.

 

PowerShell Script Snippet:

 

Description: Use http://downloads.dell.com/catalog/DriverPackCatalog.cab or ftp://downloads.dell.com/catalog/DriverPackCatalog.cab or ftp://ftp.dell.com/catalog/DriverPackCatalog.cab to download the Catalog to current directory. 

 

$source = "http://downloads.dell.com/catalog/DriverPackCatalog.cab"

$destination = "$pwd" + "\DriverPackCatalog.cab"

$wc = New-Object System.Net.WebClient

$wc.DownloadFile($source, $destination)

 

 

2. How to get “DriverPackCatalog.xml” from “DriverPackCatalog.cab” ?

 Driver Pack Catalog (“DriverPackCatalog.xml”) is digitally signed and delivered as “DriverPackCatalog.cab” file that can be unzipped.

 

PowerShell Script Snippet:

 

Description: Extracts “DriverPackCatalog.xml” from “DriverPackCatalog.cab” to the current directory.

 

$catalogCABFile = "$pwd" + "\DriverPackCatalog.cab"

$catalogXMLFile = "$pwd" + "\DriverPackCatalog.xml"

EXPAND $catalogCABFile $catalogXMLFile

 

3. How to find the list of Models supported by “DriverPackCatalog.xml”?

Note: Although, LOB title and model codes are present in child nodes, we recommend you to use the BIOS/System ID and Name to evaluate the applicability of the Driver Pack.

Description: Get Mapping between Model name and BIOS/System ID along with Line of Business, for system supported by the catalog from “DriverPackCatalog.xml” available in current directory.

 

$catalogXMLFile = "$pwd" + "\DriverPackCatalog.xml"

[xml]$catalogXMLDoc = Get-Content $catalogXMLFile

$catalogXMLDoc.DriverPackManifest.DriverPackage | Select-Object @{Expression={$_.SupportedSystems.Brand.key};Label="LOBKey";},  @{Expression={$_.SupportedSystems.Brand.prefix};Label="LOBPrefix";}, @{Expression={$_.SupportedSystems.Brand.Model.systemID};Label="SystemID";}, @{Expression={$_.SupportedSystems.Brand.Model.name};Label="SystemName";} –unique

 

Note: One Model name can be associated with more than one System ID and vice versa. Such cases are possible because configurations/features are controlled by BIOS/System ID and more than one configuration may be available for some Model.

Recommendations: Driver Pack Catalog should be traversed using SystemID or SystemName as described in the above script i.e. ‘SystemID’ and ‘Name’ attributes of the Model node. But as SystemID is not accessible via Microsoft’s WMI Classes readily, hence Name attributes is preferred. 

  

4. How to locate or find Driver Packs for a System from “DriverPackCatalog.xml”?

After the “DriverPackCatalog.xml” is made available in current directory, the xml can be parsed to find all Driver Packs applicable for a model using BIOS/System ID or Name.

 

PowerShell Script Snippet:

 

Description:  In order to get all applicable System and WinPE Driver Packs for a given System, replace the ‘BIOS ID’ or ‘System Name’ in the script.

 

$catalogXMLFile = "$pwd" + "\DriverPackCatalog.xml"

[xml]$catalogXMLDoc = Get-Content $catalogXMLFile

$catalogXMLDoc.DriverPackManifest.DriverPackage| ? { ($_.SupportedSystems.Brand.Model.systemID -eq "BIOS ID") -or ($_.type -eq "WinPE")} |sort type

Or

$catalogXMLDoc.DriverPackManifest.DriverPackage| ? { ($_.SupportedSystems.Brand.Model.name -eq "System Name") -or ($_.type -eq "WinPE")} |sort type

 

 5. How to find System Driver Pack for a System and an Operating System from “DriverPackCatalog.xml”?

 Driver Pack Catalog contains only the latest Driver Packs for a given Model and Operating System.

 

PowerShell Script Snippet:

 

Description: Replace ‘OS Major Version’, ‘OS Minor Version’ and ‘BIOS ID’ or ‘System Name’ to get the System Cab for a Model and an operating system.

 

$catalogXMLFile = "$pwd" + "\DriverPackCatalog.xml"

[xml]$catalogXMLDoc = Get-Content $catalogXMLFile

$catalogXMLDoc.DriverPackManifest.DriverPackage| ? { ($_.SupportedSystems.Brand.Model.systemID -eq "BIOS ID") -and ($_.type -ne "WinPE") -and ($_.SupportedOperatingSystems.OperatingSystem.majorVersion -eq “OS Major Version” ) -and ($_.SupportedOperatingSystems.OperatingSystem.minorVersion -eq “OS Minor Version” )}

Or

$catalogXMLDoc.DriverPackManifest.DriverPackage| ? { ($_.SupportedSystems.Brand.Model.name -eq "System Name") -and ($_.type -ne "WinPE") -and ($_.SupportedOperatingSystems.OperatingSystem.majorVersion -eq “OS Major Version” ) -and ($_.SupportedOperatingSystems.OperatingSystem.minorVersion -eq “OS Minor Version” )}

 

 6. How to find WinPE Driver Packs for Operating System from “DriverPackCatalog.xml”?

 

Note:  WinPE Cabs that support all the models in the Catalog do not have the list of supported systems.

PowerShell Script Snippet:

 

Description: Replace the ‘OS Major Version’ and ‘OS Minor Version’ to get WinPE Cab for an operating system.

 

$catalogXMLFile = "$pwd" + "\DriverPackCatalog.xml"

[xml]$catalogXMLDoc = Get-Content $catalogXMLFile

$catalogXMLDoc.DriverPackManifest.DriverPackage| ? { ($_.type -eq "WinPE") -and ($_.SupportedOperatingSystems.OperatingSystem.majorVersion -eq “OS Major Version” ) -and ($_.SupportedOperatingSystems.OperatingSystem.minorVersion -eq “OS Minor Version”  )}

 

 

7. How to download the link for Driver Packs for a model, operating system and type from “DriverPackCatalog.xml”?

 

After a Driver Pack is located for (Type)-(BIOS/System ID or System Name)-(Operating System), you can easily download it.

 

PowerShell Script Snippet:

 Description: The example demonstrates downloading of a WinPE Cab. Replace ‘OS Major Version’ and ‘OS Minor Version’ to get WinPE Cab for a model and operating system and download the same to current directory.

 

$catalogXMLFile = "$pwd" + "\DriverPackCatalog.xml"

[xml]$catalogXMLDoc = Get-Content $catalogXMLFile

$cabSelected = $catalogXMLDoc.DriverPackManifest.DriverPackage| ? { ($_.type -eq " WinPE ") -and ($_.SupportedOperatingSystems.OperatingSystem.majorVersion -eq “OS Major Version” ) -and ($_.SupportedOperatingSystems.OperatingSystem.minorVersion -eq “OS Minor Version”)}

 

$cabDownloadLink = "http://" + $catalogXMLDoc.DriverPackManifest.baseLocation + $cabSelected.path

$cabDownloadLink = "http://" + $catalogXMLDoc.DriverPackManifest.baseLocation + "/" + $cabSelected.path

$Filename = [System.IO.Path]::GetFileName($cabDownloadLink)

$downlodDestination = "$pwd" + "\" + $Filename

$wc = New-Object System.Net.WebClient

$wc.DownloadFile($cabDownloadLink, $downlodDestination)

 

2
Comments
  • Is the XPS 15 going to be supported? The 9343 XPS 13 has been added, but still lacking on the larger model

  • GaryW1972,

    We currently are only including systems that have full manageability support in the Driver Pack catalog.  The XPS 13 (9343) is the only XPS platform that has full manageability support, so it is included, but the other XPS platforms are not.  We are exploring the possibility of having all driver packs included in the driver pack catalog, but we haven't made a decision on it yet.

    Warren

  • Is “systemID” available using Dell Command Monitor or another method?

    `Note: Both, “systemID” and “name” are flashed on to the BIOS, but “systemID” is not readily accessible WMI query. Hence use of “name” is recommended.`

  • The client device catalog still contains circular references. Publishing all non-expired drivers and firmware as metadata to WSUS via SCUP breaks WSUS.

    We're working through them now to fix them, but as an example, EFB91BF5-AFC1-43A9-AC8B-BF3F7A2D1115 supersedes 0F382067-1A4C-4506-94D4-DE6F4E0A86A0, but also vice versa.

    This causes WSUS to get in a loop and throw the circular reference error.

    This is a fairly easy thing to test for by Dell, but we were having these problem over 18 months ago and they're still there.