NAME¶
Parse::DMIDecode - Interface to SMBIOS using dmidecode
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"),
);
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;
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)
VERSION¶
$Id: DMIDecode.pm 1004 2007-03-11 12:43:25Z nicolaw $
AUTHOR¶
Nicola Worthington <nicolaw@cpan.org>
<
http://perlgirl.org.uk>
If you like this software, why not show your appreciation by sending the author
something nice from her Amazon wishlist ?
<
http://www.amazon.co.uk/gp/registry/1VZXC59ESWYK0?sort=priority>
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>