<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 12, 2016 at 12:30 PM, Andreas Oberritter <span dir="ltr">&lt;<a href="mailto:obi@opendreambox.org" target="_blank">obi@opendreambox.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Jagadeesh,<br>
<span class=""><br>
On 11.10.2016 14:11, Jagadeesh Krishnanjanappa wrote:<br>
&gt; Hi Andreas,<br>
&gt;<br>
&gt; Thanks for reviewing the patch.<br>
&gt;<br>
&gt;<br>
&gt;     I think this is too fragile to land in OE-Core. What happens if a<br>
&gt;     network driver prints &quot;device=eth0&quot;? Or if other kernel messages make<br>
&gt;     the string disappear from dmesg and connman gets restarted later?<br>
&gt;<br>
&gt;<br>
&gt; True. If device=eth0 gets disappeared/corrupted, then we may have problem.<br>
&gt;<br>
&gt;<br>
&gt;     FWIW, I&#39;m attaching my current wrapper script for connmand. I don&#39;t<br>
&gt;     think it&#39;s perfect, but at least it doesn&#39;t depend on any init manager<br>
&gt;     and works across restarts.<br>
&gt;<br>
&gt; The wrapper script attached by you, takes care of the missing scenarios.<br>
&gt; Seems to be more complete.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     Add these lines to connman&#39;s do_install, in case you&#39;d like to test<br>
&gt;     and/or submit it:<br>
&gt;<br>
&gt;     mv ${D}${sbindir}/connmand ${D}${sbindir}/connmand.real<br>
&gt;     install -m 755 ${WORKDIR}/<a href="http://connmand-nfsroot.in" rel="noreferrer" target="_blank">connmand-nfsroot.in</a><br>
</span>&gt;     &lt;<a href="http://connmand-nfsroot.in" rel="noreferrer" target="_blank">http://connmand-nfsroot.in</a>&gt; ${D}${sbindir}/connmand<br>
<span class="">&gt;     sed -e &#39;s,@sbindir@,${sbindir},g&#39; -i ${D}${sbindir}/connmand<br>
&gt;<br>
&gt; I think it would be good idea to integrate your changes into the already<br>
&gt; existing OE-core&#39;s connman script, instead of a calling original connman<br>
&gt; script from the wrapper script.<br>
<br>
</span>please keep in mind that you&#39;d need to implement the same logic for systemd.<br>
<br>
Considering that the execution of connman on nfsroots without<br>
appropriate parameters immediately hangs the system, a wrapper script<br>
offers an additional level of protection compared to an init script or<br>
systemd unit, especially for people debugging connman.<br>
<br></blockquote><div>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.</div><div><br></div><div>Thanks,</div><div>Jagadeesh</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Regards,<br>
Andreas<br>
<span class=""><br>
&gt;<br>
&gt; Regards,<br>
&gt; Jagadeesh<br>
&gt;<br>
&gt;     &gt;<br>
&gt;     &gt; Signed-off-by: Jagadeesh Krishnanjanappa<br>
</span>&gt;     &lt;<a href="mailto:jkrishnanjanappa@mvista.com">jkrishnanjanappa@mvista.com</a> &lt;mailto:<a href="mailto:jkrishnanjanappa@mvista.com">jkrishnanjanappa@<wbr>mvista.com</a>&gt;&gt;<br>
<div><div class="h5">&gt;     &gt; ---<br>
&gt;     &gt;  meta/recipes-connectivity/<wbr>connman/connman/connman | 35<br>
&gt;     +++++++++++++----------<br>
&gt;     &gt;  1 file changed, 20 insertions(+), 15 deletions(-)<br>
&gt;     &gt;<br>
&gt;     &gt; diff --git a/meta/recipes-connectivity/<wbr>connman/connman/connman<br>
&gt;     b/meta/recipes-connectivity/<wbr>connman/connman/connman<br>
&gt;     &gt; index c64fa0d..aae2ca6 100644<br>
&gt;     &gt; --- a/meta/recipes-connectivity/<wbr>connman/connman/connman<br>
&gt;     &gt; +++ b/meta/recipes-connectivity/<wbr>connman/connman/connman<br>
&gt;     &gt; @@ -29,23 +29,28 @@ done<br>
&gt;     &gt;  do_start() {<br>
&gt;     &gt;       EXTRA_PARAM=&quot;&quot;<br>
&gt;     &gt;       if test $nfsroot -eq 1 ; then<br>
&gt;     &gt; -         NET_DEVS=`cat /proc/net/dev | sed -ne &#39;s/^\([a-zA-Z0-9<br>
&gt;     ]*\):.*$/\1/p&#39;`<br>
&gt;     &gt; -         NET_ADDR=`cat /proc/cmdline | sed -ne &#39;s/^.*ip=\([^<br>
&gt;     :]*\).*$/\1/p&#39;`<br>
&gt;     &gt; +         ethn_from_dmesg=`dmesg | grep &quot;device=&quot;| sed<br>
&gt;     &quot;s|\(.*\)device=\(.*\), hwaddr=\(.*\)|\2|g&quot;`<br>
&gt;     &gt; +         if [ ! -z &quot;$ethn_from_dmesg&quot; ]; then<br>
&gt;     &gt; +             EXTRA_PARAM=&quot;-I $ethn_from_dmesg&quot;<br>
&gt;     &gt; +         else<br>
&gt;     &gt; +             NET_DEVS=`cat /proc/net/dev | sed -ne<br>
&gt;     &#39;s/^\([a-zA-Z0-9 ]*\):.*$/\1/p&#39;`<br>
&gt;     &gt; +             NET_ADDR=`cat /proc/cmdline | sed -ne &#39;s/^.*ip=\([^<br>
&gt;     :]*\).*$/\1/p&#39;`<br>
&gt;     &gt;<br>
&gt;     &gt; -         if [ ! -z &quot;$NET_ADDR&quot; ]; then<br>
&gt;     &gt; -             if [ &quot;$NET_ADDR&quot; = dhcp ]; then<br>
&gt;     &gt; -                 ethn=`ifconfig | grep &quot;^eth&quot; | sed -e<br>
&gt;     &quot;s/\(eth[0-9]\)\(.*\)/\1/&quot;`<br>
&gt;     &gt; -                 if [ ! -z &quot;$ethn&quot; ]; then<br>
&gt;     &gt; -                     EXTRA_PARAM=&quot;-I $ethn&quot;<br>
&gt;     &gt; -                 fi<br>
&gt;     &gt; -             else<br>
&gt;     &gt; -                 for i in $NET_DEVS; do<br>
&gt;     &gt; -                     ADDR=`ifconfig $i | sed &#39;s/addr://g&#39; | sed<br>
&gt;     -ne &#39;s/^.*inet \([0-9.]*\) .*$/\1/p&#39;`<br>
&gt;     &gt; -                     if [ &quot;$NET_ADDR&quot; = &quot;$ADDR&quot; ]; then<br>
&gt;     &gt; -                         EXTRA_PARAM=&quot;-I $i&quot;<br>
&gt;     &gt; -                         break<br>
&gt;     &gt; +             if [ ! -z &quot;$NET_ADDR&quot; ]; then<br>
&gt;     &gt; +                 if [ &quot;$NET_ADDR&quot; = dhcp ]; then<br>
&gt;     &gt; +                     ethn=`ifconfig | grep &quot;^eth&quot; | sed -e<br>
&gt;     &quot;s/\(eth[0-9]\)\(.*\)/\1/&quot;`<br>
&gt;     &gt; +                     if [ ! -z &quot;$ethn&quot; ]; then<br>
&gt;     &gt; +                         EXTRA_PARAM=&quot;-I $ethn&quot;<br>
&gt;     &gt;                       fi<br>
&gt;     &gt; -                 done<br>
&gt;     &gt; +                 else<br>
&gt;     &gt; +                     for i in $NET_DEVS; do<br>
&gt;     &gt; +                         ADDR=`ifconfig $i | sed &#39;s/addr://g&#39; |<br>
&gt;     sed -ne &#39;s/^.*inet \([0-9.]*\) .*$/\1/p&#39;`<br>
&gt;     &gt; +                         if [ &quot;$NET_ADDR&quot; = &quot;$ADDR&quot; ]; then<br>
&gt;     &gt; +                             EXTRA_PARAM=&quot;-I $i&quot;<br>
&gt;     &gt; +                             break<br>
&gt;     &gt; +                         fi<br>
&gt;     &gt; +                     done<br>
&gt;     &gt; +                 fi<br>
&gt;     &gt;               fi<br>
&gt;     &gt;           fi<br>
&gt;     &gt;       fi<br>
&gt;     &gt;<br>
&gt;<br>
&gt;<br>
&gt;     --<br>
&gt;     ______________________________<wbr>_________________<br>
&gt;     Openembedded-core mailing list<br>
&gt;     <a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
</div></div>&gt;     &lt;mailto:<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@<wbr>lists.openembedded.org</a>&gt;<br>
&gt;     <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
&gt;     &lt;<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.<wbr>org/mailman/listinfo/<wbr>openembedded-core</a>&gt;<br>
&gt;<br>
&gt;<br>
<br>
</blockquote></div><br></div></div>