So Easy-Ntp嵌入式软件移植

时间:2024-09-26 10:08:08

一、导语和准备工作

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软件安装包。

So Easy-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、解压缩包,压缩包附件有,也可官网下载

So Easy-Ntp嵌入式软件移植

  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个目录

So Easy-Ntp嵌入式软件移植

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

So Easy-Ntp嵌入式软件移植

五、运行ntp客户端

So Easy-Ntp嵌入式软件移植

运行成功(客户端)

So Easy-Ntp嵌入式软件移植

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

So Easy-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服务器没有用到,没有测试