Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

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]
[1nickt]: choroba Updated the PR, using Config instead of exposing the hackery. Using cpanfile-dump does not work to test, as shown in the earlier PR comment, even when using a binary built for a particular Perlbrew perl, the output seems to be

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (15)
As of 2017-10-18 16:03 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (249 votes). Check out past polls.