buildroot的overlay文件拷贝机制BR2_ROOTFS_OVERLAY Buildroot在应用多个Overlay目录时采用的是“顺序拷贝后者覆盖前者”的简单机制顺序拷贝与同名覆盖这个过程的核心可以拆解为两个基本动作顺序处理当你在BR2_ROOTFS_OVERLAY中指定了多个Overlay目录例如dirA dirBBuildroot会严格按照从左到右的顺序去处理它们。同名覆盖对每个Overlay目录Buildroot会使用rsync命令将其内容递归地复制到最终的文件系统目录output/target/中。当rsync在复制过程中遇到与目标路径下已存在且文件名相同的文件时默认行为就是直接覆盖。这个“顺序覆盖”的机制确保了后面的Overlay目录拥有最高的定制优先级。 针对你的场景分析将此原理应用到你的配置 (BR2_ROOTFS_OVERLAYboard/rockchip/rk3562/fs-optmv-app-scs3/ board/rockchip/rk3562/fs-optmv-scs3/)执行流程如下先处理fs-optmv-app-scs3Buildroot会先将fs-optmv-app-scs3目录下的所有内容复制到output/target/根目录中。再处理fs-optmv-scs3紧接着Buildroot会处理fs-optmv-scs3目录同样将其内容复制到output/target/。发生覆盖如果这两个目录在相同路径下比如都有/usr/bin/my_app那么作为后者的fs-optmv-scs3目录中的同名文件就会覆盖掉前者fs-optmv-app-scs3中已存在的那个文件。最终在生成的根文件系统中你将看到fs-optmv-scs3中的那个版本。后者覆盖前者 如何应对覆盖理解了这个原理你可以根据需求选择以下策略按需调整顺序让重要文件后出现。如果需要fs-optmv-app-scs3中的文件不被覆盖可以将其放在后面。合并同路径文件如果需要在已有文件基础上追加内容可先将被覆盖的文件内容提取到fs-optmv-scs3的同名文件中进行整合或使用更灵活的post-build脚本。区分独立文件如果两个目录的内容完全独立且无路径冲突则无需担心。 总结BR2_ROOTFS_OVERLAY机制的本质就是一个按顺序执行的rsync复制过程后处理的目录会覆盖前者的同名文件。在设计你的Overlay目录结构时深刻理解并利用这个“顺序覆盖”原则可以帮助你更精确地控制最终的根文件系统。举个栗子合入的bin文件没法同步更新到位,简单理解就是在buildroot下面的overlay拷贝文件的时候先后顺序问题导致没有拷贝过去。原本的hzssr658:~/rk3562-v1.2.0-sdk/buildroot$ git diff ./ diff --git a/configs/rockchip_rk3562_scs3_defconfig b/configs/rockchip_rk3562_scs3_defconfig index 6891ab51cb..ba1664db79 100644 --- a/configs/rockchip_rk3562_scs3_defconfig b/configs/rockchip_rk3562_scs3_defconfig -32,7 32,7 BR2_PACKAGE_ROCKCHIP_MALIy BR2_TARGET_GENERIC_HOSTNAMERK3562 BR2_TARGET_GENERIC_ROOT_PASSWD1 BR2_ROOTFS_OVERLAYboard/rockchip/rk3562/fs-optmv-app-scs3/ board/rockchip/rk3562/fs-optmv-scs3/原本以为后面的会覆盖前面的所以尝试修改为编译后还是无效经排查但实际的打包到的是board/rockchip/rk3562/fs-optmv-app-scs1/结合buildroot的提交那么在原有的基础上增加多一个拷贝目录即可注意在编译的时候最好先在buildroot的output目录工程下面target执行rm -rf 删除执行的先再去编译确保更新到位最后解决方案为在buildroot的配置文件中修改如下/buildroot$ vim configs/rockchip_rk3562_scs3_defconfig#BR2_ROOTFS_OVERLAYboard/rockchip/rk3562/fs-optmv-app-scs3/ board/rockchip/rk3562/fs-optmv-scs3/ BR2_ROOTFS_OVERLAYboard/rockchip/rk3562/fs-optmv-app-scs3/ board/rockchip/rk3562/fs-optmv-scs3/ board/rockchip/rk3562/fs-optmv-app-scs1/