aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2007-09-02 14:18:47 +0000
committerRichard Purdie <rpurdie@rpsys.net>2007-09-02 14:18:47 +0000
commit2b79934c4f4dc62f043534729102c9dd2e211da7 (patch)
treebff7797eb444b9a6b55b2f42fcca4db0ccfdd1ae /packages
parentada308cef40f274bc1f93fd90a609676ae24632b (diff)
downloadopenembedded-2b79934c4f4dc62f043534729102c9dd2e211da7.tar.gz
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.
Diffstat (limited to 'packages')
-rwxr-xr-xpackages/initscripts/initscripts-1.0/bootmisc.sh20
-rw-r--r--packages/initscripts/initscripts-1.0/save-rtc.sh4
-rw-r--r--packages/initscripts/initscripts_1.0.bb2
3 files changed, 15 insertions, 11 deletions
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 \