【ARM微型电脑/IoT设备/嵌入式】Linux Ubuntu 树莓派 Jetson nano设置PTP时间同步

一、局域网中的两台机器怎样实现高精度时间同步

通过无线局域网WiFi做时间同步如何?

如果你通过一般的WiFi进行时间同步(PTP或者NTP),最后只能得到几十毫秒ms的精度。这是因为基于软件的时间标签往往受到软件和操作系统不确定延迟的影响,时间同步精度不是很高。而高精度同步需要硬件时间标签以及时钟频率调整能力,这些能力是一般的WiFi网卡芯片所缺乏的(具备这样能力的以太网卡却不少)。基于FPGA的开源WiFi芯片openwifi(https://github.com/open-sdr/openwifi)则不同了。我们经过少量修改即可加入硬件时间标签以及时钟频率调整能力。经过这样的修改,再在WiFi上跑ptp,就能达到微妙us级精度!

详细原理参见论文:https://ieeexplore.ieee.org/document/9573364

问题中,关于设备是计算机,还是具备网络通讯能力的设备?从题目中最后一句,推测题主说的是计算机。

基于两段需要同步的设备是计算机,提供2种方案:NTP和PTP。

NTP:成本低,对硬件没要求。同步精度10ms左右。

PTP:需要网络接口具备在物理层提供时间戳的功能,同步精度优于100ns,局域网的节点需要使用支持PTP功能的交换机。局域网网络接点不支持PTP的话,只能同不到us,而且受网络背景流量影响。

想在计算上加入PTP,可以使用安装板卡来实现,通过API来获取板卡上同步后的时间,直接使用这个时间或者同步设备的时间。

同步方案定位选取,还和时间的用途要求有关。

局域网上硬件上用ptp,也有软件实现的ptpd。以及广域网的ntp。同步精度硬件ptp最好。当然在mac层和phy层也有精度差异。

注:本文重点在设置PTP时间同步,有关ptp协议的介绍,则需另寻他见

二、NTP

1. 查看NTP状态:

timedatectl  status

在这里插入图片描述

2. 关闭NTP同步:

sudo timedatectl set-ntp false

在这里插入图片描述
可以看到Network time on已经处于no的状态。

三、PTP

1. 安装PTP

sudo apt install ptpd

2. 挑选一台机器作为master节点,在其上启动(其中eth0是选择同步使用的网卡,注意,这里要求该网卡相连的交换机支持PTP协议):

 sudo ptpd -M -i eth0

3. 在其他的slave节点,启动:

sudo ptpd -g -i eth0

如果在master和slave上加入-C参数的话,会在前台运行,并打印输出

4. 单播模式

此外,ptpd还支持单播模式,需加入-u参数,如:

 sudo ptpd -u 192.168.13.206 -g -i eth0

四、设置开机自启

1. 自带开机脚本

/etc/rc.local脚本是一个ubuntu16.04及其以前的系统中自带的开机脚本,在没有修改之前里面内容如下。

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
  
exit 0

可以把开机要执行的命令放到 exit0 前面。

2. 添加开机脚本

(1)新建个脚本文件new_service.sh

#!/bin/bash
# command content
  
exit 0

(2)设置权限

sudo chmod 755 new_service.sh

(3)把脚本放置到启动目录下

sudo mv new_service.sh /etc/init.d/

(4)将脚本添加到启动脚本

执行如下指令,在这里90表明一个优先级,越高表示执行的越晚

cd /etc/init.d/
sudo update-rc.d new_service.sh defaults 90

(5)移除Ubuntu开机脚本

sudo update-rc.d -f new_service.sh remove
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别出BUG求求了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值