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> SVN-Revision: 48661
This commit is contained in:
parent
badeccf6a8
commit
e2fd1adaf5
1 changed files with 14 additions and 0 deletions
|
@ -2,10 +2,24 @@
|
||||||
# Copyright (C) 2013-2014 OpenWrt.org
|
# Copyright (C) 2013-2014 OpenWrt.org
|
||||||
|
|
||||||
START=00
|
START=00
|
||||||
|
STOP=90
|
||||||
|
|
||||||
|
RTC_DEV=/dev/rtc0
|
||||||
|
HWCLOCK=/sbin/hwclock
|
||||||
|
|
||||||
boot() {
|
boot() {
|
||||||
|
start && exit 0
|
||||||
|
|
||||||
local curtime="$(date +%s)"
|
local curtime="$(date +%s)"
|
||||||
local maxtime="$(find /etc -type f -exec date -r {} +%s \; | sort -nr | head -n1)"
|
local maxtime="$(find /etc -type f -exec date -r {} +%s \; | sort -nr | head -n1)"
|
||||||
[ $curtime -lt $maxtime ] && date -s @$maxtime
|
[ $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"
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue