diff options
author | Stefan Walter <stefan@FreeBSD.org> | 2008-10-13 17:22:20 +0000 |
---|---|---|
committer | Stefan Walter <stefan@FreeBSD.org> | 2008-10-13 17:22:20 +0000 |
commit | 13a94294db53207d01552e473eb4ae9a19f62326 (patch) | |
tree | 8a42502ba20645c54969d9d31d854afe1c2fb54a /sysutils | |
parent | 6decbf20fccb8c766f227e7d437e2358d3386d6c (diff) |
Notes
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/linux-megacli/Makefile | 4 | ||||
-rw-r--r-- | sysutils/linux-megacli/files/407.status-mfi-raid.in | 30 | ||||
-rw-r--r-- | sysutils/linux-megacli/files/megacli.sh.in | 27 | ||||
-rw-r--r-- | sysutils/linux-megacli/files/mfi_tty_log.in | 63 | ||||
-rw-r--r-- | sysutils/linux-megacli/pkg-message | 10 | ||||
-rw-r--r-- | sysutils/linux-megacli/pkg-plist | 1 | ||||
-rw-r--r-- | sysutils/linux-megacli2/Makefile | 4 | ||||
-rw-r--r-- | sysutils/linux-megacli2/files/407.status-mfi-raid.in | 30 | ||||
-rw-r--r-- | sysutils/linux-megacli2/files/megacli.sh.in | 27 | ||||
-rw-r--r-- | sysutils/linux-megacli2/files/mfi_tty_log.in | 63 | ||||
-rw-r--r-- | sysutils/linux-megacli2/pkg-message | 10 | ||||
-rw-r--r-- | sysutils/linux-megacli2/pkg-plist | 1 |
12 files changed, 256 insertions, 14 deletions
diff --git a/sysutils/linux-megacli/Makefile b/sysutils/linux-megacli/Makefile index 40163981d265..36a82e0bf4a1 100644 --- a/sysutils/linux-megacli/Makefile +++ b/sysutils/linux-megacli/Makefile @@ -7,7 +7,7 @@ PORTNAME= megacli PORTVERSION= 1.01.40 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils linux MASTER_SITES= http://www.lsi.com/support/downloads/megaraid/miscellaneous/linux/ PKGNAMEPREFIX= linux- @@ -23,6 +23,7 @@ ONLY_FOR_ARCHS= i386 amd64 USE_LINUX= yes SUB_FILES= megacli.sh SUB_FILES+= 407.status-mfi-raid +SUB_FILES+= mfi_tty_log # From bsd.linux.rpm.mk RPM2CPIO?= ${LOCALBASE}/bin/rpm2cpio @@ -39,6 +40,7 @@ do-install: ${INSTALL_SCRIPT} ${WRKSRC}/megacli.sh ${PREFIX}/sbin/megacli ${MKDIR} ${PREFIX}/etc/periodic/daily ${INSTALL_SCRIPT} ${WRKSRC}/407.status-mfi-raid ${PREFIX}/etc/periodic/daily + ${INSTALL_SCRIPT} ${WRKSRC}/mfi_tty_log ${PREFIX}/etc/rc.d ${INSTALL_PROGRAM} ${WRKSRC}/opt/MegaRAID/MegaCli/MegaCli ${PREFIX}/libexec post-install: diff --git a/sysutils/linux-megacli/files/407.status-mfi-raid.in b/sysutils/linux-megacli/files/407.status-mfi-raid.in index 7cc22298aa9c..25c5ef5f9616 100644 --- a/sysutils/linux-megacli/files/407.status-mfi-raid.in +++ b/sysutils/linux-megacli/files/407.status-mfi-raid.in @@ -16,6 +16,7 @@ fi : ${daily_status_mfi_raid_enable:=NO} : ${daily_status_mfi_raid_verbose:=NO} : ${daily_status_mfi_raid_persist_logs:=YES} +: ${daily_status_mfi_raid_tty_log:=NO} megacli=${megacli:-%%PREFIX%%/sbin/megacli} logdir=${logdir:-/var/log} @@ -67,7 +68,8 @@ for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX} ${ADPMAXIDX}`; do E=-1; S=-1; D=-1; s=-1; mec=-1; oec=-1; pfc=-1; lpfeqn=-1; state=""; } - /^Enclosure (Number|Device ID):/ { E=$3; } + /^Enclosure (Number:/ { E=$3; } + /^Enclosure Device ID:/ { E=$4; } /^Slot Number:/ { S=$3; } /^Device Id:/ { D=$3; } /^Sequence Number:/ { s=$3; } @@ -222,7 +224,31 @@ for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX} ${ADPMAXIDX}`; do if test $raid_rc -eq 0; then echo " No new log messages." fi - [ $rc -eq 0 ] && [ $raid_rc -ne 0 ] && rc=3 + + # TTY Log + echo "TTY Log:" + tty_log=${logdir}/mfi_raid_${ctrl}_tty + tty_rc=0 + case "$daily_status_mfi_raid_tty_log" in + [Yy][Ee][Ss]) + if test ! -f ${tty_log}.today; then + touch ${tty_log}.today + fi + mv -f ${tty_log}.today ${tty_log}.yesterday + ${megacli} -FwTermLog Dsply -a${ctrl} > ${tty_log}.today + cmp -s ${tty_log}.yesterday ${tty_log}.today + tty_rc=$? + if test $tty_rc -ne 0; then + diff -u ${tty_log}.yesterday ${tty_log}.today | \ + grep -v '^-\|^$' + else + echo " No new TTY log messages." + fi + ;; + *) + ;; + esac + [ $rc -eq 0 ] && [ $raid_rc -ne 0 -o $tty_rc -ne 0 ] && rc=3 done exit ${rc} diff --git a/sysutils/linux-megacli/files/megacli.sh.in b/sysutils/linux-megacli/files/megacli.sh.in index faca0d4ae890..acd82899f556 100644 --- a/sysutils/linux-megacli/files/megacli.sh.in +++ b/sysutils/linux-megacli/files/megacli.sh.in @@ -8,11 +8,32 @@ then exit 1 fi -if ! [ `sysctl -n compat.linux.osrelease` = "2.6.12" ]; then - echo "You need to set compat.linux.osrelease to 2.6.12 to run `basename $0`." >&2 - exit 1 +osrelease=`sysctl -n compat.linux.osrelease` + +case $osrelease in + 2.6.*) + if [ `echo $osrelease | cut -d . -f 3` -lt 12 ]; then + osrelease=TOOLOW + fi + ;; + 2.*) + if [ `echo $osrelease | cut -d . -f 2` -lt 6 ]; then + osrelease=TOOLOW + fi + ;; + *) + if [ `echo $osrelease | cut -d . -f 1` -lt 2 ]; then + osrelease=TOOLOW + fi + ;; +esac + +if [ $osrelease = "TOOLOW" ]; then + echo "You need to set compat.linux.osrelease to atleast 2.6.12 to run `basename $0`." >&2 + exit 1 fi + lpfs=`mount -t linprocfs | awk 'END{ print NR }'` if [ ${lpfs} -le 0 ]; then echo "You need to mount linprocfs to run `basename $0`." >&2 diff --git a/sysutils/linux-megacli/files/mfi_tty_log.in b/sysutils/linux-megacli/files/mfi_tty_log.in new file mode 100644 index 000000000000..e83a10867bc8 --- /dev/null +++ b/sysutils/linux-megacli/files/mfi_tty_log.in @@ -0,0 +1,63 @@ +#!/bin/sh +# +# $FreeBSD: /tmp/pcvs/ports/sysutils/linux-megacli/files/Attic/mfi_tty_log.in,v 1.1 2008-10-13 17:22:20 stefan Exp $ +# + +# PROVIDE: mfi_tty_log +# REQUIRE: abi +# KEYWORD: nojail + +: ${rc_mfi_raid_tty_log:=NO} + +. /etc/rc.subr + +name="mfi_tty_log" +start_cmd="${name}_start" +stop_cmd=":" + +mfi_tty_log_start() +{ + megacli=${megacli:-%%PREFIX%%/sbin/megacli} + logdir=${logdir:-/var/log} + + case "$rc_mfi_raid_tty_log" in + [Yy][Ee][Ss]) + echo + echo 'Checking for TTY logs of MFI(4) RAID controllers:' + ;; + *) + return 0 + ;; + esac + + if test `id -u` -ne 0; then + echo "You must be root to run `basename $0`." >&2 + return 1 + fi + + ADPCOUNT=$(${megacli} -adpCount | \ + awk '/Controller Count:/ { gsub("\\.", ""); print $3 }') + + case ${ADPCOUNT} in + 0) echo "Error: Cannot find an adapter." >&2 + return 1 + ;; + [1-9]|[1-9][0-9]|[1-2][0-9][0-9]) + ;; + *) + echo "Error: Cannot get the number of adapters: ${ADPCOUNT}" >&2 + return 1 + ;; + esac + + ADPMINIDX=0 + ADPMAXIDX=`expr ${ADPCOUNT} - 1` + + for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX} ${ADPMAXIDX}`; do + tty_log=${logdir}/mfi_raid_${ctrl}_tty.boot + echo " Adapter: ${ctrl} - TTY log saved to ${tty_log}" + ${megacli} -FwTermLog Dsply -a${ctrl} > ${tty_log} + done +} + +run_rc_command "$1" diff --git a/sysutils/linux-megacli/pkg-message b/sysutils/linux-megacli/pkg-message index e9927447136f..4e4a56e2ba26 100644 --- a/sysutils/linux-megacli/pkg-message +++ b/sysutils/linux-megacli/pkg-message @@ -30,7 +30,15 @@ Add the following to /etc/periodic.conf # For daily summary mails and log diffs: daily_status_mfi_raid_enable="YES" # In case you want really lots of details enable this: - daily_status_mfi_raid_verbose="NO" + daily_status_mfi_raid_verbose="YES" + # In case you want the tty logs from the controller + daily_status_mfi_raid_tty_log="YES" + +Add the following to /etc/rc.conf + +# Save tty log on reboot (you want this) +rc_mfi_raid_tty_log="YES" + If you find mfi(4) too verbose, see mfi_evt_class_t in /usr/src/sys/dev/mfi/mfireg.h for values you can use in the diff --git a/sysutils/linux-megacli/pkg-plist b/sysutils/linux-megacli/pkg-plist index 83ab15aabd3b..c565df0de4a7 100644 --- a/sysutils/linux-megacli/pkg-plist +++ b/sysutils/linux-megacli/pkg-plist @@ -1,6 +1,7 @@ sbin/megacli libexec/MegaCli etc/periodic/daily/407.status-mfi-raid +etc/rc.d/mfi_tty_log %%PORTDOCS%%%%DOCSDIR%%/readme.txt %%PORTDOCS%%%%DOCSDIR%%/README-status-mfi-raid.txt %%PORTDOCS%%@dirrm %%DOCSDIR%% diff --git a/sysutils/linux-megacli2/Makefile b/sysutils/linux-megacli2/Makefile index 40163981d265..36a82e0bf4a1 100644 --- a/sysutils/linux-megacli2/Makefile +++ b/sysutils/linux-megacli2/Makefile @@ -7,7 +7,7 @@ PORTNAME= megacli PORTVERSION= 1.01.40 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils linux MASTER_SITES= http://www.lsi.com/support/downloads/megaraid/miscellaneous/linux/ PKGNAMEPREFIX= linux- @@ -23,6 +23,7 @@ ONLY_FOR_ARCHS= i386 amd64 USE_LINUX= yes SUB_FILES= megacli.sh SUB_FILES+= 407.status-mfi-raid +SUB_FILES+= mfi_tty_log # From bsd.linux.rpm.mk RPM2CPIO?= ${LOCALBASE}/bin/rpm2cpio @@ -39,6 +40,7 @@ do-install: ${INSTALL_SCRIPT} ${WRKSRC}/megacli.sh ${PREFIX}/sbin/megacli ${MKDIR} ${PREFIX}/etc/periodic/daily ${INSTALL_SCRIPT} ${WRKSRC}/407.status-mfi-raid ${PREFIX}/etc/periodic/daily + ${INSTALL_SCRIPT} ${WRKSRC}/mfi_tty_log ${PREFIX}/etc/rc.d ${INSTALL_PROGRAM} ${WRKSRC}/opt/MegaRAID/MegaCli/MegaCli ${PREFIX}/libexec post-install: diff --git a/sysutils/linux-megacli2/files/407.status-mfi-raid.in b/sysutils/linux-megacli2/files/407.status-mfi-raid.in index 7cc22298aa9c..25c5ef5f9616 100644 --- a/sysutils/linux-megacli2/files/407.status-mfi-raid.in +++ b/sysutils/linux-megacli2/files/407.status-mfi-raid.in @@ -16,6 +16,7 @@ fi : ${daily_status_mfi_raid_enable:=NO} : ${daily_status_mfi_raid_verbose:=NO} : ${daily_status_mfi_raid_persist_logs:=YES} +: ${daily_status_mfi_raid_tty_log:=NO} megacli=${megacli:-%%PREFIX%%/sbin/megacli} logdir=${logdir:-/var/log} @@ -67,7 +68,8 @@ for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX} ${ADPMAXIDX}`; do E=-1; S=-1; D=-1; s=-1; mec=-1; oec=-1; pfc=-1; lpfeqn=-1; state=""; } - /^Enclosure (Number|Device ID):/ { E=$3; } + /^Enclosure (Number:/ { E=$3; } + /^Enclosure Device ID:/ { E=$4; } /^Slot Number:/ { S=$3; } /^Device Id:/ { D=$3; } /^Sequence Number:/ { s=$3; } @@ -222,7 +224,31 @@ for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX} ${ADPMAXIDX}`; do if test $raid_rc -eq 0; then echo " No new log messages." fi - [ $rc -eq 0 ] && [ $raid_rc -ne 0 ] && rc=3 + + # TTY Log + echo "TTY Log:" + tty_log=${logdir}/mfi_raid_${ctrl}_tty + tty_rc=0 + case "$daily_status_mfi_raid_tty_log" in + [Yy][Ee][Ss]) + if test ! -f ${tty_log}.today; then + touch ${tty_log}.today + fi + mv -f ${tty_log}.today ${tty_log}.yesterday + ${megacli} -FwTermLog Dsply -a${ctrl} > ${tty_log}.today + cmp -s ${tty_log}.yesterday ${tty_log}.today + tty_rc=$? + if test $tty_rc -ne 0; then + diff -u ${tty_log}.yesterday ${tty_log}.today | \ + grep -v '^-\|^$' + else + echo " No new TTY log messages." + fi + ;; + *) + ;; + esac + [ $rc -eq 0 ] && [ $raid_rc -ne 0 -o $tty_rc -ne 0 ] && rc=3 done exit ${rc} diff --git a/sysutils/linux-megacli2/files/megacli.sh.in b/sysutils/linux-megacli2/files/megacli.sh.in index faca0d4ae890..acd82899f556 100644 --- a/sysutils/linux-megacli2/files/megacli.sh.in +++ b/sysutils/linux-megacli2/files/megacli.sh.in @@ -8,11 +8,32 @@ then exit 1 fi -if ! [ `sysctl -n compat.linux.osrelease` = "2.6.12" ]; then - echo "You need to set compat.linux.osrelease to 2.6.12 to run `basename $0`." >&2 - exit 1 +osrelease=`sysctl -n compat.linux.osrelease` + +case $osrelease in + 2.6.*) + if [ `echo $osrelease | cut -d . -f 3` -lt 12 ]; then + osrelease=TOOLOW + fi + ;; + 2.*) + if [ `echo $osrelease | cut -d . -f 2` -lt 6 ]; then + osrelease=TOOLOW + fi + ;; + *) + if [ `echo $osrelease | cut -d . -f 1` -lt 2 ]; then + osrelease=TOOLOW + fi + ;; +esac + +if [ $osrelease = "TOOLOW" ]; then + echo "You need to set compat.linux.osrelease to atleast 2.6.12 to run `basename $0`." >&2 + exit 1 fi + lpfs=`mount -t linprocfs | awk 'END{ print NR }'` if [ ${lpfs} -le 0 ]; then echo "You need to mount linprocfs to run `basename $0`." >&2 diff --git a/sysutils/linux-megacli2/files/mfi_tty_log.in b/sysutils/linux-megacli2/files/mfi_tty_log.in new file mode 100644 index 000000000000..09426e214f29 --- /dev/null +++ b/sysutils/linux-megacli2/files/mfi_tty_log.in @@ -0,0 +1,63 @@ +#!/bin/sh +# +# $FreeBSD: /tmp/pcvs/ports/sysutils/linux-megacli2/files/Attic/mfi_tty_log.in,v 1.1 2008-10-13 17:22:20 stefan Exp $ +# + +# PROVIDE: mfi_tty_log +# REQUIRE: abi +# KEYWORD: nojail + +: ${rc_mfi_raid_tty_log:=NO} + +. /etc/rc.subr + +name="mfi_tty_log" +start_cmd="${name}_start" +stop_cmd=":" + +mfi_tty_log_start() +{ + megacli=${megacli:-%%PREFIX%%/sbin/megacli} + logdir=${logdir:-/var/log} + + case "$rc_mfi_raid_tty_log" in + [Yy][Ee][Ss]) + echo + echo 'Checking for TTY logs of MFI(4) RAID controllers:' + ;; + *) + return 0 + ;; + esac + + if test `id -u` -ne 0; then + echo "You must be root to run `basename $0`." >&2 + return 1 + fi + + ADPCOUNT=$(${megacli} -adpCount | \ + awk '/Controller Count:/ { gsub("\\.", ""); print $3 }') + + case ${ADPCOUNT} in + 0) echo "Error: Cannot find an adapter." >&2 + return 1 + ;; + [1-9]|[1-9][0-9]|[1-2][0-9][0-9]) + ;; + *) + echo "Error: Cannot get the number of adapters: ${ADPCOUNT}" >&2 + return 1 + ;; + esac + + ADPMINIDX=0 + ADPMAXIDX=`expr ${ADPCOUNT} - 1` + + for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX} ${ADPMAXIDX}`; do + tty_log=${logdir}/mfi_raid_${ctrl}_tty.boot + echo " Adapter: ${ctrl} - TTY log saved to ${tty_log}" + ${megacli} -FwTermLog Dsply -a${ctrl} > ${tty_log} + done +} + +run_rc_command "$1" diff --git a/sysutils/linux-megacli2/pkg-message b/sysutils/linux-megacli2/pkg-message index e9927447136f..4e4a56e2ba26 100644 --- a/sysutils/linux-megacli2/pkg-message +++ b/sysutils/linux-megacli2/pkg-message @@ -30,7 +30,15 @@ Add the following to /etc/periodic.conf # For daily summary mails and log diffs: daily_status_mfi_raid_enable="YES" # In case you want really lots of details enable this: - daily_status_mfi_raid_verbose="NO" + daily_status_mfi_raid_verbose="YES" + # In case you want the tty logs from the controller + daily_status_mfi_raid_tty_log="YES" + +Add the following to /etc/rc.conf + +# Save tty log on reboot (you want this) +rc_mfi_raid_tty_log="YES" + If you find mfi(4) too verbose, see mfi_evt_class_t in /usr/src/sys/dev/mfi/mfireg.h for values you can use in the diff --git a/sysutils/linux-megacli2/pkg-plist b/sysutils/linux-megacli2/pkg-plist index 83ab15aabd3b..c565df0de4a7 100644 --- a/sysutils/linux-megacli2/pkg-plist +++ b/sysutils/linux-megacli2/pkg-plist @@ -1,6 +1,7 @@ sbin/megacli libexec/MegaCli etc/periodic/daily/407.status-mfi-raid +etc/rc.d/mfi_tty_log %%PORTDOCS%%%%DOCSDIR%%/readme.txt %%PORTDOCS%%%%DOCSDIR%%/README-status-mfi-raid.txt %%PORTDOCS%%@dirrm %%DOCSDIR%% |