Hi Jagadeesh, On 11.10.2016 14:11, Jagadeesh Krishnanjanappa wrote: > Hi Andreas, > > Thanks for reviewing the patch. > > > I think this is too fragile to land in OE-Core. What happens if a > network driver prints "device=eth0"? Or if other kernel messages make > the string disappear from dmesg and connman gets restarted later? > > > True. If device=eth0 gets disappeared/corrupted, then we may have problem. > > > FWIW, I'm attaching my current wrapper script for connmand. I don't > think it's perfect, but at least it doesn't depend on any init manager > and works across restarts. > > The wrapper script attached by you, takes care of the missing scenarios. > Seems to be more complete. > > > > Add these lines to connman's do_install, in case you'd like to test > and/or submit it: > > mv ${D}${sbindir}/connmand ${D}${sbindir}/connmand.real > install -m 755 ${WORKDIR}/connmand-nfsroot.in > <http://connmand-nfsroot.in> ${D}${sbindir}/connmand > sed -e 's,@sbindir@,${sbindir},g' -i ${D}${sbindir}/connmand > > I think it would be good idea to integrate your changes into the already > existing OE-core's connman script, instead of a calling original connman > script from the wrapper script.
please keep in mind that you'd need to implement the same logic for systemd. Considering that the execution of connman on nfsroots without appropriate parameters immediately hangs the system, a wrapper script offers an additional level of protection compared to an init script or systemd unit, especially for people debugging connman. Regards, Andreas > > Regards, > Jagadeesh > > > > > Signed-off-by: Jagadeesh Krishnanjanappa > <jkrishnanjana...@mvista.com <mailto:jkrishnanjana...@mvista.com>> > > --- > > meta/recipes-connectivity/connman/connman/connman | 35 > +++++++++++++---------- > > 1 file changed, 20 insertions(+), 15 deletions(-) > > > > diff --git a/meta/recipes-connectivity/connman/connman/connman > b/meta/recipes-connectivity/connman/connman/connman > > index c64fa0d..aae2ca6 100644 > > --- a/meta/recipes-connectivity/connman/connman/connman > > +++ b/meta/recipes-connectivity/connman/connman/connman > > @@ -29,23 +29,28 @@ done > > do_start() { > > EXTRA_PARAM="" > > if test $nfsroot -eq 1 ; then > > - 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'` > > + ethn_from_dmesg=`dmesg | grep "device="| sed > "s|\(.*\)device=\(.*\), hwaddr=\(.*\)|\2|g"` > > + if [ ! -z "$ethn_from_dmesg" ]; then > > + EXTRA_PARAM="-I $ethn_from_dmesg" > > + else > > + 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 > > + 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 > > - done > > + 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 > > fi > > fi > > > > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > <mailto:Openembedded-core@lists.openembedded.org> > http://lists.openembedded.org/mailman/listinfo/openembedded-core > <http://lists.openembedded.org/mailman/listinfo/openembedded-core> > > -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core