Parse::DMIDecode - Interface to SMBIOS using dmidecode
Contents
Copyright
Copyright 2006,2007 Nicola Worthington.
This software is licensed under The Apache Software License, Version 2.0.
<http://www.apache.org/licenses/LICENSE-2.0>
perl v5.36.0 2022-10-13 Parse::DMIDecode(3pm)
Description
This module provides an OO interface to SMBIOS information through the dmidecode command which is known
to work under a number of Linux, BSD and BeOS variants.
Methods
new
my $decoder = Parse::DMIDecode->new(
dmidecode => "/usr/sbin/dmidecode",
nowarnings => 1,
);
This is the constructor method to create a Parse::DMIDeocde object. It accepts two optional arguments;
"dmidecode" and "nowarnings".
The "dmidecode" argument specifies the full path and filename of the dmodecode command that should used
by the "probe" method.
The "nowarnings" argument instructs Parse::DMIDecode not to emit any parser warnings.
probe
$decoder->probe;
This method executes an active probe to gather information using the dmidecode command. It does not
accept any arguments.
parse
my $raw = qx(sudo /usr/sbin/dmidecode);
$decoder->prase($raw);
This method is a passive alternative to the "probe" method. It accepts a single string argument which
should contain output from the dmidecode command, which it will parse.
keyword
my $serial_number = $decoder->keyword("system-serial-number");
keywords
my @keywords = $decoder->keywords;
my @bios_keywords = $decoder->keywords("bios");
for my $keyword (@bios_keywords) {
printf("%s => %s\n",
$keyword,
$decoder->keyword($keyword)
);
}
handle_addresses
my @addresses = $decoder->handle_addresses;
get_handles
use Parse::DMIDecode::Constants qw(@TYPES);
# Available groups to query: bios, system, baseboard,
# chassis, processor, memory, cache, connector, slot
for my $handle ($decoder->get_handles( group => "memory" )) {
printf(">> Found handle at %s (%s):\n%s\n",
$handle->address,
$TYPES[$handle->dmitype],
$handle->raw
);
}
See Parse::DMIDecode::Handle for accessor method documentation for handle objects.
smbios_version
my $smbios_version = $decoder->smbios_version;
Returns the SMBIOS version number.
dmidecode_version
my $dmidecode_version = $decoder->dmidecode_version;
Returns the version number of the copy of dmidecode that was used to create the source data that was
parsed. This value may not be available when using older versions of dmidecode.
table_location
my $memory_address = $decoder->table_location;
structures
my $total_structures = $decoder->structures;
Name
Parse::DMIDecode - Interface to SMBIOS using dmidecode
See Also
Parse::DMIDecode::Handle, Parse::DMIDecode::Constants, Parse::DMIDecode::Examples, examples/*.pl,
<http://search.cpan.org/src/NICOLAW/Parse-DMIDecode-0.03/examples/>, <http://www.nongnu.org/dmidecode/>,
<http://linux.dell.com/libsmbios/>, <http://sourceforge.net/projects/x86info/>,
<http://www.dmtf.org/standards/smbios>, biosdecode(8), dmidecode(8), vpddecode(8)
Synopsis
use strict;
use Parse::DMIDecode ();
my $decoder = new Parse::DMIDecode;
$decoder->probe; # Actively probe using dmidecode
# Manually supply your own dmidecode output to be parsed
# $decoder->parse(qx(sudo /usr/sbin/dmidecode));
printf("System: %s, %s",
$decoder->keyword("system-manufacturer"),
$decoder->keyword("system-product-name"),
);
Version
$Id: DMIDecode.pm 1004 2007-03-11 12:43:25Z nicolaw $
