Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: grabbing dmidecode memory data - there's got to be a better way

by RichardK (Parson)
on Dec 28, 2012 at 20:01 UTC ( #1010741=note: print w/replies, xml ) Need Help??

in reply to grabbing dmidecode memory data - there's got to be a better way

Does using the quiet flag dmidecode -q make the job any easier?

I'm certainly seeing less info to parse here :-)

  • Comment on Re: grabbing dmidecode memory data - there's got to be a better way
  • Download Code

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

    Yes, that does make for more concise output. After the regex that pulls the mem info into blocks, I'll have to do more work to pull out the useful bits for the higherups, namely socket, size, and locator. Less text will be easier (and faster) to process.


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

      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. [...]
      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.


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

        Good stuff. Thanks afoken!

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

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1010741]
[shmem]: e.g. use Foo and Bar; - use if loading succeeds; and use Foo or Bar; - load if loading fails
[shmem]: but that would mean, also, to drop the "use" not allowed in expression abomination, and make use actually return something useful (as does require at the first call, accidentally)

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (16)
As of 2017-11-21 17:24 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (306 votes). Check out past polls.