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 < [email protected]> wrote: > > > On Wed, Oct 12, 2016 at 12:30 PM, Andreas Oberritter <[email protected] > > 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,@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 >> > <[email protected] <mailto:[email protected]>> >> > > --- >> > > 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 >> > [email protected] >> > <mailto:[email protected]> >> > http://lists.openembedded.org/mailman/listinfo/openembedded-core >> > <http://lists.openembedded.org/mailman/listinfo/openembedded-core> >> > >> > >> >> >
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
