【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 contentexit 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
【ARM微型电脑/IoT设备/嵌入式】Linux Ubuntu 树莓派 Jetson nano设置PTP时间同步相关推荐
- 【ARM微型电脑/IoT设备/嵌入式】常用AI开发板盘点2022——(涨价榜)
10. Nano Pi R2S 185元 ->295元 涨幅159% 它,有着极高的人气,在软路由领域大施拳脚,曾经是性价比最高的上网设备之一,但是涨到了300快,你还能不能爱的起来呢.其他参数 ...
- 【 I.MX6U-ALPHA 】嵌入式Linux Ubuntu系统入门系列(二)Ubuntu 系统入门
目录 1.Ubuntu系统初体验 1.1.开启Ubuntu虚拟机 1.2.系统设置 1.3.中文输入法 1.4.Ubuntu终端操作 2.Shell操作 2.1 Shell基本操作 2.2.常用She ...
- ubuntu、jetson nano 远程桌面xrdp配置教程
ubuntu.jetson nano 远程桌面xrdp配置问题 配置步骤: jetson nano配置过程中出现报错解决 jetson nano配置xrdp后,无法打开终端Terminal 方案 相同 ...
- 阿里云物联网Iot设备上下线状态数据流转的设置
要想通过物联网平台实现远程监控设备,那么就要建立监控端设备(比如手机)和被监控端设备的数据交互,在阿里云物联网平台完成这个交互功能的方法就是建立两个设备之间的数据流转,对于设备要流转的物模型数据,阿里 ...
- linux校园网电脑开wifi密码,Linux/Ubuntu 16.04 使用校园网客户端Dr.com DrClient 有线连网,同时开启WiFi热点...
前面写过Ubuntu 16.04 使用校园网客户端 DrClient 无线上网,在这篇文章中将要介绍下,在Ubuntu 16.04上如何使用校园网客户端实现有线登录,这个问题也让博主困惑了很久,但是问 ...
- linux下交叉编译date命令,arm移植NTP(同步嵌入式linux系统时间)
一.说明 网络时间协议Network Time Protocol(NTP) 是一种确保时钟保持准确的方法.如果可以访问互联网,只需安装ntp的客户端软件到互联网上的公共ntp服务器自动修正时间即可 二 ...
- 嵌入式 linux 系统开发网络的设置
目录 一.前言 二.linux网络静态地址设置 前言 为什么要对linux系统下的ubuntu进行网络设置呢? 因为我们在嵌入式开发中,我们要保证windows系统.linux系统.开发板的ip要处于 ...
- 将svn设置开机启动linux,ubuntu安装SVN并设置开机启动
1.下载并安装 apt-get install subversion 2.创建SVN目录并修改权限 mkdir /home/svn/project chmod -R 666 /home/svn/pro ...
- opencv qt5安装linux,Ubuntu OpenCV安装和设置(Qt5吗?)
问题描述 新的Linux用户.操作系统:Ubuntu 14.04 Install:OpenCV 2.4.9 我正在尝试安装OpenCV以便在代码块(或其他IDE)上使用.我已经遵循(或实际上试图遵循) ...
最新文章
- crontab 只执行一次_linux计划任务-单次任务(at)与循环任务(crontab)
- 05-CA/TA编程:hmac demo
- python3使用SQLALchemy报错No module named ‘MySQLdb‘
- Customer Material Info in CRM and C4C
- 献给母亲节的沙画,致此生最爱——母亲!
- 实现threadlocal_ThreadLocal如何实现?
- 【文件系统】浅解释FAT32
- 移除apt源_apt提示处理归档 (--unpack)时出错的解决办法
- springboot中使用redis的案例
- wordpress iDowns-v1.8.3下载类主题无缝对接erphpdown会员中心+在线充值+VIP开通+卡密插件
- 开源版禅道与jira bug关联
- 2023年入学华东师范大学MBA提前面试流程及时间-文都管联院
- OCCT示例学习笔记3--Modeling项目
- CMAQ5.3安装笔记
- ae渲染存在偏移_以后请不要问我AE和PR有什么区别了...
- 字符串到字节数组和字节数组到字符串的转换(编码和解码问题)
- EmguCV学习(三)
- 火狐浏览器油猴子GreaseMonkey使用教程
- Python中的 ctypes 的用法(byref)
- mysql join w3cshool_mysql innerjoin left join right join 解析