【飞腾平台实时Linux方案系列】第二十七篇 - 飞腾平台实时Linux故障诊断与预警方案

一、简介:国产芯 + 关键行业,“0 故障”是硬指标

  • 飞腾 CPU(Phytium)已规模应用于能源、矿山、轨道交通等国产化改造场景,替代 X86 实时控制器。

  • 痛点

    • 井下 500 米,重启一次 = 停产 4 h → 必须“提前 10 min 预警”而非事后救火。

    • 轨道信号系统 SIL 2 认证要求:故障可检测率 ≥ 90%,定位时间 ≤ 5 min。

  • 目标

    • 采集内核调度、硬件温度、任务错过截止期(Deadline Miss)等 30+ 指标;

    • 边缘侧 200 ms 内完成异常判断,就地声光报警 + 上传 SCADA;

    • 100% 适配飞腾 FT-2000/4、D2000,无需额外硬件。


二、核心概念:5 个关键词先搞懂

关键词一句话飞腾特色
实时任务必须在截止期前完成,否则算故障支持 SCHED_FIFO/RR + SCHED_DEADLINE
Deadline Miss任务实际完成时间 > 截止期内核 tracepoint 可捕获
PMU性能监控单元,读 CPU 温度、Cache Miss飞腾 PMUv3 驱动已进主线 5.18
ftrace内核函数跟踪,定位抖动源头支持 function_graph
local RAM buffer边缘侧环形缓存,网络断开也能存 1 h 数据避免矿山井下信号丢失

三、环境准备:10 分钟搭好“飞腾故障诊断工作台”

1. 硬件

  • 飞腾 FT-2000/4 开发板(4 核 A76,2.2 GHz)× 1

  • 国产 OS:银河麒麟 V10 SP2(内核 5.15.71-rt53)

  • USB 转串口 × 1(115200,系统控制台)

2. 软件

版本安装命令
rt-tests2.5sudo apt install rt-tests
trace-cmd3.1.6sudo apt install trace-cmd
Python33.8自带
matplotlib3.5pip3 install matplotlib

3. 确认实时内核

uname -r # 5.15.71-rt53 cat /boot/config-$(uname -r) | grep CONFIG_PREEMPT_RT # 应显示 CONFIG_PREEMPT_RT=y

四、应用场景(300 字):井下防爆交换机实时控制

某煤矿井下 502 采区部署飞腾防爆交换机,运行 SCHED_DEADLINE 采样任务:每 10 ms 采集瓦斯浓度,错过截止期立即断电器。井下湿度 95%、粉尘大,不允许随意开盖检修。本方案通过:

  1. 内置传感器 + PMU 监控 CPU 温度;

  2. 内核 tracepoint 捕获 Deadline Miss;

  3. 本地 RAM 缓存 1 h 数据,4G 信号恢复后批量上传地面 SCADA; 实现“故障提前 10 min 预警”,避免瓦斯超限爆炸风险,保障国产化替代后安全等级不降。


五、实际案例与步骤:30 分钟跑完“采集-报警-可视化”

所有脚本放/home/phytium/diag/目录,可一键 Git 克隆。

5.1 步骤 1 - 采集 Deadline Miss 事件

#!/bin/bash # trace_deadline.sh echo "开始捕获 Deadline Miss ..." sudo trace-cmd start -e sched:sched_deadline_miss sleep 30 sudo trace-cmd stop sudo trace-cmd extract -o deadline.dat trace-cmd report deadline.dat | grep sched_deadline_miss > miss.log

结果示例

<...> sched_deadline_miss: pid=1234 runtime=1000000 deadline=10000000

→ 任务 1234 实际运行 10 ms,错过 10 ms 截止期。

5.2 步骤 2 - 读取飞腾 CPU 温度(PMU)

/* temp_pmu.c */ #include <stdio.h> #include <stdlib.h> int main() { FILE *fp = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); int millideg; fscanf(fp, "%d", &millideg); printf("CPU Temp: %.2f °C\n", millideg / 1000.0); fclose(fp); return 0; }

编译:

gcc temp_pmu.c -o temp_pmu ./temp_pmu

输出:

CPU Temp: 67.32 °C

飞腾驱动已把 PMU 温度对接 thermal 子系统,无需额外驱动。

5.3 步骤 3 - 本地环形缓存(Python)

# ring_buffer.py import collections, json, time buf = collections.deque(maxlen=36000) # 1h 数据,10 s 一条 def sample(): while True: temp = float(open('/sys/class/thermal/thermal_zone0/temp').read()) / 1000 miss = 0 try: with open('miss.log') as f: miss = len(f.readlines()) except: pass buf.append({'ts': time.time(), 'temp': temp, 'miss': miss}) time.sleep(10) if __name__ == '__main__': sample()

后台运行:

nohup python3 ring_buffer.py &

5.4 步骤 4 - 异常判断 & 声光报警

# alarm.py import time, os THRESH_TEMP = 75 # °C THRESH_MISS = 2 # 10 s 内 miss 次数 while True: time.sleep(10) temp = float(open('/sys/class/thermal/thermal_zone0/temp').read()) / 1000 miss = len(open('miss.log').readlines()) if os.path.exists('miss.log') else 0 if temp > THRESH_TEMP or miss > THRESH_MISS: print("ALARM: 高温度或DeadlineMiss!") os.system('echo 1 > /sys/class/leds/user_led0/brightness') # 点亮 LED else: os.system('echo 0 > /sys/class/leds/user_led0/brightness')

飞腾板载 user_led0,无需外接硬件即可声光提示。

5.5 步骤 5 - 地面 SCADA 上传(4G 断点续传)

#!/bin/bash # upload.sh while true; do if ping -c1 192.168.100.1 &>/dev/null; then # 检测 4G 网关心跳 jq -s . /tmp/buf.json | curl -X POST -d @- http://scada.mine.com/api/metrics > /tmp/buf.json # 上传成功清空 fi sleep 60 done

断网期间数据缓存在ring_buffer.py的 deque 里,网络恢复后自动补传。


六、常见问题与解答(FAQ)

问题现象解决
trace-cmd 无 sched_deadline_miss 事件内核未开 tracepoint确认 CONFIG_SCHED_DEBUG=y
温度文件不存在/sys/class/thermal 为空飞腾 PMU 驱动未加载,升级至 ≥5.15 内核
LED 节点不存在无 user_led0检查设备树,或外接 GPIO 灯,改路径即可
4G 上传报 502井下信号不稳本地缓存 + 断点续传,失败重试 3 次
miss.log 数据量过大1 天达百 MB环形缓存只保留最近 36000 条,自动覆盖

七、实践建议与最佳实践

  1. 指标精简
    只采集“温度 + Deadline Miss + 负载”3 项,既满足 SIL 2 可追溯,又降低带宽。

  2. 缓存双保险
    RAM 环形缓存 + 掉电保护 SPI Flash 各存 1 份,防爆场合避免数据丢失。

  3. 阈值自学习
    运行 1 周后,用 Pythonnumpy.percentile自动生成动态阈值,减少误报。

  4. 故障码标准化
    参考 CANopen 协议,定义 16 位故障码:高 8 位模块号,低 8 位错误号,便于 SCADA 解析。

  5. 远程 OTA 升级
    诊断脚本亦通过 OTA 下发,新版本先做灰度验证,再全量升级,避免“检修开盖”。

  6. 审计追踪
    所有日志带 SHA-256 校验,防止井下人员误删,满足矿山安全监察局电子记录要求。


八、总结:一张脑图带走全部要点

飞腾实时故障诊断 ├─ 采集:PMU 温度 + ftrace Deadline Miss ├─ 缓存:本地环形缓冲 + SPI Flash 双保险 ├─ 报警:LED 声光 + 4G 断点续传 ├─ 上传:JSON + REST 断网重试 └─ 合规:SHA-256 校验 + 动态阈值

国产化 ≠ 功能替代,
“国产芯 + 实时预警”才是能源、矿山、轨道交通的终极安全底座。

把本文脚本克隆到飞腾板里,跑一遍trace_deadline.sh,再看 LED 随温度闪烁——
你会真切感受到:实时 Linux 不仅能“跑得快”,更能“跑得稳、说得清、查得到”。

下一产线改造,就把这份“故障诊断小盒子”一并上架,让运维同事告别“下井猜故障”的黑暗时代!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1218418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作简单,功能强大!小白也能轻松上手的专业级投票系统源码分享

温馨提示&#xff1a;文末有资源获取方式每一个现象级刷屏投票活动的背后&#xff0c;都离不开一个稳定、强悍、可扩展的技术系统支撑。面对瞬时涌入的巨额流量&#xff0c;系统崩溃、投票卡顿、数据丢失无疑是运营者的噩梦。我们深度研发的微信投票系统源码&#xff0c;正是从…

优化显存使用:YOLOv9多图推理调优实践记录

优化显存使用&#xff1a;YOLOv9多图推理调优实践记录 在部署YOLOv9进行批量图像检测时&#xff0c;你是否遇到过这样的情况&#xff1a;单张图推理流畅&#xff0c;但一开多图就报错CUDA out of memory&#xff1f;显存占用从1.8GB飙升到5.2GB&#xff0c;GPU利用率却只有40%&…

新手必看:什么是‘PREVIOUS OPERATION HAS NOT FINISHED‘错误?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个简单的教学示例&#xff0c;展示PREVIOUS OPERATION HAS NOT FINISHED错误的产生和处理。要求&#xff1a;1) 一个会故意产生该错误的Python脚本 2) 基本的错误处理代码 3…

BLENDER快捷键零基础入门:从完全不会到熟练使用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个BLENDER新手快捷键学习平台&#xff0c;包含&#xff1a;1. 分难度级别的快捷键课程&#xff1b;2. 内置练习用的BLENDER场景文件&#xff1b;3. 实时操作反馈系统&#x…

曾经风光无限的 JSP,为什么现在很少有人使用了?

曾经风光无限的 JSP (JavaServer Pages)&#xff0c;在 2000–2010 年代确实是 Java Web 开发的“国民技术”&#xff0c;几乎所有 Java EE 项目都在用它做动态页面。但到了 2025–2026 年&#xff0c;新项目中几乎已经看不到 JSP 的身影了&#xff08;维护老项目除外&#xff…

【Django毕设全套源码+文档】基于Django的教材管理网站设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

AI助力WIN10 LTSC精简版系统定制开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 使用AI生成一个WIN10 LTSC精简版的定制脚本&#xff0c;自动移除不必要的系统组件&#xff08;如Cortana、Edge浏览器等&#xff09;&#xff0c;保留核心功能&#xff0c;优化系统…

零基础教程:5分钟学会用在线POSTMAN测试API

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向初学者的POSTMAN使用教程&#xff0c;包含&#xff1a;1. 如何发送第一个GET请求&#xff1b;2. 解读响应结果&#xff1b;3. 添加简单断言&#xff1b;4. 保存和分享…

是否要坚持走C++开发方向?

是的&#xff0c;在2026年&#xff0c;坚持走C开发方向仍然是可行的&#xff0c;甚至在某些领域是非常有竞争力和高回报的选择&#xff0c;但前提是你要选对细分赛道&#xff0c;并且愿意接受它的高难度和较长的投入周期。 下面从2025–2026年的真实数据和趋势给你一个相对客观…

【Django毕设全套源码+文档】基于Django的协同过滤的个性化电影推荐系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

Windows与iPhone连接故障排除指南:从识别异常到网络共享的实用解决方案

Windows与iPhone连接故障排除指南&#xff1a;从识别异常到网络共享的实用解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gi…

企业级项目DEPENDENCIES管理实战:从下载到优化

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个企业级依赖管理仪表盘&#xff0c;集成以下功能&#xff1a;1)多镜像源自动切换(阿里云、腾讯云等) 2)依赖安全漏洞扫描(CVE数据库对接) 3)依赖使用情况分析(标记未使用的…

新手也能懂的语音情感识别:科哥镜像保姆级教程

新手也能懂的语音情感识别&#xff1a;科哥镜像保姆级教程 1. 为什么你需要这个教程&#xff1f; 你有没有遇到过这样的场景&#xff1a;客服电话里听出对方语气不对劲&#xff0c;却说不清是生气还是疲惫&#xff1b;团队会议录音里有人明显不认同方案&#xff0c;但文字记录…

消息留存工具深度解析:即时通讯增强插件的技术实现与应用指南

消息留存工具深度解析&#xff1a;即时通讯增强插件的技术实现与应用指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://git…

DLSS Swapper:探索超采样技术的游戏画质优化之旅

DLSS Swapper&#xff1a;探索超采样技术的游戏画质优化之旅 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在游戏世界中&#xff0c;画质与性能的平衡一直是玩家追求的目标。DLSS Swapper作为一款专注于超采样技术管…

NetDXF:.NET平台下的DXF文件处理技术解决方案

NetDXF&#xff1a;.NET平台下的DXF文件处理技术解决方案 【免费下载链接】netDxf .net dxf Reader-Writer 项目地址: https://gitcode.com/gh_mirrors/ne/netDxf 在工程设计与CAD开发领域&#xff0c;DXF文件作为数据交换的核心载体&#xff0c;其处理效率直接影响项目…

发现你的虚拟伙伴:探索桌面互动宠物的沉浸式互动体验

发现你的虚拟伙伴&#xff1a;探索桌面互动宠物的沉浸式互动体验 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 在数字工…

Open-AutoGLM深度体验:跨应用任务全自动化

Open-AutoGLM深度体验&#xff1a;跨应用任务全自动化 1. 这不是“手机遥控”&#xff0c;而是真正能思考的AI助手 你有没有过这样的时刻&#xff1a;想在小红书看到一款洗发水&#xff0c;顺手就想查它在京东和淘宝的价格&#xff0c;再比一比哪家更便宜&#xff1f;结果打开…

技术周报|Claude Code超级能力登顶,AI编程工具周榜狂揽2.2万星

&#x1f31f; TrendForge 每日精选 - 发现最具潜力的开源项目 &#x1f4ca; 本周共收录 5 个热门项目&#xff0c;涵盖 50 种编程语言&#x1f310; 智能中文翻译版 - 项目描述已自动翻译&#xff0c;便于理解&#x1f3c6; 本周最热项目 Top 10 &#x1f947; obra/superpow…

三步解锁音乐解析与音质获取:网易云无损音频提取技术指南

三步解锁音乐解析与音质获取&#xff1a;网易云无损音频提取技术指南 【免费下载链接】Netease_url 网易云无损解析 项目地址: https://gitcode.com/gh_mirrors/ne/Netease_url 在数字音乐时代&#xff0c;高品质音频提取已成为音乐爱好者的核心需求。本指南将系统介绍如…