本章节用于制作从SD卡启动需要的镜像,该镜像默认使能了主备分区,并开启了主备同步功能。
已获取表1中对应的ISO和文件系统镜像。
镜像 |
目标OS |
支持的版本 |
获取方式 |
说明 |
---|---|---|---|---|
ISO |
Ubuntu |
22.04 |
单击ubuntu 22.04 ISO镜像下载。 |
- |
openEuler |
openEuler-22.03-LTS |
|
若下载ISO速度过慢,可参考如下方式获取。
|
|
openEuler-22.03-LTS-SP1a |
||||
文件系统 |
Ubuntu |
22.04 |
访问Atlas 200I A2 加速模块软件包,下载并解压Ascend-hdk-310b-npu-sample-root-filesystem-soc_23.0.rc1_linux-aarch64.zip,直接获取Sample-root-filesystem-soc_ubuntu-22.04-aarch64.img。 |
若用户需要自定义文件系统,请参见定制文件系统。 |
openEuler |
openEuler-22.03-LTS |
访问Atlas 200I A2 加速模块软件包,下载并解压Ascend-hdk-310b-npu-sample-root-filesystem-soc_23.0.rc1_linux-aarch64.zip,直接获取Sample-root-filesystem-soc_openEuler-22.03-LTS-aarch64.img或Sample-root-filesystem-soc_openEuler-22.03-LTS-SP1-aarch64.img。 |
||
openEuler-22.03-LTS-SP1a |
||||
a:若有软实时OS需求时,需使用的OS为openEuler-22.03-LTS-SP1,否则需使用openEuler-22.03-LTS或Ubuntu。 |
社区版软件不需要申请下载权限可以直接下载,但软件不能用于商业用途, 详细请参见社区华为软件许可协议;如果您需要用于商业用途,参见定制文件系统的操作步骤进行制作。因此如果您下载软件仅用于调试验证,推荐下载社区版软件。
su - root
cd /home/ascend/mksd
tar -xzvf sdtool.tar.gz
cp -arf sdtool/* .
cd /home/ascend/mksd/recovertool
上传“Ascend-hdk-310b-npu-soc_<version>_linux-rt-aarch64.tar.gz”软件包后,需执行如下命令进行软件包重构。
mkdir rt && tar -zxvf Ascend-hdk-310b-npu-soc_<version>_linux-rt-aarch64.tar.gz -C ./rt && rm -rf rt/Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64.run && cp ../Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64-repack.run rt/ && cd rt && tar zcvf Ascend-hdk-310b-npu-soc_<version>_linux-rt-aarch64.tar.gz ./* && cp Ascend-hdk-310b-npu-soc_<version>_linux-rt-aarch64.tar.gz ../ && cd .. && rm -rf rt
<version>表示NPU版本号,具体请根据实际情况进行替换。
bash Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64.run --noexec --extract=./tmp
若有软实时OS需求,请执行如下命令。
bash Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64-repack.run --noexec --extract=./tmp
cp /home/ascend/mksd/tmp/scripts/restore_factory.sh /home/ascend/mksd/recovertool/
tmp为临时解压目录,若不需要使用可以删除。
vim ./recovertool/restore_factory.sh
找到add_new_part函数,在#write partition size below, one size occupies one row下面写入分区大小配置,增加几个分区就写几行。
如:增加三个分区,每个分区大小为20G
...... cat > mkpart_tmp.conf << EOF #write partition size below, one size occupies one row 20 20 20 EOF ......
./emmc-head --help
执行命令后有帮助回显信息则表示可用;若回显信息出现-bash: ./emmc-head: No such file or directory的错误提示,请参见emmc-head工具不可用。
Usages: emmc-head firmware path boot_a_devname boot_b_devname [force_recover] the three files must be included in the firmware path: Image, itrustee.img, dt.img. force_recover: force recover flag. Example: emmc-head ./firmware /dev/mmcblk1p1 /dev/mmcblk1p2
python3 make_sd_card.py mkrecoverimg SD
显示如下类似信息,表示开始制卡,此处仅为示例,具体请以实际情况为准。
Begin to make Image package for restoring factory settings... Please make sure you have installed dependency packages: apt-get install -y qemu-user-static binfmt-support gcc-aarch64-linux-gnu g++-aarch64-linux-gnu dosfstools parted kpartx Please input Y: continue, other to install them:
Make Card successfully!
执行ls -l查看当前目录下生成的镜像文件为recoverfs-<os-type>-SD.img,其中<os-type>表示目标镜像的操作系统类型,例如:Ubuntu或者openEuler。
若出现“[ERROR] Making M.2 SATA SSD or eMMC or USB or SD failed”类似回显信息,则代表制卡失败,建议用户按照日志错误排查,重新执行python3 make_sd_card.py mkrecoverimg SD命令制作镜像。
Disk /dev/sdb: 28.33 GiB, 30416044032 bytes, 59406336 sectors Disk model: UHSII uSD Reader 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: 57C9FC21-66A9-4474-8EEB-DD67845D38CB
其中Disk model: UHSII uSD Reader为SD卡所在的USB设备名称,不同的USB设备显示的名称不一样,此处以“UHSII uSD Reader”为例。
Writing superblocks and filesystem accounting information: done
4751360+0 records in 4751360+0 records out 2432696320 bytes (2.4 GB, 2.3 GiB) copied, 45.217 s, 53.8 MB/s
若出现写入数据量不等于4751360,则代表烧写失败,建议重新执行dd if=recoverfs-<os-type>-SD.img of=/dev/sda status=progress烧写镜像。
mount /dev/sdb1 /mnt
ll /mnt
查看完文件请执行umount /mnt,防止文件损坏。