2008-12-10 12:20:31 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
usage() {
|
|
|
|
(
|
|
|
|
echo "Usage: $0 <board IP> [board port]"
|
|
|
|
echo ""
|
|
|
|
echo "If port is not specified, '6666' will be used"
|
|
|
|
[ -z "$*" ] && exit 0
|
|
|
|
echo ""
|
|
|
|
echo "ERROR: $*"
|
|
|
|
exit 1
|
|
|
|
) 1>&2
|
|
|
|
exit $?
|
|
|
|
}
|
|
|
|
|
|
|
|
while [ -n "$1" ] ; do
|
|
|
|
case $1 in
|
|
|
|
-h|--help) usage;;
|
|
|
|
--) break;;
|
|
|
|
-*) usage "Invalid option $1";;
|
|
|
|
*) break;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
ip=$1
|
|
|
|
port=${2:-6666}
|
|
|
|
|
|
|
|
if [ -z "${ip}" ] || [ -n "$3" ] ; then
|
|
|
|
usage "Invalid number of arguments"
|
|
|
|
fi
|
|
|
|
|
|
|
|
for nc in netcat nc ; do
|
2009-09-10 00:20:20 +08:00
|
|
|
type ${nc} >/dev/null 2>&1 && break
|
2008-12-10 12:20:31 +08:00
|
|
|
done
|
|
|
|
|
|
|
|
trap "stty icanon echo intr ^C" 0 2 3 5 10 13 15
|
|
|
|
echo "NOTE: the interrupt signal (normally ^C) has been remapped to ^T"
|
|
|
|
|
|
|
|
stty -icanon -echo intr ^T
|
2009-09-10 00:20:20 +08:00
|
|
|
(
|
2009-09-10 00:20:21 +08:00
|
|
|
if type ncb 2>/dev/null ; then
|
|
|
|
# see if ncb is in $PATH
|
|
|
|
exec ncb ${port}
|
|
|
|
|
|
|
|
elif [ -x ${0%/*}/ncb ] ; then
|
|
|
|
# maybe it's in the same dir as the netconsole script
|
|
|
|
exec ${0%/*}/ncb ${port}
|
|
|
|
|
|
|
|
else
|
|
|
|
# blah, just use regular netcat
|
|
|
|
while ${nc} -u -l -p ${port} < /dev/null ; do
|
|
|
|
:
|
|
|
|
done
|
|
|
|
fi
|
2009-09-10 00:20:20 +08:00
|
|
|
) &
|
|
|
|
pid=$!
|
|
|
|
${nc} -u ${ip} ${port}
|
|
|
|
kill ${pid} 2>/dev/null
|