[OE-core] [meta-oe][PATCH] If QEMU parameters are extended to emulate additional network interfaces, NFS boot does not work. Based on the ip configuration provided by the runqemu-internal script the kernel is not able to use the right interface for the nfs mount.

Adrian adrian.freihofer at gmail.com
Wed Jun 25 20:24:09 UTC 2014


From: Adrian Freihofer <adrian.freihofer at neratec.com>

Example to reproduce:
runqemu ... qemuparams="-net nic,model=virtio... -net tap, ..."

If kernel parameters are extended to get the kernel forced to use
eth0 for the nfs rootfs another issue pops up. The script which creates
a special config for connman fails. It creates an invalid configuration
for connman which ends up in a nfs disconnection again.

[YOCTO #6356]

Signed-off-by: Adrian <adrian.freihofer at gmail.com>
---
 meta/recipes-connectivity/connman/connman-conf.bb                  | 2 +-
 meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup | 2 +-
 scripts/runqemu-internal                                           | 3 +--
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-connectivity/connman/connman-conf.bb b/meta/recipes-connectivity/connman/connman-conf.bb
index af72640..e69cfe3 100644
--- a/meta/recipes-connectivity/connman/connman-conf.bb
+++ b/meta/recipes-connectivity/connman/connman-conf.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=80
 SRC_URI_append_qemuall = "file://wired.config \
                           file://wired-setup \
                          "
-PR = "r2"
+PR = "r3"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
diff --git a/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup b/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup
index c46899e..c7b6dd1 100644
--- a/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup
+++ b/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup
@@ -3,7 +3,7 @@
 CONFIGF=/var/lib/connman/wired.config
 
 # Extract wired network config from /proc/cmdline
-NET_CONF=`cat /proc/cmdline |sed -ne 's/^.*ip=\([^ ]*\):\([^ ]*\):\([^ ]*\):\([^ ]*\).*$/\1\/\4\/\3/p'`
+NET_CONF=`cat /proc/cmdline |sed -ne 's/^.*ip=\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\).*$/\1\/\4\/\3/p'`
 
 # Check if eth0 is already set via kernel cmdline
 if [ "x$NET_CONF" = "x" ]; then
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 38745dd..7f33ee5 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -248,8 +248,7 @@ else
         n0=$(echo $TAP | sed 's/tap//')
         n1=$(($n0 * 2 + 1))
         n2=$(($n1 + 1))
-
-        KERNEL_NETWORK_CMD="ip=192.168.7.$n2::192.168.7.$n1:255.255.255.0"
+        KERNEL_NETWORK_CMD="ip=192.168.7.$n2::192.168.7.$n1:255.255.255.0:${MACHINE}:eth0:off"
         QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no"
         if [ "$KVM_ACTIVE" = "yes" ]; then
             QEMU_NETWORK_CMD="-net nic,model=virtio $QEMU_TAP_CMD,vhost=on"
-- 
1.9.1




More information about the Openembedded-core mailing list