aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2016-02-08 08:25:53 +0000
committerJohn Crispin <blogic@openwrt.org>2016-02-08 08:25:53 +0000
commit6661bea01e0518e5e8206c88088bd575d21d4a94 (patch)
tree03927ee6ccf584c93bab7244ed5de98ff8cc77b3 /package/base-files
parent733af2789abbc6e52bd88cd6a1cbf9c319528224 (diff)
downloadmaster-187ad058-6661bea01e0518e5e8206c88088bd575d21d4a94.tar.gz
master-187ad058-6661bea01e0518e5e8206c88088bd575d21d4a94.tar.bz2
master-187ad058-6661bea01e0518e5e8206c88088bd575d21d4a94.zip
base-files: For sysfixtime use hwclock if RTC available
On systems that have an RTC prefer it to the file-based time fixup (i.e. use hwclock when there is a permanent clock instead of the faked up time logic that is needed when there is not RTC). We can't rely on hctosys kernel feature either as we're usually using RTC as kernel modules which are usually being loaded after hctosys was run, leading in the following error: hctosys: unable to open rtc device (rtc0) Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48661 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files')
-rwxr-xr-xpackage/base-files/files/etc/init.d/sysfixtime14
1 files changed, 14 insertions, 0 deletions
diff --git a/package/base-files/files/etc/init.d/sysfixtime b/package/base-files/files/etc/init.d/sysfixtime
index 4010e06f93..ab946f6518 100755
--- a/package/base-files/files/etc/init.d/sysfixtime
+++ b/package/base-files/files/etc/init.d/sysfixtime
@@ -2,10 +2,24 @@
# Copyright (C) 2013-2014 OpenWrt.org
START=00
+STOP=90
+
+RTC_DEV=/dev/rtc0
+HWCLOCK=/sbin/hwclock
boot() {
+ start && exit 0
+
local curtime="$(date +%s)"
local maxtime="$(find /etc -type f -exec date -r {} +%s \; | sort -nr | head -n1)"
[ $curtime -lt $maxtime ] && date -s @$maxtime
}
+start() {
+ [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -s -f $RTC_DEV
+}
+
+stop() {
+ [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -w -f $RTC_DEV && \
+ logger -t sysfixtime "saved '$(date)' to $RTC_DEV"
+}