Rootfs 定制化
概述
Rootfs(根文件系统)定制化是指根据产品需求对 Ubuntu 根文件系统进行个性化配置的过程。
运行原理
Rootfs 编译流程

ext4 基础镜像
ubuntu-rootfs.ext4 是 Rootfs 定制化的基础,它包含:
- Ubuntu 基础系统
- 系统核心库和工具
- 基础软件包
所有定制化修改都基于这个基础镜像进行。
编译产物路径
构建完成后主要文件路径如下:
- 预构建的 ext4:
build/tmp/deploy/images/aimodule/ubuntu-rootfs.ext4
- 完整的 rootfs 镜像:
build/tmp/deploy/images/aimodule/m1000-image-ubuntu-aimodule-xxx.rootfs.wic
boot-ubuntu.wks 控制分区结构(label、size、source 等)。
快速开始
准备工作
从 TOS 下载 ubuntu-image-xxx.ext4 或下载 m1000-image-ubuntu-aimodule-xxx.rootfs.wic
并解压为 ext4:
# 查看 wic 分区信息
fdisk -l m1000-image-ubuntu-aimodule-xxx.rootfs.wic
Disk m1000-image-ubuntu-aimmodule-20260308205733.rootfs.wic: 32 GiB, 34360804352 bytes, 67110946 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0F763A1C-8B96-4004-8B93-3C3BFDCB3E51
Device Start End Sectors Size Type
m1000-image-ubuntu-aimodule-20260308205733.rootfs.wic1 2048 67110911 67108864 32G Linux filesystem
# 提取 ext4 分区(结合 sector size 和 Linux filesystem 的 Start 来取分区)
dd if=m1000-image-ubuntu-aimodule-xxx.rootfs.wic \
of=ubuntu-image.ext4 bs=$sector_size skip=$Start count=$Sectors
# 解包得到 Linux filesystem ubuntu-image.ext4
# 拷贝到 downloads 目录下
cp ubuntu-image.ext4 m1000-soc-sw-sdk/downloads/.
指定 ext4 为基础镜像
修改 m1000-soc-sw-sdk/meta/meta-mt-distro/recipes-images/rootfs/ubuntu-rootfs-ext4-prebuild.bb:
UBUNTU_ROOTFS_EXT4_NAME = ubuntu-image-xxx.ext4
访问说明
如需获取本文中未提供直接下载链接、仅标注为从 TOS 获取的资源,请邮件联系 tao.tao@mthreads.com。我们会协助您完成 NDA 流程,并在签署后提供访问权限。
安装编译依赖以及 rootfs 编译
# 进入 SDK 目录
cd m1000-soc-sw-sdk
# 清理并安装 Kernel 相关依赖
bitbake linux-mthreads -c cleanall
# 脚本在 ${DEPLOYDIR}/debs/ 下编译出 deb 包
build-linux-deps.sh
# 一步构建 rootfs.wic
bitbake m1000-image-ubuntu
# 或分步构建
bitbake ubuntu-rootfs-ext4-prebuild
bitbake m1000-image-ubuntu