第六章 文件系统定制

从project/image/configs/i2m/rootfs.mk中可以得知,最小文件系统由project/image/rootfs/rootfs.tar.gz 和 project/image/busybox/busybox-1.20.2-arm-linux-gnueabihf-glibc-8.2.1-dynamic.tar.gz构成。

# vi project/image/configs/i2m/rootfs.mk

BUSYBOX 来自 project/configs/nvr/i2m/8.2.1/spinand.glibc.011a.64

.PHONY: rootfs root app
rootfs:root app
root:
    cd rootfs; tar xf rootfs.tar.gz -C $(OUTPUTDIR)
    #tar xf busybox/$(BUSYBOX).tar.gz -C $(OUTPUTDIR)/rootfs
    tar xf $(LIB_DIR_PATH)/package/$(LIBC).tar.gz -C $(OUTPUTDIR)/rootfs/lib
    mkdir -p $(miservice$(RESOUCE))/lib
    cp $(LIB_DIR_PATH)/mi_libs/dynamic/* $(miservice$(RESOUCE))/lib/
    cp $(LIB_DIR_PATH)/ex_libs/dynamic/* $(miservice$(RESOUCE))/lib/

因此,我们可以通过定制project/image/rootfs/rootfs.tar.gz 和 project/image/busybox/busybox-1.20.2-arm-linux-gnueabihf-glibc-8.2.1-dynamic.tar.gz来定制文件系统。

在第二章中介绍了buildroot的编译,编译完成后,生成了output/images/rootfs.tar,执行以下命令重新打包:

# mkdir output/images/rootfs
# tar -xvf output/images/rootfs.tar -C output/images/rootfs
# cd output/images/
# tar -cvf rootfs.tar.gz rootfs

注意:请在与rootfs同级目录下,压缩rootfs,否则会导致编译出错

  • 替换目标文件系统

    # cp output/images/rootfs.tar.gz  ../project/image/rootfs/rootfs.tar.gz -f
  • 关闭busybox
    由于使用 buildroot 编译出来的文件系统已经包含了 busybox,因此不再需要原来的 busybox:

    # vi project/image/configs/i2m/rootfs.mk

  • 修改rootfs文件系统的读写权限
# vi /project/image/configs/i2m/spinand.ubifs.p2.partition.config

  • 编译
    ./Release_to_customer.sh -f nand -p ssd201
文档更新时间: 2022-04-13 17:22   作者:Aeeditor