Files

4.7 KiB
Raw Permalink Blame History

title, type, permalink, stable_id, scope, project_id, memory_type, status, revision, restored_from_commit, created_at, updated_at, tags
title type permalink stable_id scope project_id memory_type status revision restored_from_commit created_at updated_at tags
Checkpoint 2026-09-16 15:22:45 UTC checkpoint main/projects/6f47523e-e22e-4cdd-bd18-76e5e474ee0c/checkpoint-2026-09-16-15-22-45-utc e591791d-bc20-4b95-bee3-0f99b9815c79 project 6f47523e-e22e-4cdd-bd18-76e5e474ee0c checkpoint active 1 6a6a895eaf 2026-09-23T14:57:59.631730+00:00 2026-09-23T14:57:59.631784+00:00
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后台监控或通知自动化;路由器原生启动服务负责自动归档。当前缺少新的复发现场,尚不能完成根因修复。