Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Dell BIOS .HDR files

OBTAINING BIOS HEADER (.HDR) FILES

Scripted extraction of BIOS .HDR files

There is now an automated tool available to automate the process of extracting .HDR files from the BIOS update executables that you can download from support.dell.com. This tool is called "extract_hdr" and is contained in the firmware-tools RPM. You can install this RPM from the libsmbios yum repository by following the instructions here: or, for quick, scripted, setup: After setting up the libsmbios yum repository, you can install the firmware tools rpm by running "yum install firmware-tools".

It is _HIGHLY_ recommended that you install wine. It is not a strict dependency, as the extraction methods that use wine will be skipped if wine is not installed. But, if you have wine installed, you can extract more types of BIOS images. The downside is that some BIOS images may cause wine to hang. If this happens, kill the wine and wineserver processes. The extraction process should not take more than 5-10 seconds. If it takes significantly longer, it is likely that wine has hung. If you choose to script BIOS extractions in an automated process, it is recommended that you run a reaping program that checks for wine processes that are older than 10 seconds and kills them automatically.

After you have the tools installed, you can extract a single header like this:

[user@build ~]$ extract_hdr -i sab-a01.exe -o test_output/
  attempt extract: /home/user/sab-a01.exe
    good: extractHdrFromPrecisionWindowsExe

[user@build ~]$ find test_output/
test_output/
test_output/hdr
test_output/hdr/system_bios_0x1028_0x00df_version_a01.hdr
test_output/hdr/config.ini
test_output/hdr/system_bios_0x1028_0x00da_LATEST.hdr
test_output/hdr/system_bios_0x1028_0x00df_LATEST.hdr
test_output/hdr/system_bios_0x1028_0x00da_version_a01.hdr

[user@build ~]$ ll test_output/hdr/
total 1064
-rw-rw-r--  1 user user    521 Jan 17 23:13 config.ini
lrwxrwxrwx  1 user user     41 Jan 17 23:13 system_bios_0x1028_0x00da_LATEST.hdr -> system_bios_0x1028_0x00da_version_a01.hdr
-rw-rw-r--  1 user user 524380 Jan 17 23:13 system_bios_0x1028_0x00da_version_a01.hdr
lrwxrwxrwx  1 user user     41 Jan 17 23:13 system_bios_0x1028_0x00df_LATEST.hdr -> system_bios_0x1028_0x00df_version_a01.hdr
-rw-rw-r--  1 user user 524380 Jan 17 23:13 system_bios_0x1028_0x00df_version_a01.hdr

[user@build ~]$

Note the creation of the hdr/ subdirectory, as well as symlinks corresponding to the latest BIOS release for each platform. These can come in handy.

Extraction of multiple .HDR files at the same time

You do not have to use the "-i input_file" option to specify a single file to extract. If you create a subdirectory under the output directory (specified with the '-o' option), and drop any number of BIOS executables, they will all automatically be extracted if you do not give the '-i' option. Note that the directory name must be >3 chars, as 3-char dir names are reserved for internal use by the extraction tool.

For example:

[user@build ~]$ mkdir test_output
[user@build ~]$ mkdir test_output/extract_these_please
[user@build ~]$ mv sab-a01.exe  sab-a02.exe  WS380A02.EXE  WS380A04.EXE test_output/extract_these_please/

[user@build ~]$ extract_hdr -o test_output/
  attempt extract: /home/user/test_output/extract_these_please/WS380A02.EXE
    good: extractHdrFromPrecisionWindowsExe
  attempt extract: /home/user/test_output/extract_these_please/WS380A04.EXE
    good: extractHdrFromPrecisionWindowsExe
  attempt extract: /home/user/test_output/extract_these_please/sab-a01.exe
    good: extractHdrFromPrecisionWindowsExe
  attempt extract: /home/user/test_output/extract_these_please/sab-a02.exe
    good: extractHdrFromPrecisionWindowsExe

[user@build ~]$ find test_output/
test_output/
test_output/hdr
test_output/hdr/system_bios_0x1028_0x00df_version_a01.hdr
test_output/hdr/system_bios_0x1028_0x01a8_LATEST.hdr
test_output/hdr/system_bios_0x1028_0x01a8_version_a02.hdr
test_output/hdr/config.ini
test_output/hdr/system_bios_0x1028_0x00da_version_a02.hdr
test_output/hdr/system_bios_0x1028_0x00da_LATEST.hdr
test_output/hdr/system_bios_0x1028_0x00df_LATEST.hdr
test_output/hdr/system_bios_0x1028_0x00da_version_a01.hdr
test_output/hdr/system_bios_0x1028_0x01a8_version_a04.hdr
test_output/hdr/system_bios_0x1028_0x00df_version_a02.hdr
test_output/extract_these_please
test_output/extract_these_please/WS380A04.EXE
test_output/extract_these_please/sab-a01.exe
test_output/extract_these_please/WS380A02.EXE
test_output/extract_these_please/sab-a02.exe

[user@build ~]$ ls -l test_output/hdr/
total 3036
-rw-rw-r--  1 user user   1330 Jan 17 23:30 config.ini
lrwxrwxrwx  1 user user     41 Jan 17 23:30 system_bios_0x1028_0x00da_LATEST.hdr -> system_bios_0x1028_0x00da_version_a02.hdr
-rw-rw-r--  1 user user 524380 Jan 17 23:30 system_bios_0x1028_0x00da_version_a01.hdr
-rw-rw-r--  1 user user 524380 Jan 17 23:30 system_bios_0x1028_0x00da_version_a02.hdr
lrwxrwxrwx  1 user user     41 Jan 17 23:30 system_bios_0x1028_0x00df_LATEST.hdr -> system_bios_0x1028_0x00df_version_a02.hdr
-rw-rw-r--  1 user user 524380 Jan 17 23:30 system_bios_0x1028_0x00df_version_a01.hdr
-rw-rw-r--  1 user user 524380 Jan 17 23:30 system_bios_0x1028_0x00df_version_a02.hdr
lrwxrwxrwx  1 user user     41 Jan 17 23:30 system_bios_0x1028_0x01a8_LATEST.hdr -> system_bios_0x1028_0x01a8_version_a04.hdr
-rw-rw-r--  1 user user 458844 Jan 17 23:30 system_bios_0x1028_0x01a8_version_a02.hdr
-rw-rw-r--  1 user user 458844 Jan 17 23:30 system_bios_0x1028_0x01a8_version_a04.hdr
[user@build ~]$


Generated on Wed Apr 11 16:25:11 2007 for SMBIOS Library by doxygen 1.3.5