一、针对petalinux2016.4交叉编译环境
Linux系统:Ubuntu 16.04LTS
Petalinux版本:petalinux2016.4
交叉编译工具:arm-linux-gnueabihf-gcc 5.2.1
ntp源码版本:ntp-4.2.8p12.tar.gz
过程如下:
1、ntp源码包下载地址http://www.ntp.org/downloads.html
这里使用最新的ntp-4.2.8p12.tar.gz
2、放到合适的目录下,解压
tar zxvf ntp-4.2.8p12.tar.gz
3、进入目录
cd ntp-4.2.8p12
4、configue初始化
./configure --prefix=/home/bjut/桌面/2/ntp --exec-prefix=/home/bjut/桌面/2/ntp --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --with-yielding-select=yes --enable-static --with-crypto --with-openssl-incdir=/usr/include/openssl/
解释:--prefix:是安装的目录,里面有bin、sbin等文件夹
--exec-prefix:和—prefix一样
--with-openssl-incdir:openssl的include路径
这里我的openssl是ubuntu系统自带的Openssl 1.0.2g,查询系统openssl版本的命令有:
(1)openssl version -a
(2)查询openssl的linclude安装位置,以及openssl的bin目录
5、编译,执行make
6、安装目录,执行make install
最终安装目录/home/bjut/桌面/2/ntp文件夹会有如下的文件夹:
bin、libexec、sbin、share
bin目录下的需要的命令文件是ntpd、ntpdate,拷贝到Zynq 7010板子的/bin目录下,或者全部拷贝过去。
另外,通过petalinux项目工程将ntpd、ntpdate,还需要ntp.conf和localtime加到recipes-apps/myapp目录下(具体操作见petalinux工程),这样生成的开发板系统中usr/bin目录下就有ntpd、ntpdate、ntp.conf文件,etc目录下就有localtime。
注:
(1)etc/localtime文件是北京时区,是UTC+8个时区
这个文件用来设置系统的时区,将 ubuntu系统中的/usr/share/zoneinfo/ 中相应文件拷贝到/etc下并重命名为 localtime 即可修改时区设置。
(2)usr/bin/ntp.conf文件是初始化文件,可以不要
二、针对petalinux2017.4交叉编译环境
Linux系统:Ubuntu 16.04LTS
Petalinux版本:petalinux2017.4
交叉编译工具:arm-linux-gnueabihf-gcc 6.2.1
ntp源码版本:ntp-4.2.8p12.tar.gz
petalinux版本不同和交叉编译工具版本不同,其他与上面类似。
三、执行测试
由以上操作之后,板子系统中,usr/bin目录下就有ntpd、ntpdate、ntp.conf文件,etc目录下就有localtime。
系统时间与服务器时间校时的命令:
ntpdate 128.138.141.172
系统时间就正确了,服务器IP地址可以写其他的校时服务器。
然后将系统时间写入板子时间的命令:
hwclock –w
这样板子时间也正确了
--------------------------------------------------------------------------------------
第一篇博客,以后还请多多指教!