* [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on
@ 2013-10-31 1:14 rongqing.li
2013-11-04 10:13 ` Muhammad Shakeel
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: rongqing.li @ 2013-10-31 1:14 UTC (permalink / raw)
To: openembedded-core
From: Roy Li <rongqing.li@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@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,@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"
--
1.7.10.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on
2013-10-31 1:14 [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on rongqing.li
@ 2013-11-04 10:13 ` Muhammad Shakeel
2013-11-05 0:49 ` Rongqing Li
2013-11-07 13:51 ` Rongqing Li
2013-11-08 11:10 ` Burton, Ross
2 siblings, 1 reply; 5+ messages in thread
From: Muhammad Shakeel @ 2013-11-04 10:13 UTC (permalink / raw)
To: rongqing.li, openembedded-core
On 10/31/2013 06:14 AM, rongqing.li@windriver.com wrote:
> From: Roy Li <rongqing.li@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@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
This check is not required. systemd class will automaticall remove
${systemd_unitdir} if 'systemd' is not in 'DISTRO_FEATURES'.
Check 'rm_systemd_unitdir' function in systemd.bbclass.
> + 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"
I believe this is also handled by systemd.bbclass.
>
> 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"
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on
2013-11-04 10:13 ` Muhammad Shakeel
@ 2013-11-05 0:49 ` Rongqing Li
0 siblings, 0 replies; 5+ messages in thread
From: Rongqing Li @ 2013-11-05 0:49 UTC (permalink / raw)
To: Muhammad Shakeel; +Cc: openembedded-core
On 11/04/2013 06:13 PM, Muhammad Shakeel wrote:
> On 10/31/2013 06:14 AM, rongqing.li@windriver.com wrote:
>> From: Roy Li <rongqing.li@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@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
> This check is not required. systemd class will automaticall remove
> ${systemd_unitdir} if 'systemd' is not in 'DISTRO_FEATURES'.
> Check 'rm_systemd_unitdir' function in systemd.bbclass.
If we does not check, the below files will be installed, then remove them,
do the useless behaviours two time, is it valuable?
>> + 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"
> I believe this is also handled by systemd.bbclass.
I test, it does not.
-R
>> 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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on
2013-10-31 1:14 [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on rongqing.li
2013-11-04 10:13 ` Muhammad Shakeel
@ 2013-11-07 13:51 ` Rongqing Li
2013-11-08 11:10 ` Burton, Ross
2 siblings, 0 replies; 5+ messages in thread
From: Rongqing Li @ 2013-11-07 13:51 UTC (permalink / raw)
To: rongqing.li; +Cc: openembedded-core
Ping
On 10/31/2013 09:14 AM, rongqing.li@windriver.com wrote:
> From: Roy Li <rongqing.li@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@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,@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
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on
2013-10-31 1:14 [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on rongqing.li
2013-11-04 10:13 ` Muhammad Shakeel
2013-11-07 13:51 ` Rongqing Li
@ 2013-11-08 11:10 ` Burton, Ross
2 siblings, 0 replies; 5+ messages in thread
From: Burton, Ross @ 2013-11-08 11:10 UTC (permalink / raw)
To: rongqing.li@windriver.com; +Cc: OE-core
Hi,
On 31 October 2013 01:14, <rongqing.li@windriver.com> wrote:
> --- /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
I'm thinking it might be better in the long term to patch the service
file in case upstream makes important changes and we don't notice.
> +echo "CONNMAND_OPTS=$EXTRA_PARAM">/run/connmand.env
Let's not pollute /run too much, there's already a /run/connman on a
booted image. Create that directory if it doesn't exist, and put the
env file in there.
Ross
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-11-08 11:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-31 1:14 [PATCH v7] connman: ignore the networking device which nfs for rootfs is working on rongqing.li
2013-11-04 10:13 ` Muhammad Shakeel
2013-11-05 0:49 ` Rongqing Li
2013-11-07 13:51 ` Rongqing Li
2013-11-08 11:10 ` Burton, Ross
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox