PTP4L使用方法速览
1. 了解 PTP
精确时间协议(PTP)是用于网络中同步时钟的协议。当与硬件支持结合使用时,PTP 能够达到亚微秒级的精度。为了达到最佳精度,建议 PTP 时钟之间的所有网络组件都启用 PTP 硬件支持。
linuxptp是根据IEEE-1588标准的一种PTPv2实际实现,包括ptp4l和phc2sys程序。
- ptp4l 程序通过硬件时间戳将 PTP 硬件时钟与主时钟同步,或通过软件时间戳将系统时钟与主时钟同步;
- phc2sys 实现系统时钟与网卡硬件时钟之间的同步(仅限硬件时间戳模式)。
2. 使用 PTP
2.1. 检查驱动程序和硬件支持
使用 ethtool 程序验证驱动程序和网卡的时间戳功能,如下所示:
~]# ethtool -T em3 #其中em3是对应的网卡名称
Time stamping parameters for em3:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
all