So Easy-Ntp嵌入式软件移植
一、导语和准备工作
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、解压缩包,压缩包附件有,也可官网下载
- 进入安装程序
cd ntp-4.2.6p5/
- 在/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目录下
- Make
- 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服务器没有用到,没有测试