The SMBIOS specification includes an informative annex providing conformance guidelines for DMI table implementations. I would like to write a checker tool to verify the conformance of DMI tables, based on this document. Such a tool could be useful for system firmware writers.
We already have dmidecode which is able to locate and decode DMI tables. It should be fairly easy to reuse the same core and add an alternative structure parser, which would perform the checks instead of printing the decoded information.
There are different types of rules to follow. Some apply to the general structure of the table (being able to locate the table and walk through it without trouble.) Some apply to the data as a whole (for example: a given structure type can only be present once, or must be present at least once.) Some apply to the contents of individual structures (specific fields must be present, field values must meet certain conditions.) Implementing all categories may require multiple passes.
One thing to pay attention to is that different versions of the SMBIOS specification have different conformance guidelines.
This project is part of:
Hack Week 15
This project is one of its kind!