diff options
author | Saul Wold <sgw@linux.intel.com> | 2014-01-23 08:32:43 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-28 00:52:35 +0000 |
commit | 8dd861d471b7168e58e26fcde852eb3e4e7e7b41 (patch) | |
tree | 4b3bfb10da46a14cfbea9b42748b25590fc277f6 | |
parent | cac76ff693f5ed7518bff30fb625047808c1568f (diff) | |
download | poky-8dd861d471b7168e58e26fcde852eb3e4e7e7b41.tar.gz |
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>
-rwxr-xr-x | scripts/runqemu-export-rootfs | 53 | ||||
-rwxr-xr-x | scripts/runqemu-internal | 2 |
2 files changed, 6 insertions, 49 deletions
diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs index bbdaf5ba0f..2d879961d0 100755 --- a/scripts/runqemu-export-rootfs +++ b/scripts/runqemu-export-rootfs | |||
@@ -88,8 +88,7 @@ MOUNT_PORT=$[ 3048 + 2 * $NFS_INSTANCE ] | |||
88 | 88 | ||
89 | ## For debugging you would additionally add | 89 | ## For debugging you would additionally add |
90 | ## --debug all | 90 | ## --debug all |
91 | MOUNTD_OPTS="--allow-non-root --mount-pid $MOUNTPID -f $EXPORTS --rmtab $RMTAB --prog $NFS_MOUNTPROG -r -P $MOUNT_PORT" | 91 | UNFSD_OPTS="-p -N -i $NFSPID -e $EXPORTS -x $NFS_NFSPROG -n $NFS_PORT -y $NFS_MOUNTPROG -m $MOUNT_PORT" |
92 | NFSD_OPTS="--allow-non-root --nfs-pid $NFSPID -f $EXPORTS --prog $NFS_NFSPROG -P $NFS_PORT -r" | ||
93 | 92 | ||
94 | # Setup the exports file | 93 | # Setup the exports file |
95 | if [ "$1" = "start" ]; then | 94 | if [ "$1" = "start" ]; then |
@@ -115,53 +114,18 @@ case "$1" in | |||
115 | exit 1 | 114 | exit 1 |
116 | fi | 115 | fi |
117 | 116 | ||
118 | echo "Starting User Mode rpc.mountd" | ||
119 | echo " $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.mountd $MOUNTD_OPTS" | ||
120 | $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.mountd $MOUNTD_OPTS | ||
121 | if [ ! $? = 0 ]; then | ||
122 | echo "=====================" | ||
123 | echo "Error starting MOUNTD" | ||
124 | echo "=====================" | ||
125 | if [ ! "x$RPCBIND_RUNNING" = "x" ] ; then | ||
126 | echo " If you see an error above that says:" | ||
127 | echo " RPC: Authentication error; why = Client credential too weak" | ||
128 | echo " You need to add the -i option when running rpcbind" | ||
129 | echo "===============================================" | ||
130 | echo "For recent Fedora/RedHat hosts:" | ||
131 | echo "Add RPCBIND_ARGS=-i to /etc/sysconfig/rpcbind" | ||
132 | echo " or" | ||
133 | echo "Add RPCBIND_OPTIONS=-i to /etc/sysconfig/rpcbind" | ||
134 | echo "Then run as root: /etc/init.d/rpcbind restart" | ||
135 | echo "===============================================" | ||
136 | echo "For recent Debian/Ubuntu hosts:" | ||
137 | echo "Add OPTIONS=\"-i -w\" to /etc/default/rpcbind" | ||
138 | echo "sudo service portmap restart" | ||
139 | fi | ||
140 | |||
141 | exit 1 | ||
142 | fi | ||
143 | |||
144 | echo "Starting User Mode nfsd" | 117 | echo "Starting User Mode nfsd" |
145 | echo " $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS" | 118 | echo " $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/unfsd $UNFSD_OPTS" |
146 | $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS | 119 | $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/unfsd $UNFSD_OPTS |
147 | if [ ! $? = 0 ]; then | 120 | if [ ! $? = 0 ]; then |
148 | echo "Error starting nfsd" | 121 | echo "Error starting nfsd" |
149 | exit 1 | 122 | exit 1 |
150 | fi | 123 | fi |
151 | # Check to make sure everything started ok. | 124 | Check to make sure everything started ok. |
152 | if [ ! -f $MOUNTPID ]; then | ||
153 | echo "rpc.mountd did not start correctly" | ||
154 | exit 1 | ||
155 | fi | ||
156 | if [ ! -f $NFSPID ]; then | 125 | if [ ! -f $NFSPID ]; then |
157 | echo "rpc.nfsd did not start correctly" | 126 | echo "rpc.nfsd did not start correctly" |
158 | exit 1 | 127 | exit 1 |
159 | fi | 128 | fi |
160 | ps -fp `cat $MOUNTPID` > /dev/null 2> /dev/null | ||
161 | if [ ! $? = 0 ]; then | ||
162 | echo "rpc.mountd did not start correctly" | ||
163 | exit 1 | ||
164 | fi | ||
165 | ps -fp `cat $NFSPID` > /dev/null 2> /dev/null | 129 | ps -fp `cat $NFSPID` > /dev/null 2> /dev/null |
166 | if [ ! $? = 0 ]; then | 130 | if [ ! $? = 0 ]; then |
167 | echo "rpc.nfsd did not start correctly" | 131 | echo "rpc.nfsd did not start correctly" |
@@ -169,16 +133,9 @@ case "$1" in | |||
169 | fi | 133 | fi |
170 | echo " " | 134 | echo " " |
171 | echo "On your target please remember to add the following options for NFS" | 135 | echo "On your target please remember to add the following options for NFS" |
172 | echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=2,mountprog=$NFS_MOUNTPROG,nfsprog=$NFS_NFSPROG,udp" | 136 | echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=3,port=$NFSD_PORT,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,mountport=$MOUNTD_PORT" |
173 | ;; | 137 | ;; |
174 | stop) | 138 | stop) |
175 | if [ -f "$MOUNTPID" ]; then | ||
176 | echo "Stopping rpc.mountd" | ||
177 | kill `cat $MOUNTPID` | ||
178 | rm -f $MOUNTPID | ||
179 | else | ||
180 | echo "No PID file, not stopping rpc.mountd" | ||
181 | fi | ||
182 | if [ -f "$NFSPID" ]; then | 139 | if [ -f "$NFSPID" ]; then |
183 | echo "Stopping rpc.nfsd" | 140 | echo "Stopping rpc.nfsd" |
184 | kill `cat $NFSPID` | 141 | kill `cat $NFSPID` |
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal index 284b88c376..cecb527dfc 100755 --- a/scripts/runqemu-internal +++ b/scripts/runqemu-internal | |||
@@ -308,7 +308,7 @@ if [ "$FSTYPE" = "nfs" ]; then | |||
308 | NFSD_RPCPORT=$[ 11111 + $NFS_INSTANCE ] | 308 | NFSD_RPCPORT=$[ 11111 + $NFS_INSTANCE ] |
309 | NFSD_PORT=$[ 3049 + 2 * $NFS_INSTANCE ] | 309 | NFSD_PORT=$[ 3049 + 2 * $NFS_INSTANCE ] |
310 | MOUNTD_PORT=$[ 3048 + 2 * $NFS_INSTANCE ] | 310 | MOUNTD_PORT=$[ 3048 + 2 * $NFS_INSTANCE ] |
311 | UNFS_OPTS="nfsvers=2,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,port=$NFSD_PORT,mountport=$MOUNTD_PORT" | 311 | UNFS_OPTS="nfsvers=3,port=$NFSD_PORT,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,mountport=$MOUNTD_PORT" |
312 | 312 | ||
313 | PSEUDO_LOCALSTATEDIR=~/.runqemu-sdk/pseudo | 313 | PSEUDO_LOCALSTATEDIR=~/.runqemu-sdk/pseudo |
314 | export PSEUDO_LOCALSTATEDIR | 314 | export PSEUDO_LOCALSTATEDIR |