利用LinuxPTP进行时间同步(软/硬件时间戳) - 研一
转自:https://blog.csdn.net/BUPTOctopus/article/details/86246335
官方文档:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s1-using_ptp
查看网卡是否支持软硬件时间戳:
sudo ethtool -T eno1
Time stamping parameters for eno1:
Capabilities:hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)software-system-clock (SOF_TIMESTAMPING_SOFTWARE)hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:off (HWTSTAMP_TX_OFF)on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:none (HWTSTAMP_FILTER_NONE)all (HWTSTAMP_FILTER_ALL)ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)ptpv2-l4-sync (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)ptpv2-l4-delay-req (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)ptpv2-l2-sync (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)ptpv2-l2-delay-req (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT)ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC)ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)
软件时间戳需要包括参数
SOF_TIMESTAMPING_SOFTWARE
SOF_TIMESTAMPING_TX_SOFTWARE
SOF_TIMESTAMPING_RX_SOFTWARE
硬件时间戳需要包括参数
SOF_TIMESTAMPING_RAW_HARDWARE
SOF_TIMESTAMPING_TX_HARDWARE
SOF_TIMESTAMPING_RX_HARDWARE
查看Usage
ptp4l -h
1延迟机制选项-A Auto,自动选择延迟机制。,从E2E开始,当收到对等延迟请求时切换到P2P-E E2E,选择延迟请求 - 响应(E2E)机制。 默认是用这个机制。 单个PTP通信路径上的所有时钟必须使用相同的机制。 使用E2E机制在端口上收到对等延迟请求时,将输出warning-P P2P,对等延迟机制网络传输选项-2 IEEE 802.3-4 UDP IPV4(默认)-6 UDP IPV6时间戳选项-H 使用硬件时间戳(默认)-S 使用软件时间戳 -L LEGACY HW时间戳其他选项-f [file] 从指定文件file中读取配置。 默认情况下不读取任何配置文件。-i [dev] 选择PTP接口设备,例如eth0(可多次指定)必须至少使用此选项或配置文件指定一个端口。-p [dev] 在Linux内核v3.5之前,无法发现与网络接口关联的PHC设备。 此选项指定在旧内核上运行时要使用的PHC设备(例如/ dev/ptp0)。要使用的时钟设备,默认为auto,忽略软件/ LEGACY HW时间戳(不推荐使用此选项)-s slaveOnly mode,从时钟模式(覆盖配置文件)-t 透明时钟模式-l [num] 将日志记录级别设置为'num',默认是6-m 将消息打印到stdout-q 不打印消息到syslog-v 打印软件版本并退出-h help
2、run linuxptp
2.1 软件时间戳,主从模式测试
服务端(主钟):
sudo ptp4l -i enp0s31f6 -m -S
客户端(从钟):
sudo ptp4l -i eno1 -m -S -s
![在这里插入图片描述](https://img-blog.csdnimg.cn/5
fa2f6de3b904a25802eec8b79ae23fe.png)
运行一会儿以后:
log中的内容为:
master offset : 即PTP协议中定义的主从端时间差,单位:ns
s0,s1,s2 : 表示时钟伺服器的不同状态,s0表示未锁定,s1表示正在同步,s2表示锁定,锁定状态表示不会再发生阶跃行同步,只是缓慢调整
freq:
port 0:INITIALIZING to LISTENING on INIT_COMPLET : 本地PTP管理的Unix域socket;
port 1:new foreign … : eno1上的端口;
从钟端口状态由UNCALIBRATED 变为SLAVE时,则从钟已经成功地与best master同步。
2.2 硬件时间戳测试
服务端(主钟):
sudo ptp4l -i enp0s31f6 -m -H
客户端(从钟):
sudo ptp4l -i eno1 -m -H -s
如果要修改系统时间的话,需要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
运行结果:
从钟:
显然用硬件时间戳同步的精度高得多,而且这只是一块普通网卡,走的还是校园网
2.3 配置文件
运行时使用-f可以指定配置文件,命令行会覆盖配置文件,常用的配置项如下(‘#’后面是注释,实际配的时候要留注释的话注释需要单独一行,目前是这样):
[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
2.4 透明时钟(TC)模式测试(已修复)
/- 这个bug已经修复了 -\
TC和BC都需要至少有两个interface;
执行以下命令
sudo ptp4l -i eno1 eno2 -m -H -t
提示无效的选项:
嗯?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,不懂了
手动TC/BC:需要设备有俩网卡,一个卡绑从钟一个卡绑定主钟,来实现TC/BC。效果其实差不多。
最近开发时遇到的USRP的U L O问题:
"U"错误
当host PC或运行于其上的应用程序不能为USRP以足够快速率提供样值时,往往会出现"U"错误,举例说明:USRP以设定的采样速率为5M/s需求样值,而host PC却只能以低于5M/s的速率提供样值时,就会出现"U"错误。
"O"错误
当host PC或运行于其上的应用程序不能以足够快的速率来处理USRP提供的样值时,往往会出现"O"错误,距离说明:当USRP以设定的采样速率为5M/s提供样值,而host PC却只能以处理低于5M/s的速率处理样值是,就会出现"O"错误。
"L"错误
USRP的设计机理是:要求Packet中的时间戳要早于FPGA中的时间戳。如果指令到达FPGA时Packet中的时间戳已经过时,USRP会给出"L"错误,也就是指令到达的时间比预计执行时间要晚。
相关文章:
利用LinuxPTP进行时间同步(软/硬件时间戳) - 研一
转自:https://blog.csdn.net/BUPTOctopus/article/details/86246335 官方文档:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s1-using_ptp 查看网卡是否支持软硬件时间戳: sudo ethtoo…...
《极客时间:左耳听风——程序员练级攻略》【文章笔记个人思考】
原文链接:https://time.geekbang.org/column/intro/100002201 69 | 程序员练级攻略:开篇词70 | 程序员练级攻略:零基础启蒙编程入门入门语言 Python入门语言 JavaScript操作系统入门 Linux编程工具 Visual Studio CodeWeb 编程入门实践项目小…...
Springboot 实践(15)spring config 配置与运用—自动刷新
目前,网络上讲解spring config的自动刷新,都是通过git服务站的webhook功能执行“actuator/bus-refresh”服务实现的自动刷新。我们的前文讲解的配置中心,配置中心仓库使用的时本地地址,如下图所示: 那么,配…...
FirmAFL
FirmAFL使用并改进了Firmdyne模拟方式,并利用AFL对IoT固件实施高通量灰盒Fuzzing。 一、项目简介 FIRM-AFL 是 第一个针对物联网固件的高吞吐量灰盒模糊测试器。 支持mipsel、mipseb和armel三种CPU架构 ,涵盖Firmadyne数据库中90.2%的固件。 FIRM-AFL 解…...
SpringMVC的整合完成CRUD(增删改查)
SpringMVC是一种基于Java的Web框架,它是Spring框架的一部分。SpringMVC通过使用MVC(Model-View-Controller)设计模式来组织和管理Web应用程序的开发。 在SpringMVC中,Model代表数据模型,View代表用户界面,C…...
Postman使用_Tests Script(断言测试)
断言测试可以在Collection、Folder和Request的 pre-request script 和 test script中编写,测试脚本可以检测请求响应的各个方面,包括正文、状态代码、头、cookie、响应时间等,只有测试符合自定义的要求后才能通过。 pm对象提供了测试相关功能…...
问道管理:华为概念股捷荣技术13天10板,监管质疑迎合热点炒作
捷荣技能(002855.SZ)一口气将气氛拉满。 盘面看,自8月29日启动到9月14日,捷荣技能用了13天时间,将累计涨幅推到了188%,期间有10个涨停板,如此冷艳之举,还在于其“华为概念”。 …...
VR云游:让游客足不出户享受旅行的乐趣
随着人们的生活水平不断提高,对于旅行的需求也在日益增长,既要玩的舒心,也要享受的舒服,因此VR全景云游就成为了一种新型的旅行方式,人们足不出户就可以沉浸式游览各地自然风光与名胜古迹。 VR云游景区是一种全新的旅游…...
vue3学习源码笔记(小白入门系列)------ 重点!响应式原理 代码逐行分析
目录 备注响应式数据创建ref 和 reactive 核心 作用第一轮的 依赖收集 发生时机setup 阶段 去更改了 响应式数据 会发生依赖收集吗 派发更新派发更新是什么时候 触发的?扩展: setup阶段 响应式数据被修改 会触发组件更新吗 vue 是如何根据派发更新来触发…...
62、SpringBoot 使用RestTemplate 整合第三方 RESTful 服务
这节的要点: 就是弄两个项目 , 从 端口9090 这个项目,通过 restTemplate, 去访问 端口8080 的项目,并获取8080项目的数据。 ★ RESTful服务包含两方面的含义 1. 自己的应用要暴露一些功能供别人来调用。此时我们是服…...
Linux基本认识
一、Linux基本概念 Linux 内核最初只是由芬兰人林纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多…...
leetcode top 100 (8)无重复字符的最长子串(滑动窗口
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 package TOP1_10;import java.util.HashMap; import java.…...
我也惊呆了!原来软件开发根本不需要会编码
一、前言 众所周知,完成一个大型的企业级系统,公司往往需要大量的人力做支持后盾,例如需要需求分析师、数据库管理员、前台美工、后台程序员、测试人员等。在快速发展中的企业,尤其是中小企业,都是一个萝卜多个坑&…...
定制化图标——Element UI 组件图标替换指南
本篇博客将介绍如何在使用 Element UI 组件时对原生图标进行定制化替换,提供了适用于满足个性化需求的方法和技巧。 引言 Element UI 是一款基于 Vue.js 的流行 UI 组件库,在前端开发中得到广泛应用。然而,在使用 Element UI 的组件时&#…...
63、SpringBoot---定制 RestTemplate--消息转化器、拦截器
★ 定制RestTemplate 如要对RestTemplate进行自定义设置,Spring Boot也提供了两种主要方式:▲ 局部式:在调用RestTemplateBuilder构建RestTemplate之前,先调用RestTemplateBuilder的方法对其定制,通过这种方式设置的R…...
面试系列 - Redis持久化机制详解
目录 一、Redis 持久化机制 二、混合使用 RDB 和 AOF 三、 RDB(Redis DataBase)详解 四、AOF(Append-Only File)详解 Redis 是一个内存数据库,为了持久化数据以确保数据不会在服务器重启时丢失,Redis 提供了两种主要的持久化机…...
Ceph入门到精通-存储集群ceph df 用量统计算法说明
3.2.5. Ceph 如何计算数据使用量 used 值反映了使用的实际原始存储量。xxx GB / xxx GB 代表可用的存储(其中较小的数字)和总存储容量。总容量反映了在复制、克隆或快照前存储数据的大小。因此,实际存储的数据量通常会超过名义上的存储量。这…...
堡垒机的相关介绍
描述 堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审…...
无涯教程-JavaScript - INDIRECT函数
描述 INDIRECT函数返回由文本字符串指定的引用。 如果您在Excel公式中键入引用B1,则Excel会理解这引用了单元格B1。但是,Excel无法将文本字符串" B1"理解为引用。因此,如果单元格引用采用文本字符串的形式,则需要使用INDIRECT函数将其转换为实际的单元格引用。 立…...
LiveNVR监控流媒体Onvif/RTSP功能-支持海康摄像头海康NVR通过EHOME协议ISUP协议接入分发视频流或是转GB28181
LiveNVR支持海康NVR摄像头通EHOME接入ISUP接入LiveNVR分发视频流或是转GB28181 1、海康 ISUP 接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例 3、通道配置3.1、直播流接入类型 海康ISUP3.2、海康 ISUP 设备ID3.3、启用保存3.4、接入成功 4、相关…...
一年一度的中秋节马上又要到了,给你的浏览器也来点氛围感吧
说在前面 一年一度的中秋节马上又要到了,给你的浏览器也来点氛围感吧 🌕🌕🌕 插件设计 效果 首先我们应该要先确定一下我们想要实现的效果是怎样的,如上图,我们希望在页面上鼠标点击的时候会在点击区域随…...
CentOS8安装mysql-community-client错误解决
安装MySQL5.7.37的mysql-community-client-5.7.37-1.el7.x86_64.rpm时,提示如下: 提示的意思是缺少依赖软件包。 使用如下命令安装依赖包: yum install libncurse* 实际安装如下两个软件包。 成功后再次安装mysql-community-client-5.7.37…...
故障排除指南:解决 Kibana Discover 加载中的 6 个常见问题
作者:Steffanie Nestor Discover 是 Elastic 的核心 Kibana UI,用于搜索、过滤和检查(时间序列)数据。 可视化用于数据聚合/摘要。 Discover UI 对于大数据 Elasticsearch 响应具有弹性,但有时会因(未压缩的…...
创建一个简单的外卖订餐系统
在今天的快节奏生活中,外卖订餐系统已经成为了人们日常生活中不可或缺的一部分。这些系统通过在线点餐和配送服务,为用户提供了便捷的用餐体验。在本文中,我们将创建一个简单的外卖订餐系统,使用Python和Flask框架构建后端&#x…...
《追逐胜利:编程之路上的三子棋游戏实践》
文章目录 前言一、三子棋游戏规则二、步骤详解1.游戏菜单的实现2.棋盘的实现2.1 初始化棋盘2.2 打印棋盘 3.游戏逻辑实现3.1 玩家下棋3.2 电脑下棋 4.判断输赢4.1 win函数实现 5.完整代码 总结 前言 大家好!我是艾老虎尤!今天我很高兴来和大家分享我最近…...
身份和访问管理解决方案:混合型IAM
对于依赖于本地 IT 基础结构和传统安全模型的组织,可以更轻松地验证和授权企业网络内的所有内容,包括设备、用户、应用程序和服务器。尝试从公司网络外部获取访问权限的用户使用虚拟专用网络 (VPN) 和网络访问控制 (NA…...
微信小程序动态添加表单模块
先来看看效果: 屏幕录制 2023-09-14 16.33.21 点击添加请假按钮,就会新增一个请假信息表单;点击左上角红色删除按钮,删除当前表单; 源码下载地址:https://download.csdn.net/download/xq30397022/88339822…...
HTML5+CSS3小实例:纯CSS实现彩虹倒映水面的唯美背景
实例:纯CSS实现彩虹倒映水面的唯美背景 技术栈:HTML+CSS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" …...
Beautiful Soup简介
BeautifulSoup是一个Python库,用于从HTML或XML文件中提取数据。它提供了一种简单而直观的方式来遍历、搜索和修改HTML或XML文档的结构。 以下是一些BeautifulSoup的主要功能: 解析器:BeautifulSoup支持多种解析器,包括Python的内置…...
Springboot2.7集成websocket及相关问题
1、集成websocket完整代码 导入maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency> 服务端代码 (1)注入bean Configur…...
360报危险网站/必应搜索引擎首页
C语言基础学习PYTHON——基础学习D1720181014内容纲要:1、jQuery介绍2、jQuery功能介绍(1)jQuery的引入方式(2)选择器(3)筛选(4)文本操作(5)样式操作(6)属性操作(7)文本处理(8)css处理(9)位置(10)事件(11)jQuery扩展3、实例展示4、小结5、推荐1 jQuery介绍jQuery是一…...
做seo 教你如何选择网站关键词/百度竞价推广效果好吗
2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/wsscy2004/article/details/38440247 转载于:https://my.oschina.net/u/1537182/blog/663742...
一个网站同时做百度和360 百度商桥都可以接收客户信息吗/免费seo推广公司
昨天休息的时候,认真的上了好多关于新GCP的课,待我消化一下,回头和大家分享哈。今天给大家介绍的是一位大家都很熟悉的朋友——EXCEL~~~~今天突然提到这个,是因为有小伙伴分享给我了一份EXCEL的快捷键,我把它作为标签放…...
企业网站模板下载哪家口碑好/今天高清视频免费播放
AOP简介&AOP入门案例1,AOP简介1.1 什么是AOP?1.2 AOP作用1.3 AOP核心概念2,AOP入门案例2.1 需求分析2.2 思路分析2.3 环境准备2.4 AOP实现步骤步骤1:添加依赖步骤2:定义接口与实现类步骤3:定义通知类和通知步骤4:定义切入点步骤5:制作切面步骤6:将通…...
网络工程就业前景好吗/百度站长工具seo查询
Linux 0.11-给自己挪个地-02给自己挪个地参考转载给自己挪个地 书接上回,上回书咱们说到,CPU 执行操作系统的最开始的两行代码。 mov ax,0x07c0 mov ds,ax将数据段寄存器 ds 的值变成了 0x07c0,方便了之后访问内存时利用这个段基址进行寻址…...
wordpress里的robots/谷歌优化推广
随机信号处理实验报告学号:201******* 姓名: ******实验1 自相关函数的应用一、实验目的1.理解和掌握自相关函数的定义。2.了解和掌握自相关函数的应用及平稳过程。 3.掌握白噪声及其自相关函数。二、实验环境计算机、MATLAB7.0集成环境三、实验内容与理…...