[OE-core] [PATCH] connman: get the correct network interface name from dmesg during NFS booting
Andreas Oberritter
obi at opendreambox.org
Wed Oct 12 19:08:15 UTC 2016
On 12.10.2016 19:49, Christopher Larson wrote:
>
> On Wed, Oct 12, 2016 at 12:30 AM, Andreas Oberritter
> <obi at opendreambox.org <mailto:obi at opendreambox.org>> wrote:
>
> On 11.10.2016 21:34, Christopher Larson wrote:
> >
> > On Tue, Oct 11, 2016 at 12:03 PM, Jagadeesh Krishnanjanappa
> > <jkrishnanjanappa at mvista.com <mailto:jkrishnanjanappa at mvista.com>
> <mailto:jkrishnanjanappa at mvista.com
> <mailto:jkrishnanjanappa at mvista.com>>> wrote:
> >
> > On Tue, Oct 11, 2016 at 9:06 PM, Christopher Larson
> > <clarson at kergoth.com <mailto:clarson at kergoth.com>
> <mailto:clarson at kergoth.com <mailto:clarson at kergoth.com>>> wrote:
> >
> >
> > On Tue, Oct 11, 2016 at 5:11 AM, Jagadeesh Krishnanjanappa
> > <jkrishnanjanappa at mvista.com <mailto:jkrishnanjanappa at mvista.com>
> > <mailto:jkrishnanjanappa at mvista.com <mailto:jkrishnanjanappa at mvista.com>>>
> wrote:
> >
> > 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>
> > <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.
> >
> >
> > I threw
> > together https://github.com/openembedded/openembedded-core/compare/master...kergoth:connman-systemd-nfs
> <https://github.com/openembedded/openembedded-core/compare/master...kergoth:connman-systemd-nfs>
> > <https://github.com/openembedded/openembedded-core/compare/master...kergoth:connman-systemd-nfs
> <https://github.com/openembedded/openembedded-core/compare/master...kergoth:connman-systemd-nfs>>
> last
> > night, only limited testing. I think using a script in
> > libexecdir is rather cleaner than wrapping connmand in place,
> > for something like this, personally.
> >
> >
> > In the above commit, the last line of connman/connman/start-connman
> > file, should be exec @SBINDIR@/connmand "$@" instead of exec
> > @SBINDIR@/connman "$@" ; as the actual binary file name is connmand.
> >
> >
> > Thanks, didn’t notice that. Obviously it needs polish and testing before
> > submission, I mainly linked it to solicit thoughts on the approach :)
>
> your proposal adds some complexity to the recipe, which I tried to
> avoid, because this wrapper script is something we'll probably have to
> maintain forever.
>
> For example, your recipe might break without notice if upstream is going
> to ship another binary as ${sbindir}/connmand-something in the future;
> or if upstream decides to change the systemd unit to use a variable
> instead of a hardcoded path to connmand.
>
> Besides that, I don't have a strong opinion on the location of the
> wrapper script.
>
>
> Good points. I think the future-proofing could be addressed with
> something like sed -i -e "s#^ExecStart=.*#ExecStart=$wrapperpath#"
> ${D}${systemd_unitdir}/system/connman.service, and then switch away from
> that weak start-connman script in favor of yours, but keep it in libexec
> for cleanliness.
Agreed.
Regards,
Andreas
More information about the Openembedded-core
mailing list