0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ntp的移植心得分享

电子设计 来源:网络整理 作者:工程师1 2018-05-29 15:27 次阅读

最近做了一下ntp的移植,把心得和大家共享一下,虽然网上有很多关于ntp的移植文件,但是都很简单,好像没有遇到任何的问题,可是我却遇到了不少啊。

第一步:设定交叉编译器的路径

初学者经常漏掉的一步,万一没设定就是以主机的gcc在编,变成主机执行了。

export PATH=:$PATH:/home/jlass/***

***就是你们自己的交叉编译器的路径

第二步:编译ntp

下载源文件,解压后进入文件夹,新建一个source文件夹(我个人的习惯而已)

注:以3.4.1个arm-linux-gcc是可以直接编译通过的,可是我的arm-linux-gcc是我自己用4.2.4版本编的,有一些问题。

。/configure --prefix=http://www.eda-china.com/home/jlass/marwell/rootfs/ntp-4.2.4p4/source/ --exec-prefix=http://www.eda-china.com/home/jlass/marwell/rootfs/ntp-4.2.4p4/source/ --host=arm-linux

注:网上的参考文件还有--enable-all-clocks --enable-parse-clocks参数,但我没加,也没觉得有什么问题。

make

错误一:

/home/jlass/marwell/rootfs/ntp-4.2.4p4/libntp/。/。。/libisc/ifiter_ioctl.c:487: undefined reference to `index‘

/home/jlass/marwell/rootfs/ntp-4.2.4p4/libntp/。/。。/libisc/ifiter_ioctl.c:487: undefined reference to `index’

检查源文件可发现index应该是某种算法,可是这个版本的gcc可能没有了。

查看gcc中的string.h文件能看到# define index(s,c) strchr((s), (c))字段

我觉得strchr的算法和index应该是一样的,所以在ifiter_ioctl.c中用strchr替代了index。

注:这里我偷懒了,应该有能好的解决方法

错误二:

tickadj.c:185:22: error: sys/var.h: No such file or directory

查看gcc的include/sys/目录下有个socketvar.h文件名字最接近了,直接把tickadj.c中的# include 改成# include

注:估计直接//注释掉应该也可以

错误三:

tickadj.c:436: error: ‘txc’ undeclared (first use in this function)

查看436行,tick = PRESET_TICK;没看到txc啊,奇怪,仔细一查发现另一个文件里定义了#define PRESET_TICK txc.tick

在查看看tickadj.c文件的开头有

#ifdef HAVE___ADJTIMEX/* Linux */

#include

struct timex txc;

估计是这个版本的gcc没定义HAVE___ADJTIMEX引起的,不管了,把

#include

struct timex txc;

放到最上面去。

总算是编译通过了。

make install

第三步:安装ntp

去source/bin下把需要的文件拷到开发板上吧

注:source/lib下没有文件,不需要拷。

在开发板的etc下新建ntp.conf文件,并写入

restrict 127.0.0.1

restrict 192.168.1.0 mask 255.255.0.0 nomodify notrap //根据自己的实际情况更改

server 127.127.1.0 //以本机作为时间服务器

fudge 127.127.1.0 stratum 5 //优先级为5

其实关键就是server 127.127.1.0(不要错写成127.0.0.1了)这一句,其他的都可以不写,直接使用默认值。

然后执行ntpd,ntpd服务就起来了。

注:实际需要等待几分钟,ntpd服务才真正起来,所以不要太着急了

在另一块板子上执行ntpdata serverIP,就能实现时间同步了。

注:如果你的板子已经起了ntpd,再运行ntpdata是会有错误提示ntpdate[2006]: the NTP socket is in use, exiting

另外:我在第一次处理的时候不小心把3.4.1编译生成的ntpd考到4.2.4的板卡上,执行时出现-sh:ntpd not found的错误,所以如果出现相同的错误请确认你所使用的交叉编译器和你板卡上的arm-linux-gcc是否统一。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    4370

    浏览量

    93433
  • 编译器
    +关注

    关注

    1

    文章

    1563

    浏览量

    48527
  • NTP
    NTP
    +关注

    关注

    1

    文章

    90

    浏览量

    13751
收藏 人收藏

    评论

    相关推荐

    ntp的同步原理是什么

    NTP(Network Time Protocol,网络时间协议)是一种用于同步计算机系统时间的协议。那么ntp的同步原理是什么呢? ntp最典型的授时方式是Client/Server方式,如下
    的头像 发表于 01-19 17:24 302次阅读
    <b class='flag-5'>ntp</b>的同步原理是什么

    NTP服务器介绍

    NTP服务器 产品介绍: NTP服务器是—款基于CPLD的高精度时频同步设备。该设备接收GPS、北斗卫星信号,或母钟信号,通过踉踪锁定外部信号驯服内部晶振,采用智能时间优化算法,为用户提供精确、稳定
    的头像 发表于 01-17 09:30 201次阅读
    <b class='flag-5'>NTP</b>服务器介绍

    Linux上怎么配置NTP时间同步呢?

    Linux上怎么配置NTP时间同步呢? NTP是一种用于同步计算机系统时钟的网络协议。在Linux系统中,配置NTP时间同步可以保证系统与网络时间服务器的时间一致性,使系统中各个进程的时间保持一致
    的头像 发表于 01-16 16:03 287次阅读

    docker部署NTP时间服务器chrony

    chrony是网络时间协议 (NTP) 的通用实现。它可以将系统时钟与 NTP 服务器、参考时钟(例如 GPS 接收器)以及使用手表和键盘的手动输入同步。
    的头像 发表于 01-10 09:22 258次阅读

    ntp的实现原理是什么

    ntp实现原理 我们看一下为啥说ntp从实现时间同步的角度来说是很简单的。在pc上,以windows为例,手动关闭打开一下自动更新时间,会触发一次ntp时间同步。 这个时候,我们可以拿到ntp
    的头像 发表于 10-27 14:21 647次阅读
    <b class='flag-5'>ntp</b>的实现原理是什么

    ntp同步原理和时钟层级

    NTP ntp时钟层级 ntp允许客户端从服务器请求和接收时间,而服务器又从权威时钟源(例如原子钟、GPS)接收精确的协调世界时UTC。 ntp以层级来组织模型结构,层级中的每层被称为
    的头像 发表于 10-27 14:14 1053次阅读
    <b class='flag-5'>ntp</b>同步原理和时钟层级

    NTP网络时间服务器,实现安防系统时间同步

    NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间
    的头像 发表于 08-16 15:49 372次阅读
    <b class='flag-5'>NTP</b>网络时间服务器,实现安防系统时间同步

    NTP服务器配置概述

    NTP概述: NTP为UDP协议,端口为123, 时间配置模式分none和ntp,none缺陷设备运行一段时间,时间会对不上,而配置ntp模式,将配置保存设备,即使断电也不影响开机时间
    的头像 发表于 07-17 11:25 722次阅读

    什么是NTP服务器 NTP服务器如何工作

    什么是NTP服务器?NTP是特拉华大学教授David L. Mills开发工作的成果。该协议的第一个官方规范是Internet协议系列的一部分,于1985年9月在RFC 958中发布。它将NTP描述
    的头像 发表于 06-25 17:52 3415次阅读

    使用USB显示模块的简单NTP时钟

    电子发烧友网站提供《使用USB显示模块的简单NTP时钟.zip》资料免费下载
    发表于 06-20 15:07 0次下载
    使用USB显示模块的简单<b class='flag-5'>NTP</b>时钟

    NTP服务器和北斗时钟的区别

    NTP服务器和北斗时钟都是用于提供准确的时间同步的设备,但是它们各自有不同的优缺点
    的头像 发表于 06-14 14:30 470次阅读

    恒讯科技分析:什么是NTP服务器?NTP服务器是如何工作的?

    什么是NTP服务器?NTP是特拉华大学教授David L. Mills开发工作的成果。该协议的第一个官方规范是Internet协议系列的一部分,于1985年9月在RFC 958中发布。它将NTP描述
    的头像 发表于 06-05 16:46 526次阅读

    ESP收不到NTP包的原因?

    我试图在不使用库的情况下获得 NTP 时间,因为我有一些我想要的特定功能。但是,ESP 似乎没有收到 NTP 数据包。发送到我的 PC(但是不同的端口)有效(使用 Packet Sender 测试
    发表于 05-15 08:43

    NTP如何通过命令获得更新时间?

    我有以下代码可以很好地从 NTP 获取时间。完成所有其他功能后,我的计划是睡 20 分钟,然后醒来,检查传感器/执行所需的操作,然后再入睡。我遇到过 NTP 时间漂移很多的问题,想知道如何通过命令
    发表于 04-13 06:17

    NTP老矣?壮哉!

    网络时间协议(Network Time Protocol,NTP)是数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议,将所有网络中的计算机与UTC(Universal
    的头像 发表于 04-06 15:39 716次阅读