summaryrefslogtreecommitdiffstats
path: root/stp_check
diff options
context:
space:
mode:
Diffstat (limited to 'stp_check')
-rw-r--r--stp_check67
1 files changed, 67 insertions, 0 deletions
diff --git a/stp_check b/stp_check
new file mode 100644
index 00000000..0c49d3e7
--- /dev/null
+++ b/stp_check
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+load_module()
+{
+ ret=1
+ if [ -e "$MODULE" ]
+ then
+ /sbin/insmod $MODULE
+ ret=$?
+ fi
+
+ if [ "$ret" -ne 0 ]
+ then
+ echo "$MODULE_NAME not in kernel and not built. Compiling..."
+ make -w -C $MODULE_DIR
+ if [ "$?" -ne 0 ]
+ then
+ echo "Failed to load module $MODULE_NAME."
+ exit $?
+ fi
+
+ /sbin/insmod $MODULE
+ if [ "$?" -ne 0 ]
+ then
+ echo "Failed to load module $MODULE_NAME."
+ exit $?
+ fi
+ fi
+}
+
+VAR_DIR=${prefix}/var/lib/systemtap
+RELAYFS_DIR=$VAR_DIR/relayfs
+STP_CONTROL_DIR=$VAR_DIR/transport
+
+RELAYFS=`grep " relayfs_poll" /boot/System.map-\`uname -r\``
+if [ -z "$RELAYFS" ]
+then
+ RELAYFS=`lsmod | grep relayfs`
+ if [ -z "$RELAYFS" ]
+ then
+ MODULE_NAME=relayfs
+ MODULE_DIR=$RELAYFS_DIR
+ MODULE=$MODULE_DIR/relayfs.ko
+ load_module
+ fi
+fi
+
+if [ ! -d "/mnt/relay" ]
+then
+ mkdir /mnt/relay
+fi
+
+MOUNT=`mount | grep relayfs |awk '{print $1}'`
+if [ "$MOUNT" != "relayfs" ]
+then
+ mount -t relayfs relayfs /mnt/relay
+fi
+
+STP_CONTROL=`lsmod | grep stp_control |awk '{print $1}'`
+if [ "$STP_CONTROL" != "stp_control" ]
+then
+ MODULE_NAME=stp-control
+ MODULE_DIR=$STP_CONTROL_DIR
+ MODULE=$MODULE_DIR/stp-control.ko
+ load_module
+fi
+