# make_ascend_image **Repository Path**: zzuos/make_ascend_image ## Basic Information - **Project Name**: make_ascend_image - **Description**: 这是用于将华为的A200I-DK-A2 平台的定制系统镜像构建与烧录工具,将 rootfs、内核、设备树和官方固件组装成可刷写镜像,支持从服务器下载组件,一键打包或烧录到 SD 卡。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-09 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # A200I-DK-A2 Custom Image Builder 组装、打包、烧录 A200I-DK-A2 定制系统镜像的一体化工具。 ## 目录结构 ``` ├── build_custom_image.sh # 入口脚本 ├── lib/ │ ├── log.sh # 日志模块(info/warn/error/step/detail) │ ├── download.sh # URL 下载、artifact 解析 │ ├── assembly.sh # 镜像组装(分区、格式化、固件注入) │ ├── output.sh # 裁剪、压缩、烧录 │ └── cleanup.sh # 异常退出清理 ├── config/ │ ├── image_url # 官方镜像 .img.xz 下载地址 │ ├── kernel_url # 内核 Image 下载地址 │ └── dtb_url # 设备树 dt.img 下载地址 └── output/ # 输出目录(运行时自动创建) ``` ## 快速开始 ```bash # 仅打包(image/kernel/dtb 自动从 config 下载) sudo ./build_custom_image.sh rootfs.img # 打包并烧录到 SD 卡 sudo ./build_custom_image.sh rootfs.img -b /dev/sdb # 仅烧录,不保留打包文件 sudo ./build_custom_image.sh rootfs.img -b /dev/sdb --burn-only # 全部使用本地文件 sudo ./build_custom_image.sh rootfs.img official.img.xz Image dt.img ``` ## 参数说明 ``` ./build_custom_image.sh [image.xz] [Image] [dt.img] [misc_dir] [output_dir] [rootfs_mb] [-b /dev/sdX] [--burn-only] ``` | 参数 | 必填 | 说明 | |------|------|------| | `rootfs.img` | 是 | 根文件系统镜像(cpio+gz) | | `image.xz` | 否 | 官方镜像,省略则从 config/image_url 下载 | | `Image` | 否 | 内核文件,省略则从 config/kernel_url 下载 | | `dt.img` | 否 | 设备树,省略则从 config/dtb_url 下载 | | `misc_dir` | 否 | misc 分区内容目录 | | `output_dir` | 否 | 输出目录,默认 `output/` | | `rootfs_mb` | 否 | 手动指定 rootfs 分区大小(MB),0=自动计算 | | `-b /dev/sdX` | 否 | 烧录目标块设备,默认同时执行打包+烧录 | | `--burn-only` | 否 | 与 `-b` 配合,仅烧录不保留打包文件 | ## 工作流程 ``` 下载/校验输入 → 解压官方镜像 → 检测分区布局 → 重建分区表 → 映射分区 → 创建文件系统 → 挂载 → 灌入 rootfs → 写入固件(内核+设备树) → 裁剪镜像 → 烧录/压缩(可并行) ``` 烧录与压缩并行执行,`output/` 目录同时保留 `.img` 和 `.img.xz`。 ## 日志级别 通过环境变量 `BCIMG_LOG_LEVEL` 控制输出: ```bash # 仅显示错误 sudo BCIMG_LOG_LEVEL=2 ./build_custom_image.sh rootfs.img # 0=全部(默认), 1=警告+错误, 2=仅错误 ``` ## 依赖 - `sgdisk` / `kpartx` / `dmsetup` — 分区与设备映射 - `wget` 或 `curl` — 文件下载 - `xz` — 压缩/解压 - `cpio` / `gzip` — rootfs 解包 - 需要 root 权限运行