Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jul 2008 14:49:45 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bzeeb+freebsdports@zabbadoz.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        "Bjoern A. Zeeb" <bzeeb+freebsdports@zabbadoz.net>
Subject:   ports/126040: update sysutils/linux-megacli
Message-ID:  <20080728144945.AC2A54899B8@storage.int.zabbadoz.net>
Resent-Message-ID: <200807281510.m6SFA10R004580@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         126040
>Category:       ports
>Synopsis:       update sysutils/linux-megacli
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 28 15:10:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Bjoern A. Zeeb
>Release:        FreeBSD 7.0-CURRENT amd64
>Organization:
Zabbadoz.NeT
>Environment:
System: FreeBSD foo 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Sun Oct 30 18:31:51 UTC 2005 bz@foo:/path/to/HEAD/sys/KERNEL amd64

>Description:

	When trying to diagnose problems, vendors like Dell
	ask for the "TTY Log" so save that upon reboot.
	It should only be there after a "warm boot". After power cycling
	old contents should be gone unless special knobs turned,
	which you do not want unless you really need and they tell you to.

	In case you like debugging in daily mails you can even get
	daily diffs of the TTY log by turning on the switch in
	periodic.conf. Most people will not want to.

	You should make sure to have a well known good latest
	version of mfi(4) and the latest firmware.
	The rc.d script is enabled by default but you can turn it off
	in rc.conf if it gives trouble.

	I am not good on rc scripts so you may want to review;-)

	I'll hopefully add more information on mfi debugging to the
	wiki soon.

>How-To-Repeat:

>Fix:

You can also (temporary) fetch the patch from
http://people.freebsd.org/~bz/sysutils-linux-megacli-20080727-01.diff

Index: sysutils/linux-megacli/Makefile
===================================================================
RCS file: /local/mirror/FreeBSD/r/pcvs/ports/sysutils/linux-megacli/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- sysutils/linux-megacli/Makefile	18 Jun 2008 13:02:45 -0000	1.7
+++ sysutils/linux-megacli/Makefile	28 Jul 2008 14:38:14 -0000
@@ -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:
Index: sysutils/linux-megacli/pkg-plist
===================================================================
RCS file: /local/mirror/FreeBSD/r/pcvs/ports/sysutils/linux-megacli/pkg-plist,v
retrieving revision 1.2
diff -u -p -r1.2 pkg-plist
--- sysutils/linux-megacli/pkg-plist	9 Mar 2007 13:15:02 -0000	1.2
+++ sysutils/linux-megacli/pkg-plist	28 Jul 2008 14:38:14 -0000
@@ -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%%
Index: sysutils/linux-megacli/files/407.status-mfi-raid.in
===================================================================
RCS file: /local/mirror/FreeBSD/r/pcvs/ports/sysutils/linux-megacli/files/407.status-mfi-raid.in,v
retrieving revision 1.4
diff -u -p -r1.4 407.status-mfi-raid.in
--- sysutils/linux-megacli/files/407.status-mfi-raid.in	18 Jun 2008 13:02:46 -0000	1.4
+++ sysutils/linux-megacli/files/407.status-mfi-raid.in	28 Jul 2008 14:38:14 -0000
@@ -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}
@@ -222,7 +223,31 @@ for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX
 	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}
Index: sysutils/linux-megacli/files/mfi_tty_log.in
===================================================================
RCS file: sysutils/linux-megacli/files/mfi_tty_log.in
diff -N sysutils/linux-megacli/files/mfi_tty_log.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysutils/linux-megacli/files/mfi_tty_log.in	28 Jul 2008 14:38:14 -0000
@@ -0,0 +1,63 @@
+#!/bin/sh
+#
+# $FreeBSD: src/etc/rc.d/abi,v 1.4.2.4 2007/03/10 14:04:01 yar Exp $
+#
+
+# PROVIDE: mfi_tty_log
+# REQUIRE: abi
+# KEYWORD: nojail
+
+: ${rc_mfi_raid_tty_log:=YES}
+
+. /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"

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080728144945.AC2A54899B8>