linuxptp用于时钟同步。

安装方法:

ubuntu平台上用apt,也可以用官方的github源码自行编译:

https://github.com/richardcochran/linuxptp

apt install linuxptp

linuxptp主要包含2个程序:ptp4l和phc2sys

1.ptp4l 进行时钟同步,实时网卡时钟与远端的时钟同步(比如TSN交换机),支持1588 和 802.1AS 两种协议

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

时钟同步命令:

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

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

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

(“同步到”这个词总是很难精确的表达清楚到底是以这为master还是slave)

ptp4l -i eth2 -2 –m -s -f gPTP.cfg
phc2sys -a -r --transportSpecific=1 -m --step_threshold=1000# phc2sys还可以写成这样,功能是一样的
phc2sys  -s eth2 -c 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程序,利用它的时钟,同步给操作系统时钟,操作系统时钟是slave。

如果用“-a -rr” 两个r,那么时钟同步的方向是相反的,操作系统的时钟是master主时钟,网卡的时钟是slave.

第二种用法中的-s eth2 -c CLOCK_REALTIME -w 不过是写的更清楚一点。

-s 指定master clock

-c 指定 slave clock 或 (CLOCK_REALTIME)

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

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

-m 打印消息

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

-w 等待ptp4l

-r 同步系统 synchronize system (realtime) clock

-rr 系统时钟作为时钟源 repeat -r to consider it also as a time source

gPTP.cfg配置文件是从linuxptp源码包中获取的。

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协议规范,不应修改。

如果需要可以提高进程的实时性和绑定CPU核心,可以使用chrt和taskset

taskset -c 0 chrt 90 ptp4l -i eth0 -f gPTP.cfg -2 -m -s > /var/log/ptp4l.log 2>&1 &
taskset -c 0 chrt 89 phc2sys -a -r --transportSpecific=1 -m --step_threshold=1000 > /var/log/phc2sys.log 2>&1 &

参考:

https://www.kalycito.com/how-to-run-opc-ua-pubsub-tsn/

示例代码来源:

https://www.kalycito.com/wp-content/uploads/2021/06/demo_package.tar

用ptp4l和phc2sys实现系统时钟同步相关推荐

  1. 局域网内多台linux系统时钟同步

    局域网内多台linux系统时钟同步 centos7系统离线NTP安装包下载路径: https://mp.csdn.net/mp_download/manage/download/UpDetailed ...

  2. ti的硬件时钟和系统时钟同步

    1. hwclock -w 软到硬  hwclock -s 硬到软 2. 通过ntp网络时钟控制同步 3.etc下的localtime文件和GMT-8 转载于:https://www.cnblogs. ...

  3. linux查看时间同步服务,Linux系统时钟同步服务NTPD配置方法

    下述设置以时钟源服务器IP地址为192.168.0.1为例.可以命令ntpstat 和 ntpq -p 查看本机NTPD服务状态.配置完成后,均需要重新启动NTPD服务 service ntpd re ...

  4. ptp(precision time protocol)时钟同步

    一.介绍 1:什么是ptp PTP(Precision Time Protocol) 是一个通过网络同步时钟的一个协议.当硬件支持时,PTP 精度能达到亚微秒,比 NTP(Network Time P ...

  5. linux同步硬件和系统时钟,liunx系统下时钟不同步会出现问题 怎么同步Linux 的系统时钟和硬件时钟?...

    linux的系统时钟在很多地方都要用到,要是不准,就会出现一些奇怪的问题: 在linux中,用于时钟查看和设置的命令主要有date.hwclock和clock.linux时钟分为系统时钟(system ...

  6. Linux: 硬件时钟, 系统时钟, 网络时钟, 时区修改和同步

    目录 基础认识 常用命令 查看和修改Linux的时区 常见时区 timedatectl 时钟同步 用硬件时钟同步系统时钟: 用系统时钟同步硬件时钟: 同步网络时间 hwclock命令 语法 查看和修改 ...

  7. 西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍

    西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍 HR-901GB时钟服务器由安徽京准科技研制开发, 西门子PCS7系统时钟同步模式介绍 PCS7系统基于TIA构建方式,在整个系统下包含了 ...

  8. oracle时间与系统时间不同步软件下载,NetTime时钟同步软件下载

    NetTime是一款同步整个局域网内所有计算机时间的利器.NetTime令计算机甚至整个局域网内计算机拥有毫秒级的准确时间.该软件可以在一台计算机或LAN / Internet中同步多个计算机系统时钟 ...

  9. 如何查看linux时钟是否同步,Linux系统时钟与同步

    linux的系统时钟在很多地方都要用到,要是不准,就会出现一些奇怪的问题:在Linux中,用于时钟查看和设置的命令主要有date.hwclock和clock.Linux时钟分为系统时钟(System ...

最新文章

  1. Linux下防火墙iptables用法规则详及其防火墙配置
  2. 工业互联网 — TSN — 协议族
  3. php7和python3性能对比-为什么PHP7执行这个简单循环比Python3快得多?
  4. Android自定义泡泡效果 源码
  5. ACM-最短路之中的一个个人的旅行——hdu2066
  6. 使用Nginx代理和转发Websocket连接
  7. java weblogic反序列化_Weblogic JAVA反序列化漏洞攻防搭建(3)
  8. 可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)
  9. Kubernetes的Device Plugin设计解读
  10. UVa 439 - Knight Moves
  11. 苹果开发者用计算机语言,苹果的编程语言 Swift 是用什么开发的?
  12. 科大讯飞语音识别率从97%提升至98% 用AI赋能方言保护
  13. 2022年C语言程序设计题库习集带答案(史上最全版)
  14. 一阶倒立摆的起摆与稳摆simulink仿真
  15. codeblock的汉化过程
  16. 中兴捧月算法比赛2021 比特派 C:排队 (单调栈+二分查找)
  17. java 多定时任务_多机部署之定时任务完整方案
  18. 移动的 ipcam 视频无处不在
  19. wordpress友联_为你的wordpress添加独立的友情链接页面吧
  20. 智慧路灯杆系统环境监测 5G智能灯杆网关的功能有哪些

热门文章

  1. asp web页面介绍
  2. 刷脸支付投入小利润可观大众认知度高
  3. linux 查看c库版本号,查看Ubuntu系统中库的版本号
  4. 《Windows服务器配置与管理》
  5. 安装Ubuntu双系统(Win10双硬盘)2021新版教程
  6. ABBYY Recognition Server助力韩国国会图书馆实现数字化
  7. linux系统fsck.ext4,linux – 如何在fsck之后恢复损坏的ext4文件系统?
  8. ROS 2 Humble 标定纠正畸变全景鱼眼展开网络摄像头
  9. ACM练级日志:带权并查集与食物链
  10. 我们要做什么--Oracle DBA的职责