[yocto] Busybox hwclock.sh initscript issues

Craig McQueen craig.mcqueen at innerrange.com
Sun Sep 20 17:19:44 PDT 2015


On 2015-09-18 21:31, Gary Thomas wrote:
> 
> On 2015-09-17 23:28, Craig McQueen wrote:
> > I'm using Yocto dizzy. I've found a couple of issues with the Busybox
> hwclock.sh initscript.
> >
> > 1) The script checks that /sbin/hwclock exists at the start. But after that it
> runs hwclock without an explicit /sbin/hwclock path. So it only works if /sbin/
> is in the PATH. Thus it doesn't run properly when called from e.g. cronie
> which doesn't run with /sbin/ in the PATH.
> >
> > 2) The bootmisc.sh initscript uses the time from /etc/timestamp if the
> hwclock time is older. That's good. But then by default, hwclock.sh runs after
> bootmisc.sh, and unconditionally overwrites the system time from the
> hwclock. So on a system without a functional hwclock, the /etc/timestamp
> feature basically doesn't work. One solution is modify
> INITSCRIPT_PARAMS_${PN}-hwclock so it doesn't run at start-up (I am doing
> that in a busybox bbappend).
> 
> Why do you think it doesn't work?  On a system without a functioning
> hardware clock, at least the time stamp moves forward on every
> boot/shutdown.

It doesn't work because after the bootmisc.sh runs, which sets the time according to /etc/timestamp, then hwclock.sh runs and sets the time to that of the non-functional hwclock (2000-01-01 00:00 in my case).

To fix it, I've made a busybox bbappend file with the following:

INITSCRIPT_PARAMS_${PN}-hwclock = "stop 20 0 1 6 ."

That means hwclock.sh isn't run at start-up (but actually bootmisc.sh runs it as part of its handling of /etc/timestamp). That makes it work the way I want, and how I suspect the bootmisc.sh author intended it.

-- 
Craig McQueen




More information about the yocto mailing list