NTP 时间同步客户端
到网站下载源码
http://www.ntp.org/downloads.html
$ tar -xvf ntp-4.2.6p5.tar.gz
$ cd ntp-4.2.6p5/
$ ./configure --host=arm-linux
$ make
把ntpdate/ntpdate可执行文件拷贝到板子的/usr/bin/下面,做为客户端,只要这个,其他的都非必须
板子上运行
# ntpdate 192.168.0.88
这样运行就会进行时间同步
PS:
NTP时间同步使用的是世界时间UTC+0,而中国所在的时区是UTC+8
由于嵌入式阉割了时区配置,导致同步的时间与实际时间差8个小时
嵌入式Linux中时区的修改
1、使用NTP对时,ntpdate + IP 成功后,通过 date 指令查看系统时间,比服务器时间晚了8小时。
系统时间 2018-3-1 08:18:52,服务器时间实际是 16点。
2、什么原因会造成时间差8小时呢?
考虑到是时区的问题,查询系统当前的时区设置 date -R,看到系统是 +0000 时区,而中国统一采用北京所在的东8时区,由此造成了8小时的时间偏差。
3、如何设置Linux系统的时区?
网上看到 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,但是这只是针对电脑系统,嵌入式系统中根本找不到 /usr/share/zoneinfo/Asia/Shanghai。
最后查询资料看到有个 TZ 的环境变量用来设置时区, 在/etc/profile添加这个变量,保存重启。
-
TZ=UTC-08:00 #设置为东8区
-
export TZ
-
hwclock -s
-
root@freescale ~$ date -R
-
Thu, 01 Mar 2018 16:18:08 +0800 # 时区变为 +0800
-
root@freescale ~$ ntpdate 172.16.30.2
-
1 Mar 16:18:27 ntpdate[952]: step time server 172.16.30.2