It turns out that 'netcat' cannot be used to listen to broadcast
 packets. We developed our own tool 'ncb' (see tools directory) that
 listens to broadcast packets on a given port and dumps them to the
-standard output. use it as follows:
-
-+++++++++++++++++++++++++++++++++++++++++++
-#! /bin/bash
-
-[ $# = 1 ] || { echo "Usage: $0 target_ip" >&2 ; exit 1 ; }
-TARGET_IP=$1
-
-stty icanon echo intr ^T
-./ncb &
-nc -u ${TARGET_IP} 6666
-stty icanon echo intr ^C
-kill 0
-+++++++++++++++++++++++++++++++++++++++++++
-
-Again, this script takes exactly one argument, which is interpreted
-as the target IP address (or host name, assuming DNS is working). The
-script can be interrupted by pressing ^T (CTRL-T).
-
-The 'ncb' tool can be found in the tools directory; it will be built
-when compiling for a board which has CONFIG_NETCONSOLE defined.
+standard output.  It will be built when compiling for a board which
+has CONFIG_NETCONSOLE defined.  If the netconsole script can find it
+in PATH or in the same directory, it will be used instead.
 
 For Linux, the network-based console needs special configuration.
 Minimally, the host IP address needs to be specified. This can be
 
 
 stty -icanon -echo intr ^T
 (
-while ${nc} -u -l -p ${port} < /dev/null ; do
-       :
-done
+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
 ) &
 pid=$!
 ${nc} -u ${ip} ${port}