问题标签 [ptpd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - ptpd2 在点对点主从连接上不起作用
我有几台 x86 机器通过直接 10GbE 连接进行连接。接口已启动并正常工作(即机器可以相互 ping 通)。两台机器都运行 CentOS Linux。
我需要设置 ptpd 来同步机器,以便获得具有微秒时间分辨率的时间戳。
我有:
- 用 yum 安装 ptpd
- 编辑
/etc/ptpd2.conf
文件(将一台机器作为masteronly
,另一台作为slaveonly
) - 通过运行服务
service ptpd2 start
ptpd 组件进行通信(通过通过tcpdump
和 ptp 日志文件进行验证)。此外,该/var/log/ptpd2_kernelclock.drift
文件显示了测量的 dritf。
但是,date
显示时间不同步,简单的客户端-服务器测试显示时间戳不同步。
知道有什么问题吗?
linux - 在 RedHat/CentOS 上使用 PTPd
我需要在通过直接以太网连接连接的两台 CentOS 6 机器之间创建可靠且准确的同步。
我已经看到在 Linux 上存在 IEEE 1588 精确时间协议 (PTP) 的几种实现:
- 点对点:
- 显然,这是最初的实现
- GitHub 上提供的源代码(显然,
仍然保持几乎无人维护)
- PTPd2:
- 一个新版本旨在取代以前的实现
- 显然没有维护
- 对于 CentOS 6,仅在 EPEL 存储库中可用
- PTPv2d:
- 进一步的实现
- 也未维护
- linuxptp:
我的问题如下:
- 为什么 RedHat 文档建议将 linuxptp用于 RedHat 6(基于 Linux 内核 2.6),尽管linuxptp 文档说需要 Linux 内核版本 3.0 或更高版本?
- PTPd2 和 Linuxptp 在可靠性和时序准确性方面有哪些区别?
- 在 CentOS 6 和 CentOS 7 上,我应该更喜欢哪一个?
- 为什么 PTPd2 和 Linuxptp 不能立即同步,经常需要我多次启动/停止服务或手动更改系统时间
date
以使机器同步?
java - 从 Java 访问 NIC 或内核时间戳数据
我正在使用 Solarflare 卡,sfptpd
并且正在使用 C 代码中的硬件时间戳。它与给出以下输出的Solarflare 示例没有太大区别:
这个想法是检查与msghdr
结构相关的辅助数据并从中提取timespec
(SO_TIMESTAMPNS
好吧,如果我想依赖软件内核时间戳,这几乎是一样的——没有 Solarflare、onload 等)。
到目前为止,一切都很好。我想知道是否有任何方法可以使用标准 Java API 访问这些时间戳?如果没有,那么最简单的方法是什么?我不介意破解一些 JNI 代码。在最坏的情况下,我可以在本机代码中处理网络,为 Java 提供沿元数据接收到的数据(但如果可能的话,我想避免这样做,因为我正在考虑从现有应用程序访问时间戳)。
bash - bash 脚本在 sudo 之后不执行行,没有错误
我有一个小 bash 脚本要运行,但它似乎在第二行没有错误地停止:
脚本在一个文件中。我错过了什么?
ethernet - STM32H743 中的 IEEE 1588 PTP 时钟源
我正在尝试获取PTP
时间戳STM32H743 Nucleo
。LwIP
到目前为止,以太网驱动程序没有问题,除了PTP
. IEEE 1588 timestamping
我遵循了参考手册 ( ) 上的说明 ( 58.9.7 Programming Guidelines for ) RM0433
,如下所示。
但是,系统时间秒数寄存器 ( ETH_MACSTSR
) 不计数,只是将初始值加载到系统时间秒数更新寄存器 ( ETH_MACSTSUR
) 中。在参考手册中没有关于时钟源的明确信息PTP
。在中,时钟配置页面中有如下图所示STM32F7
的时钟路径。PTP
CubeMX
但是,如下图所示, PTP
in没有时钟路径。STM32H7
我是否遗漏了一些关于从寄存器中获取系统时间的ETH_MACSTSR
信息ETH_MACSTNR
?
linux - 使用 phc2sys 获得较大的偏移量
我在运行phc2sys
服务时遇到了一些问题:
- 偏移量太大(超过 1000 ns,甚至超过 10000 ns)。
- 频率不偏移不稳定(在 -1000 到 +15000 之间来回移动)。
- 延迟似乎太高(大约 85000 ns)并且也不稳定。
我的板子作为 PTP 从机运行(正在运行ptp4l
),所以我认为可能是由于 PHC 上的 PTP 操作,PHC 跳跃过于频繁(-/+500 ns),这可能导致 PHC 偏移(来自 SYSTEM时钟)跳得更频繁。
所以我尝试在从属端禁用 PTP,所以现在我只是尝试将 SYSTEM 时钟同步到 PHC,但 PTP 没有运行 - 所以ptp4l
没有接触 PHC(也许其他一些应用程序是触摸它?),但我在运行时仍然得到大量数据:
phc2sys -s eth0 -c CLOCK_REALTIME -O 0 -m
问题:
我担心的第一件事是计算的延迟太高。这没有任何意义(对我来说……)。
我担心的第二件事是,也许其他一些程序正在与 PHC 一起玩——但是在 PHC 上进行此类操作后,我该如何追踪?
知道会是什么吗?
也许一些关于我应该检查什么以及如何检查的指南?
平台:
我的板在 linux 4.19 上运行 KSZ9477 开关(支持硬件时间戳)。
linux - 用于将 2 个 Rpi 同步为从属设备的 PTPD 与 1 个主设备在 30 分钟后停止为 1 个从属设备工作
我有一个以太网网络设置来测试PTPD 同步,如下所示:
- 2 个 Rpi 4B 作为运行 Raspberry Pi OS 5.1 的从站
- 1 台运行 Ubuntu 20.04 的笔记本电脑
- 通过路由器作为交换机的以太网连接
我运行 PTPD 以将两个 rpi 与我的笔记本电脑同步。但是,每次我运行这个测试时,1 个从站大约在 30 分钟标记处停止记录数据。我记录生成的数据以在 GNUPLOT 中绘制“从主偏移”列与时间的关系。
示例图:
我在奴隶上运行的命令如下:
我已经多次运行这个测试,每次都改变变量。以下是我尝试过的以下内容。
- 从冷启动开始测试,在初始同步后开始另一个测试
- 重新刷写两张 SD 卡上的操作系统
- 更改两个从站的静态 IP 地址
重要的一点是,一个 Rpi 是 2gb 变体,而另一个是 4gb。
运行jounalctl -b | grep ptp
显示没有显示有用信息的内核日志。我跑了tcpdump
,但似乎仍在为两个从站交换 ptpd 数据包。
如果你们能指出我正确的方向,那将对我有很大帮助。我难住了。
谢谢!
networking - 无法使用 PTP 对两个设备进行时间同步,未建立连接
我无法通过 VPN(L2TP) 将两台计算机与 PTP IEEE 1588(v2, 2008) 同步。两台计算机通过 VPN 连接,位于两个不同的物理站点。他们可以互相ping通。此外,当与同一站点上的其他计算机一起完成时,PTP 可以正常工作。
它们都通过接口 eth1 连接到 VPN 和互联网。
我尝试了 ptpd 和 ptp4l。同样,在同一站点/LAN 中使用时两者都可以正常工作,但不能通过 vpn(L2TP)工作。
我也尝试过单播