[OpenWrt-Devel] [PATCH v3] base-files: For sysfixtime use hwclock if RTC available
Petr Štetiar
ynezz at true.cz
Thu Jan 21 03:39:53 EST 2016
From: Daniel Dickinson <openwrt at daniel.thecshore.com>
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 at daniel.thecshore.com>
Signed-off-by: Petr Štetiar <ynezz at true.cz>
---
Changes in v3:
* uppercased global variables
package/base-files/files/etc/init.d/sysfixtime | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/package/base-files/files/etc/init.d/sysfixtime b/package/base-files/files/etc/init.d/sysfixtime
index 4010e06..83e9ee4 100755
--- a/package/base-files/files/etc/init.d/sysfixtime
+++ b/package/base-files/files/etc/init.d/sysfixtime
@@ -2,10 +2,25 @@
# Copyright (C) 2013-2014 OpenWrt.org
START=00
+STOP=90
+
+RTC_DEV=/dev/rtc0
+HWCLOCK=/sbin/hwclock
boot() {
+ [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -s -f $RTC_DEV && 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"
+}
--
1.7.9.5
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list