Saturday, February 5, 2011

Watch your BIOS settings with dmdeicode and biosdecode

    The Desktop Management Interface (DMI) generates a standard framework  for managing and tracking components in a desktop, notebook or server components , by abstracting these components from the software that manages them. Modern mother boards are compatible with this standard. For a lay user it means that the BIOS settings can be watched from your OS. DMI standards are published by Distributed Management Task Force (DMTF) into desktop-management standards. They also provide a related standard named
 SMBIOS (System Management BIOS ).

  On linux systems , you can watch various system parameters using dmidecode command. You  have to be superuser to display dmi information.


    As you run it, dmidecode will try to locate the DMI table.  It will print a long list of information. A sample entry is shown below.

  Base Board Information
    Manufacturer: Intel Corporation
    Product Name: DG35EC
    Version: AAE29266-205
    Serial Number: BTEC8270055Y
    Asset Tag: Base Board Asset Tag
        Board is a hosting board
        Board is replaceable
    Location In Chassis: Base Board Chassis Location
    Chassis Handle: 0x0007
    Type: Unknown
    Contained Object Handles: 0

If you look closely , each record has 

       · A handle. This is a unique identifier, which allows records to reference each other. For example, processor records usually reference cache mem‐
         ory records using their handles.

       · A type. The SMBIOS specification defines different types of elements a computer can be made of. In this example, the type is 2, which means that
         the record contains "Base Board Information".

       · A  size.  Each  record  has  a 4-byte header (2 for the handle, 1 for the type, 1 for the size), the rest is used by the record data. This value
         doesn’t take text strings into account (these are placed at the end of the record), so the actual length of the record may  be  (and  is  often)
         greater than the displayed value.

       · Decoded values. The information presented of course depends on the type of record. Here, we learn about the board’s manufacturer, model, version
         and serial number.

  There is also a related command named biosdecode which prints  a shorter description. On my desktop , biosdecode provided

# biosdecode
ACPI 1.0 present.
    OEM Identifier: INTEL
    RSD Table 32-bit Address: 0x7F6FD038
PNP BIOS 1.0 present.
    Event Notification: Not Supported
    Real Mode 16-bit Code Address: F000:AF46
    Real Mode 16-bit Data Address: 0040:0000
    16-bit Protected Mode Code Address: 0x000FAF51
    16-bit Protected Mode Data Address: 0x00000400
    OEM Device Identifier: SST2400
SMBIOS 2.4 present.
    Structure Table Length: 1551 bytes
    Structure Table Address: 0x000E33F0
    Number Of Structures: 33
    Maximum Structure Size: 152 bytes

1 comment:

Saint said...

It would be wonderful to have a utility that would gather all of the various CMOS settings into an XML or key=value data file ... oh! and create a formatted report in the process.

Better still is a CMOS capture and restore utility against those times when something runs wild (end-user mad with curiosity) and steps on CMOS settings.

~~~ 0;-Dan