Currently we're forced to have system time in the UTC timezone as hardware clock, mainly because kernel expects in rtc_hctosys(), that RTC time is held in UTC timezone.
With this patch one can now have local system time for example in CEST timezone and RTC time still in UTC with boolean config option `rtc_utc`. Signed-off-by: Petr Štetiar <yn...@true.cz> --- package/base-files/files/etc/init.d/sysfixtime | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/package/base-files/files/etc/init.d/sysfixtime b/package/base-files/files/etc/init.d/sysfixtime index 81d1c52..83e1397 100755 --- a/package/base-files/files/etc/init.d/sysfixtime +++ b/package/base-files/files/etc/init.d/sysfixtime @@ -6,6 +6,28 @@ STOP=90 RTC_DEV=/dev/rtc0 HWCLOCK=/sbin/hwclock +IN_UTC='' + +. /lib/functions/procd.sh + +validate_system_section() { + uci_validate_section system system "${1}" \ + 'rtc_utc:bool:0' +} + +rtc_config() { + local rtc_utc + + validate_system_section "${1}" || { + echo "validation failed" + return 1 + } + + [ $rtc_utc = 1 ] && IN_UTC='-u' +} + +config_load system +config_foreach rtc_config system boot() { start && exit 0 @@ -16,11 +38,11 @@ boot() { } start() { - [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -s -f $RTC_DEV + [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -s $IN_UTC -f $RTC_DEV } stop() { - [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -w -f $RTC_DEV && \ + [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -w $IN_UTC -f $RTC_DEV && \ logger -t sysfixtime "saved '$(date)' to $RTC_DEV" } -- 1.9.1 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev