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