1. 程式人生 > >移植ntp(mips-linux)

移植ntp(mips-linux)

從官網上下載ntp原始碼,我下的是ntp-4.2.6p5.tar.gz

1.解壓縮  tar  zxvf   ntp-4.2.6p5.tar.gz 

cd ntp-4.2.6p5

2../configure  --host=mips-linux  --prefix=/opt/ntp/   --exec-prefix=/opt/ntp/  生成makefile

3.make >&  host_make.txt  編譯,並將編譯過程重定向到一個檔案以便於錯誤分析

出現錯誤

/opt/cross-compile/LSDK/build/gcc-4.3.3/build_mips/staging_dir/usr/include/linux/a.out.h:4:26: error: #include nested too deeply
328 make[3]: *** [tickadj.o] 錯誤 1
329 make[3]: Leaving directory `/home/linux/ntp-4.2.6p5/ntp-4.2.6p5/util'
330 make[2]: *** [all] 錯誤 2
331 make[2]: Leaving directory `/home/linux/ntp-4.2.6p5/ntp-4.2.6p5/util'
332 make[1]: *** [all-recursive] 錯誤 1
333 make[1]: Leaving directory `/home/linux/ntp-4.2.6p5/ntp-4.2.6p5'
334 make: *** [all] 錯誤 2


發現原因是a.out.h 這個標頭檔案巢狀包含 ,故轉到./util/tickadj.c 186行註釋掉 #include <a.out.h>

make >& host_make.txt  重新編譯 通過

4.make install  安裝  

5.檢視/opt/ntp 目錄下,將bin,lib下的檔案拷貝到板子上(lib目錄下貌似沒有東西)

6.windows機器作為伺服器端需要執行ntp系統服務,從網上下載一個ntp.exe,還需編寫配置檔案ntp.conf 

restrict 127.0.0.1
restrict 127.0.0.1    mask 255.255.255.0     nomodify   notrap
server 192.168.44.199
fudge 192.168.44.199    stratum 5

將配置檔案考到相應的目錄下,我的是(D:\Program Files (x86)\ntp\etc\ntp.conf)

windows機器下ip是192.168.44.199 ,以windows 機器作為時間伺服器

7.chmod  u+x  ntpd 

chmod  u+x  ntpdate

./ntpd  &   開啟ntpd服務一般要等幾分鐘的時間才能起來,可以用 netstat   -anp  |  grep  ntpd 檢視服務是否起來

date  查看板子當前時間

date   111111112011.30  設定時間

./ntpdate 192.168.44.199   更新時間使得與時間伺服器同步

若是出現 the NTP socket  is  in use ,exting 

則要將ntpd服務殺死, pkill ntpd

date  再檢視時間 已經與windows機器同步了,時間是UTC 國際標準時。

8.若希望客戶端與伺服器進行自動同步,編寫一個指令碼ntpdaemon,內容如下:

#!/bin/sh

while true 

do

/mips-linux-strip/bin/ntpdate 192.168.44.199

   sleep  10

done 

9.將其拷到/bin目錄下邊,chmod  u+x  ntpdaemon 

10.將/bin/ntpdaemon  & 加到/etc/rc.d/rcS最後一行,這樣板子上電即開始執行nptdate服務,每隔10秒客戶端便和windows機器同步一次,這樣就完成ntp的簡單移植。