There is no Solaris command which stright away do it for us, but
try the attached "memconf" perl script. It expect to have Perl
at /usr/local/bin/perl, else modify the script.
This gives very comprehensive output on Memory. like as follows:
$ ./memconf
hostname: kansa
Sun Ultra 2 UPA/SBus (2 X UltraSPARC-II 296MHz)
socket U0501 has a 64MB DIMM
socket U0401 has a 64MB DIMM
socket U0701 has a 64MB DIMM
socket U0601 has a 64MB DIMM
socket U0502 has a 16MB DIMM
socket U0402 has a 16MB DIMM
socket U0702 has a 16MB DIMM
socket U0602 has a 16MB DIMM
empty sockets: U0503 U0403 U0703 U0603 U0504 U0404 U0704 U0604
total memory = 320MB
Hope this helps.
Regards,
Bhavin
> In article <3CB6A96D.D55AA...@pacific.net.hk>,
> brian leung <bria...@pacific.net.hk> wrote:
> > whether any commands that can show the remaining unused memory slot
> > inside the sun sparc box?
> In the Enterprise series servers that have separate memory boards, the
> prtdiag command will show the memory detected. The way to find out how
> much space is left is to shutdown the system, pull the board and count
> the empty slots left.
> I think the same goes for the Sparc 20, Sparc 5, and Ultra 5. Never
> opened an Ultra 2 or 1. prtdiag isn't supported on the Sparc 20 or 5.
> In other words, there's no such command. Sorry.
> --
> Michael Vilain Certified Advanced Rolfer
> rol...@vilain.com http://www.vilain.com
> Envision a just and peaceful world, in which all people achieve their full potential and live with love, respect, and compassion.
[
memconf 116K ]
#!/usr/bin/env perl
#
# @(#) memconf - Identify sizes of SIMM/DIMM memory modules installed on a
# @(#) Sun workstation or server.
# @(#) Micron Technology, Inc. - Tom Schmidt 31-Oct-2001 V1.43
#
# Maintained by Tom Schmidt (tschm...@micron.com)
#
# If memconf does not recognize a system, then please E-mail the output of
# 'memconf -v', '/usr/sbin/prtconf -pv' (or '/usr/etc/devinfo -pv' on Solaris
# 1.X) and '/usr/platform/`uname -i`/sbin/prtdiag -v' if available to
# tschm...@micron.com so that memconf can be enhanced to recognize it.
# If the unrecognized system is a Sun clone, please also send any hardware
# documentation on the memory layout that you may have. Check my website
# at http://www.4schmidts.com/unix.html to get the latest version of memconf.
#
# Usage: memconf [ -v | -D | -h ] [explorer_dir]
# -v verbose mode
# -D E-mail results to memconf maintainer
# -h print help
# explorer_dir Sun Explorer output directory
#
# memconf reports the size of each SIMM/DIMM memory module installed in a
# system. It also reports the system type and any empty memory sockets.
# In verbose mode, it also reports:
# - banner name, model and CPU/system frequencies
# - address range and bank numbers for each module
#
# memconf is Y2K compliant. There are no date calls in the program. Your
# Operating System or Perl version may not be Y2K compliant.
#
# memconf is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# Based on SunManagers SUMMARY by Howard Modell (h.mod...@ieee.org)
# on 29-Jan-1997.
#
# Tested to work on:
# - sun4c Sun SS1, SS2, IPC, IPX, ELC with Open Boot PROM V2.X
# - sun4m Sun 4/6x0, SS4, SS5, SS10, SS10SX, SS20, LX/ZX, Classic, Voyager
# - sun4d Sun SPARCserver-1000, 1000E, SPARCcenter-2000, 2000E
# - sun4u Sun Ultra 1, 2, 5, 10, 30, 60, 450
# - sun4u Sun Ultra Enterprise 220R, 250, 450
# - sun4u Sun Ultra Enterprise 3000, 3500, 4000/5000, 4500/5500, 6000, 6500
# - sun4u1 Sun Ultra Enterprise 10000
# - sun4u Sun SPARCengine Ultra AX, AXi, AXmp, AXmp+, AXe
# - sun4u Sun SPARCengine CP 1500
# - sun4u Sun Netra t1 100/105, t1120/1125, ft1800, X1, T1 200, AX1105-500
# - sun4u Sun Blade 1000, Sun Blade 100
# - sun4u Sun Fire 280R
# - sun4u Sun Fire 3800, 4800, 4810, and 6800 (does not report empty sockets)
# - sun4u Sun Fire 880 (does not report empty sockets)
# - sun4m Tatung COMPstation 5, 10, 20AL, 20S and 20SL clones
# - sun4m transtec SPARCstation 20I clone
# - sun4m Rave Axil-255 SPARCstation 5 clone
# - sun4m Rave Axil-245, 311 and 320 clones (no verbose output)
# - sun4u AXUS Ultra 250
# - sun4u Cycle CycleQUAD
# - sun4u Tatung COMPstation U2, U60 and U80D clones
# - Force Computers SPARC clones (no verbose output)
# - Tadpole SPARCbook 3 and RDI PowerLite-170 (no verbose output)
# - Auspex 7000/650 (no verbose output)
# - Fujitsu S-4/10H, S-4/20L and S-4/20H clones (no verbose output)
# - Fujitsu GP7000 and GP7000F
# - Fujitsu Siemens PrimePower 200, 400, and 800
# - Twinhead TWINstation 5G and 20G
# - Detects VSIMMs for SX graphics on SS10SX/SS20 (1st VSIMM only)
# - Detects Prestoserve NVSIMMs on SS10/SS20/SS1000/SC2000
#
# Untested systems that might work:
# - sun4c Sun SS1+ with Open Boot PROM V2.X
# - sun4u Sun Fire 15000 (does not report empty sockets)
# - sun4m Tatung COMPstation 20A clone
# - Fujitsu Siemens PrimePower 600
# - May not work properly on Sun clones
#
# Won't work on:
# - sun4u Sun Ultra 80, Ultra Enterprise 420R, and Netra t1400/1405.
# Not enough information is provided about the memory in the prtconf and
# prtdiag outputs by the Open Boot PROM.
# - Systems without /dev/openprom
# - sun4c Sun SS1, SS1+, SLC, IPC with Open Boot PROM V1.X (no 'memory' lines
# in devinfo/prtconf output)
# - sun4 kernel architecture, and sun3 and older systems
# - i86pc Solaris on Intel-based (x86) machines only show total memory
# - Perl 5.001 is known to have problems with hex number conversions
# - Does not detect unused VSIMMs (another FB installed) or second VSIMM
#
# To Do list and Revision History can be found on the maintainers web site at
# http://www.4schmidts.com/unix.html
# Uncomment for debugging (perl 5 only)
#use diagnostics;
$version = "V1.43"; # read more »
$version_date = "31-Oct-2001";
$URL = "http://www.4schmidts.com/unix.html";
$ENV{PATH} = "/usr/sbin:/bin:/usr/bin:/usr/ucb:/usr/local/bin:/var/local/bin:$ENV{PATH}"
$_ = $];
$^W = 1; # Enables -w warning switch, put here for SunOS4 compatibility.
($PERL_VERSION_MAJOR) = /(\d).*/;
if ($PERL_VERSION_MAJOR < 5) {
($PERL_VERS) = /(\d\.\d)/;
($PERL_PATCH) = /(\d{2})$/;
$PERL_VERSION = "$PERL_VERS$PERL_PATCH";
$hostname = `/usr/bin/uname -n`;
chop $hostname;
$machine = `/usr/bin/uname -m`;
chop $machine;
$operating_system = `/usr/bin/uname`;
chop $operating_system;
$sunos = `/usr/bin/uname -r`;
chop $sunos;
$platform = $machine;
$machine = "";
$operating_system = "this unsupported";
$sunos = "";
$prtdiag_exec = "";
if (-d '/usr/platform') {
$platform = `/usr/bin/uname -i`;
chop $platform;
if (-x "/usr/platform/$platform/sbin/prtdiag") {
$prtdiag_cmd = "/usr/platform/$platform/sbin/prtdiag";
} elsif (-x "/usr/platform/$machine/sbin/prtdiag") {
$prtdiag_cmd = "/usr/platform/$machine/sbin/prtdiag";
}
$prtdiag_cmd = '/usr/kvm/prtdiag';
# Force C locale so that prtdiag output is in English
$prtdiag_exec = "/bin/sh -c 'LC_ALL=C $prtdiag_cmd'";
$filename = "";
$memory_size = "";
$installed_memory = 0;
$ultra = 0;
$simmbanks = 0;
$simmspergroup = 1;
$bankcnt = 0;
$slot0 = 0;
$smallestsimm = 16777216;
$largestsimm = 0;
$found16mb = 0;
$found32mb = 0;
$sxmem = 0;
$nvmem = 0;
$nvmem1 = 0;
$nvmem2 = 0;
$memtype = "SIMM";
$sockettype = "socket";
$verbose = 0;
$recognized = 1;
$untested = 1;
$untested_type = "";
$perlhexbug = 0;
$exitstatus = 0;
$meg = 1048576;
@socketstr = ("");
@orderstr = ("");
@groupstr = ("");
@bankstr = ("");
@banksstr = ("");
@bytestr = ("");
@slotstr = ("");
@simmsizes = (0,16777216);
@simmsizesfound = ();
$socket = "";
$order = "";
$group = "";
$slotnum = "";
$bank = "";
$dualbank = 0;
$byte = "";
$gotmemory = "";
$gotmodule = "";
$gotmodulenames = "";
$slotname0 = "";
@boards_cpu = "";
@boards_mem = "";
$empty_banks = "";
$banks_used = "";
$nvsimm_banks = "";
$boardslot_cpu = " ";
$boardslot_cpus = " ";
@boardslot_cpus = ();
$boardslot_mem = " ";
$boardslot_mems = " ";
@boardslot_mems = ();
$boardfound_cpu = 0;
$boardfound_mem = 0;
$prtdiag_has_mem = 0;
$prtdiag_failed = 0;
$flag_cpu = 0;
$flag_mem = 0;
$format_cpu = 0;
$format_mem = 0;
$foundname = 0;
$sockets_used = "";
$sockets_empty = "";
$sortslots = 1;
$devtype = "";
$interleave = 0;
$freq = 0;
$sysfreq = 0;
$cpufreq = 0;
$cputype = "";
$ncpu = 0;
$header_shown = 0;
$romver = "";
$romvernum = "";
$tenbit = 0;
$SUNWexplo = 0;
$banner = "";
$bannermore = "";
$model = "";
$modelmore = "";
$BSD = 1; # Initially assume SunOS 4.X
$config_cmd = "/usr/etc/devinfo -pv";
$config_command = "devinfo";
$config_permission = 0;
# Parse options
#
if ($#ARGV >= 0) {
foreach $name (@ARGV) {
if ($name eq "-v") {
# verbose mode
$verbose = 1;
} elsif ($name eq "-d") {
# more verbose debug mode
$verbose = 2;
} elsif ($name eq "-D") {
# E-mail information of system to maintainer
$verbose = 3;
open(MAILFILE, ">/tmp/memconf.output") || die "can't open /tmp/memconf.output: $!";
print MAILFILE "Output from 'memconf -d' on $hostname\n";
print MAILFILE "----------------------------------------------------\n";
close(MAILFILE);
open(STDOUT, "| tee -a /tmp/memconf.output") || die "can't open /tmp/memconf.output: $!";
} elsif (-f "$name/sysconfig/prtconf-vp.out") {
# Sun Explorer output
$SUNWexplo = 1;
open(FILE, "<$name/sysconfig/prtconf-vp.out");
@config = <FILE>;
close(FILE);
if (-f "$name/sysconfig/prtdiag-v.out") {
open(FILE, "<$name/sysconfig/prtdiag-v.out");
@prtdiag = <FILE>;
close(FILE);
}
if (-f "$name/sysconfig/uname-a.out") {
open(FILE, "<$name/sysconfig/uname-a.out");
$uname = <FILE>;
close(FILE);
chop($uname);
@unamearr = split(/\s/, $uname);
$hostname = $unamearr[1];
$machine = $unamearr[4];
$sunos = $unamearr[2];
$platform = $unamearr[6];
$prtdiag_cmd = "/usr/platform/$platform/sbin/prtdiag";
} else {
if ($config[0] =~ /System Configuration:/) {
@machinearr = split(/\s+/, $config[0]);
$machine = $machinearr[4];
}
$sunos = "";
$hostname = "";
}
if (-f "$name/sysconfig/prtconf-V.out") {
open(FILE, "<$name/sysconfig/prtconf-V.out");
$romver = <FILE>;
close(FILE);
chop $romver;
}
$filename = "$name";
} elsif (-f $name) {
# Test file with prtconf/devinfo output
open(FILE, "<$name");
@config = <FILE>;
close(FILE);
# Test file may also have prtdiag output
@prtdiag = @config;
$hostname = "";
if ($config[0] =~ /System Configuration:/) {
@machinearr = split(/\s+/, $config[0]);
$machine = $machinearr[4];
}
$sunos = "";
$filename = "$name";
} else {
&show_help;
}
}
if ("$operating_system" ne "SunOS") {
print "ERROR: memconf is only supported on SPARC and i86pc ";
print "systems running SunOS\n 4.X or 5.X, not on ";
print "$operating_system $machine systems.\n";
print " It may be able to process Sun Explorer data ";
print "on this machine.\n";
exit 1;
}
if (-f '/vmunix') {
# SunOS 4.X (Solaris 1.X)
$BSD = 1;
if (! -x '/usr/etc/devinfo') {
print "ERROR: no 'devinfo'
...
1. Bad Memory Slot in SPARCstation 10
I have a SPARCstation 10 which has a bad memory slot (the first one from the
rear), and when I remove the simm (or even re-arrange th simm location) the
system won't boot. The error msg is as follow.
(Can't deduct msgbuf from physical memory list) Halted
Program terminated
Type help for more information
ok
Any idea to fix this problem? It is running SunOS 5.3.
2. IP mapping
3. Model 3CT - Memory slots have to be occupied?
5. Qt: Slot question -- updating widgets inside a slot
6. Help using ufsdump properly
7. Legato error- "Cannot find slot -9999 in operation slots list"
8. GNU Emacs 19.13 binaries now available
9. E450 Memory question on how many mem slots
10. System interrogation for SCSI,MEMORY, SERIAL NUMBERS, SLOTS etc.
11. how to known how nany slots of memory are used
12. PC133 memory in PC100 slots