summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Garman <scott.a.garman@intel.com>2012-10-03 15:13:52 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-04 14:10:21 +0100
commit16d6ec51f4b976c9b86a8b6bf6251089df2d2732 (patch)
treec3f3391599bc353d2063b44d2fb81730b0905b59
parentb05185240669e0ae811a23620913b35ca99493fb (diff)
downloadopenembedded-core-16d6ec51f4b976c9b86a8b6bf6251089df2d2732.tar.gz
openembedded-core-16d6ec51f4b976c9b86a8b6bf6251089df2d2732.tar.bz2
openembedded-core-16d6ec51f4b976c9b86a8b6bf6251089df2d2732.zip
runqemu-export-rootfs: improve rpcbind error detection
mountd requires rpcbind or portmap. Check that one of these services is running before doing anything else, and report a user-friendly error when they are not found. Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/runqemu-export-rootfs33
1 files changed, 24 insertions, 9 deletions
diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs
index ca79af340d..90edc8a216 100755
--- a/scripts/runqemu-export-rootfs
+++ b/scripts/runqemu-export-rootfs
@@ -100,6 +100,21 @@ fi
# See how we were called.
case "$1" in
start)
+ PORTMAP_RUNNING=`ps -ef | grep portmap | grep -v grep`
+ RPCBIND_RUNNING=`ps -ef | grep rpcbind | grep -v grep`
+ if [[ "x$PORTMAP_RUNNING" = "x" && "x$RPCBIND_RUNNING" = "x" ]]; then
+ echo "======================================================="
+ echo "Error: neither rpcbind nor portmap appear to be running"
+ echo "Please install and start one of these services first"
+ echo "======================================================="
+ echo "Tip: for recent Ubuntu hosts, run:"
+ echo " sudo apt-get install rpcbind"
+ echo "Then add OPTIONS=\"-i -w\" to /etc/default/rpcbind and run"
+ echo " sudo service portmap restart"
+
+ exit 1
+ fi
+
echo "Starting User Mode rpc.mountd"
echo " $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.mountd $MOUNTD_OPTS"
$PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.mountd $MOUNTD_OPTS
@@ -107,25 +122,25 @@ case "$1" in
echo "====================="
echo "Error starting MOUNTD"
echo "====================="
- ps -ef | grep -v grep | grep rpcbind 2>&1 > /dev/null
- if [ $? = 0 ] ; then
+ if [ ! "x$RPCBIND_RUNNING" = "x" ] ; then
echo " If you see an error above that says:"
echo " RPC: Authentication error; why = Client credential too weak"
- echo " You need to change the startup of rpcbind"
- echo " on your host by doing the following as root:"
+ echo " You need to add the -i option when running rpcbind"
echo "==============================================="
- echo " According to /etc/sysconfig/rpcbind, then "
- echo " echo RPCBIND_ARGS=-i >> /etc/sysconfig/rpcbind"
+ echo "For recent Fedora/RedHat hosts:"
+ echo "Add RPCBIND_ARGS=-i to /etc/sysconfig/rpcbind"
echo " or"
- echo " echo RPCBIND_OPTIONS=-i >> /etc/sysconfig/rpcbind"
- echo " /etc/init.d/rpcbind restart"
+ echo "Add RPCBIND_OPTIONS=-i to /etc/sysconfig/rpcbind"
+ echo "Then run as root: /etc/init.d/rpcbind restart"
echo "==============================================="
- echo "For Ubuntu 11.10 hosts"
+ echo "For recent Debian/Ubuntu hosts:"
echo "Add OPTIONS=\"-i -w\" to /etc/default/rpcbind"
echo "sudo service portmap restart"
fi
+
exit 1
fi
+
echo "Starting User Mode nfsd"
echo " $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS"
$PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS