跳到主要内容

系统烧录和安装

系统烧录和安装包含两个主要阶段:

  1. 固件烧录:将 MTT E300 启动固件写入设备内部存储
  2. 系统部署:将包含内核和根文件系统的完整系统镜像写入存储介质

MTT E300 支持多种存储介质,包括SPI Nor Flash, NVMe SSD 和 eMMC


固件结构

MTT E300 固件由以下 4 个部分构成:

组件说明是否开源
m1000-scpSystem Control Processor 固件
m1000-entry-table-tool启动配置表
m1000-trusted-firmwareARM Trusted Firmware
m1000-u-bootBootloader
提示

请根据 SDK 编译部署指南,构建 SDK 和 Yocto 的编译环境。编译生成 u-boot & m1000-entry-table-tool 的 bin 文件之后,再将两者替换打包进 wic 中,重新签名,方可烧录。


分区说明

分区类型用途
rootext4根文件系统
recoveryext4恢复分区(可选)

烧录 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.exeWindows & Linux 固件烧录工具
ac_toolLinux 固件烧录工具

系统部署文件

文件说明
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}

参数说明:

  1. usb/uart - 通信接口:可选 usbuart
  2. flash/emmc - 存储设备:可选 flashemmc
  3. r/w/e/u - 操作:可选 r(读)、w(写)、e(擦) 或 u(更新)
  4. -t, --tty:串口设备路径(如 COM3/dev/ttyS0
  5. -r, --rate:波特率(如 921600), 通信接口为 uart
  6. -f, --file:文件路径

安装 USB 驱动(Windows)
  1. 按一下 S2 键开机上电
  2. 按住 S1 键不放
  3. 快速按下 S3 reset 键后松开
  4. 松开 S1
  5. 使用 Type-C USB 数据线连接 Windows 主机和开发板
  6. 双击运行 zadig-2.7.exe 安装驱动
  7. 菜单栏选择 OptionsList All Devices
  8. 选择 "Apollo update" 设备,安装 WinUSB 驱动

执行烧录

操作步骤:

  1. 按一下 S2 键开机上电

  2. 连接 USB 线到 PC

  3. 按住 S1 键不放

  4. 快速按下 S3 reset 键后松开

  5. 松开 S1

  6. 执行烧录命令:

    aburn.exe 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

  1. 通过 nvme 读卡器连接 PC
  2. 使用 Ubuntu 自带工具 Disk 打开 SSD
  3. 选择磁盘菜单上的"恢复磁盘映像"
  4. 选择待烧录的系统镜像文件

2. dd 命令烧录 nvme

# 查看设备
sudo fdisk -l

# 烧录镜像
sudo dd if=m1000-image-ubuntu-aimodule-xxx.rootfs.wic \
of=/dev/nvme0n1 bs=4M status=progress
注意

dd 烧录安全注意事项

  1. 确认设备 - 烧录前务必核对目标设备:

    sudo fdisk -l # 列出所有磁盘,确认 of 路径正确
  2. 数据保护

    sync # 写入缓存 flush

    误写系统盘将导致无法启动

  3. 验证 checksum

    md5sum /path/to/image.wic
    # 与原文件对比确认完整性

3. U 盘烧录 nvme 或 emmc

  1. 制作 U 盘启动镜像(参考 SDK 编译指南)
  2. 插入 U 盘启动开发板
  3. 自动检测并烧录

通过 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 无法识别设备

确保:

  1. 设备已进入烧录模式(S1+S3 组合键)
  2. USB 驱动已正确安装(设备管理器显示 "Apollo update")
  3. 使用 Type-C 数据线(非仅充电线)

Q2: 烧录后无法启动

检查:

  1. 固件是否已签名
  2. 分区是否正确
  3. 存储介质是否损坏

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}