系统烧录和安装
系统烧录和安装包含两个主要阶段:
- 固件烧录:将 MTT E300 启动固件写入设备内部存储
- 系统部署:将包含内核和根文件系统的完整系统镜像写入存储介质
MTT E300 支持多种存储介质,包括SPI Nor Flash, NVMe SSD 和 eMMC。
固件结构
MTT E300 固件由以下 4 个部分构成:
| 组件 | 说明 | 是否开源 |
|---|---|---|
| m1000-scp | System Control Processor 固件 | 否 |
| m1000-entry-table-tool | 启动配置表 | 是 |
| m1000-trusted-firmware | ARM Trusted Firmware | 否 |
| m1000-u-boot | Bootloader | 是 |
请根据 SDK 编译部署指南,构建 SDK 和 Yocto 的编译环境。编译生成 u-boot & m1000-entry-table-tool 的 bin 文件之后,再将两者替换打包进 wic 中,重新签名,方可烧录。
分区说明
| 分区 | 类型 | 用途 |
|---|---|---|
| root | ext4 | 根文件系统 |
| recovery | ext4 | 恢复分区(可选) |
烧录 Flash 固件
烧录 Flash 中的固件有两种方式,一种是提过一台 PC 使用 aburn 通过 USB 或 Uart 给E300烧录, 一种在E300 linux 环境中使用 ac_tool 烧录。
aburn 烧录
# 烧录自己编译的 `my.wic`
aburn usb flash u -f my.wic
ac_tool 烧录
# 烧录自己编译的 `my.wic`
sudo ac_tool firmware flash -u my.wic
快速开始
准备工作
固件烧录文件
| 文件 | 说明 |
|---|---|
aburn.exe | Windows & Linux 固件烧录工具 |
ac_tool | Linux 固件烧录工具 |
系统部署文件
| 文件 | 说明 |
|---|---|
m1000-image-ubuntu-*.wic | 完整系统镜像 |
烧录步骤
步骤 1:固件烧录
方式一:使用 aburn
aburn.exe 是个命令行工具,用于 MTT E300 固件烧录,基本用法如下:
aburn [-h] [-t TTY] [-r RATE] [-d DEBUG] [-f FILE] [-a ADDR] [-s SIZE] {usb,uart} {flash,emmc} {r,w,e,u}
参数说明:
usb/uart- 通信接口:可选usb或uartflash/emmc- 存储设备:可选flash或emmcr/w/e/u- 操作:可选r(读)、w(写)、e(擦) 或u(更新)-t, --tty:串口设备路径(如COM3或/dev/ttyS0-r, --rate:波特率(如921600), 通信接口为uart-f, --file:文件路径
安装 USB 驱动(Windows)
- 按一下 S2 键开机上电
- 按住 S1 键不放
- 快速按下 S3 reset 键后松开
- 松开 S1 键
- 使用 Type-C USB 数据线连接 Windows 主机和开发板
- 双击运行
zadig-2.7.exe安装驱动 - 菜单栏选择
Options→List All Devices - 选择 "Apollo update" 设备,安装
WinUSB驱动
执行烧录
操作步骤:
-
按一下 S2 键开机上电
-
连接 USB 线到 PC
-
按住 S1 键不放
-
快速按下 S3 reset 键后松开
-
松开 S1 键
-
执行烧录命令:
- Windows
- Linux
aburn.exe usb flash u -f soc-firmware-image.wicsudo aburn usb flash u -f soc-firmware-image.wic
aburn 命令在 Linux 下无 .exe 后缀,Windows 下带 .exe
注意事项: aburn 版本 >= 1.3.0
方式二:使用 ac_tool(Linux)
ac_tool firmware flash -u soc-firmware-image.wic
ac_tool 版本 >= 1.0.1
步骤 2:系统部署
1. Ubuntu Disk 工具烧录 nvme
- 通过
nvme读卡器连接 PC - 使用
Ubuntu自带工具 Disk 打开SSD卡 - 选择磁盘菜单上的"恢复磁盘映像"
- 选择待烧录的系统镜像文件
2. dd 命令烧录 nvme
# 查看设备
sudo fdisk -l
# 烧录镜像
sudo dd if=m1000-image-ubuntu-aimodule-xxx.rootfs.wic \
of=/dev/nvme0n1 bs=4M status=progress
dd 烧录安全注意事项:
-
确认设备 - 烧录前务必核对目标设备:
sudo fdisk -l # 列出所有磁盘,确认 of 路径正确 -
数据保护:
sync # 写入缓存 flush误写系统盘将导致无法启动
-
验证 checksum:
md5sum /path/to/image.wic# 与原文件对比确认完整性
3. U 盘烧录 nvme 或 emmc
- 制作 U 盘启动镜像(参考 SDK 编译指南)
- 插入 U 盘启动开发板
- 自动检测并烧录
通过 U-Boot 环境变量控制烧录介质:
# 默认为 auto,优先烧录 emmc,没有则烧录 nvme
setenv bootmedia auto
# 固定烧录设备
setenv bootmedia nvme
# 或
setenv bootmedia emmc
saveenv
autoboot
aburn 烧录 emmc
aburn.exe usb emmc w -f rootfs.wic
系统更新与维护
Rootfs 分区结构
Rootfs 包含一个主要分区:
root分区:存放 Kernel Image、DTB 和根文件系统的 ext4 分区
配置 Swap 分区
# 创建 4GB 的 swap 文件
sudo dd if=/dev/zero of=/var/swapd bs=1G count=4
# 设置 swap 分区
sudo mkswap /var/swapd
# 设置权限
sudo chmod 0600 /var/swapd
# 添加到 fstab
echo "/var/swapd swap swap default 0 0" | sudo tee -a /etc/fstab
# 启用 swap
sudo swapon /var/swapd
# 验证
free -h
更新 Kernel
# 编译生成 deb 包
bitbake linux-mthreads -c cleanall
# build-linux-deps.sh 脚本位于 SDK 根目录,需先 source setup_env.sh build
build-linux-deps.sh
# 安装 deb 包
cd /home/debs
sudo dpkg -i linux-headers-6.6.10*_arm64.deb
sudo dpkg -i linux-image-6.6.10*_arm64.deb
sudo dpkg -i linux-libc-dev_6.6.10*_arm64.deb
下一步
安装 Linux Driver, MUSA SDK, 以及 NPU 驱动。更多详情,参见 MUSA SDK 安装、NPU 驱动安装。
常见问题
Q1: aburn 无法识别设备
确保:
- 设备已进入烧录模式(S1+S3 组合键)
- USB 驱动已正确安装(设备管理器显示 "Apollo update")
- 使用 Type-C 数据线(非仅充电线)
Q2: 烧录后无法启动
检查:
- 固件是否已签名
- 分区是否正确
- 存储介质是否损坏
Q3: MUSA 工具无法运行
# 检查环境变量
echo $PATH
echo $LD_LIBRARY_PATH
# 添加必要路径
export PATH=/usr/local/musa/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/musa/lib:/usr/lib/aarch64-linux-gnu/musa/:${LD_LIBRARY_PATH}

