制作系统镜像
6 Dec 2024
Read time: 2 minute(s)
本节介绍如何通过工具单独制作 Luban-Lite SDK 支持的文件系统镜像。
Luban-Lite SDK 在编译的最后阶段会自动制作所需要的文件系统镜像。如需独立制作文件系统镜像,可参照本节的镜像制作流程。
制作 FATFS 镜像
-
确保编译主机上已经安装 Python3,并进入 Luban-Lite SDK 的根目录。
-
将需要打包的文件或文件夹,放到一个独立的文件夹内,例如:
- Linux: ~/fatfs_root/
- Windows: D:\fatfs_root\
-
根据资源文件大小制作镜像或制作指定大小的文件系统镜像。
-
如需根据资源文件大小制作镜像,则执行下列命令:Linux
python3 ./tools/scripts/makefatfs.py --auto --cluster 8 --sector 512 --tooldir ./tools/scripts/ --inputdir ~/fatfs_root/ --outfile mytest.fatfs
Windowspython 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
Windowspython 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
Windowspython tools\scripts\makefatfs.py --imgsize 104857600 --cluster 8 --sector 512 --tooldir tools\scripts\ --inputdir D:\fatfs_root\ --outfile mytest.fatfs
-
-
FATFS 镜像格式说明
按照制作 FATFS 镜像的流程,会生成一个 FATFS 镜像,其格式取决于指定的镜像大小,详情如下:
文件系统 | 镜像大小 | 说明 |
---|---|---|
FAT12 | Size ≤ 16 MB | 生成 FAT12 文件系统镜像 |
FAT16 | 16 MB < Size ≤ 256 MB | 生成 FAT16 文件系统镜像 |
FAT32 | Size > 256 MB | 生成 FAT32 文件系统镜像 |
制作 LittleFS 镜像
以制作一个 10 MB 的 LittleFS 镜像文件为例,详细步骤如下所示:
-
确保编译主机上已经安装
Python3
并进入 Luban-Lite SDK 的 tools/scripts/ 目录。 -
将需要打包的文件/文件夹,放到一个独立的文件夹内,例如:
- Linux: ~/littlefs_root/
- windows: D:\littlefs_root\
-
执行下列命令。Windows
python tools\scripts\makelittlefs.py --imgsize 10485760 --pagesize 256 --blocksize 4096 --tooldir tools\scripts\ --inputdir ~\littlefs_root\ --outfile mytest.lfs
Linuxpython3 ./tools/scripts/makefatfs.py --auto --cluster 8 --sector 512 --tooldir ./tools/scripts/ --inputdir ~/fatfs_root/ --outfile mytest.fatfs