Xilinx Zynq7010 SOC NTP交叉编译及移植过程

一、针对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

            Xilinx Zynq7010 SOC NTP交叉编译及移植过程_第1张图片

          (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

这样板子时间也正确了

--------------------------------------------------------------------------------------

第一篇博客,以后还请多多指教!

你可能感兴趣的:(Xilinx Zynq7010 SOC NTP交叉编译及移植过程)