在imx53CPU下添加ds2417芯片(续)——有关时区问题

    在上一篇文章中完成的内容,仅仅是使RTC时间和系统时间一样,但是没有考虑时区的问题,现在已经搞定,先在此做一下记录。

    本人使用的文件系统使用hwclock命令,不能得到时区的信息,但是开机的时候会有这么一句话:ds2417-rtc ds2417-rtc.0: setting system clock to 2017-08-17 07:00:19 UTC (1502953219),由此我认为RTC里面的时间是UTC时间,在没有添加与时区有关文件时,系统时间和RTC时间是一样的,都是UTC。这个我们正常使用的CST(UTC+8)明显是不一样的。

    现在讲如何添加时区功能:

    1.首先,拷贝时区文件。在一台ubuntu或者其他linux的PC主机上,将/usr/share/zoneinfo的文件拷贝到嵌入式目标主机上,当然,并不需要全部拷贝上去,因为有好几MB的大小,这个大小对于嵌入式系统来说已经相当庞大了;由于我们需要的是北京时间,所以只将文件/usr/share/zoneinfo/Asia/Shanghai拷贝至嵌入式系统同样的位置中,本来想找Asia/Beijing的,发现找不到,但效果是一样的;使用tftp等工具去拷贝都行,嵌入式系统上没有对应文件夹的话就自己创建。

    然后千万要修改Shanghai的文件权限:chmod 777 Shanghai

    2.然后,创建localtime符号链接文件。在嵌入式Linux系统中创建一个链接文件,注意文件位置,链到刚才Shanghai那个文件,执行命令:  

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
    3.也是我认为最重要的,在使用date命令修改完时间之后,仅仅是修改了系统时间,但是并没有修改RTC时间,所以我们还需要执行一下hwclock命令。如果大家按照网上的方法执行hwclock -w,那么你会把系统时间原封不动的写到RTC里面去,最后在开机的时候系统会从RTC里面读取时间然后按照时区文件+8,所以得到的时间会比设置的时间多了8小时。所以我们要把hwclock -w改为hwclock -u -w。这样我们写到RTC里的时间是没有经过+8的UTC时间,而开机的时候系统得到这个时间会+8,就是我们需要的时间了。

    修改时区文件也只是在RTC时间(UTC)的基础上加加减减而已。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值