Files
MemRelay/projects/6f47523e-e22e-4cdd-bd18-76e5e474ee0c/Checkpoint 2026-09-16 15-22-45 UTC.md
T

42 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Checkpoint 2026-09-16 15:22:45 UTC
type: checkpoint
permalink: main/projects/6f47523e-e22e-4cdd-bd18-76e5e474ee0c/checkpoint-2026-09-16-15-22-45-utc
stable_id: e591791d-bc20-4b95-bee3-0f99b9815c79
scope: project
project_id: 6f47523e-e22e-4cdd-bd18-76e5e474ee0c
memory_type: checkpoint
status: active
revision: 1
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
created_at: '2026-09-23T14:57:59.631730+00:00'
updated_at: '2026-09-23T14:57:59.631784+00:00'
tags:
- source-submit
---
## 用户目标与本轮完成
用户要求补齐崩溃采集并修好不定期Wi-Fi消失/整机自动重启,明确授权安装所需模块。已完成采集模块构建、实机部署、开机启动和归档验证;原始崩溃触发模块仍未确定,不能标为故障已修复。
## 关键实现和依据
- 恢复Docker构建镜像openwrt-local-builder:25.12;独立容器ax9000-crash-builder、卷ax9000-crash-build,源码/work/source,宿主临时work/crash-build-source。
- Qosmio源码d6848fa2ea00193b5b7d3973e3990da7f608027c,Linux6.12.91,项目EMC2305补丁,官方OpenWrt GCC14.3.0工具链(下载后SHA256清单核验)。旧outputs/ax9000/ax9000.config只含98个kmod;从实机123个已装kmod补全后,基线kernel.config.set的启用项MD5精确匹配实机kernel ABI:3ca07581b60107336a14a0678bbe242b。不能仅凭旧输出配置构建。
- 构建仅新增PSTORE/REED_SOLOMON选项,modules_prepare后按M=lib/reed_solomon与M=fs/pstore编译。无完整Module.symvers,modpost使用KBUILD_MODPOST_WARN=1;验证所有函数依赖存在、vermagic相同、struct module段大小0x2c0相同,并经正常insmod实机成功解析全部符号,未force或跳过ABI加载检查。
- 已部署/lib/modules/6.12.91/{reed_solomon,pstore,ramoops}.ko。通过标准module参数使用DT已经保留的0x51200000起1MiB;driver_override避免默认4KiB记录布局绑定。5个128KiB崩溃槽+256KiB console+128KiB pmsg,pstore kmsg_bytes=131072。
- /etc/init.d/ax9000-crash-capture启用S11,加载模块、挂载/sys/fs/pstore、调用/usr/sbin/ax9000-crash-archive;脚本检查board/kernel/保留内存边界。归档/root/router-logs/crashes/,单调序号+bootid,最多8份;同boot幂等。服务stop不卸载记录器,保留关机采集。
## 验证
- 测试marker写入/dev/kmsg与/dev/pmsg0,仅rmmod再加载ramoops后,均在/sys/fs/pstore与闪存归档读回;归档SHA256全部通过。第一次归档00000001-4f17b7d8-e6e2-4a6c-94c2-27d27204ae43是测试标记,不是真实崩溃。
- 安装器重复运行成功,服务开机启用,脚本实机SHA256与本地一致,ShellCheck与sh语法检查通过。
- 未重启路由器、未触发测试panic、未改无线/NSS/防火墙。结束23:21 CST uptime36分钟,当前新崩溃未复发。
- RAM重载验证不等于整机warm reset验证,不保证断电留存;下一次实际重启仍需核实U-Boot是否保留该区域。
## 产物与Git
- MemRelay文件仓储已完成上传并status确认:file_id=e93c0f94-8851-4e65-bf65-95005b2e43c7,路径Ax9000WRTBuild/diagnostics/ax9000-crash-capture-6.12.91-3ca07581-20260916.tar.gz;160601字节,SHA256 393add4589f334ceceee83aef413610ed6d4bc193fc83f8b2aeb7b6ebdf5833f。含三个模块、安装与服务脚本、配置基线、构建日志和来源;用途是采集而非故障修复。
- 本地同名outputs安装包可用;构建临时work/脚本和Docker卷保留便于继续定位。
- scripts/diagnostics/含运行脚本与操作README,.gitattributes固定.init的LF。
- 已提交6d963e5 feat: 添加AX9000内核崩溃采集与归档并推送main;此前本地8个待推送提交随main更新一并推送。main与origin/main一致。仅原有两个.runtime修改仍dirty,未提交敏感配置。
## 下一步与给下个会话
1. 继续修复原故障,先读取/root/router-logs/crashes/最新真实dmesg-ramoops和console-ramoops,必要时读/sys/fs/pstore;不要仅看logread,也不要把测试归档当事故。
2. 22:45:13事故已确认内核分页异常后自动重启,用户未手动重启;具体模块未知。完整PC/LR/Call trace得到后根据当前同源码构建树定位;不要仅凭非法地址猜ath11k/NSS/OAF。
3. 若下次重启无pstore记录,先核对S11启动、模块加载和预留RAM是否被bootloader清零;不能声称采集万无一失。原持久system.log/old保持有效,周一10点cron保持。
4. 模块直装不在APK已装列表,不可拿官方不匹配kmod替换;升级内核需重新构建。安装包已保存MemRelay,临时签名URL不能写普通记忆。
5. 没有创建Codex后台监控或通知自动化;路由器原生启动服务负责自动归档。当前缺少新的复发现场,尚不能完成根因修复。