跳转至

配置产出案例的文件系统镜像

文档介绍如何编译构建出文件系统镜像。

适用场景

适用于需要配置案例通过CMake编译出文件系统的场景。

所需条件:

  • 案例源码目录下已存在 rootfs/CMakeLists.txt。尚无 rootfs/CMakeLists.txt 的案例需参照已有案例自行添加。

步骤

以下内容以Hispark SDK 为例介绍,其他版本 SDK 可进行内容参考。

创建或修改 rootfs 的编译文件

对于不存在 rootfs/CMakeLists.txt 的案例,需要模仿其他案例编写以下内容:

  • rootfs/CMakeLists.txtrootfs_prepare 部分:将文件放入打包前的临时文件系统
  • rootfs/CMakeLists.txtinstall 命令部分:执行真正的文件系统镜像构建
  • 在案例自身的总 CMakeLists.txt 尾部,将 rootfs 目录加入编译链。

开启编译出文件系统选项

临时配置方法: 执行 menuconfig,进入 TUI 界面:

bash scripts/build.sh menuconfig --target <BOARD> <APP_TYPE> <APP_NAME>

依次进入以下菜单,开启编译文件系统所需的选项:

  1. 开启BSP编译:SDK Build -> Build BSP
  2. 编译完成后自动进行安装:Build-> Run cmake --install after build

保存退出后,menuconfig 自动更新 .config.config.cmake.target。 执行以下命令编译:

bash scripts/build.sh

⚠️ 不要加 --target 指定编译,避免选项被覆盖。 若需持久化该配置,去源码目录修改 app.defconfig 的对应选项: 开启 BSP 编译:CONFIG_SDK_BUILD_BSP 编译完成后自动进行安装:CONFIG_BUILD_INSTALL

将编译产物打包进镜像

⚠️ 注意:编译产物不会自动进入 rootfs 镜像——镜像中具体包含哪些文件,由案例 rootfs/CMakeLists.txt 中的 rootfs_prepare 部分决定。

如需将新增的编译产物打包进镜像,需参考其他案例的 rootfs/CMakeLists.txt 修改源码的rootfs_prepare部分,实现将编译产物打包进文件系统。

然后执行命令。

cmake --build _build --target <cmake实际编译目标>
cmake --install _build

验证

  1. _build/install/ 目录下生成烧录镜像文件,包含 uImage、分区表等
  2. BSP的产物路径存在 uImage