From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail1.windriver.com (mail1.windriver.com [147.11.146.13]) by mail.openembedded.org (Postfix) with ESMTP id D05C16D3A7 for ; Thu, 7 Nov 2013 13:51:31 +0000 (UTC) Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail1.windriver.com (8.14.5/8.14.3) with ESMTP id rA7DpXdD009106 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for ; Thu, 7 Nov 2013 05:51:33 -0800 (PST) Received: from [128.224.162.168] (128.224.162.168) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server id 14.2.347.0; Thu, 7 Nov 2013 05:51:32 -0800 Message-ID: <527B9AE3.6080007@windriver.com> Date: Thu, 7 Nov 2013 21:51:31 +0800 From: Rongqing Li User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130623 Thunderbird/17.0.7 MIME-Version: 1.0 To: References: <1383182088-17411-1-git-send-email-rongqing.li@windriver.com> In-Reply-To: <1383182088-17411-1-git-send-email-rongqing.li@windriver.com> Cc: openembedded-core@lists.openembedded.org Subject: Re: [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Nov 2013 13:51:32 -0000 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Ping On 10/31/2013 09:14 AM, rongqing.li@windriver.com wrote: > From: Roy Li > > Create connman-evn.service, which will run a script to compute the networking > device when nfs root is on, and pass the result to connman.service > > Copy Connmand.service from source code, add ExecStartPre into it to release > do_configure_append work, use the options which is passed by connman-evn.service > > Signed-off-by: Roy Li > --- > v7: sync with conman 1.19 > > meta/recipes-connectivity/connman/connman.inc | 18 ++++++++------ > .../connman/connman/connman-env.service | 13 ++++++++++ > .../connman/connman/connman.service | 14 +++++++++++ > .../connman/connman/connmand-env | 25 ++++++++++++++++++++ > meta/recipes-connectivity/connman/connman_1.19.bb | 3 +++ > 5 files changed, 66 insertions(+), 7 deletions(-) > create mode 100644 meta/recipes-connectivity/connman/connman/connman-env.service > create mode 100644 meta/recipes-connectivity/connman/connman/connman.service > create mode 100644 meta/recipes-connectivity/connman/connman/connmand-env > > diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc > index 12f3edd..c2d71e0 100644 > --- a/meta/recipes-connectivity/connman/connman.inc > +++ b/meta/recipes-connectivity/connman/connman.inc > @@ -64,15 +64,9 @@ python __anonymous () { > > SYSTEMD_SERVICE_${PN} = "connman.service" > SYSTEMD_SERVICE_${PN}-vpn = "connman-vpn.service" > -SYSTEMD_WIRED_SETUP = "ExecStartPre=-${libdir}/connman/wired-setup" > > inherit autotools gtk-doc pkgconfig systemd update-rc.d > > -do_configure_append () { > - sed -i "s#ExecStart=#${SYSTEMD_WIRED_SETUP}\nExecStart=#" ${S}/src/connman.service > - > -} > - > # This allows *everyone* to access ConnMan over DBus, without any access > # control. Really the at_console flag should work, which would mean that > # both this and the xuser patch can be dropped. > @@ -88,6 +82,16 @@ do_install_append() { > sed -i s%@LIBDIR@%${libdir}% ${D}${sysconfdir}/init.d/connman > fi > > + if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then > + install -m 0755 ${WORKDIR}/connmand-env ${D}${sbindir}/ > + install -m 0644 ${WORKDIR}/connman-env.service ${D}/${systemd_unitdir}/system/ > + install -m 0644 ${WORKDIR}/connman.service ${D}/${systemd_unitdir}/system/ > + sed -i -e 's,@SBINDIR@,${sbindir},g' \ > + -e 's,@LIBDIR@,${libdir},g' \ > + -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ > + ${D}${systemd_unitdir}/system/*.service > + fi > + > install -d ${D}${bindir} > install -m 0755 ${S}/tools/*-test ${D}${bindir} > if [ -e ${S}/tools/wispr ]; then > @@ -163,7 +167,7 @@ FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \ > ${libdir}/connman/plugins \ > ${sysconfdir} ${sharedstatedir} ${localstatedir} \ > ${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*.so* ${datadir}/${PN} \ > - ${datadir}/dbus-1/system-services/*" > + ${datadir}/dbus-1/system-services/* ${systemd_unitdir}/system/connman-env.service" > > FILES_${PN}-dbg += "${libdir}/connman/*/.debug" > > diff --git a/meta/recipes-connectivity/connman/connman/connman-env.service b/meta/recipes-connectivity/connman/connman/connman-env.service > new file mode 100644 > index 0000000..c4dc278 > --- /dev/null > +++ b/meta/recipes-connectivity/connman/connman/connman-env.service > @@ -0,0 +1,13 @@ > +[Unit] > +Description=Generate options for connection service > +Before=connman.service > +ConditionKernelCommandLine=root=/dev/nfs > +After=syslog.target > + > +[Service] > +Type=oneshot > +ExecStart=@SBINDIR@/connmand-env > +StandardOutput=null > + > +[Install] > +WantedBy=connman.service > diff --git a/meta/recipes-connectivity/connman/connman/connman.service b/meta/recipes-connectivity/connman/connman/connman.service > new file mode 100644 > index 0000000..aa0e49a > --- /dev/null > +++ b/meta/recipes-connectivity/connman/connman/connman.service > @@ -0,0 +1,14 @@ > +[Unit] > +Description=Connection service > +After=syslog.target > +Wants=connman-env.service > + > +[Service] > +Type=dbus > +BusName=net.connman > +EnvironmentFile=-@LOCALSTATEDIR@/run/connmand.env > +ExecStartPre=-@LIBDIR@/connman/wired-setup > +ExecStart=@SBINDIR@/connmand -n $CONNMAND_OPTS > + > +[Install] > +WantedBy=multi-user.target > diff --git a/meta/recipes-connectivity/connman/connman/connmand-env b/meta/recipes-connectivity/connman/connman/connmand-env > new file mode 100644 > index 0000000..feeb850 > --- /dev/null > +++ b/meta/recipes-connectivity/connman/connman/connmand-env > @@ -0,0 +1,25 @@ > +#!/bin/sh > + > +EXTRA_PARAM="" > + > +NET_DEVS=`cat /proc/net/dev | sed -ne 's/^\([a-zA-Z0-9 ]*\):.*$/\1/p'` > +NET_ADDR=`cat /proc/cmdline | sed -ne 's/^.*ip=\([^ :]*\).*$/\1/p'` > + > +if [ ! -z "$NET_ADDR" ]; then > + if [ "$NET_ADDR" = dhcp ]; then > + ethn=`ifconfig | grep "^eth" | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"` > + if [ ! -z "$ethn" ]; then > + EXTRA_PARAM="-I $ethn" > + fi > + else > + for i in $NET_DEVS; do > + ADDR=`ifconfig $i | sed 's/addr://g' | sed -ne 's/^.*inet \([0-9.]*\) .*$/\1/p'` > + if [ "$NET_ADDR" = "$ADDR" ]; then > + EXTRA_PARAM="-I $i" > + break > + fi > + done > + fi > +fi > + > +echo "CONNMAND_OPTS=$EXTRA_PARAM">/run/connmand.env > diff --git a/meta/recipes-connectivity/connman/connman_1.19.bb b/meta/recipes-connectivity/connman/connman_1.19.bb > index c63dfe4..b775a41 100644 > --- a/meta/recipes-connectivity/connman/connman_1.19.bb > +++ b/meta/recipes-connectivity/connman/connman_1.19.bb > @@ -4,6 +4,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ > file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \ > file://add_xuser_dbus_permission.patch \ > file://connman \ > + file://connmand-env \ > + file://connman.service \ > + file://connman-env.service \ > " > > SRC_URI[md5sum] = "47cce1d17a693dc307e6796c81991bd0" > -- Best Reagrds, Roy | RongQing Li