[oe-commits] Jason Wessel : runqemu, runqemu-internal: Allow slirp for NFS and KVM use

git at git.openembedded.org git at git.openembedded.org
Tue Jan 28 00:34:00 UTC 2014


Module: openembedded-core.git
Branch: master-next
Commit: cdb27cb0d64cafa01bb11372d6d426b3a4f7a1b7
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=cdb27cb0d64cafa01bb11372d6d426b3a4f7a1b7

Author: Jason Wessel <jason.wessel at windriver.com>
Date:   Thu Jan 23 08:32:46 2014 -0600

runqemu, runqemu-internal: Allow slirp for NFS and KVM use

The default slirp address for the NFS server is 10.0.2.2.  If not
using a tap interface this address must be used or the target system
cannot connect properly.  Also the ip=... kernel arguments need to be
set to dhcp when using slirp or the root NFS will not get setup
properly.

The call to cleanup() results in a routine which is not defined when
setting up the NFS because it is called before acquire() for the
locking of the tap interfaces, the solution being to simply not call
cleanup() that early.

When using slirp, kvm should not execute the vhost net checks because
the vhost net will not be configure or used.

Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 scripts/runqemu          | 10 ++++++----
 scripts/runqemu-internal | 19 +++++++++++--------
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index dcb2931..9272b6f 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -279,10 +279,12 @@ if [ "x$KVM_ENABLED" = "xyes" ]; then
         exit 1;
     fi
     if [ ! -w /dev/vhost-net -o ! -r /dev/vhost-net ]; then
-        echo "You have no rights on /dev/vhost-net."
-        echo "Please change the ownership of this file as described at:"
-        echo "$YOCTO_PARAVIRT_KVM_WIKI";
-        exit 1;
+	if [ "$SLIRP_ENABLED" != "yes" ] ; then
+            echo "You have no rights on /dev/vhost-net."
+            echo "Please change the ownership of this file as described at:"
+            echo "$YOCTO_PARAVIRT_KVM_WIKI";
+            exit 1;
+	fi
     fi
 fi
 
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index cecb527..e3b0729 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -114,7 +114,7 @@ NFSRUNNING="false"
 ORIG_STTY=$(stty -g)
 
 if [ "$SLIRP_ENABLED" = "yes" ]; then
-    KERNEL_NETWORK_CMD=""
+    KERNEL_NETWORK_CMD="ip=dhcp"
     QEMU_TAP_CMD=""
     QEMU_UI_OPTIONS="-show-cursor -usb -usbdevice wacom-tablet"
     if [ "$KVM_ACTIVE" = "yes" ]; then
@@ -301,9 +301,18 @@ if [ "$FSTYPE" != "nfs" -a "$FSTYPE" != "vmdk" -a ! -f "$ROOTFS" ]; then
     return 1
 fi
 
-if [ "$FSTYPE" = "nfs" ]; then
+if [ "$NFS_SERVER" = "" ]; then
     NFS_SERVER="192.168.7.1"
+    if [ "$SLIRP_ENABLED" = "yes" ]; then
+	NFS_SERVER="10.0.2.2"
+    fi
+fi
+
+if [ "$FSTYPE" = "nfs" ]; then
     NFS_DIR=`echo $ROOTFS | sed 's/^[^:]*:\(.*\)/\1/'`
+    if [ "$NFS_INSTANCE" = "" ] ; then
+	NFS_INSTANCE=0
+    fi
     MOUNTD_RPCPORT=$[ 21111 + $NFS_INSTANCE ]
     NFSD_RPCPORT=$[ 11111 + $NFS_INSTANCE ]
     NFSD_PORT=$[ 3049 + 2 * $NFS_INSTANCE ]
@@ -317,17 +326,11 @@ if [ "$FSTYPE" = "nfs" ]; then
     echo "runqemu-export-rootfs restart $ROOTFS"
     runqemu-export-rootfs restart $ROOTFS
     if [ $? != 0 ]; then
-        cleanup
         return 1
     fi
     NFSRUNNING="true"
 fi
 
-if [ "$NFS_SERVER" = "" ]; then
-    NFS_SERVER="192.168.7.1"
-    NFS_DIR=$ROOTFS
-fi
-
 if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "qemuarmv6" -o "$MACHINE" = "qemuarmv7" ]; then
     QEMU=qemu-system-arm
     MACHINE_SUBTYPE=versatilepb



More information about the Openembedded-commits mailing list