问题标签 [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.

0 投票
1 回答
686 浏览

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显示时间不同步,简单的客户端-服务器测试显示时间戳不同步。

知道有什么问题吗?

0 投票
1 回答
1583 浏览

linux - 在 RedHat/CentOS 上使用 PTPd

我需要在通过直接以太网连接连接的两台 CentOS 6 机器之间创建可靠且准确的同步。

我已经看到在 Linux 上存在 IEEE 1588 精确时间协议 (PTP) 的几种实现:

  • 点对点
    • 显然,这是最初的实现
    • GitHub 上提供的源代码(显然,仍然保持几乎无人维护)
  • PTPd2
    • 一个新版本旨在取代以前的实现
    • 显然没有维护
    • 对于 CentOS 6,仅在 EPEL 存储库中可用
  • PTPv2d
    • 进一步的实现
    • 也未维护
  • linuxptp
    • Linux的具体实现
    • 保持
    • 在 CentOS 软件库中可用
    • 由RedHat 6RedHat 7的 RedHat 文档建议

我的问题如下:

  • 为什么 RedHat 文档建议将 linuxptp用于 RedHat 6(基于 Linux 内核 2.6),尽管linuxptp 文档说需要 Linux 内核版本 3.0 或更高版本
  • PTPd2 和 Linuxptp 在可靠性和时序准确性方面有哪些区别?
  • 在 CentOS 6 和 CentOS 7 上,我应该更喜欢哪一个?
  • 为什么 PTPd2 和 Linuxptp 不能立即同步,经常需要我多次启动/停止服务或手动更改系统时间date以使机器同步?
0 投票
0 回答
522 浏览

java - 从 Java 访问 NIC 或内核时间戳数据

我正在使用 Solarflare 卡,sfptpd并且正在使用 C 代码中的硬件时间戳。它与给出以下输出的Solarflare 示例没有太大区别:

这个想法是检查与msghdr结构相关的辅助数据并从中提取timespecSO_TIMESTAMPNS好吧,如果我想依赖软件内核时间戳,这几乎是一样的——没有 Solarflare、onload 等)。

到目前为止,一切都很好。我想知道是否有任何方法可以使用标准 Java API 访问这些时间戳?如果没有,那么最简单的方法是什么?我不介意破解一些 JNI 代码。在最坏的情况下,我可以在本机代码中处理网络,为 Java 提供沿元数据接收到的数据(但如果可能的话,我想避免这样做,因为我正在考虑从现有应用程序访问时间戳)。

0 投票
1 回答
61 浏览

bash - bash 脚本在 sudo 之后不执行行,没有错误

我有一个小 bash 脚本要运行,但它似乎在第二行没有错误地停止:

脚本在一个文件中。我错过了什么?

0 投票
1 回答
661 浏览

ethernet - STM32H743 中的 IEEE 1588 PTP 时钟源

我正在尝试获取PTP时间戳STM32H743 NucleoLwIP到目前为止,以太网驱动程序没有问题,除了PTP. IEEE 1588 timestamping我遵循了参考手册 ( ) 上的说明 ( 58.9.7 Programming Guidelines for ) RM0433,如下所示。

但是,系统时间秒数寄存器 ( ETH_MACSTSR) 不计数,只是将初始值加载到系统时间秒数更新寄存器 ( ETH_MACSTSUR) 中。在参考手册中没有关于时钟源的明确信息PTP。在中,时钟配置页面中有如下图所示STM32F7的时钟路径。PTPCubeMX

在此处输入图像描述

但是,如下图所示, PTPin没有时钟路径。STM32H7

在此处输入图像描述

我是否遗漏了一些关于从寄存器中获取系统时间的ETH_MACSTSR信息ETH_MACSTNR

0 投票
0 回答
207 浏览

linux - 使用 phc2sys 获得较大的偏移量

我在运行phc2sys服务时遇到了一些问题:

  1. 偏移量太大(超过 1000 ns,甚至超过 10000 ns)。
  2. 频率不偏移不稳定(在 -1000 到 +15000 之间来回移动)。
  3. 延迟似乎太高(大约 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 开关(支持硬件时间戳)。

0 投票
0 回答
33 浏览

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 中绘制“从主偏移”列与时间的关系。

示例图:

冷启动 - 2 个从站的偏移量与经过时间的图

地块 2 紧接在地块 1 之后

我在奴隶上运行的命令如下:

我已经多次运行这个测试,每次都改变变量。以下是我尝试过的以下内容。

  1. 从冷启动开始测试,在初始同步后开始另一个测试
  2. 重新刷写两张 SD 卡上的操作系统
  3. 更改两个从站的静态 IP 地址

重要的一点是,一个 Rpi 是 2gb 变体,而另一个是 4gb。

运行jounalctl -b | grep ptp显示没有显示有用信息的内核日志。我跑了tcpdump,但似乎仍在为两个从站交换 ptpd 数据包。

如果你们能指出我正确的方向,那将对我有很大帮助。我难住了。

谢谢!

0 投票
0 回答
11 浏览

networking - 无法使用 PTP 对两个设备进行时间同步,未建立连接

我无法通过 VPN(L2TP) 将两台计算机与 PTP IEEE 1588(v2, 2008) 同步。两台计算机通过 VPN 连接,位于两个不同的物理站点。他们可以互相ping通。此外,当与同一站点上的其他计算机一起完成时,PTP 可以正常工作。

它们都通过接口 eth1 连接到 VPN 和互联网。

我尝试了 ptpd 和 ptp4l。同样,在同一站点/LAN 中使用时两者都可以正常工作,但不能通过 vpn(L2TP)工作。

我也尝试过单播