class="hide-preCode-box">

2、run linuxptp

服务端(主钟):

sudo ptp4l -i enp0s31f6 -m -S
 class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

客户端(从钟):

sudo ptp4l -i eno1 -m -S -s
 class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

运行结果:
主钟:
master-s
从钟:
slave-s
运行一会儿以后:
slave-s2
log中的内容为:

  1. master offset : 即PTP协议中定义的主从端时间差,单位:ns
  2. s0,s1,s2 : 表示时钟伺服器的不同状态,s0表示未锁定,s1表示正在同步,s2表示锁定,锁定状态表示不会再发生阶跃行同步,只是缓慢调整
  3. freq:
  4. port 0:INITIALIZING to LISTENING on INIT_COMPLET : 本地PTP管理的Unix域socket;
  5. port 1:new foreign … : eno1上的端口;
  6. 从钟端口状态由UNCALIBRATED 变为SLAVE时,则从钟已经成功地与best master同步。
sudo ptp4l -i enp0s31f6 -m -H
 class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

客户端(从钟):

sudo ptp4l -i eno1 -m -H -s
 class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

如果要修改系统时间的话,需要PHC把通过PTP协议获取到的时间 同步到系统上,执行phc2sys命令:

#主钟
sudo phc2sys -m -s CLOCK_REALTIME -c enp0s31f6 -w
sudo ptp4l -i enp0s31f6 -m -H
#从钟
sudo phc2sys -m -s eno1 -w
sudo ptp4l -i eno1 -m -H -s
 class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

运行结果:
从钟:
slave-H
显然用硬件时间戳同步的精度高得多,而且这只是一块普通网卡,走的还是校园网

[global]
twoStepFlag             1 #PTP两步模式是否开启
clientOnly              0 #
socket_priority         0
priority1               128 #对应BMCA里的优先级1
priority2               128 #对应BMCA里的优先级2
domainNumber            0   #PTP域number
#utc_offset             37 #配置闰秒,截止目前是37秒,一般不用配置因为时钟源配过(默认是注释的)
clockClass              248 #对应BMCA里的clockClass
…………
logAnnounceInterval     1  # log间隔
delayAsymmetry          0  # 可配置的链路不对称性,正数表示rx比tx延迟高,负数表示低,单位ns。
…………
BMCA                    ptp # 指定BMCA算法 ptp、noop、自定义
…………
ptp_dst_mac             01:1B:19:00:00:00
p2p_dst_mac             01:80:C2:00:00:0E
……
clock_type              OC
network_transport       UDPv4 #L2 UDPv4 UDPv6,对应命令行的-2 -4 -6
delay_mechanism         E2E # E2E P2P
 class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"> class="hide-preCode-box">

/- 这个bug已经修复了 -\

TC和BC都需要至少有两个interface;
执行以下命令

sudo ptp4l -i eno1 eno2 -m -H -t
 class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

提示无效的选项:
在这里插入图片描述
嗯?usage里分明写着 -t 是transparent clock 啊
sudo vim ptp4l.8
嗯,-f -i -m -p -l -i -A -E -P -2 -4 -6 -H -S -L -q -v -h
??就是没有-t,不懂了

  1. "U"错误
    当host PC或运行于其上的应用程序不能为USRP以足够快速率提供样值时,往往会出现"U"错误,举例说明:USRP以设定的采样速率为5M/s需求样值,而host PC却只能以低于5M/s的速率提供样值时,就会出现"U"错误。
  2. "O"错误
    当host PC或运行于其上的应用程序不能以足够快的速率来处理USRP提供的样值时,往往会出现"O"错误,距离说明:当USRP以设定的采样速率为5M/s提供样值,而host PC却只能以处理低于5M/s的速率处理样值是,就会出现"O"错误。
  3. "L"错误
    USRP的设计机理是:要求Packet中的时间戳要早于FPGA中的时间戳。如果指令到达FPGA时Packet中的时间戳已经过时,USRP会给出"L"错误,也就是指令到达的时间比预计执行时间要晚。

这里有一组利用两台铯原子钟时钟服务器通过SDR平台(OAI EPC+srs eNB + COTS UE)针对空口进行的15小时测试得到的数据,可以来一波空口性能分析:

更:
度盘连接被和谐了


在这里插入图片描述

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/BUPTOctopus/article/details/86246335","extend1":"pc","ab":"new"}">>
注:本文转载自blog.csdn.net的Kujou的文章"https://blog.csdn.net/BUPTOctopus/article/details/86246335"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!