一、导语和准备工作

Ntp是一种对时的软件,对客户端来说我们只要输入ntpdate IP,如ntpdate
192.168.1.254(192.168.1.254是ntp服务器,window电脑激活自带ntp服务器即可,Linux输入apt-get
install ntp安装ntp服务器软件)。

1、我们需要一个宿主机,一般是Linux的虚拟机也可以是真正的Linux机器。我们还需要一个ntp源程序包,俗称ntp软件安装包。

还需要一个交叉编译环境,我的开发板是周立功的IMX257。

CC是arm-none-linux-gnueabi-gcc。

二、软件移植理解

软件移植原理很简单,初学者可能觉得比较难,都要移植了我会不会啊!其实想一想我们移植最简单的程序helloword,源程序helloword.c(类比成ntp-4.26P5.tar.gz),

通过arm-none-linux-gnueabi-gcc helloword.c -o helloword。然后放到目标板进行运行。Ntp也是如此。

三、开始移植

1、解压缩包,压缩包附件有,也可官网下载

  1. 进入安装程序

cd ntp-4.2.6p5/

  1. 在/home/目录下新建ntp文件夹(用来保存编译生成的软件即要移植到嵌入会板子的软件)然后运行下面命令

./configure --host=arm-linux CC=arm-none-linux-gnueabi-gcc --prefix=/home/ntp

--host表示编译后的软件要运行在arm-linux环境上

CC表示要是用的交叉编译器,根据目标板的不同选择不同的编译器,我的IMX257的编译器是arm-none-linux-gnueabi-gcc

--prefix=/home/ntp表示要软件生成在/home/ntp目录下

  1. Make
  2. sudo make install

在/home/ntp/目录下可以看到4个目录

将bin/下面所有的文件拷贝到嵌入式开发板的环境目录下。系统就可以设别了这个软件了,例如拷贝嵌入式/bin/下

五、运行ntp客户端

运行成功(客户端)

Window电脑时间(服务器)(需要开启这个ntp服务,不会百度)

怎么时间不对呢,是不是查了8个小时,(分钟是我剪辑图的时候,时间额外走的,不要在意)。

个小时,所以需要设置时区 



@1、设置时区为CST时间 

)把redhat或者ubuntu系统目录/usr/share/zoneinfo/Asia中的文件Shanghai拷贝到开发板目录/etc中并且改名为localtime之后,用命令reboot重启即可,如下:

@2、如果想将从网络上获取到的系统时间写入硬件时钟中,则使用命令

hwclock -w

开机的时候,在机器启动代码上加入hwclock -s(不然硬件时间对了,系统软件时间有不对了)

PS:如果想和window电脑对时,开启windows
ntp服务器,如何开启参考下面博客

http://blog.sina.com.cn/s/blog_671c54fe0102v4wy.html。

保障客户端和服务器的IP地址,网关。都在一个网段,单纯IP在一个网段可能会失败。

Ntp服务器没有用到,没有测试

So Easy-Ntp嵌入式软件移植的更多相关文章

  1. 【React Native开发】React Native移植原生Android项目(4)

    ),React Native技术交流4群(458982758),请不要反复加群!欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...

  2. Cstyle的札记,Freertos内核具体解释,第0篇

        Freertos是一个硬实时内核,支持众多的微处理器架构,我们能够从它的官网(www.freertos.ort)下载它的sourcecode,同一时候也能够看出它支持了几十种的微处理器架构,这 ...

  3. 嵌入式ntp服务器的移植

    一.交叉编译 1.官网下载http://www.ntp.org/点击download选项页 我的版本是ntp-4.2.6p5.tar.gz 2.解压 tar -zxvf ntp-4.2.6p5.tar ...

  4. u-boot移植 II

    下面是韦老师的uboot移植攻略: A. 开发板的相关拷贝与修改 1. 在board文件夹下面, 将原来的smdk2410复制为100ask24x0目录, 并将smdk2410.c改名为100ask2 ...

  5. Android shell 下 busybox,clear,tcpdump、、众多命令的移植

    http://my.oschina.net/mopidick/blog/167372 作为一名Android开发者,经常需要进入Android 的shell终端运行一些命令.但是我们发现Android ...

  6. Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)

    这节我们来学习Cocos2d-x的最后一节.怎样处理重力感应事件.移植到Android后加入再按一次返回键退出游戏等.我这里用的Android.IOS不会也没设备呃 效果图不好弄,由于是要移植到真机上 ...

  7. ubuntu OPENCV移植

    Installing OpenCV 2.4.1 in Ubuntu 12.04 LTS 这是转载国外一篇文章  移植PC上的OPENCV  http://www.samontab.com/web/20 ...

  8. windows ntp安装及调试

    Setting up NTP on Windows It's very helpful that Meinberg have provided an installer for the highly- ...

  9. arm-linux移植MT7601Uusb无线网卡(小度wifi,360随身WIFI 2代)

    前段时间移植过RT3070.RT5370 http://blog.csdn.net/ofaith12345/article/details/24138399 发现各种arm移植都大同小异,所以就不要纠 ...

随机推荐

  1. Sublime Text 3 修改配色主题【侧边框之...】

    Sublime Text3 是挺喜欢的一款编辑器,一周五天朝九晚六面对,而默认的侧边栏颜色总显得不尽人意.右侧的代码高亮[color_scheme:Monokai]挺喜欢的,心里就想着如何把侧边栏也给 ...

  2. 杭电2000——ASCII码排序

    /* ASCII码排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  3. vim编译安装+lua模块

    vim编译安装+lua模块 使用背景:代码自动补全插件,需要安装lua模块 安装准备,首先下载安装vim所依赖的其它安装包,ncurses,lua,readline,vim 源码下载,编译安装 ncu ...

  4. Android 调用jepg库进行图片压缩,保持图片不失真

    1. 浅谈为什么Android和iOS图片质量差距那么大? 首先来说,作为一个安卓狗,机器当然用的是安卓的手机.现在的安卓手机大多数都会以高清拍照,动不动就几千万柔光相机来吸引各种买家.买来后,拍照发 ...

  5. Java中String类型的部分用法

    1.如何将字符串转换为整型数值? int i = Integer.parseInt("20"); 2.如何用“==”还是equals比较两个字符串? “==”是用来比较俩引用是不是 ...

  6. JQUERY写大图轮播;附jquery的hover()方法、animate()方法、find()方法

    思想:黑框设置超出部分隐藏. 红框往左移动,通过判断红框左边框距离黑框左边框的像素值,来实现红框的移动. 绿框在最上层,放每张图片的说明和序号. 一:html部分(大框.图片部分.箭头部分.图片介绍部 ...

  7. 【Scala】Scala之Object

    一.前言 前面学习了Scala的Methods,接着学习Scala中的Object 二.Object Object在Scala有两种含义,在Java中,其代表一个类的实例,而在Scala中,其还是一个 ...

  8. MySQL调优三步曲(慢查询、explain profile)

    在做性能测试中经常会遇到一些sql的问题,其实做性能测试这几年遇到问题最多还是数据库这块,要么就是IO高要么就是cpu高,所以对数据的优化在性能测试过程中占据着很重要的地方,下面我就介绍一些msyql ...

  9. J2ee技术难点

    J2ee技术难点 session/cookie区别联系 jsp/servlet区别联系 filter执行流程 openSessionInView原理 clone与servilizable区别联系 eq ...

  10. node c++多线程插件 第一天 c++线程相关函数

    因为不会c++,今天主要是学习了一下c++的东西,感觉非常麻烦. 目前知道了c++里创建线程createThread,返回一个内核对象(HANDLE),我的理解是,c++中系统层面上的操作(线程,文件 ...