[OE-core] [PATCH] connman: get the correct network interface name from dmesg during NFS booting

Jagadeesh Krishnanjanappa jkrishnanjanappa at mvista.com
Tue Oct 11 12:11:41 UTC 2016


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 ${D}${sbindir}/connmand
> sed -e 's, at 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.

Regards,
Jagadeesh

>
> > Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa at 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 at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20161011/ebe1ebbd/attachment-0002.html>


More information about the Openembedded-core mailing list