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

当前,很多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版本):
一、从官方网上下载最新安装包

嵌入式产品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

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

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

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

嵌入式产品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

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

八、查看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]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2aeda02d54c7fb401c6802abbb999024.html