当前位置: 首页 > news >正文

ptp4l与phc2sys进行系统时钟同步

linuxptp用于时钟同步。

安装采用

apt install linuxptp

主要包含2个程序,

ptp4l 进行时钟同步,实时网卡时钟与远端的时钟同步,支持1588 和 802.1AS 两种协议

phc2sys 将网卡上的时钟同步到操作系统,或者反之

命令demo:

某主机P通过eth2连接TSN交换机,下列命令实现主机P的网卡与交换机进行时钟同步,并且将主机的操作系统的时钟也与TSN交换机同步。

ptp4l实现 网卡上的时钟与TSN交换机同步。

phc2sys实现网卡上的时钟 同步到操作系统(以网卡上的时钟为准)

ptp4l -i eth2 -2 –m -s -f gPTP.cfg phc2sys -a -r --transportSpecific=1 -m --step_threshold=1000# the same as -a -r
phc2sys  -c eth2 -s CLOCK_REALTIME --transportSpecific=1 -m --step_threshold=1000 -w

命令介绍:

ptp4l

-2 指定用2层的以太网帧进行数据传输,而非UDP

-s 作为slave向外界同步(以外面的时间为准)

-f gPTP.cfg 配置更多内容,具体内容见下面。 此例中使用的是802.1AS协议

phc2sys

此处2种用法是一样的,-a -r会自动寻找当前运行的ptp4l程序,利用它的时钟,同步到操作系统时钟。

-c eth2 -s CLOCK_REALTIME -w不过是写的更清楚一点。

如果用-a -rr 两个r,则是反方向的,操作系统的时钟是主时钟,网卡的时钟是slave.

CLOCK_REALTIME 指的是操作系统的时钟。

--transportSpecific=1 用于802.1AS TSN协议的同步, 1588协议可以不用

-m 打印消息

--step_threshold=1000 在master时钟发生突变时,slave不是一下就跟过去,而是一步步跟过去,避免时钟跳变。

-w 等待ptp4l

gPTP.cfg的内容:

[global]
gmCapable               1
priority1               128
priority2               248
logAnnounceInterval     0
logSyncInterval         -3
syncReceiptTimeout      3
#neighborPropDelayThresh        800
neighborPropDelayThresh 80000
min_neighbor_prop_delay -20000000
assume_two_step         1
path_trace_enabled      1
follow_up_info          1
transportSpecific       0x1
ptp_dst_mac             01:80:C2:00:00:0E
network_transport       L2
delay_mechanism         P2P

各配置项说明

参数

说明

gmCapable

该项目决定设备是否能成为整个网络的主时钟。 默认配置下,所有运行ptp4l的设备将从该选项设为1的设备中自动协商选择主时钟。

priority1, priority2

设备时钟优的先级。数字越小,优先级越高。

neighborPropDelayThresh

邻近设备延时阈值,单位为纳秒(ns)。实际组网后,设备将根据测得的网络延时来选择主时钟,若连接的所有设备网络延时均超出阈值,且在gmCapable设置为1的情况下,则设备将以自身本地时钟作为网络的主时钟。

ptp_dst_mac

使用MAC地址01:80:C2:00:00:0E。该项目为IEEE 802.1AS协议规范,不应修改。

network_transport

使用数据链路层传输协议,相当于命令行参数-2。该项目为IEEE 802.1AS协议规范,不应修改。

http://www.lryc.cn/news/10133.html

相关文章:

  • 使用注解JSON序列化
  • kubernetes教程 --Pod生命周期
  • 高校房产管理系统用到了哪些技术?
  • 【Python学习笔记】37.Python3 MySQL - mysql-connector 驱动(2)
  • 【高级Java】高级Java实验
  • SYN480R 解码
  • ASP .NET(基于.NET 6.0)源码解读
  • 阿里工作7年,一个30岁女软件测试工程师的心路历程
  • 学生党必备的 Keychron 无线机械键盘
  • FPGA MAX 10 10M50系列10M50DAF484C8G/10M50DAF484C7G/10M50DCF484C7G规格
  • 【codequ】Java学习路线整理(韩顺平)
  • 服务器容器配置日志(Linux+x86_64+Ubuntu18.04+CUDA11.0+python3.7)
  • 2023年美赛赛题思路分析
  • [C++]服务器与客户端建立连接与检测断开的demo
  • 包教包会vue3+ts状态管理工具pinia
  • Generated columns cannot be used in COPY
  • Amazon S3简介
  • MySQL索引类型——有五种
  • CloudCompare 二次开发(5)——非插件中的PCL环境配置(均匀采样为例)
  • 停车辅助系统的技术和变化
  • 扬帆优配|日均客运量恢复,民航业加速复苏,外资买入2股超亿元
  • 【PyTorch】教程:torch.nn.ModuleDict
  • Git、小乌龟、Gitee的概述与安装应用超详细(组长与组员多人开发版本)
  • 【java 高并发编程之JUC】高阶JUC特性总结
  • 行业分析| 智能无人自助设备
  • 使用契约测试得不偿失?试试契约先行开发
  • 函数编程之Function
  • Vue 双向绑定原理
  • 【数据治理-03】无规矩不成方圆,聊聊如何建立数据标准
  • dos常用命令