【PTP】——ptpd2的构建和安装说明

原文:https://github.com/ptpd/ptpd/blob/master/INSTALL

目录

*)前提

*)构建


PTP守护进程版本2的构建和安装说明

2015年6月15日

George V. Neville-Neil, Wojciech Owczarek

众所周知,PTP守护进程用于FreeBSD、NetBSD、OpenBSD、OpenSolaris及其衍生产品,Mac OS X和Linux系统。

*)前提

您将需要以下工具和库来构建ptpd2:

1. GNU自动工具(automake, autoconf, libtool等)-必需

2. PCAP库(libpcap/bpf)和开发头(可选但推荐)-以太网传输所需,并且通常推荐用于提高消息性能

*注意:Libpcap在OpenSolaris / OmniOS上似乎是坏的,编译并运行,但是没有收到任何数据。

3.SNMP库(可选)——允许使用SNMP进行构建支持

*)构建

1. 切换到树的根目录中(也就是您阅读的文件所在的位置)

2. 如果从存储库构建,如Subversion, CVS或GIT,运行:

autoreconf -vi

3.如果是从发行版.tar.gz包构建,您可以运行

autoreconf -vi

但是在大多数情况下,运行

./configure

就足够了——你必须运行autoreconf(如果configure错误或结果错误)。

4 .     . / configure

configure脚本输出的最后一部分将显示所有库依赖项检查和特性检查的结果:特性和依赖项可以使用下面描述的选项来控制。运行

 ./configure --help

将显示所有可用选项。

*注意*在QNX系统上,configure脚本可能不接受可用的“rm”命令实现,因此,如果它运行不了,输入./configure和以下环境变量:

导出ACCEPT_INFERIOR_RM_PROGRAM = yes

========= 为ptpd配置脚本选项 ========================

*禁用统计代码,以降低计算费用和RAM使用,配置以下选项构建:

./configure --disable-statistics

*要构建一个纯从时钟版本(禁用GM逻辑),请使用:

./configure --enable-slave-only

这将构建一个无法作为主机运行的版本。

*在2.3.1,用于定期操作的默认定时器隐含使用POSIX计时器,如果只有操作系统支持它。要禁用POSIX定时器支持和使用旧的间隔定时器实现,以下选项可以使用:

./configure --disable-posix-timers

*从2.3.1开始,增加了对多个单播目的地(包括GMs和从站)的支持——有协商(信令)和没有协商。默认的最大单播目的地数(也是信令GM的最大从服务器数)设置为128。这个设置会对PTPd使用的RAM数量产生影响。单播表容量可以更改为最大2048使用:

 ./configure --with-max-unicast-destinations=[16...2048]

可以将这个限制更改为超过2048,但实际上,由于消息调度、计时器信号使用和单线程架构,任何超过1000 ptpd的地方都将显示较高的CPU使用率。Ptpd作为1000个从站和高消息率(32/秒)的单播通信(协商)主服务器已经被成功测试,并提供了足够的性能。当运行大量的从服务器时,建议使用libpcap (ptpengine:use_libpcap=y)来更容易匹配同步和跟踪,除非NIC支持软件传输时间戳。如果没有这些和libpcap, ptpd就会循环数据包回到自己的套接字中,因此后续目标无法与同步目标匹配,就会使用查找表。散列排序很低,但也有可能发生,在这种情况下,ptpd将迭代包含最后时间戳的表。这只是极端情况下的问题。

* Linux上的某些NIC驱动程序提供了so_timestamp功能与软件传输时间戳(SOF_TIMESTAMPING_TX_SOFTWARE),不可预测的传输时间戳故障可能会发生,这可能导致不稳定的操作,在某些情况下,高CPU使用率(见https://sourceforge.net/p/ptpd/discussion/469208/thread/4aea6e47)。

虽然已经实施了修复措施并取得了成功,但仍然存在一些风险。要完全禁用Linux上的SO_TIMESTAMPING支持,不管操作系统支持,使用:

./configure --disable-so-timestamping

*启用实验选项使用:

./configure --enable-experimental-options

这使得:

-运行SO_TIMESTAMPING而不验证NIC驱动程序是否支持给定的时间戳选项

-运行消息间隔超出PTP规范

*注*在QNX系统上,当实验选项被启用时,使用一个clock_gettime近似使用CPU时钟计数器和附加到IRQ0,这也被用来检索包RX和TX时间戳,忽略PCAP时间戳和套接字选项。为了获得最佳性能,建议这样做,但是在成为默认值之前需要进行更多的测试。

默认情况下,在QNX中,时钟的时间增量可达10毫秒,而PCAP和套接字时间戳仅精确到几毫秒。

5. make

6. 阅读手册页ptpd2(8)和ptpd2.conf(5)。手册页是配置信息的最完整的来源。

ptpd2本身也提供了广泛的帮助:

运行  ptpd2 --help  查看简短帮助

运行  ptpd2 --long-help  以查看所有设置的long help

运行  ptpd2 -e [key:setting]  显示单个设置的帮助

7. 更新test/client-e2e-socket.conf,使其“ptpengine:interface =”设置指向测试机器上的一个网络接口,该接口可以看到来自主机的PTP包。

8. 在适当的地方测试:

./src/ptpd2 -c Test /client-e2e-socket.conf

9.检查/var/run/ptpd2.event.log中守护进程的日志输出

检查/var/run/ptpd2.stats.log中守护进程输出的统计信息

检查状态文件/var/run/ptpd2.status.log

10. 如果结果看起来不错,就进行安装

守护进程可以在其他基于POSIX的系统上工作,但这不是保证。在SourceForge页面上欢迎补充和指正:

http://ptpd.sf.net

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值