http://www.perlmonks.org?node_id=1010841


in reply to Re^2: grabbing dmidecode memory data - there's got to be a better way
in thread grabbing dmidecode memory data - there's got to be a better way

dmidecode has even more useful switches:

-s KEYWORD
--string KEYWORD
Only display the value of the DMI string identified by KEYWORD. [...]
-t TYPE
--type TYPE
Only display the entries of type TYPE. TYPE can be either a DMI type number, or a comma-separated list of type numbers, or a keyword from the following list: bios, system, baseboard, chassis, processor, memory, cache, connector, slot. Refer to the DMI TYPES section below for details. [...]
-u
--dump
Do not decode the entries, dump their contents as hexadecimal instead. [...]
--dump-bin FILE
Do not decode the entries, instead dump the DMI data to a file in binary form. [...]

You could use -s and -t to filter inside dmidecode, so that you have less data to process.

The -u switch generates a slightly more predictable format. You could decode the hexdumps inside perl, using knowledge from DMI::Decode (i.e. copy and port the C code from there to perl).

The --dump-bin switch delivers the raw DMI data, which you could decode all by yourself, again by using knowledge from DMI::Decode.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Replies are listed 'Best First'.
Re^4: grabbing dmidecode memory data - there's got to be a better way
by Tommy (Chaplain) on Dec 31, 2012 at 16:02 UTC

    Good stuff. Thanks afoken!

    --
    Tommy
    $ perl -MMIME::Base64 -e 'print decode_base64 "YWNlQHRvbW15YnV0bGVyLm1lCg=="'