全志 V851S3 rootfs 机制
2026/6/9 9:25:59 网站建设 项目流程

1. 问题概述

1.1 问题类型

全志 V851S3 Tina 系统单独烧录 rootfs 镜像后 文件系统未更新问题分析

1.2 影响产品

全志 V851S3 平台(Tina Linux 系统,内核 4.9)

1.3 复现概率

100%(稳定复现)

2. 现象描述

2.1 操作步骤

  1. 设备正常开机,进入 Tina Linux 系统

  2. 在设备端替换文件系统内的内容测试无效,测试手动修改 /etc/init.d/rc.final 文件并保存

  3. PC 端使用全志 SDK 编译新 rootfs 镜像(rootfs.fex),镜像内包含原始/新的 rc.final 文件

  4. 通过 PhoenixSuit/Tina 烧录工具,单独烧录新 rootfs 镜像至设备

  5. 烧录完成后重启设备,查看 /etc/init.d/rc.final 文件内容,新烧录 rootfs 镜像内的文件内容未生效

3. 根因分析

3.1 核心机制

全志 V851S3 Tina Linux 默认启用 OverlayFS(叠加文件系统),系统文件分为两层:

底层分区(/rootfs):烧录的 rootfs 镜像分区,默认只读上层缓存(/overlay):设备端手动修改系统文件时,修改内容临时存储在可写缓存区

3.2 优先级规则

系统启动后,优先加载上层缓存(/overlay)内容,再合并底层 rootfs 分区内容,最终展示合并后的文件

3.3 缺陷本质

  • 单独烧录 rootfs 镜像时,仅覆盖底层只读分区(/rootfs),不会自动删除/清空上层缓存(/overlay)

  • 设备端手动修改的 rc.final 长期保存在缓存区,优先级高于底层新镜像内容,导致新文件始终被旧缓存覆盖,无法生效

3.4 设计初衷

  • OverlayFS 作为 Tina 默认设计,目的是保护系统分区、延长 Flash 寿命、防止误删系统文件,但存在“升级镜像不清理缓存”的设计缺陷

5. 解决方案

5.1 临时解决方案(调试阶段)

在设备端执行以下命令,强制清空 Overlay 缓存,恢复底层镜像文件

(1) 清空上层缓存 rm -rf /overlay/*

(2)重启设备 reboot。重启后,/etc/init.d/rc.final 将更新为新 rootfs 镜像内容

5.2 永久解决方案(开发/量产阶段)

方案 1:PC 端 SDK 修改(推荐)

  • 所有系统文件修改,禁止在设备端手动操作,统一在 PC 端 SDK 源码修改

  • 路径:/root/work/allwinner/vse_20250609/target/allwinner/v851s3-SmartMore_spinand/rootfs/

  • 修改对应文件(如 /etc/init.d/rc.final)

  • 重新编译生成 rootfs 镜像

  • 烧录新镜像(量产固件默认无旧缓存,无需手动清缓存)

方案 2:升级脚本强制清缓存

  • 制作升级脚本,烧录 rootfs 前自动执行 rm -rf /overlay/*,清空缓存

方案 3:量产固件关闭 OverlayFS(谨慎)

  • 内核配置关闭 OverlayFS,底层 rootfs 改为可写,适合量产固件(但会牺牲分区保护能力)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询