dmicheck

Firmware Test Suite - dmicheck test

This test combines dmi_decode and smbios and is designed to sanity check the SMBIOS data. It scans for the SMBIOS header, parses the output from the dmidecode tool and checks for any warnings, errors or bad default values in the Desktop Management Interface (DMI) tables. The test scans all know DMI types. Example output:

dmicheck: Test DMI/SMBIOS tables for errors.
----------------------------------------------------------------------------------------------------
Test 1 of 2: Find and Check SMBIOS Table Entry Point.
This test tries to find and sanity check the SMBIOS data structures.
PASSED: Test 1, Found SMBIOS Table Entry Point at 0xf0480
SMBIOS Entry Point Structure:
  Anchor String          : _SM_
  Checksum               : 0xc2
  Entry Point Length     : 0x1f
  Major Version          : 0x02
  Minor Version          : 0x07
  Maximum Struct Size    : 0xb8
  Entry Point Revision   : 0x00
  Formatted Area         : 0x00 0x00 0x00 0x00 0x00
  Intermediate Anchor    : _DMI_
  Intermediate Checksum  : 0x3e
  Structure Table Length : 0x0c15
  Structure Table Address: 0x000e92f0
  # of SMBIOS Structures : 0x0052
  SBMIOS BCD Revision    : 27

PASSED: Test 1, SMBIOS Table Entry Point Checksum is valid.
PASSED: Test 1, SMBIOS Table Entry Point Length is valid.
PASSED: Test 1, SMBIOS Table Entry Intermediate Anchor String _DMI_ is valid.
PASSED: Test 1, SMBIOS Table Entry Point Intermediate Checksum is valid.
PASSED: Test 1, SMBIOS Table Entry Structure Table Address and Length looks valid.

Test 2 of 2: Test DMI/SMBIOS tables for errors.
PASSED: Test 2, Entry @ 0x000e92f0 'BIOS Information (Type 0)'
PASSED: Test 2, Entry @ 0x000e946f 'Cache Information (Type 7)'
PASSED: Test 2, Entry @ 0x000e9493 'Cache Information (Type 7)'
PASSED: Test 2, Entry @ 0x000e94b7 'Cache Information (Type 7)'
PASSED: Test 2, Entry @ 0x000e94db 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e94f3 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e950b 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9521 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9537 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e954d 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9561 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9575 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9589 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e95a2 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e95c5 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e95de 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e95f8 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9612 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9627 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9643 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e965f 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9680 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e969d 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e96bc 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e96d5 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e96eb 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9704 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e971d 'Port Connector Information (Type 8)'
PASSED: Test 2, Entry @ 0x000e9736 'System Slot Information (Type 9)'
PASSED: Test 2, Entry @ 0x000e9756 'System Slot Information (Type 9)'
PASSED: Test 2, Entry @ 0x000e9778 'System Slot Information (Type 9)'
PASSED: Test 2, Entry @ 0x000e979a 'System Slot Information (Type 9)'
PASSED: Test 2, Entry @ 0x000e97bd 'On Board Devices (Type 10)'
PASSED: Test 2, Entry @ 0x000e9818 'Physical Memory Array (Type 16)'
PASSED: Test 2, Entry @ 0x000e9831 '32-bit Memory Error Information (Type 18)'
PASSED: Test 2, Entry @ 0x000e984a 'Memory Array Mapped Address (Type 19)'
PASSED: Test 2, Entry @ 0x000e986b 'Memory Device (Type 17)'
PASSED: Test 2, Entry @ 0x000e98d4 '32-bit Memory Error Information (Type 18)'
PASSED: Test 2, Entry @ 0x000e98ed 'Inactive (Type 126)'
PASSED: Test 2, Entry @ 0x000e9912 'Memory Device (Type 17)'
PASSED: Test 2, Entry @ 0x000e997b '32-bit Memory Error Information (Type 18)'
PASSED: Test 2, Entry @ 0x000e9994 'Memory Device Mapped Address (Type 20)'
PASSED: Test 2, Entry @ 0x000e99b9 'Memory Device (Type 17)'
PASSED: Test 2, Entry @ 0x000e9a22 '32-bit Memory Error Information (Type 18)'
PASSED: Test 2, Entry @ 0x000e9a3b 'Inactive (Type 126)'
PASSED: Test 2, Entry @ 0x000e9a60 'Memory Device (Type 17)'
PASSED: Test 2, Entry @ 0x000e9ac9 '32-bit Memory Error Information (Type 18)'
PASSED: Test 2, Entry @ 0x000e9ae2 'Memory Device Mapped Address (Type 20)'
PASSED: Test 2, Entry @ 0x000e9b07 'System Boot Information (Type 32)'
PASSED: Test 2, Entry @ 0x000e9b1d 'Management Device (Type 34)'
PASSED: Test 2, Entry @ 0x000e9bf2 'Management Device Threshold Data (Type 36)'
PASSED: Test 2, Entry @ 0x000e9cbd 'Voltage Probe (Type 26)'
PASSED: Test 2, Entry @ 0x000e9cda 'Temperature Probe (Type 28)'
PASSED: Test 2, Entry @ 0x000e9cf7 'Cooling Device (Type 27)'
PASSED: Test 2, Entry @ 0x000e9d15 'Electrical Current Probe (Type 29)'
PASSED: Test 2, Entry @ 0x000e9de8 'Onboard Device (Type 41)'
PASSED: Test 2, Entry @ 0x000e9e01 'Onboard Device (Type 41)'
PASSED: Test 2, Entry @ 0x000e9e1a 'Onboard Device (Type 41)'
PASSED: Test 2, Entry @ 0x000e9e34 'Processor Information (Type 4)'
PASSED: Test 2, Entry @ 0x000e9e96 'BIOS Language Information (Type 13)'
PASSED: Test 2, Entry @ 0x000e9ebd 'Unknown (Type 131)'
PASSED: Test 2, Entry @ 0x000e9eff 'End of Table (Type 127)'

====================================================================================================
72 passed, 0 failed, 0 warnings, 0 aborted, 0 skipped, 0 info only.
====================================================================================================

Examples:

sudo fwts dmicheck - 

..runs the test on your machine and dumps the output to stdout.

sudo fwts dmicheck

..runs the test on your machine and appends the output to results.log.

Explanation of test results

Certain test results may require a little more explanation. This section will try and give some context to specific test failures.

Error ID

Explanation

SMBIOSNoEntryPoint

Could not find the SMBIOS header. This header is located on 16 byte boundaries and starts with 4 bytes: "_SM_". For legacy BIOS the header is normally found in the region 0x000e0000..0x000fffff and UEFI systems the address is found in the SMBIOS field of /sys/firmware/efi/systab.

NoSMBIOSorDMIentry

No SMBIOS or DMI entry points found. Best to check SMBIOS entry points with the fwts smbios test.

DMIBadStructCount

Wrong DMI structures count. Could be a mis-configured DMI table

DMIBadStructLength

Bad DMI structure size.

DMIOutOfSpec

A value is outside of the valid values allowed in the specification.

DMIBadIndex

A DMI string is not correctly terminated.

DMIChecksum

Bad DMI structure checksum.

DMIAssetTag

A DMI Asset Tag has been left as the default 1234567890 and should have been defined.

DMIUUID

A DMI UUID has been left as the default 0A0A0A0A-0A0A-0A0A-0A0A-0A0A0A0A0A0A and should have been defined.

DMIBadDefault

A DMI field has been left as the default 'To Be Filled By O.E.M.' and should have been defined.

DMIInvalidHardwareEntry

A DMI device definition does not match to actual hardware.

FirmwareTestSuite/Reference/dmicheck (last edited 2016-01-11 07:25:46 by anthonywong)