From: Richard Purdie Date: Sun, 2 Sep 2007 14:18:47 +0000 (+0000) Subject: initscipts: Improve RTC handling so /etc/timestamp is used if its timestamp is 1... X-Git-Tag: Release-2010-05/1~8730^2~9 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b79934c4f4dc62f043534729102c9dd2e211da7;p=openembedded.git initscipts: Improve RTC handling so /etc/timestamp is used if its timestamp is 1 day or more greater than the existing time. Also set the timestamp on halt/reboot so devices without a hardware RTC (or with a broken RTC like the PXA) can benefit. --- diff --git a/packages/initscripts/initscripts-1.0/bootmisc.sh b/packages/initscripts/initscripts-1.0/bootmisc.sh index 799cdca12b..2a40e0c410 100755 --- a/packages/initscripts/initscripts-1.0/bootmisc.sh +++ b/packages/initscripts/initscripts-1.0/bootmisc.sh @@ -61,16 +61,18 @@ fi # /sbin/ldconfig -# -# Recover the time, if there is a time file (first boot only) -# If not, set system clock from hardware clock -# +# Set the system clock from hardware clock +# If the timestamp is 1 day or more recent than the current time, +# use the timestamp instead. +/etc/init.d/hwclock.sh start if test -e /etc/timestamp then - date -s `cat /etc/timestamp` - mv -f /etc/timestamp /etc/timestamp.done - /etc/init.d/hwclock.sh stop -else - /etc/init.d/hwclock.sh start + SYSTEMDATE=`date "+%Y%m%d"` + TIMESTAMP=`cat /etc/timestamp | awk '{ print substr($0,9,4) substr($0,1,4);}'` + NEEDUPDATE=`expr \( $TIMESTAMP \> $SYSTEMDATE \)` + if [ $NEEDUPDATE -eq 1 ]; then + date `cat /etc/timestamp` + /etc/init.d/hwclock.sh stop + fi fi : exit 0 diff --git a/packages/initscripts/initscripts-1.0/save-rtc.sh b/packages/initscripts/initscripts-1.0/save-rtc.sh index 4e0e270701..e786073051 100644 --- a/packages/initscripts/initscripts-1.0/save-rtc.sh +++ b/packages/initscripts/initscripts-1.0/save-rtc.sh @@ -1,3 +1,5 @@ #! /bin/sh -#FIXME read timestamp handling for systems where RTC doesn't survive a reboot /etc/init.d/hwclock.sh stop + +# Update the timestamp +date +%2m%2d%2H%2M%Y > /etc/timestamp diff --git a/packages/initscripts/initscripts_1.0.bb b/packages/initscripts/initscripts_1.0.bb index 3d2f0f50b4..06a12c04a5 100644 --- a/packages/initscripts/initscripts_1.0.bb +++ b/packages/initscripts/initscripts_1.0.bb @@ -4,7 +4,7 @@ PRIORITY = "required" DEPENDS = "makedevs" RDEPENDS = "makedevs" LICENSE = "GPL" -PR = "r99" +PR = "r100" SRC_URI = "file://functions \ file://halt \