编程之路刚刚开始,错误不免,但愿你们可以指出。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”我不了解,因此就不记录了,等单位要真是买来硬件服务器,我再来记录硬件时间戳模式。