因为ARM板断电重启问题,为保证能获取到准确的实时时间,所以需要实现自动从网络上获取时间,这就需要用到NTP。NTP是网络时间协议(Network Time Protocol)的简称,它是用来同步网络中各个计算机设备的时间的协议。目前有第三方的代码可以支持NTP,本文讲诉ntpclient的用法。

ntpclient is an NTP (RFC-1305) client for unix-alike computers. Its functionality is a small subset of xntpd, but IMHO performs better (or at least has the potential to function better) within that limited scope. Since it is much smaller than xntpd, it is also more relevant for embedded computers.
ntpclient is Copyright (C) 1997-2015 Larry Doolittle, and may be freely copied and modified according to the terms of the GNU General Public License, version 2.

ntpclient的下载地址是:http://doolittle.icarus.com/ntpclient/

下载好后,解压,进入解压后的目录进行交叉编译

1.修改Makefile

# To cross-compileCC = arm-none-linux-gnueabi-gcc

2.交叉编译

make

3.拷贝编译得到的ntpclient文件至目标板/sbin/目录下,并加可执行权限chmod  +x   ntpclient

然后我们需要一个网络授时服务器网址

http://www.ntp.org.cn/

这个是授时中心网页,在这个上面可以找到需要的授时中心网址

然后我们在开发板上运行程序

 ntpclient -s -d -c 1 -i 5 -h 202.108.6.95

设备会返回如下

[root@iTOP-4412]# ntpclient -s -d -c 1 -i 5 -h 202.108.6.95
Configuration:-c probe_count 1-d (debug)     1-g goodness    0-h hostname    202.108.6.95-i interval    5-l live        0-p local_port  0-q min_delay   800.000000-s set_clock   1-x cross_check 1
Listening...
Sending ...
packet of length 48 received
Source: INET Port 123 host 202.108.6.95
LI=0  VN=3  Mode=4  Stratum=2  Poll=4  Precision=-23
Delay=961.3  Dispersion=40679.9  Refid=10.69.2.34
Reference 3750052005.779027
(sent)    3590806877.094690
Originate 3590806877.094690
Receive   3750052666.964639
Transmit  3750052666.964667
Our recv  3590806877.137947
Total elapsed:  43425.00
Server stall:      27.02
Slop:           43397.98
Skew:          159245789848483.56
Frequency:             0day   second     elapsed    stall     skew  dispersion  freq
set time to 1541063866.964667000
41560 22877.138   43425.0     27.0  159245789848483.6  40679.9         0

其中那些参数可以阅读解压后的目录下的README文件,里面有详细的说明,需要提示的是-g不能使用,可能是嵌入式设备不支持。

使用date来查看一下系统时间:

Thu Nov  1 17:44:25 CST 2018

如果时区不是中国的东八区,可设置环境变量

export TZ=CST-8
设置后就可以显示中国时间了。

接下来是将前面命令加入开发板启动脚本,从而实现上电自动同步网络时间。

1.在开机脚本(我的是/etc/init.d/rcS)中修改下面几句话:

       #date -s "2018-10-31 11:20:35"     (注释掉这一行)

       ntpclient -s -d -c 1 -i 5 -h 202.108.6.95 >/dev/null &   (加入这一行,需加在获取网络命令行之后,确保先有网)

2.然后是添加系统环境变量,让开机后自动使用东八区(若之前已修改过系统硬件时钟配置文件,已改为东八区,则无需此步操作)

开发板文件系统/etc/profile中添加

export TZ=CST-8

然后就可以当开发板上电自动同步时间了。

实现嵌入式linux自动同步网络时间---NTP相关推荐

  1. Linux - 自动同步网络时间

    Linux - 查看.修改.更新系统时间 本文以 CentOS 为例,演示如何查看.设置系统时间,以及自动从互联网更新系统时间. 查看系统时间 执行 date 命令可以查看当前系统的时间: 原文:Li ...

  2. Windows自动同步网络时间

    同步脚本如下: 创建"自动同步网络时间.bat",键入如下内容: @echo off w32tm /config /manualpeerlist:"time.nist.g ...

  3. Android6.0 禁止自动同步网络时间

    点击打开链接 配置文件在:frameworks/base/packages/SettingsProvider/res/values/defaults.xml <bool name="d ...

  4. centos 时间自动同步_CentOS/Linux 自动同步服务器时间。

    新装的CentOS系统服务器可能设置了错误的时间,在做集群的时候时间是十分重要的,很有可能因为时间而导致集群发生故障,因此需要调整时区并调整时间.如下是CentOS系统使用NTP来从一个时间服务器同步 ...

  5. Android禁止自动同步网络时间

    为什么80%的码农都做不了架构师?>>>    只在设置中修改默认配置,还可以勾选 <bool name="def_auto_time">false& ...

  6. Linux - 查看、修改、更新系统时间(自动同步网络时间)

    本文以 CentOS 为例,演示如何查看.设置系统时间,以及自动从互联网更新系统时间. 1,查看系统时间 执行 date 命令可以查看当前系统的时间: 2,手动修改系统时间 (1)执行如下命令可以设置 ...

  7. Linux服务器同步网络时间

    为什么要时间同步??? 1.查看时区是否正确  一般我们的是  Asia/Shanghai 时区 若不是,则需要修改时区  两个文件    /etc/localtime 和  /etc/sysconf ...

  8. Linux下同步网络时间

    一.安装ntp # yum install -y ntpdate 二.同步时间 # 方式一.使用域名连接,要经过DNS解析,速度慢. # ntpdate pool.ntp.org # 方式二.使用IP ...

  9. 树莓派实现开机自动同步网络时间

    QQ群招募中:646258285(招募中,没几个人说话), 需要交流的朋友可以直接加我微信( DntBeliv )或QQ( 1121864253 ) 1 #安装NTP 2 sudo apt-get i ...

最新文章

  1. 16岁日本神童打造日版「健康码」,追踪用户行动数据抗击疫情
  2. CCNA10月27日战报
  3. springMvc解决json中文乱码
  4. 海南医养康养健康文旅-健康中国·万祥军:谋定国际化破题
  5. swift5表情键盘项目封装
  6. 造轮子是什么意思_程序员为什么热衷于造轮子,升职加薪吗?
  7. 转载:C#正则表达式
  8. bootstrap 导航菜单 折叠位置_下拉菜单的讲究
  9. 手机上最好用的五笔输入法_聊聊手机最好用的几个功能
  10. 编写一个Applet在屏幕上画一组同心圆
  11. 【LGR-050】洛谷8月月赛
  12. 树莓派搭建局域网内的静态网页
  13. 超级简单却不知道:html标签的嵌套规则
  14. 怎么给php加音乐,给网站加上背景音乐的方法
  15. 通过read_excel打开xls文件时,报错struct.error: unpack requires a bytes object of length 2
  16. matlab s域极点与零点,S域分析、极点与零点.ppt
  17. btc、usdt 根据交易hash计算手续费
  18. 【前端监控系统】埋点数据上报的3种方式
  19. 2019人工智能行业的25大趋势预测
  20. Visual Studio 2010 项目属性配置

热门文章

  1. 苹果iPhone手机怎么投屏到电脑AirPlay镜像投屏
  2. golang项目持续集成Travis-CI实践
  3. Docker的平行空间通信
  4. Java尚硅谷核心知识
  5. elasticsearch7.0.1集群搭建(最后有ES6.7的配置)
  6. 深入解析Word页码设置:你不得不学的Office技巧(一)
  7. 知道2020年计算机二级考试成绩,2020年9月计算机二级考试成绩可以查了 多少分及格...
  8. jQuery appendTo() 方法
  9. 中国田联要求:刘翔和王军霞生个孩子!
  10. 计算机考研调剂专业课,一波七折的计算机考研初试调剂经验教训贴,别放弃,太阳还在...