NTP校时,网络校时,NVR校时,录像机NTP校时,京准电子

拥有回忆 提交于 2020-05-07 12:03:40

NTP校时,网络校时,NVR校时,录像机NTP校时,京准电子

NTP校时,网络校时,NVR校时,录像机NTP校时,京准电子

官微 ahjzsz 技术交流 ahjzsz 京准电子科技

1.前言

本文档主要介绍通过ntp服务实现开发板的联网自动校对时间。

2.简介

ntp的下载编译,以及开发板接通外网,实现ntp服务。

3.开发环境

开发语言:C语言

编  译  器:arm-linux-geaubihf-gcc

编辑工具:vi,vim

下载工具:浏览器内置下载

调试工具:超级终端win7版本

调试方式:串口输出LOG信息

4.编译环境安装(简)

Win7下安装好VMware  Workstation11(下载地址:http://www.xpgod.com/soft/20113.html)下载好后按操作步骤安装(https://jingyan.baidu.com/article/a3a3f811d6d32e8da2eb8a33.html)

下载Ubuntu14.04镜像(http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso)然后在VMware 11 里安装,创建虚拟机选择稍后安装系统:

内存:2GB(大于等于1GB即可)

处理器:4(自主选择)

硬盘:50GB(大于等于40GB)

网络适配器:选择桥接

然后重启该虚拟机选择前面下载下来的镜像安装好Ubuntu。

然后在VMware界面点击菜单上的虚拟机选项,选择安装VMware Tools。安装步骤(https://jingyan.baidu.com/article/1974b289b813dcf4b1f77411.html)。

安装完这个工具之后,重启Ubuntu,Win7和Ubuntu就可以互传文件了。

在win7上下载AM335x SDK(http://downloads.ti.com/processor-sdk-linux/esd/AM335X/latest/exports/ti-processor-sdk-linux-am335x-evm-04.01.00.06-Linux-x86-Install.bin?tracked=1)下载完成后直接拉到Ubuntu桌面。

在Ubuntu下用Ctrl+Alt+T打开中端,输入sudo –s   再输入su –root获取root权限。

然后在终端下找到刚刚拉过去的bin文件,通过chmod +X bin文件名再用./bin文件安装SDK,这里会进入图形界面安装,按要求安装好SDK后,我们需要配置开发环境。

具体步骤可以看TI的官方文档。

5.下载ntp源码包并编译

上网查找ntp的源码包(下载地址:http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-dev/ntp-dev-4.3.93.tar.gz),

下载下来,在之前下载配置好的am335x的开发环境中进行交叉编译,步骤如下:

1.解压ntp源码包到指定目录 

root@ubuntu2:/home/faceless/share# tar -zxvf ntp-dev-4.3.93.tar.gz

2.进入刚解压的目录,并配置

(1)root@ubuntu2:/home/faceless/share# cd  ntp-dev-4.3.93.tar.gz

(2)在ntpd/ntp_loopfilter.c中增加下面的宏定义

#ifndef  MOD_NANO

#define  MOD_NANO  0x2000

#endif

(3)root@ubuntu2:/home/faceless/share/ntp-dev-4.3.93#  ./configure –prefix=$PWD/install –exec-prefix=$PWD/install –host=arm-linux CC=arm-linux-geaubihf-gcc

注意:a.指定的安装目录位源码目录下的install文件夹, b.运行configure前要先设置好arm-linux开发环境,否则报错。

在安装目录下成功生成了Makefile文件。

3.编译安装

root@ubuntu2:/home/faceless/share/ntp-dev-4.3.93# make

root@ubuntu2:/home/faceless/share/ntp-dev-4.3.93# make install

4.安装完成后,在安装目录install下有几个文件夹

root@ubuntu2 : /home/faceless/share/ntp-dev-4.3.93/install# ls

bin      libexec      sbin     share

进入bin文件夹,里面的命令文件如下:

root@ubuntu2 : /home/faceless/share/ntp-dev-4.3.93/install/bin# ls

calc_tickadj    ntpd    ntpdate    ntpdc      ntp-keygen     ntpq      ntptime      ntptrace    ntp-wait     sntp      tickad      update-leap

5.将需要的文件拷贝进开发板的/bin目录下

ntpdate和ntp

6.让开发板能够接入外网

1.共享或桥接

将电脑的无线网络共享或者桥接到本地连接:

共享:打开右下角的网络和共享中心,鼠标右键单击无线网络连接,选择属性,属性界面点击共享,勾选Internet连接共享,确定保存。

 

桥接:打开右下角的网络和共享中心,按住Ctrl键,鼠标左键单击本地连接和无线网络连接,此时同时选中,鼠标右键单击桥接

 

两种选其一即可,我用的是网络桥接。桥接后计算机的ipv4地址为

 

2.使开发板能够ping通外网

我通过终端输入ifconfig eth0 192.168.10.106指令将开发板的IP更改到与计算机同一频段

此时我ping 8.8.8.8,得到结果如下

 

发现网关不通,然后我修改了开发板的默认网关

终端下执行命令route add default gw 192.168.10.1

然后再次ping 8.8.8.8,发现可以ping通

 

接下来我ping了外网,ping www.baidu.com  ,ping不通。

 

可能是开发板的DNS有问题,接下来我对开发板的DNS进行了设置

终端输入vi /etc/resolv.conf,进行编辑

 

编辑完成后按ESC键,按住shift键+:键,然后输入wq按Enter键保存,保存后

再次对www.baidu.com进行ping,结果如下,等一段时间后,发现可以ping通。

 

此时开发板接入了外网。

7.用ntpdate命令自动校时

我用ntpdate命令更新网络时间,ntpdate 0.pool.ntp.org

(0.pool.ntp.org是智能dns的ntp服务器,返回的基本都是中国的ntp服务,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org同上)

 

板子时间成功被校准,与网络上的时间同步。

测试我的最终目的是否达成:

在终端键入date命令,看下此时的开发板时间,并通过date命令修改时间(时间随机),查看板子rtc时间,hwclock,再使用hwclock –w命令更新板子时间到rtc中。

 

再次用ntpdate  0.pool.ntp.org更新时间

 

经验证,可以完成校时。
————————————————
版权声明:本文为CSDN博主「lucky55661」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lucky55661/article/details/85697993


 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!