[OE-core] [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on

Rongqing Li rongqing.li at windriver.com
Thu Nov 7 13:51:31 UTC 2013


Ping

On 10/31/2013 09:14 AM, rongqing.li at windriver.com wrote:
> From: Roy Li <rongqing.li at windriver.com>
>
> 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 <rongqing.li at windriver.com>
> ---
> 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, at SBINDIR@,${sbindir},g' \
> +			-e 's, at LIBDIR@,${libdir},g' \
> +			-e 's, at 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=- at LOCALSTATEDIR@/run/connmand.env
> +ExecStartPre=- at 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



More information about the Openembedded-core mailing list