# 开发历程与版本沿革 > 依据 opencode 会话记录(12 个会话、3124 条消息、2026-08-11 → 2026-10-22)、 > 原始工作目录 `/root/hd-ws`(rtsp / rtsp588 / rtsp568)以及 deploy 目录下的 > 22 个部署包整理。 ## 1. 目录沿革 | 目录 | 说明 | 时间 | |---|---|---| | `/root/hd-ws/rtsp` | 最早版本(RK3588 平台原版拷贝) | 2026-08 前 | | `/root/hd-ws/rtsp588` | 中间快照(RK3588 平台) | 2026-08 前 | | `/root/hd-ws/rtsp568` | **转 RK3568 后的正式版本**(08-11 定为正式版) | 2026-08-11 | | `/root/layoutx` | 09-04 迁移后的现行开发目录(git 仓库) | 2026-09-04 起 | ## 2. 开发时间线 | 日期 | 阶段 | 开发内容 | |---|---|---| | 08-11 ~ 08-12 | ① RK3588→RK3568 迁移 | 编译/依赖/字体缺失修复;移除推理(YOLO)功能与资源占用 | | 08-11 | ① | 单通道 layout 自动使用主码流;测试跳转 10s→5s;摄像头离线不卡帧+自动重连;画幅切换时 nosignal 显示 | | 08-11 | ① | 软件标题命名建议;本目录定为正式版本 | | 08-12 | ① | PLC 离线右下角红字告警(出现闪屏,后续撤回);run_local 本地测试安装脚本 | | 08-12 | ① | importbuffer_fd 报错/画面闪排查;进程残余、CPU 高占用修复;plc 改用远程服务 | | 08-12 ~ 08-14 | ① layout 重构 | 多行自适应布局(首行 N 个/各行按比例占高、撑满);大/小画面组合设计(layout0-4:1~3 个大画面+其余小画面);字符占位配置;宽高比不变形 | | 08-13 | ① | 网格线叠加;海康 ISAPI 批量配置主/子码流(channels_isapi.conf);调试进程清理 | | 08-13 ~ 08-14 | ① | importbuffer_fd 修复 | | 08-25 | ② 只读调研 | 视频管线核心模块与应用层审计,输出优化点清单 | | 09-04 | ③ 目录迁移 | `/root/hd-ws/rtsp568`→`/root/layoutx`;build.sh 修复;花屏/importbuffer 修复 | | 09-04 | ③ 部署化 | plc_server.sh 前台运行(Ctrl+C 全退出);deploy/ 目录 + pack.sh 打包(首批 20260904) | | 09-04 | ③ PLC | DB 块地址解析修正;plc_sim 同步更新 | | 09-04 ~ 09-05 | ③ | 自动重启设备(日/周+时间,conf 可配);一键部署新主机脚本(192.168.1.243/root/123456);README 更新 | | 09-05 | ④ 部署实战 | 离线依赖问题暴露调整;部署后标题/字体修复;PLC 未监听 0.0.0.0 修复 | | 09-14 | ④ PLC | PLC 连接日志排查;TSAP/Rack/Slot 解答;DB1000 读点测试;bool 位解析定位 | | 09-15 | ④ 网页配置 | web 页面上线(8080/密码 3730):改 PLC/摄像头地址、layout、tsap;中文页面;保存格式修复 | | 09-15 ~ 09-16 | ④ 布局 | 上下分割布局(上 30% 五路小画面+下 70% 按点位 1~3 路,宽高比居中);plc_rules 语义重写(任一触发/全部触发、无匹配回退默认、恢复回默认) | | 09-19 | ④ 稳定性 | 黑框+fps=0 修复;断线重连机制(摄像头/PLC 重上线);网页中文乱码修复;批量拷贝部署脚本化 | | 09-21 | ④ 现场闪屏 | 根因 RGA “4G MMU 不支持” → 输出缓冲优先走 dma32 heap(其次 cma、普通内存);根目录写满(kern/syslog 各 12G)治理 | | 09-21 | ④ 无显示器开机 | 先启动服务后接显示器只显示桌面 → display_init 等显示器重试;HDMI 分配器/录像机切换场景排查(与分配器无关);systemd 自启动适配 | | 09-21 | ④ PLC 规则修正 | 按用户改动的 [plc_rules] 语义改代码;触发后恢复回默认布局修复 | | 09-21 | ④ 网页 IP | 网页查看/修改设备 IP(多网段添加);网页保存配置;定时重启功能与每天凌晨重启确认 | | 10-13 | ⑤ 拔插稳定性 | 频繁拔插 AtomicCommit EINVAL/第二次回桌面修复;紫色画面排查 | | 10-13 | ⑤ color_format | HDMI RGB 值 `display_set_color_format(1)` 代码硬编码;diag.sh 诊断脚本 | | 10-13 | ⑤ 生产部署 | 216 生产板部署:标题栏字体修复、TSAP、PLC 连接状态角标、网页可配 tsap | | 10-14 | ⑤ 离线部署 | install.sh 依赖自检(ldd+gst-inspect),完全离线安装,无需联网 | | 10-14 | ⑤ 防抖 | plc_debounce_ms(300ms 连续稳定才切换,防点位瞬间触发闪切);网页可配 | | 10-14 | ⑤ 网络管理 | 网页添加 IP 走 NetworkManager(nmcli con mod+reapply 持久化);两块板各加 192.168.100.x | | 10-14 | ⑤ service 秒停 | display_init 等显示器循环加入 g_running 检查,stop 卡 90s→363ms | | 10-14 | ⑤ 静态 IP | install.sh 内置给 eth0 追加 192.168.100.245/24(保留 DHCP) | | 10-14 | ⑤ 画面 IP 角标 | 左下角显示 eth0 全部 IPv4(每秒刷新);防忘 IP | | 10-20 | ⑤ 拔插根治 | NV12 缓冲区 vs 显示模式 mismatch → einval 死循环;修复=重建优先选匹配模式+SRC/CRTC 几何分离(支持缩放) | | 10-20 | ⑤ 定版 | 换分辨率屏需重新上电(用户决定保持不动);打包 20261020_010600 | | 10-22 | ⑥ 版本管理 | 汇总开发历程;git 仓库初始化并打 v1.0-prod 标签 | ## 3. 部署包(平台版本)沿革 | 部署包时间戳 | 二进制 md5 | 主要变化 | |---|---|---| | 20260904_092418 / 093406 | - | 首批打包(部署化试行) | | 20260905_003525 / 20260909_045758 | - | 部署脚本调整 | | 20261013_080759 / 084753 | - | ⚠️ 已弃用(紫色画面修复前) | | 20261013_085429 ~ 092459 | - | color_format 硬编码、生产板初部署 | | 20261014_022843 | 69ad… | ⚠️ 已弃用 | | 20261014_025142 | ce428058 | 布局防抖 | | 20261014_030341 | 7b8460d6 | + 网页防抖参数 | | 20261014_032433 | 0d8e313f | + 网页加 IP 走 NetworkManager | | 20261014_034552 | 5785af80 | + systemctl stop 秒退修复 | | 20261014_062749 | d2b642cc | + 画面 IP 角标(217 现仍是此版) | | **20261020_010600** | **63252ff9** | **+ 拔插显示器分辨率自适应(当前最新)** | ## 4. 当前版本状态(2026-10-22) | 项 | 状态 | |---|---| | 开发机(232)编译产物 | `63252ff9afca147bd89edd1c3907280d` | | 生产板 216 | `63252ff9…`(最新,含拔插修复) | | 生产板 217 | `d2b642cc…`(缺拔插修复,离线待更新) | | 现场约定 | 换不同分辨率显示器后**重新上电** | ## 5. git 版本管理 | 项 | 说明 | |---|---| | 仓库位置 | `/root/layoutx`(自 2026-10-22 起) | | 基线提交 | `a7697d4`(main 分支) | | 标签 | `v1.0-prod`(对应部署包 20261020_010600) | | 忽略项 | build/、build_asan/、deploy/*.tar.gz、models/(143M 权重,推理已移除)、二进制、运行日志 | | ⚠️ 注意 | channels.conf* 内含摄像头凭证与网页密码,仓库仅限内网/离线保存 | | 原始历史 | `/root/hd-ws` 三个目录保持原样,如需可导入为分支 |