編程之路剛剛開始,錯誤不免,但願你們可以指出。html
ntp,ptp,ntp,ptplinux
本文只說軟件時間戳編程
先上幾個推薦的網址,能夠更好的瞭解ptp:服務器
https://docs.fedoraproject.org/f26/system-administrators-guide/servers/Configuring_PTP_Using_ptp4l.html網絡
https://doc.opensuse.org/documentation/leap/tuning/html/book.sle.tuning/cha.tuning.ptp.html#tuning.ptp.usingide
tar -xvf linuxptp-1.8.tgz cd linuxptp-1.8 make make install
安裝完以後,你直接調用"ptp4l"不會成功,你須要"reboot"重啓一下。測試
簡單介紹下軟件時間戳模式「ptp4l」,只介紹我使用過的,硬件時間戳模式得我使用過再介紹:ui
-i : 指定網絡接口,也就是eth0,eth1等等。spa
-m: 將消息打印到標準輸出。.net
-s: 開啓從站模式,由於不設置的話默認是主站模式
-S: 軟件時間戳模式
-H: 硬件時間戳模式
在測試命令以前,安裝一個軟件「ethtool」,該命令用於獲取以太網卡的配置信息,或者修改這些配置。這個命令比較複雜,功能特別多,不過咱們這裏只是用它來查看當前機器上的網卡是否支持軟件時間戳模式和硬件時間戳模式:
同安裝linuxptp同樣,建議不要用命令直接安裝,到下面的網址去下載壓縮包,由於linuxptp項目網址提到:
ethtool下載網址:https://mirrors.edge.kernel.org/pub/software/network/ethtool/
安裝步驟無非就是
./configure
make
make install
安裝好以後執行「ethtool -T ethX」
第三步,開始測試,將兩臺時間不一樣的機器進行時鐘同步:
記得測試以前把兩個機器的時間修改「date -s 「時:分:秒」 」 兩臺機器的時間別差太多。
服務端:ptp4l -i eth0 -m -S
客戶端::ptp4l -i eth0 -m -S -s
簡單說明下命令執行打印出來的內容,記住關鍵的就好:
1.該master offset
值表示從主設備測量的偏移量(以納秒爲單位);
2.s0,s1,s2表示時鐘伺服器的不一樣狀態,s0表示未鎖定,s1表示正在同步,s2表示鎖定,鎖定狀態表示不會再發生階躍行同步,只是緩慢調整;
3.端口0是用於本地PTP管理的Unix域套接字。端口1是eth0
接口;
4.當從端口狀態改變UNCALIBRATED
到SLAVE
時,計算機已經成功地與一個PTP主時鐘同步。
軟件時間戳就介紹這些,命令「pmc」我不瞭解,因此就不記錄了,等單位要真是買來硬件服務器,我再來記錄硬件時間戳模式。