Edit online

制作系统镜像

6 Dec 2024
Read time: 2 minute(s)

本节介绍如何通过工具单独制作 Luban-Lite SDK 支持的文件系统镜像。

Luban-Lite SDK 在编译的最后阶段会自动制作所需要的文件系统镜像。如需独立制作文件系统镜像,可参照本节的镜像制作流程。

制作 FATFS 镜像

  1. 确保编译主机上已经安装 Python3,并进入 Luban-Lite SDK 的根目录。

  2. 将需要打包的文件或文件夹,放到一个独立的文件夹内,例如:
    • Linux: ~/fatfs_root/
    • Windows: D:\fatfs_root\
  3. 根据资源文件大小制作镜像或制作指定大小的文件系统镜像。
    • 如需根据资源文件大小制作镜像,则执行下列命令:
      Linux
      python3 ./tools/scripts/makefatfs.py --auto --cluster 8 --sector 512 --tooldir ./tools/scripts/ --inputdir ~/fatfs_root/ --outfile mytest.fatfs
      Windows
      python tools\scripts\makefatfs.py --auto --cluster 8 --sector 512 --tooldir tools\scripts\ --inputdir D:\fatfs_root\ --outfile mytest.fatfs
    • 如需制作指定大小的文件系统镜像,执行下列命令,以制作一个 100 MB 的 FATFS 镜像为例:
      Linux
      python3 ./tools/scripts/makefatfs.py --raw --imgsize 104857600 --cluster 8 --sector 512 --tooldir ./tools/scripts/ --inputdir ~/fatfs_root/ --outfile mytest.fatfs
      Windows
      python tools\scripts\makefatfs.py --raw --imgsize 104857600 --cluster 8 --sector 512 --tooldir tools\scripts\ --inputdir D:\fatfs_root\ --outfile mytest.fatfs
      

      这种场景类似于格式化指定大小的磁盘,并且复制填充资源文件。

      • 由于设置了 imgsize 为 100 MB,因此生成的镜像文件大小为 100 MB,可以将该镜像文件烧录到 100 MB 的磁盘分区。

      • 如果实际资源大小不足 100 MB,工具会自动在镜像文件后面填充 0。如果不需要填充,可以去掉命令参数中的 --raw,此时生成的镜像文件仅保留必要数据部分。详细示例如下:
        Linux
        python3 ./tools/scripts/makefatfs.py --imgsize 104857600 --cluster 8 --sector 512 --tooldir ./tools/scripts/ --inputdir ~/fatfs_root/ --outfile mytest.fatfs
        Windows
        python tools\scripts\makefatfs.py --imgsize 104857600 --cluster 8 --sector 512 --tooldir tools\scripts\ --inputdir D:\fatfs_root\ --outfile mytest.fatfs

FATFS 镜像格式说明

按照制作 FATFS 镜像的流程,会生成一个 FATFS 镜像,其格式取决于指定的镜像大小,详情如下:

1. FATFS 格式
文件系统 镜像大小 说明
FAT12 Size ≤ 16 MB 生成 FAT12 文件系统镜像
FAT16 16 MB < Size ≤ 256 MB 生成 FAT16 文件系统镜像
FAT32 Size > 256 MB 生成 FAT32 文件系统镜像

制作 LittleFS 镜像

以制作一个 10 MB 的 LittleFS 镜像文件为例,详细步骤如下所示:
  1. 确保编译主机上已经安装 Python3 并进入 Luban-Lite SDK 的 tools/scripts/ 目录。

  2. 将需要打包的文件/文件夹,放到一个独立的文件夹内,例如:
    • Linux: ~/littlefs_root/
    • windows: D:\littlefs_root\
  3. 执行下列命令。
    Windows
    python tools\scripts\makelittlefs.py --imgsize 10485760 --pagesize 256 --blocksize 4096 --tooldir tools\scripts\ --inputdir ~\littlefs_root\ --outfile mytest.lfs
    Linux
    python3 ./tools/scripts/makefatfs.py --auto --cluster 8 --sector 512 --tooldir ./tools/scripts/ --inputdir ~/fatfs_root/ --outfile mytest.fatfs