> 文档中心 > 移植openharmony之添加根文件系统

移植openharmony之添加根文件系统

在嵌入式系统中,U-Boot,Linux内核,以及根文件系统是必不可少的灵魂存在,上篇文章已经介绍了如何添加linux内核到openharmony编译框架中,现在介绍下如何添加根文件系统到openharmony中,首先需要在vendor/xingyun/t113_nand/目录中添加文件fs.yml,可以从其他地方拷贝过来,需要注意以下地方

fs_make_cmd:    - ${root_path}/device/xingyunelec/t113_nand_linux/packtools/rootfsimg_mk.sh ${fs_dir} ubifs

因为我用的是NAND存储,所以我这边需要把根文件系统做成NAND格式,如果是ext4啥的可以直接不做修改,直接使用build/lite/make_rootfs/rootfsimg_linux.sh作为制作根文件系统镜像的脚本,像我,需要NAND,就需要把此文件拷贝一份,然后添加如下内容,制作成根文件系统

elif [ "${FSTYPE}" = "ubifs" ]; then    if [ "${system}" != "Linux" ] ; then echo "Unsupported fs type!" >&2    else ${UBIFS_TOOL} -m 4096 -e 258048 -c 145 -F -x zlib -r ${ROOTFS_DIR} -o ${ROOTFS_IMG}    fi

然后直接执行hb build,执行结果如下,可以看到编译成功。

[OHOS INFO] [1/12] ACTION //kernel/linux/build:linux_kernel(//build/lite/toolchain:linux_x86_64_ohos_clang)[OHOS INFO] [2/10] ACTION //prebuilts/lite/sysroot/build:build_sysroot(//build/lite/toolchain:linux_x86_64_ohos_clang)[OHOS INFO] [3/10] STAMP obj/prebuilts/lite/sysroot/build/build_sysroot.stamp[OHOS INFO] [4/10] STAMP obj/prebuilts/lite/sysroot/build/build.stamp[OHOS INFO] [5/10] STAMP obj/prebuilts/lite/sysroot/sysroot.stamp[OHOS INFO] [6/10] STAMP obj/build/lite/prebuilts.stamp[OHOS INFO] [7/10] STAMP obj/prebuilts/lite/sysroot/build/strip.inputdeps.stamp[OHOS INFO] [8/10] ACTION //prebuilts/lite/sysroot/build:strip(//build/lite/toolchain:linux_x86_64_ohos_clang)[OHOS INFO] [9/10] ACTION //prebuilts/lite/sysroot/build:strip(//build/lite/toolchain:linux_x86_64_ohos_clang)[OHOS INFO] [10/10] STAMP obj/prebuilts/lite/sysroot/build/strip.stamp[OHOS INFO] xingyun_t113_nand_board build success[OHOS INFO] cost time: 0:00:02

接着我们去out目录下查看有生成我们需要的根文件系统镜像文件rootfs_ubifs.img
移植openharmony之添加根文件系统
至此,添加根文件系统成功