0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发者指南 | 华为昇腾Ascend310B启动镜像制作与烧写全攻略

瑞迅科技 2025-11-24 18:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群


嵌入式Linux开发中,启动镜像的制作与烧写是硬件部署的核心环节。本文详细解析华为昇腾Ascend310B启动镜像的完整流程,从环境搭建到烧写验证,为开发者提供一站式解决方案。

华为昇腾310B(Ascend310B)是一款高性能、低功耗的AI处理器,专为边缘计算和推理应用场景而设计。它基于华为自研的达芬奇架构,具备强大的计算能力和高效的运算效率,能够支持多种深度学习框架和算法,为智能安防、智能交通、工业互联网等领域提供卓越的AI推理解决方案。

作者使用的是Atlas 200I AI加速模块,模块可通过SD卡、M.2和eMMC方式制作启动镜像包。

需要用到的软件包:

sdtool.tar.gz 位于Ascend-hdk-310b-sdk-soc_25.2.0.zip包

Ascend-hdk-310b-npu-driver-soc_25.2.0_linux-aarch64.run

Ascend-hdk-310b-npu-firmware-soc_7.7.0.6.236.run

Sample-root-filesystem-soc_ubuntu-22.04-aarch64.img 位于Ascend-hdk-310b-npu-sample-root-filesystem-soc_23.0.rc1_linux-aarch64.zip包

ubuntu-22.04-live-server-arm64.iso

Ascend-hdk-310b-npu-soc_25.2.0_linux-aarch64.tar.gz 位于Ascend-hdk-310b-npu-soc_25.2.0_linux-aarch64.zip包

所用到的软件包可参考《Atlas 200I A2 加速模块 25.2.0 驱动开发指南》给出的地址进行下载。


制作镜像

1.执行命令创建mksd目录。

mkdirmksd


2.解压sdtool.tar.gz,并将其中的所有文件copy到mksd目录下。

tar -xzvf sdtool.tar.gzcp-arf sdtool/* ./mksdcd./mksd


mksd文件如下:

总用量 75092drwxrwxr-x 5 ubuntu ubuntu 4096 Sep 815:11 ./drwxrwxr-x 6 ubuntu ubuntu 4096 Sep 815:11 ../-rw-rw-r-- 1 ubuntu ubuntu 4096 Jul 1700:00 boot_image_info-rwxrwxr-x 1 ubuntu ubuntu 59352 Jul 1700:00 emmc-head*-rw-rw-r-- 1 ubuntu ubuntu 76642642 Jul 1700:00 initrd_usb-rwxrwxr-x 1 ubuntu ubuntu 2464 Jul 1700:00 install_hook_demo.sh*-rwxrwxr-x 1 ubuntu ubuntu 48760 Jul 1700:00 make_os_recover.sh*-rwxrwxr-x 1 ubuntu ubuntu 76123 Jul 1700:00 make_os_sd.sh*-rwxrwxr-x 1 ubuntu ubuntu 14481 Jul 1700:00 make_sd_card.py*-rw-rw-r-- 1 ubuntu ubuntu 129 Jul 1700:00 mksd.conf-rw-rw-r-- 1 ubuntu ubuntu 1024 Jul 1700:00 parttion_head_info-rwxrwxr-x 1 ubuntu ubuntu 6521 Jul 1700:00 preconfig.sh*drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 1700:00 recovertool/drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 1700:00 synctool/drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 1700:00 tools/


3.执行如下命令,检查emmc-head工具是否可用。

ubuntu@ubuntu:~/project/Ascend310B-tools/mksd$./emmc-head --helpUsages: emmc-head firmware_path boot_a_devname boot_b_devname [force_recover]Thefollowing files must be containedinfirmware_path:Image, itrustee.img, dt.img, initrd.boot_a_devname:APartitionboot device name,forexample,eMMC:mmcblk0p2,SD:mmcblk1p2boot_b_devname:BPartitionboot device name,forexample,eMMC:mmcblk0p3,SD:mmcblk1p3force_recover:force recover flag. Example:/var/davinci/driver/emmc-head ./firmware /dev/mmcblk0p2 /dev/mmcblk0p3


emmc-head执行提示错误一:-bash: ./emmc-head: No such file or directory。

·原因分析

emmc-head工具需要使用“ /lib64/”目录下的ld-linux-aarch64.so.1文件,当前环境的“ /lib64/”目录下缺少此文件。

·解决方案

执行如下命令,复制或创建ld-linux-aarch64.so.1的符号链接到“ /lib64/”目录下。

cp/usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib64/或ln-sf /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib64/ld-linux-aarch64.so.1


emmc-head执行提示错误二:./emmc-head: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory。

·原因分析

若为emmc-head工具需要使用“ /lib”目录下的libc.so.6文件,当前环境的“ /lib/”目录下缺少此文件。

·解决方案

执行如下命令,复制到或创建libc.so.6的符号链接“ /lib/”目录下。

cp/usr/aarch64-linux-gnu/lib/libc.so.6 /lib/或ln-sf /usr/aarch64-linux-gnu/lib/libc.so.6 /lib/libc.so.6


emmc-head执行提示错误三:./emmc-head --help -bash: ./emmc-head: cannot execute binary file: Exec format error

·原因分析

不兼容的操作系统上运行二进制文件,例如在32位系统上运行64位的二进制文件。emmc-head为64位二进制文件,需要在64位系统上运行。

·解决方案

修改虚拟机的系统架构。

将当前32位操作系统架构修改为64位。


4.复制软件包到对应目录:

cp-rf Ascend-hdk-310b-npu-driver-soc_25.2.0_linux-aarch64.run ./mksd/cp-rf Ascend-hdk-310b-npu-firmware-soc_7.7.0.6.236.run ./mksd/cp-rf Sample-root-filesystem-soc_ubuntu-22.04-aarch64.img ./mksd/cp-rf ubuntu-22.04-live-server-arm64.iso ./mksd/cp-rf Ascend-hdk-310b-npu-soc_25.2.0_linux-aarch64.tar.gz ./mksd/recovertool


5.执行对应命令创建启动镜像。(必须要root权限)

镜像操作之前先将系统语言切换成英文,执行LANG=en_US。

LANG=en_US #切换语言为英文。
#制作本地镜像包,会生成对应的recoverfs--xxx.img镜像sudopython3 make_sd_card.py mkrecoverimg eMMCsudopython3 make_sd_card.py mkrecoverimg SD
#制作启动镜像,并烧写到对应的介质中。主要需要插入U盘或SD卡sudopython3 make_sd_card.pylocal/dev/sdb #制作SD卡启动盘,需要插入SD卡。sudopython3 make_sd_card.pylocal/dev/sdb USB #制作U盘卡启动盘,需要插入U盘。

命令执行过程根据打印提示信息输入"Y"。

Please make sure you have installed dependency packages: apt-getinstall -y qemu-user-staticbinfmt-support gcc-aarch64-linux-gnu g++-aarch64-linux-gnu dosfstools parted kpartxPlease input Y:continue, other to install them:y

显示如下类似信息,表示制卡成功。

MakeCard successfully!

注:eMMC需要通过U盘进行烧写,无法通过SD卡进行烧写。SD卡制作的recoverfs--SD.img通过dd写入到SD卡后,设备从SD卡启动后,会烧写SD的系统到SD卡中,而不是eMMC中。


6.重构驱动run包

重构驱动run包需要用到SDK包,所以需要先解压Ascend310B-source.tar.gz,对源码进行编译后在output目录中生成dt.img、Image、userBaseConfig.bin等。Ascend310B-source.tar.gz存放在Ascend-hdk-310b-sdk-soc_25.2.0.zip中。

tar -xzvf Ascend310B-source.tar.gzcdAscend310B-source./build.sh dtb #编译dts,生成dt.img./build.sh kernel #编译kernel,生成Image及内核module。./build.sh usrBaseConfig #编译usrBaseConfig,通过user_base_config.xml的配置生成userBaseConfig.bin

在 Ascend310B-source下创建构建run包需要的目录。

mkdir-p ./repack/firmware #存放dt.img、Imagemkdir-p ./repack/drivers #存放模块komkdir-p ./repack/scripts #11-atlas.conf、filelist.csv、minirc_sys_init_ext.sh、minirc_sys_init.sh

复制对应文件到上面创建的目录中。

cpoutput/dt.img repack/firmware/cpoutput/Image repack/firmware/cpoutput/Image repack/firmware/cpoutput/kernel_modules/* repack/drivers

在run包中提取"repack/scripts"需要的文件。注意下面操作只为提取run包中的文件,最好在其它目录下运行,最后可以删除掉。

chmodu+x Ascend-hdk-310b-npu-driver-soc__linux-aarch64.runbashAscend-hdk-310b-npu-driver-soc__linux-aarch64.run -- noexec --extract=./repack

运行上面命令后会在当前目录下生成一个repack的文件。复制"repack/scripts"中的下面几个文件到Ascend310B-source的"repack/scripts"中。

11-atlas.conf、filelist.csv、minirc_sys_init_ext.sh、minirc_sys_init.sh

对文件做如下修改:

minirc_sys_init.sh

db4e3adc-c91c-11f0-8ce9-92fbcf53809c.pngdb69921e-c91c-11f0-8ce9-92fbcf53809c.png

minirc_sys_init_ext.sh

db827c3e-c91c-11f0-8ce9-92fbcf53809c.png

另外还需要复制Ascend-hdk-310b-npu-driver-soc__linux-aarch64.run到Ascend310B-source下,因为构建的run包是在之前的run包上进行修改。

执行下面命令进行构建:

sudobash build.sh repack ./Ascend-hdk-310b-npu-driver-soc__linux_aarch64.run

命令正常执行后会在Ascend310B-source下生成Ascend-hdk-310b-npu-driver-soc__linux-aarch64_repack.run。用这个包去替换制作进行工具mksd下的run包,另外"mksd/recovertool/Ascend-hdk-310b-npu-soc_25.2.0_linux-aarch64.tar.gz"中也藏着一个同样的run包,如果遇到烧写失败的情况,可以尝试对tar包进行解压后替换run包重新压缩,再制作启动镜像。


产品介绍

IGB-310和EPC-1310分别是瑞迅科技基于Ascend310B的高性能工业级嵌入式主控板和AI边缘计算工作站,采用高性能4核64位处理器,提供极佳的运算性能。RS485RS232、CAN、AI、DI、DO等丰富接口,可满足多样化的连接需求。凭借高达20TOPS的算力,广泛适用于智能边缘设备、机器人、智能工控等边端侧AI应用场景。

db9a6358-c91c-11f0-8ce9-92fbcf53809c.png

EPC-1310


高性能4核64位处理器,主频1.6GHZ,1个AI core,主频1.224GHz

算力高达20TOPS

板载 LPDDR4X,12GB(可选配8G/4G)

板载 eMMC,64GB(可选配128/256G)

RS485、RS232、CAN、AI、DI、DO

工作温度:-40℃-70℃

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20143

    浏览量

    328644
  • 华为
    +关注

    关注

    217

    文章

    35782

    浏览量

    260656
  • Linux
    +关注

    关注

    88

    文章

    11627

    浏览量

    217890
  • 昇腾
    +关注

    关注

    1

    文章

    175

    浏览量

    7295
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GPS 设计全攻略

    GPS 设计全攻略
    发表于 09-25 14:11

    FPGA开发全攻略——上册.rar

    FPGA开发全攻略——上册.rar
    发表于 04-08 10:44

    FPGA开发全攻略_下.pdf

    FPGA开发全攻略_下.pdf
    发表于 04-08 10:48

    郭天祥 C语言教程-开发扩展全攻略

    `郭天祥 C语言教程-入门, 提高,开发扩展全攻略经典制作, 51单片机必看.文件太大, 上传例程大家先看下.`
    发表于 06-08 21:24

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 05-10 11:40

    FPGA开发全攻略

    电子工程师创新设计必备宝典系列之FPGA开发全攻略上,下两册
    发表于 04-24 21:11

    32位MCU开发全攻略

    32位MCU开发全攻略上下两册 ,主要讲述32位MCU应用开发知识
    发表于 05-04 15:42

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 09-27 10:59

    FPGA开发全攻略实用教程精粹

    FPGA开发全攻略实用教程精粹
    发表于 09-28 13:50

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 05-21 09:28

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 03-03 10:30

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 03-07 11:46

    FPGA开发全攻略_上

    FPGA开发全攻略_上有需要的朋友下来看看。
    发表于 05-10 11:21 29次下载

    310的用途以及设计细节

    10月10日,华为在全联接大会2018上,首次宣布了华为的AI战略以及全栈解决方案。与此同时,华为发布了自研云端AI芯片“
    发表于 10-13 10:49 1.4w次阅读

    华为与全球开发者共赢生态

    华为全联接大会2025期间,华为计算业务总裁张迪煊发表了“以开发者为中心,加速自主创新,共赢
    的头像 发表于 09-20 15:57 1560次阅读