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

Jagadeesh Krishnanjanappa jkrishnanjanappa at mvista.com
Wed Oct 19 18:52:15 UTC 2016


Hi Christopher,

Thanks for applying the required changes under below commit,

https://github.com/openembedded/openembedded-core/compare/master...kergoth:connman-systemd-nfs

Are there any plans to submit it to OE-core?

Regards,
Jagadeesh


On Thu, Oct 13, 2016 at 7:31 AM, Jagadeesh Krishnanjanappa <
jkrishnanjanappa at mvista.com> wrote:

>
>
> On Wed, Oct 12, 2016 at 12:30 PM, Andreas Oberritter <obi at opendreambox.org
> > wrote:
>
>> 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, 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.
>>
>> 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.
>>
>> The intention of integrating your changes into init script was to avoid
> an extra file being added to the layer. But yes, to help debugging and to
> support systemd; wrapper script can be helpful.
>
> Thanks,
> Jagadeesh
>
> Regards,
>> Andreas
>>
>> >
>> > Regards,
>> > Jagadeesh
>> >
>> >     >
>> >     > Signed-off-by: Jagadeesh Krishnanjanappa
>> >     <jkrishnanjanappa at mvista.com <mailto: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
>> >     <mailto:Openembedded-core at lists.openembedded.org>
>> >     http://lists.openembedded.org/mailman/listinfo/openembedded-core
>> >     <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>> >
>> >
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20161020/6f95cdff/attachment-0002.html>


More information about the Openembedded-core mailing list