summaryrefslogtreecommitdiff
path: root/meta/recipes-connectivity
diff options
context:
space:
mode:
authorCristian Iorga <cristian.iorga@intel.com>2013-03-04 19:17:50 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-03-07 11:06:05 +0000
commit5711e0cf88fac0de8a5317b16a287b335c827c8f (patch)
tree28872f4f2d5dd38a218d32e0750acb1c2f13086b /meta/recipes-connectivity
parentbd94ab11bbb6501013ed27ecb22685664816986c (diff)
downloadopenembedded-core-5711e0cf88fac0de8a5317b16a287b335c827c8f.tar.gz
openembedded-core-5711e0cf88fac0de8a5317b16a287b335c827c8f.tar.bz2
openembedded-core-5711e0cf88fac0de8a5317b16a287b335c827c8f.zip
connman: Wired inteface provisioned via qemu
- connman-conf package re-implemented - connman 1.12 introduces provisioning for wired interfaces also; - wired interface settings are read from kernel cmdline if present; - after that are passed to connman as a config file - for BA, this is not needed, as BA will have a network infrastructure to work with. Fixes [YOCTO #3227]; Fixes [YOCTO #3804]; Fixes [YOCTO #3843]. Signed-off-by: Cristian Iorga <cristian.iorga@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/recipes-connectivity')
-rw-r--r--meta/recipes-connectivity/connman/connman-conf.bb17
-rw-r--r--meta/recipes-connectivity/connman/connman-conf/qemuall/main.conf3
-rw-r--r--meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup16
-rw-r--r--meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config8
-rw-r--r--meta/recipes-connectivity/connman/connman/connman3
5 files changed, 37 insertions, 10 deletions
diff --git a/meta/recipes-connectivity/connman/connman-conf.bb b/meta/recipes-connectivity/connman/connman-conf.bb
index 7c7ef263ce..7b999533f1 100644
--- a/meta/recipes-connectivity/connman/connman-conf.bb
+++ b/meta/recipes-connectivity/connman/connman-conf.bb
@@ -1,18 +1,21 @@
-#connman config to ignore wired interfaces on qemu machines
+#connman config to setup wired interface on qemu machines
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-SRC_URI_append_qemuall = " file://main.conf"
-
-PR = "r0"
+SRC_URI_append_qemuall = "file://wired.config \
+ file://wired-setup \
+ "
+PR = "r1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
do_install() {
- #Blacklist ethn network interface in case of qemu* machines
- if test -e ${WORKDIR}/main.conf; then
+ #Configure Wired network interface in case of qemu* machines
+ if test -e ${WORKDIR}/wired.config && test -e ${WORKDIR}/wired-setup; then
+ install -d ${D}${localstatedir}/lib/connman
+ install -m 0644 ${WORKDIR}/wired.config ${D}${localstatedir}/lib/connman
install -d ${D}${sysconfdir}/connman
- install -m 0644 ${WORKDIR}/main.conf ${D}${sysconfdir}/connman
+ install -m 0755 ${WORKDIR}/wired-setup ${D}${sysconfdir}/connman
fi
}
diff --git a/meta/recipes-connectivity/connman/connman-conf/qemuall/main.conf b/meta/recipes-connectivity/connman/connman-conf/qemuall/main.conf
deleted file mode 100644
index 01973e7f71..0000000000
--- a/meta/recipes-connectivity/connman/connman-conf/qemuall/main.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[General]
-
-NetworkInterfaceBlacklist = eth
diff --git a/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup b/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup
new file mode 100644
index 0000000000..135a6c19ac
--- /dev/null
+++ b/meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+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'`
+
+# Check if eth0 is already set via kernel cmdline
+if [ "x$NET_CONF" = "x" ]; then
+ # Wired interface is not configured via kernel cmdline
+ # Remove connman config file template
+ rm ${CONFIGF}
+else
+ # Setup a connman config accordingly
+ sed -i -e "s|^\(IPv4 =\)|\1 ${NET_CONF}|" ${CONFIGF}
+fi
diff --git a/meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config b/meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config
new file mode 100644
index 0000000000..996e429e72
--- /dev/null
+++ b/meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config
@@ -0,0 +1,8 @@
+[global]
+Name = Wired
+Description = Wired network configuration
+
+[service_ethernet]
+Type = ethernet
+IPv4 =
+MAC = 52:54:00:12:34:56
diff --git a/meta/recipes-connectivity/connman/connman/connman b/meta/recipes-connectivity/connman/connman/connman
index aed4a792db..ffd7fac547 100644
--- a/meta/recipes-connectivity/connman/connman/connman
+++ b/meta/recipes-connectivity/connman/connman/connman
@@ -32,6 +32,9 @@ do_start() {
ethn=`ifconfig | grep eth | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"`
EXTRA_PARAM="-I $ethn"
fi
+ if [ -f /etc/connman/wired-setup ] ; then
+ . /etc/connman/wired-setup
+ fi
$DAEMON $EXTRA_PARAM
}