共计 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
二、在 linux 中建立一个 net 文件夹,并将 ntp-4.2.8p6.tar.gz 复制进去,并解压
三、建立一个准备存放安装文件的文件夹(如存放 arm 版本的)
四、编译 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
注意:如何不添加 –with-yielding-select=yes,将出现以下错误。
五、修改 ntpd/ntp_loopfilter.c 文件,添加以下代码
147 #ifndef MOD_NANO
148 #define MOD_NANO 0x2000
149 #endif
目的:防止 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
七、执行 make install 安装
[root@localhost ntp-4.2.8p6]# make install
八、查看 ntp-4.2.8p6_arm 文件夹下是否生成库文件
/*****************************************************************************/
运行 ntpd /etc/ntp.conf,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