移植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的簡單移植。