[lfs-dev] problem of bootscript setclock

Bruce Dubbs bruce.dubbs at gmail.com
Sun May 13 11:16:13 PDT 2012

DJ Lucas wrote:
> On 05/13/2012 11:33 AM, Bryan Kadzban wrote:
>> xinglp wrote:
>>> Now, It is the job of udev to start /etc/init.d/setclock .
>>> When I use initd-tools to install somethings else, it was installed
>>> for depended.
>> Is there a way in these newfangled headers to say that setclock is
>> really an alias for udev?  That's what's happening in the scripts, anyway...
>>> And I THINK , ntpd and checkfs should not depend on $time.
>> Not sure on ntpd (although I wouldn't be surprised if it was because
>> ntpd refuses to do anything if the clock is far-enough off from what
>> it's getting from the upstream servers).
>> But checkfs does depend on the time.  It checks whether the current time
>> is before or after the last-full-fsck-time plus the days-between-mounts
>> value stored in the ext3 (and probably 4, and perhaps 2) superblock.  If
>> it's after, then it forces a full fsck run.
>> (It also checks whether the mount count stored in the superblock is more
>> or less than the number-of-mounts-between-full-fsck-runs value in the
>> superblock, and forces a full fsck if it's more.  Of course, that
>> doesn't depend on knowing the current time.)
>> "tune2fs -t" will change the number of days between checks, and "tune2fs
>> -c" will change the number of mounts.  "tune2fs -T<timestamp>" will set
>> the last-checked time (can be done live), and "tune2fs -C<integer>"
>> will set the current mount count (can also be done live).
>> All that said, if there's no way in this extra-abstraction setup to
>> express an alias, then we should change the other scripts to depend on
>> udev instead of setclock.

> After a quick review of the scripts, here is my take: a quick fix would 
> be to add $time to the provides of the udev script headers. That's 
> probably not exactly the right thing to do. The setclock script should 
> probably be renamed hwclock and provide hwclock (at shutdown). Scripts 
> that need a close time source (hwclock) should depend on udev for 
> startup. The RTC will always be available to the hwclock program on x86 
> or x86_64 even if /dev is not mounted (the same is not true of other 
> archs though). I believe there is a way to set the system time by way of 
> kernel config now too so that the udev rule could go...been a while 
> since I looked at it. $time should probably be provided by the ntpd 
> script, and then a $time dependency should never appear in any script 
> that is installed into the rcS.d/, rc1.d/, or rc2.d/ directories.

For LFS, we can't rely on ntpd because we can't assume a network connection.

   -- Bruce

More information about the lfs-dev mailing list