So Easy-Ntp嵌入式软件移植

一、导语和准备工作

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

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

 

 

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

CCarm-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个小时,(分钟是我剪辑图的时候,时间额外走的,不要在意)。

注意:用date命令查看之后显示的是UTC时间(世界标准时间),比北京时间(CST=UTC+8)相差8个小时,所以需要设置时区 

@1、设置时区为CST时间 
1)把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服务器没有用到,没有测试


posted @ 2016-07-01 11:30  徐超  阅读(757)  评论(0编辑  收藏