Linuxptp使用总结
2021/12/16 7:14:39
本文主要是介绍Linuxptp使用总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Reference:
1.Linuxptp文档及源码:http://linuxptp.sourceforge.net/
2.ptp及ntp介绍及比较:https://www.redhat.com/en/blog/combining-ptp-ntp-get-best-both-worlds
3.Linux下Linuxptp软件包使用说明:https://documentation.suse.com/zh-cn/sled/15-SP2/html/SLED-all/cha-tuning-ptp.html
4.Linuxptp的一些补充知识:https://www.techplayon.com/ieee-1588-precision-time-protocol-ptp-for-telecom-networks/
5.我实验时使用的ptp服务器供应商提供的资料:https://blog.csdn.net/hongke_Tech/article/details/120087565?spm=1001.2101.3001.6650.10&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.fixedcolumn&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.fixedcolumn
正文:
1.linuxptp软件下载:
sudo apt install linuxptp
或者按照参考1以源码方式下载。
2.Linuxptp使用:下载完成后,Linuxptp主要包含两个软件,一个是ptp4l,一个是phc2sys,前者用于PTP同步,包含硬件时钟同步和软件时间同步(系统时钟同步),后者用于在ptp4l实现硬件时间同步后将系统时钟同步到硬件时钟。
要使用ptp4l,首先得确定网卡支持的同步类型,可通过ethtool测试。
对于支持硬件时间戳的主机,可通过命令
sudo ptp4l -i eth0 -m -H
运行主时钟。通过
ptp4l -i eth0 -m -H -s
运行slave时钟,若不指定-s,即不设置主机为slave模式时,由于存在多个可能的主时钟,此时会通过最佳主时钟(BMC)算法从候选主时钟中选取一个grandmaster来作为整个ptp域的时钟源。经过上述步骤后,作为slave的主机会将本地的硬件时间同步到grandmaster,但此时系统时间可能仍未同步(大多数接口获取的时间戳都是系统时间戳),所以需要调用phc2sys实现系统时间对硬件时间的同步。
sudo phc2sys -s eth0 -w
至此,从设备时间同步完成。
若主机不支持硬件时间戳,可通过命令
sudo ptp4l -i eth0 -m -S -s
通过软件时间同步的方式实现对grandmaster的时间同步,该方式直接将系统时间与grandmaster的硬件时间对齐。
3.Linuxptp状态介绍
从设备通过ptp4l与grandmaster同步时若添加了-m参数,将会在终端上打印同步状态如下:
master offset 值表示测得的与主时钟之间的偏差(以纳秒为单位)。
s0、s1、s2 指示器显示时钟伺服的不同状态:s0 表示已解锁,s1 表示时钟步进,s2 表示已锁定。如果伺服处于已锁定状态 (s2),并且 pi_offset_const 选项在配置文件中设置为负值,则时钟不会步进,而只会缓慢调整(有关详细信息,请参见 man 8 ptp4l)。
freq 值表示时钟的频率调整(以十亿分率 (ppb) 为单位)。
path delay 值表示从主时钟发送的同步消息的预计延迟(以纳秒为单位),该延迟可通过E2E或P2P方式测量,默认为E2E。
端口 0 是用于本地 PTP 管理的 Unix 域套接字。端口 1 是 eth0 接口。
INITIALIZING、LISTENING、UNCALIBRATED 和 SLAVE 是发生 INITIALIZE(初始化)、RS_SLAVE(本地时钟成为slave) 和 MASTER_CLOCK_SELECTED(选定了对应的主时钟) 事件时更改的端口状态示例。当端口状态从 UNCALIBRATED 更改为 SLAVE 时,表示计算机已与 PTP 主时钟成功同步。
这篇关于Linuxptp使用总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南