前言:
网络时间协议Network Time Protocol(NTP)是一种通过网络来获取并同步时间的方法。在可以访问网络的情况下 ,只需要安装NTP的client到公共的NTP server来修正时间即可。
一:准备工作
1:NTP官方网站下载源码包
http://www.ntp.org/downloads.html
2:交叉编译器版本
3:编译环境ubuntu14.02
二:编译移植
1:解压在ntp官网下载的源码包 xpb@xpb-virtual-machine:~/BLOG/ntp$ tar -xf ntp-4.2.8p12.tar.gz
2:进入解压好的目录 xpb@xpb-virtual-machine:~/BLOG/ntp$ cd ntp-4.2.8p12/
3:在ntpd/ntp_loopfilter.c中增加下面的宏定义
xpb@xpb-virtual-machine:~/BLOG/ntp/ntp-4.2.8p12$ vim ntpd/ntp_loopfilter.c
#ifndef MOD_NANO
#define MOD_NANO 0x2000
#endif
4: 执行make之前相应的配置
xpb@xpb-virtual-machine:~/BLOG/ntp/ntp-4.2.8p12$ ./configure --host=mips-linux CC=mips-linux-gnu-gcc --prefix=$PWD/install
配置的环境包括--host表示编译后的程序是在mips的平台运行, CC选择交叉编译器, prefix表示安装文件的路径
check了一段时间之后报错
通过百度了之后 , 配置的时候多加一个选项 --with-yielding-select=yes即可 。
重新输入
xpb@xpb-virtual-machine:~/BLOG/ntp/ntp-4.2.8p12$ ./configure --host=mips-linux CC=mips-linux-gnu-gcc --prefix=$PWD/install --with-yielding-select=yes
check完之后
5: make && make install
执行make &> ./host_make.txt 发现无错误, 继续make install就完成安装了
6: 此时当前目录下install文件夹中有4个目录
把bin下的ntpdate命令拷贝到板子中 , 即可执行
附录:
1:设置时区为CST时间
嵌入式的板子上可能会存在时区不正确的问题 , 解决办法很简单 把PC端的系统目录/usr/share/zoneinfo/Asia中的文件Shanghai拷贝到开发板目录/etc中并且改名为localtime之后,用命令reboot重启即可.
2:把当前的系统时间写入硬件时钟
hwclock -w
完