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

    文章

    4943

    浏览量

    97178
  • 编译器
    +关注

    关注

    1

    文章

    1618

    浏览量

    49047
  • NTP
    NTP
    +关注

    关注

    1

    文章

    157

    浏览量

    13879
收藏 人收藏

    评论

    相关推荐

    STM32连接机智云,代码移植NTP实时时间获取(二)

    STM32与机智云连接实现(第二篇)—NTP实时时间获取与设备配对在上一篇文章中,我们介绍了如何将STM32与机智云进行连接,并成功实现了基础的通信功能。在本篇文章中,我们将继续深入,重点讲解
    的头像 发表于 11-20 01:02 84次阅读
    STM32连接机智云,代码<b class='flag-5'>移植</b>,<b class='flag-5'>NTP</b>实时时间获取(二)

    STM32连接机智云,代码移植NTP实时时间获取(一)

    目录一、机智云介绍二、固件下载三、项目例程下载四、代码移植五、代码编写准备(已配置完毕,正式开始编写代码)六、设备配对与连接七、NTP(网络时间协议)实现八、网盘资料链接机智云介绍广州机智云物联网
    的头像 发表于 11-19 01:01 105次阅读
    STM32连接机智云,代码<b class='flag-5'>移植</b>,<b class='flag-5'>NTP</b>实时时间获取(一)

    京准电钟科普:NTP网络时间服务器技术概念

    京准电钟科普:NTP网络时间服务器技术概念
    的头像 发表于 10-14 09:39 200次阅读
    京准电钟科普:<b class='flag-5'>NTP</b>网络时间服务器技术概念

    安徽京准 NTP网络校时器 NTP服务器 电厂应用方案

    【安徽京准】NTP网络校时器(NTP服务器)电厂应用方案
    的头像 发表于 08-08 09:27 232次阅读
    安徽京准 <b class='flag-5'>NTP</b>网络校时器 <b class='flag-5'>NTP</b>服务器 电厂应用方案

    NTP服务器知识课堂 网络时间同步系统的校时方式

    时钟的几种校时方式:GPS/北斗、NTP、WiFi、电脑校时软件。   1、NTP网络校时: ①NTP的校时方式是设备主动上传的方式。设备带有标准的NTP协议。 ②
    的头像 发表于 07-30 14:23 341次阅读
    <b class='flag-5'>NTP</b>服务器知识课堂 网络时间同步系统的校时方式

    解读网络时间协议NTP,带你领略NTP的魅力!

      时间是我们日常生活的重要组成部分,而在数字时代,时间同步也在计算机和网络系统中扮演着至关重要的角色。网络时间协议(Network Time Protocol,NTP)是一种用于确保网络中各个设备
    的头像 发表于 06-27 16:52 557次阅读
    解读网络时间协议<b class='flag-5'>NTP</b>,带你领略<b class='flag-5'>NTP</b>的魅力!

    用AT+CIPSNTPCFG=1,8,\"cn.ntp.org.cn\",\"ntp.sjtu.edu.cn\"更新不了时间怎么处理?

    我发现有时候用:AT+CIPSNTPCFG=1,8,\"cn.ntp.org.cn\",\"ntp.sjtu.edu.cn\",更新不了时间,已连接WiFi成功的。
    发表于 06-27 08:28

    京准电钟 | NTP网络时间同步协议原理及其应用介绍

    京准电钟 NTP网络时间同步协议原理及其应用介绍
    的头像 发表于 06-12 15:22 471次阅读
    京准电钟 | <b class='flag-5'>NTP</b>网络时间同步协议原理及其应用介绍

    RK3568 Android11让系统ntp校准时间生效,需要设置些什么

    代码修改了/frameworks/base/core/res/res/values/config.xml的参数(可见附件截图) 10.2.126.57120000100035ntp设置时间操作如下
    发表于 06-04 19:17

    分享 | PTP、NTP时间同步服务器的部署与搭建过程

    分享 | PTP、NTP时间同步服务器的部署与搭建过程
    的头像 发表于 05-15 10:01 934次阅读
    分享 | PTP、<b class='flag-5'>NTP</b>时间同步服务器的部署与搭建过程

    数字功放-NTP8928规格书

    电子发烧友网站提供《数字功放-NTP8928规格书.pdf》资料免费下载
    发表于 02-21 14:31 9次下载

    ntp的同步原理是什么

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

    NTP服务器介绍

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

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

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

    docker部署NTP时间服务器chrony

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