runqemu: Use the newer unfs3 for serving user space nfs
This new version correctly handles the 64bit ext3 / ext4 issues we were seeing with the older unfs-server which did not handle 64bit file systems correctly, producing the duplicate cookies. [YOCTO #5639] (From OE-Core rev: 2a59d55f712bbd79b1edf3ccb90ccabf609c9f0d) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
cac76ff693
commit
8dd861d471
|
@ -88,8 +88,7 @@ MOUNT_PORT=$[ 3048 + 2 * $NFS_INSTANCE ]
|
||||||
|
|
||||||
## For debugging you would additionally add
|
## For debugging you would additionally add
|
||||||
## --debug all
|
## --debug all
|
||||||
MOUNTD_OPTS="--allow-non-root --mount-pid $MOUNTPID -f $EXPORTS --rmtab $RMTAB --prog $NFS_MOUNTPROG -r -P $MOUNT_PORT"
|
UNFSD_OPTS="-p -N -i $NFSPID -e $EXPORTS -x $NFS_NFSPROG -n $NFS_PORT -y $NFS_MOUNTPROG -m $MOUNT_PORT"
|
||||||
NFSD_OPTS="--allow-non-root --nfs-pid $NFSPID -f $EXPORTS --prog $NFS_NFSPROG -P $NFS_PORT -r"
|
|
||||||
|
|
||||||
# Setup the exports file
|
# Setup the exports file
|
||||||
if [ "$1" = "start" ]; then
|
if [ "$1" = "start" ]; then
|
||||||
|
@ -115,53 +114,18 @@ case "$1" in
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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
|
|
||||||
if [ ! $? = 0 ]; then
|
|
||||||
echo "====================="
|
|
||||||
echo "Error starting MOUNTD"
|
|
||||||
echo "====================="
|
|
||||||
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 add the -i option when running rpcbind"
|
|
||||||
echo "==============================================="
|
|
||||||
echo "For recent Fedora/RedHat hosts:"
|
|
||||||
echo "Add RPCBIND_ARGS=-i to /etc/sysconfig/rpcbind"
|
|
||||||
echo " or"
|
|
||||||
echo "Add RPCBIND_OPTIONS=-i to /etc/sysconfig/rpcbind"
|
|
||||||
echo "Then run as root: /etc/init.d/rpcbind restart"
|
|
||||||
echo "==============================================="
|
|
||||||
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 "Starting User Mode nfsd"
|
||||||
echo " $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS"
|
echo " $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/unfsd $UNFSD_OPTS"
|
||||||
$PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS
|
$PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/unfsd $UNFSD_OPTS
|
||||||
if [ ! $? = 0 ]; then
|
if [ ! $? = 0 ]; then
|
||||||
echo "Error starting nfsd"
|
echo "Error starting nfsd"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Check to make sure everything started ok.
|
Check to make sure everything started ok.
|
||||||
if [ ! -f $MOUNTPID ]; then
|
|
||||||
echo "rpc.mountd did not start correctly"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ ! -f $NFSPID ]; then
|
if [ ! -f $NFSPID ]; then
|
||||||
echo "rpc.nfsd did not start correctly"
|
echo "rpc.nfsd did not start correctly"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
ps -fp `cat $MOUNTPID` > /dev/null 2> /dev/null
|
|
||||||
if [ ! $? = 0 ]; then
|
|
||||||
echo "rpc.mountd did not start correctly"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
ps -fp `cat $NFSPID` > /dev/null 2> /dev/null
|
ps -fp `cat $NFSPID` > /dev/null 2> /dev/null
|
||||||
if [ ! $? = 0 ]; then
|
if [ ! $? = 0 ]; then
|
||||||
echo "rpc.nfsd did not start correctly"
|
echo "rpc.nfsd did not start correctly"
|
||||||
|
@ -169,16 +133,9 @@ case "$1" in
|
||||||
fi
|
fi
|
||||||
echo " "
|
echo " "
|
||||||
echo "On your target please remember to add the following options for NFS"
|
echo "On your target please remember to add the following options for NFS"
|
||||||
echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=2,mountprog=$NFS_MOUNTPROG,nfsprog=$NFS_NFSPROG,udp"
|
echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=3,port=$NFSD_PORT,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,mountport=$MOUNTD_PORT"
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
if [ -f "$MOUNTPID" ]; then
|
|
||||||
echo "Stopping rpc.mountd"
|
|
||||||
kill `cat $MOUNTPID`
|
|
||||||
rm -f $MOUNTPID
|
|
||||||
else
|
|
||||||
echo "No PID file, not stopping rpc.mountd"
|
|
||||||
fi
|
|
||||||
if [ -f "$NFSPID" ]; then
|
if [ -f "$NFSPID" ]; then
|
||||||
echo "Stopping rpc.nfsd"
|
echo "Stopping rpc.nfsd"
|
||||||
kill `cat $NFSPID`
|
kill `cat $NFSPID`
|
||||||
|
|
|
@ -308,7 +308,7 @@ if [ "$FSTYPE" = "nfs" ]; then
|
||||||
NFSD_RPCPORT=$[ 11111 + $NFS_INSTANCE ]
|
NFSD_RPCPORT=$[ 11111 + $NFS_INSTANCE ]
|
||||||
NFSD_PORT=$[ 3049 + 2 * $NFS_INSTANCE ]
|
NFSD_PORT=$[ 3049 + 2 * $NFS_INSTANCE ]
|
||||||
MOUNTD_PORT=$[ 3048 + 2 * $NFS_INSTANCE ]
|
MOUNTD_PORT=$[ 3048 + 2 * $NFS_INSTANCE ]
|
||||||
UNFS_OPTS="nfsvers=2,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,port=$NFSD_PORT,mountport=$MOUNTD_PORT"
|
UNFS_OPTS="nfsvers=3,port=$NFSD_PORT,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,mountport=$MOUNTD_PORT"
|
||||||
|
|
||||||
PSEUDO_LOCALSTATEDIR=~/.runqemu-sdk/pseudo
|
PSEUDO_LOCALSTATEDIR=~/.runqemu-sdk/pseudo
|
||||||
export PSEUDO_LOCALSTATEDIR
|
export PSEUDO_LOCALSTATEDIR
|
||||||
|
|
Loading…
Reference in New Issue