[LEDE-DEV] [PATCH] base-files: sysfixtime: Allow system time in local timezones

John Crispin john at phrozen.org
Thu Oct 27 03:13:25 PDT 2016



On 21/10/2016 10:31, Petr Štetiar wrote:
> Daniel Dickinson <lede at cshore.thecshore.com> [2016-10-20 16:47:09]:
> 
>> On Wed, 19 Oct 2016 22:05:43 +0200
>> Petr Štetiar <ynezz at true.cz> wrote:
>>
>>> Felix Fietkau <nbd at nbd.name> [2016-10-19 21:44:06]:
>>>
>>>> I'd like to know why you need to use local time for the RTC, I think
>>>> that's rather uncommon.  
>>>
>>> You mean system time in local time, right? RTC should be in UTC and
>>> in current sysftime isn't. Basically sysfixtime should be using
>>> hwclock with -u parameter from the same beginning as the kernel
>>> doesn't expect time in RTC to be in other timezone.
>>>
>>> Believe it or not, I've some users which are used to have system time
>>> on their desktop Linux machines in local timezone and they expect the
>>> same from the Linux on embedded devices. It's hard, I know :-)
>>
>> Have you ever looked at UCI config for /etc/config/system?  There is
>> the option to set the system timezone there.  No need to hack hwclock.
> 
> I know, that I can't write meaningful commit messages, sorry for that. I'll
> try to explain it again.
> 
> Please take a look at hwclock, you've to tell it via -u command line option,
> that your RTC is keeping time in UTC, otherwise it will happily use whatever
> time your system uses and your time is screwed (no time conversion happens).
> 
> I've following in the setup script:
> 
>   uci set system. at system[0].timezone='CET-1CEST,M3.5.0,M10.5.0/3'
>   uci set system. at system[0].zonename='Europe/Prague'
> 
> I've this RTC setup:
> 
>   rtc-ds1307 3-006f: rtc core: registered mcp7941x as rtc0
>   snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc1
> 
> Then you can experience following (current time is 10:15am):
> 
> 	$ date
> 	Fri Oct 21 10:15:07 CEST 2016
> 
> 	$ hwclock -r -f /dev/rtc0
> 	Fri Oct 21 08:14:46 2016  0.000000 seconds
> 
> 	$ hwclock -u -r -f /dev/rtc0
> 	Fri Oct 21 10:14:46 2016  0.000000 seconds
> 
> And after current borken sysfixtime:
> 
> 	$ /etc/init.d/sysfixtime stop
> 
> 	$ date
> 	Fri Oct 21 10:15:25 CEST 2016
> 
> 	$ hwclock -r -f /dev/rtc0
> 	Fri Oct 21 10:15:31 2016  0.000000 seconds
> 
> Now you've time in your battery backed RTC in CEST timezone instead of UTC. Is
> the problem more clear now?
> 
> Again, wbut ith my patched sysfixtime, using hwclock -u parameter:
> 
> 	$ /etc/init.d/sysfixtime stop
> 
> 	$ date
> 	Fri Oct 21 10:15:53 CEST 2016
> 
> 	$ hwclock -r -f /dev/rtc0
> 	Fri Oct 21 08:15:55 2016  0.000000 seconds
> 
> -- ynezz
> 

patch looks good to me. please however make a change

+		'rtc_utc:bool:0'
replace with
+		'rtc_utc:bool:1'

this will make the clock UTC by default

	John


> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev
> 



More information about the Lede-dev mailing list