阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

嵌入式产品NTP服务器移植详解

179次阅读
没有评论

共计 3093 个字符,预计需要花费 8 分钟才能阅读完成。

当前,很多 Linux 系统都支持 NTP 服务器,但是,当真正应用到一款项目产品时,除了自行设定时间之外,由于时钟芯片的延迟或纽扣电池没电等原因,总会造成时间上多少不准确的现象,现在就主要针对嵌入式产品等移植 NTP 服务器,所以以下编辑器使用的是 arm-linux-gcc;而不是 gcc 版本,请移植之前先确保 arm-linux-gcc 的准确性。

NTP:NTP 服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS 等等)做同步化,它可以提供高精准度的时间校正(LAN 上与标准间差小于 1 毫秒,WAN 上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按 NTP 服务器的等级传播。按照离外部 UTC 源的远近把所有服务器归入不同的 Stratum(层)中。

移植步骤 (arm-linux-gcc 版本):
一、从官方网上下载最新安装包
http://www.ntp.org/downloads.html

嵌入式产品 NTP 服务器移植详解

二、在 linux 中建立一个 net 文件夹,并将 ntp-4.2.8p6.tar.gz 复制进去,并解压

嵌入式产品 NTP 服务器移植详解

三、建立一个准备存放安装文件的文件夹(如存放 arm 版本的)

嵌入式产品 NTP 服务器移植详解

四、编译 configure(注意设置 –prefix, –exec-prefix 的安装路径,以及 –host 安装平台)
[root@localhost ntp-4.2.8p6]# ./configure –prefix=/opt/toolschain/ntp/ntp-4.2.8p6_arm/ –exec-prefix=/opt/toolschain/ntp/ntp-4.2.8p6_arm/ –host=arm-none-linux-gnueabi –with-yielding-select=yes

嵌入式产品 NTP 服务器移植详解

注意:如何不添加 –with-yielding-select=yes,将出现以下错误。

嵌入式产品 NTP 服务器移植详解

五、修改 ntpd/ntp_loopfilter.c 文件,添加以下代码
147 #ifndef MOD_NANO
148 #define MOD_NANO 0x2000
149 #endif

嵌入式产品 NTP 服务器移植详解嵌入式产品 NTP 服务器移植详解
 
目的:防止 mage 编译是出现 undeclared 错误
[root@localhost ntp-4.2.8p6]# make
ntp_loopfilter.c:520:27: error: ?.OD_NANO?.undeclared (first use in this function)

六、执行 make 编译
[root@localhost ntp-4.2.8p6]# make CC=arm-none-linux-gnueabi-gcc

嵌入式产品 NTP 服务器移植详解

七、执行 make install 安装
[root@localhost ntp-4.2.8p6]# make install

嵌入式产品 NTP 服务器移植详解

八、查看 ntp-4.2.8p6_arm 文件夹下是否生成库文件

嵌入式产品 NTP 服务器移植详解嵌入式产品 NTP 服务器移植详解
 
/*****************************************************************************/

运行 ntpd /etc/ntp.conf,ntp 服务就运行起来了

嵌入式产品 NTP 服务器移植详解

最简单的可以脚本这样写:
#!/bin/sh
server=”pool.ntp.org”
/usr/sbin/ntpdate -s $server
/usr/sbin/hwclock –systohc
exit

ntpdate -d time.windows.com
ntpdate -d 210.72.145.44
ntpdate -u 210.72.145.44
watch ntpq -p

但是运用测试好的脚本最好编写详细的注释,且尽可能编写异常处理程序。

九、全球可用的 NTP 服务器
当前已提供的各国 NTP 服务器列表
[INTERNATIONAL NTP server list.]

区域 [zone]    域名[Domain]  IP 池[IP Pool]
中国 [China]    cn.ntp.org.cn  [58.220.207.226][47.92.108.218]
[202.112.29.82] [202.108.6.95] [120.25.108.11]  [182.92.12.11] [115.28.122.198]
中国台湾 [ChinaTaiwan]  tw.ntp.org.cn  [58.220.207.226]
美国 [America]    us.ntp.org.cn  [24.56.178.140]
新加坡 [Singapore]   sgp.ntp.org.cn  [103.11.143.248]
韩国 [korea]    kr.ntp.org.cn  [211.233.40.78]
德国 [Germany]   de.ntp.org.cn  [131.188.3.220] [131.188.3.223]
日本[Japan]    jp.ntp.org.cn  [133.100.11.8]

- 注:多组 IP 则为多 IP 轮询 [Group IP was using IP-list polling]。
但到底使用哪个 NTP 服务器,是自己在编写脚本时加上去的,可自行选择服务器,但是必须经过测试方可运用到产品上面。

连接地址:http://www.ntp.org.cn/

十、国内可用的 NTP 服务器
ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心 NTP 服务器地址)
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学
s2c.time.edu.cn 北京邮电大学
s2d.time.edu.cn 西南地区网络中心
s2e.time.edu.cn 西北地区网络中心
s2f.time.edu.cn 东北地区网络中心
s2g.time.edu.cn 华东南地区网络中心
s2h.time.edu.cn 四川大学网络管理中心
s2j.time.edu.cn 大连理工大学网络中心
s2k.time.edu.cn CERNET 桂林主节点
s2m.time.edu.cn 北京大学

更多 NTP 时间服务器 相关教程见以下内容

开源软件包的安装及 ntp 时间服务器简析  http://www.linuxidc.com/Linux/2017-02/140342.htm

Linux 时间同步 NTP 服务的安装与配置 http://www.linuxidc.com/Linux/2016-10/135945.htm

如何在 CentOS 中搭建 NTP 服务器  http://www.linuxidc.com/Linux/2015-06/118480.htm

教你如何快速搭建 NTP 时间服务器  http://www.linuxidc.com/Linux/2017-02/140875.htm

CentOS 7 中使用 NTP 进行时间同步  http://www.linuxidc.com/Linux/2015-11/124911.htm

Linux 之使用 NTP 服务管理 / 同步服务器时间  http://www.linuxidc.com/Linux/2016-03/129277.htm

Linux 下搭建 NTP 服务器  http://www.linuxidc.com/Linux/2016-03/129126.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145361.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3093字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中