1、首先安装ptp4l的方式
http://linuxptp.sourceforge.net/
下载和安装方式请参照此网址,下载开源代码,然后使用make ,make install 手动安装
或者使用yum install ptp4l 进行安装
2、ptp4l环境搭建
使用ptp4l测试环境,需要两个机器直连或者通过交换机连接。使用一台window下虚拟机环境的Linux主机和一台实体Linux主机。
需要确保两个机器网络频段处于同一个网段,此时先不考虑多跳的事情。
需要注意的是,虚拟机中Linux主机应该采用桥连模式(需要特别注意)
3、ptp4l测试命令
刚开始使用的测试命令为:
主时钟 :“ptp4l -i ens33 -m -S ”
从时钟:“ptp4l -i ens1 -m -S -s ”
结果并没有如网上的结果一样,从时钟会卡在如图的位置
后面通过查询命令采用下面的命令可以有效避免此问题:
主时钟 :“ptp4l -2 -i ens33 -m -S ”
从时钟: “ptp4l -2 -i ens1 -m -S -s ”
我采用第二种方式的时候,发现可以正常运行。
通过在出现问题的时候,可以使用wireshark软件进行分析数据包,首先执行ptp4l -2 -i ens33 -m -S 然后再通过wireshark查看是否有PTPV2协议的数据发送。
4、ptp4l命令参数说明
ptp4l [ -A | -E | -P ] [ -2 | -4 | -6 ] [ -H | -S | -L ] [ -f config ] [ -p phc-device ] [ -s ] [ -l print-level ] [ -q ] [ -v ] [ -i interface ] ...
选项
-A 自动选择延迟机制,初始为E2E,当收到对端的delay request的时候切换到P2P.
-E 选择延迟 请求-响应机制E2E。默认机制
-P 选择对端延迟机制P2P.
-2 IEEE802.3网络传输
-4 UDP IPv4传输 默认值
-6 UDP IPv6 传输
-H 硬件打时间戳
-S 软件打时间戳
-L legacy硬件时间戳
-f config 读取配置文件
-p phc设备,硬件时间戳的设备 /dev/ptp0
-s 只作为从时钟
-l 打印级别,级别是根据syslog定义的。默认为6 LOG_INFO
-q 不打印消息到系统日志
-v 打印消息的标准输出
-i interface 确定一个ptp的端口。
-h 显示帮助信息