diff options
author | Cristian Iorga <cristian.iorga@intel.com> | 2013-03-04 19:17:50 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-03-07 11:06:05 +0000 |
commit | 5711e0cf88fac0de8a5317b16a287b335c827c8f (patch) | |
tree | 28872f4f2d5dd38a218d32e0750acb1c2f13086b /meta/recipes-connectivity | |
parent | bd94ab11bbb6501013ed27ecb22685664816986c (diff) | |
download | openembedded-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')
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 } |