-
背景
網路時間協議NTP(Network TimeProtocol)是用於網際網路中時間同步的標準網際網路協議,可以把計算機的時間同步到某些時間標準。NTP對於我們產品來說有什麼用呢,簡單的講,當你的裝置時間不準確了,你可以接入到網際網路,從網上同步一下時間,非常方便。
對於我們嵌入式行業,大批次生產板卡燒寫系統時,逐個給產品統一時間無疑是一件很痛苦的事情,所以我們選擇一臺主機作為NTP伺服器,讓板卡透過NTP服務去同步該時間,便可高效解決這個問題!
2. 技術實現
接下來為大家演示下使用方法,這裡使用RK3568評估板與一臺電腦主機做方案驗證。
圖1 HD-RK3568-CORE核心板
2.1 電腦主機配置
1.Windows 執行開啟“regedit”編輯登錄檔;
2.找到"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters",[Type]設定值修改為“NTP”;
3.找到"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config",[AnnounceFlags]修改設定值為5。AnnounceFlags的值為5時,強制時鐘源為本地CMOS時鐘。
4."HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer",[Enabled]數值修改為1。此作用為開啟NTP伺服器功能(預設是不開啟NTP Server服務,除非電腦升級成為域控制站)
5.重起Windows Time服務
a)開啟開始選單輸入“CMD”在命令列模式下輸入:
net stop w32time && net start w32time
重啟一下win32time服務,如未啟動w32time 只需執行 net start w32time 即可
b) 開啟執行框 輸入services.msc 開啟服務.
將windows time 服務設定為自啟
(實測開啟自動啟動,重啟後依然沒有啟動,需要手動啟動)
6.NTP服務為UDP 123埠,注意防火牆放開該埠,windows防火牆放開方法:
netsh advfirewall firewall add rule name="NTP Server" dir=in action=allow protocol=UDP localport=123
7.設定網口ip為192.168.1.10與開發板保持同網段。
2.2 linux端(RK3568)
1.如使用buildroot檔案系統,則使用chrony去同步時間:
/etc/chrony.conf server 192.168.1.110 iburst maxdistance 16.0 makestep 1.0 3 driftfile /var/lib/chrony/drift rtcsync
重啟chrony服務
/etc/init.d/S49chrony restart
2.如使用debian使用ntp
systemctlstopntp ntpdata 192.168.1.110
至此我們完成了對NTP功能的演示。
END