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.

(From OE-Core rev: 1ea04d87525f26c2cd32ba29c0f14c6226f60729)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jason Wessel
2014-01-23 08:32:46 -06:00
committed by Richard Purdie
parent 96b24e7bd5
commit 2fedfdca12
2 changed files with 17 additions and 12 deletions

View File

@@ -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

View File

@@ -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