#!/bin/ksh # Oslo Feb. 2 1995 # sys_info 1.3, a hack by Ole Kristian Foss, HPNAS, # to display HP9000 model and the clock frequency of the CPU(s) # Version 1.0 Oslo Jan. 25 1995 # Version 1.1 added call to the $SCHED_FILE. Oslo Jan. 25 1995 # Version 1.2 added the get_physmem function. Oslo Feb. 2 1995 # Version 1.3 added limited functionality for HP-UX 10.X. Oslo Feb. 28 1995 # Version 1.4 more robust 10.X handling. Oslo Mar. 13 1996 # This version should handle all cominations of # HP-UX 9.X and 10.X as well as S700 and S800 # # # Initialize variables: ADB="adb -k" ADB_CMD="" MODEL="" PA_INFO="" PA_RISC="" CPU_REV="" OS_REV="" VER="1.4" CORES="" PROG=`basename $0` SCHED_FILE="/usr/lib/sched.models" export PATH=/etc:/bin:/usr/bin typeset -R4 ID="" typeset -i FADB_OUT typeset -i MHZ typeset -i HZ typeset -i SPEED # function usage { print -u2 "Usage: $PROG <-h|-m> [-v]" exit 1 } # function get_os_rev { OS_REV=`uname -r| cut -f2 -d"."` case $OS_REV in 09) CORES="/hp-ux /dev/kmem" if /bin/hp9000s700 then ADB_CMD="mpproc_info+34/X" elif /bin/hp9000s800 then ADB_CMD="mpproc_info+1E8/X" else echo "This machine is not supported by $PROG" exit 1 fi ;; 10) CORES="/stand/vmunix /dev/kmem" ADB_CMD="_mpproc_info+270/X" ;; *) echo "$PROG does not support this version of HP-UX" exit 1 ;; esac } function get_id { ID=`echo $ADB_CMD | $ADB $CORES | tail -1 | cut -d: -f 2` } # # function get_model { case $ID in " 40"|0040) MODEL="840" ;; " 80"|0080) MODEL="825" ;; " A0"|00A0) MODEL="835/635" ;; " B0"|00B0) MODEL="845/645" ;; " C0"|00C0) MODEL="850" ;; " 810"|0810) MODEL="855" ;; " 820"|0820) MODEL="860" ;; " 830"|0830) MODEL="865/870" ;; 1010) MODEL="822" ;; 1020) MODEL="832" ;; 1040) MODEL="842" ;; 1050) MODEL="852" ;; 1810) MODEL="890" ;; 1820) MODEL="891/T500" ;; 1830) MODEL="892/T520" ;; 2000) MODEL="720" ;; 2010) MODEL="750" ;; 2020) MODEL="730" ;; 2030) MODEL="735" ;; 2040) MODEL="755" ;; 2060) MODEL="735/125" ;; 2800) MODEL="817/F20" ;; 2800) MODEL="827/H20" ;; 2810) MODEL="837/F30" ;; 2810) MODEL="847/G30/H30" ;; 2810) MODEL="857/I30" ;; 2820) MODEL="807/F10" ;; 2830) MODEL="867/G40/H40" ;; 2830) MODEL="877/I40" ;; 2840) MODEL="887/G50/H50" ;; 2840) MODEL="897/I50" ;; 2870) MODEL="887/G70/H70" ;; 2870) MODEL="897/I70" ;; 2880) MODEL="887/G60/H60" ;; 2880) MODEL="897/I60" ;; 3000) MODEL="710" ;; 3020) MODEL="705" ;; 3100) MODEL="715/50" ;; 3110) MODEL="715/33" ;; 3120) MODEL="715s/50" ;; 3130) MODEL="715s/33" ;; 3140) MODEL="715t/50" ;; 3150) MODEL="715t/33" ;; 3160) MODEL="715/75" ;; 3180) MODEL="725/50" ;; 3190) MODEL="725/75" ;; 4010) MODEL="745i/50" ;; 4020) MODEL="742i" ;; 4030) MODEL="745i/100" ;; 4800) MODEL="806/E25" ;; 4810) MODEL="816/E35" ;; 4820) MODEL="826/E45" ;; 4830|4831) MODEL="856/E55" ;; 5800) MODEL="809/K100" ;; 5810) MODEL="839/K210" ;; 5820) MODEL="829/K400" ;; 5830) MODEL="849/K410" ;; 5870) MODEL="841/D210/D410" ;; 5880) MODEL="851/D210/D4102-way" ;; 5890) MODEL="821/D200/D400" ;; 58A0) MODEL="831/D200/D4002-way" ;; 58B0) MODEL="819/K200" ;; 58C0) MODEL="859/K230" ;; 58D0) MODEL="869/K430" ;; 6000) MODEL="712/60" ;; 6010) MODEL="712/80" ;; 6020) MODEL="712/100" ;; 6030) MODEL="743i/60" ;; 6040) MODEL="743i/100" ;; 60A0) MODEL="715/64" ;; 60B0) MODEL="715/100" ;; 60D0) MODEL="725/100" ;; 6170) MODEL="V743i" ;; 6180) MODEL="V743i/100" ;; 6190) MODEL="715/80" ;; 61A0) MODEL="811/DX5" ;; 61B0) MODEL="801/DXO" ;; *) MODEL="UNKNOWN" ;; esac } # function get_tics { ADB_CMD="itick_per_tick/D" FADB_OUT=`echo $ADB_CMD | $ADB $CORES | tail -1 | cut -f 2` # if [ $1 = "HZ" ] then ((HZ=$FADB_OUT * 100)) SPEED=$HZ else ((MHZ=$FADB_OUT / 10000)) SPEED=$MHZ fi } # function get_physmem { ADB_CMD="physmem/D" PHYS_MEM=`echo $ADB_CMD | $ADB $CORES | tail -1 | \ awk '$2 > 0 { print $2 / 256 }' ` echo "Your system has $PHYS_MEM Mbyte ram installed" } # function get_painfo { MODEL="`echo $MODEL|cut -f1 -d'/'`" PA_INFO=`grep ^$MODEL $SCHED_FILE` if [ -n "$PA_INFO" ] then PA_RISC="`echo $PA_INFO | cut -d' ' -f 3 `" CPU_REV="`echo $PA_INFO | cut -d' ' -f 2 `" echo "The PA-RISC processor(s) is of type $PA_RISC rev. $CPU_REV" fi } ## Main program ## if [ $# -eq 0 ] then usage exit 1 fi # if [ `whoami` != "root" ] then echo "You must be root to run $PROG ! " exit 1 fi while getopts :mMhHv OPT do case $OPT in h|H) get_os_rev get_id get_model get_tics HZ print "Your HP9000 Model $MODEL has CPU(s) running at $SPEED Hz" get_painfo get_physmem ;; m|M) get_os_rev get_id get_model get_tics MHZ print "Your HP9000 Model $MODEL has CPU(s) running at $SPEED MHz" get_painfo get_physmem ;; v) echo "You are running version $VER of $PROG" ;; \?) print -u2 "$PROG: unknown option $OPTARG" usage esac done