重构驱动包

前提条件

  • 所有的依赖必须用root用户进行安装。
  • 用户可以通过如下命令进行安装上述依赖。

    apt-get install -y python3 make gcc unzip pigz bison flex libncurses-dev squashfs-tools bc device-tree-compiler libssl-dev cmake rpm2cpio

  • 交叉编译工具链安装请参见安装工具链

操作步骤

  1. 登录Linux服务器。
  2. 执行如下命令,切换至root用户。

    su - root

  3. 使用WinSCP工具或其他工具,将下载软件包获取的源码包“Ascend310B-source.tar.gz”上传至Linux系统root用户属组目录下,例如“/opt”。详细操作请参见使用WinSCP传输文件
  4. 执行如下命令,进入源码包所在目录,例如“/opt”

    cd /opt

  5. 执行如下命令,解压源码包“Ascend310B-source.tar.gz”。

    tar -xzvf Ascend310B-source.tar.gz

  6. 执行如下命令,进入“Ascend310B-source”目录。

    cd Ascend310B-source

  7. 使用WinSCP工具或其他工具,将下载软件包获取的驱动包“Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64.run”(若有软实时OS需求,使用驱动包Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64.run)上传至Linux系统root用户属组目录下,例如6中的“Ascend310B-source”目录。详细操作请参见使用WinSCP传输文件
  8. 执行以下命令,为驱动包添加可执行权限。

    chmod u+x Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64.run

    若有软实时OS需求,该命令为chmod u+x Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64.run

  9. (可选)新增或替换文件。

    在二次开发场景中,若用户需要新增或替换驱动包中的Image、dt.img、驱动文件(ko文件)或驱动文件的加载脚本等,可根据需要,选择执行以下操作。

    1. 执行以下命令,在“Ascend310B-source”目录下新建“repack”目录并进入。若已创建,则无需重复创建。

      mkdir repack

      cd repack

    2. 执行以下命令,在“repack”目录下新建“firmware”目录,用于替换Image或dt.img文件。新建“drivers”目录,用于替换驱动文件(ko文件)。新建“scripts”目录,用于替换驱动文件的加载脚本。

      mkdir firmware

      mkdir drivers

      mkdir scripts

    3. 执行以下命令,进入“firmware”目录。

      cd firmware

      上传Image或dt.img文件,文件生成方式请参见编译内核,文件传输方式请参见使用WinSCP传输文件

      执行以下命令,查看上传的Image或dt.img文件。

      ls

    4. 执行以下命令回到“repack”目录,再进入“drivers”目录。

      cd /opt/Ascend310B-source/repack

      cd drivers

      上传新的驱动文件(ko文件),文件生成方式请参见编译驱动,文件传输方式请参见使用WinSCP传输文件

      执行以下命令,查看上传的驱动文件(ko文件)。

      ls

    5. 执行以下命令回到“repack”目录,再进入“scripts”目录。

      cd /opt/Ascend310B-source/repack

      cd scripts

      上传含通用驱动的自动加载配置文件11-atlas.conf或上传不含通用驱动的自动加载配置文件filelist.csv和minirc_sys_init_ext.sh,文件生成方式请参见驱动自动加载配置,文件传输方式请参见使用WinSCP传输文件

      执行以下命令,查看上传的驱动文件的加载脚本。

      ls

    6. 执行如下命令,回到“Ascend310B-source”目录。

      cd /opt/Ascend310B-source

  10. 执行如下命令,编译驱动。

    bash build.sh repack ./Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64.run

    若有软实时OS需求,该命令为bash build.sh repack ./Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64.run

    出现如下回显,表示驱动重打包成功。

    repack success!
    • 编译后的Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64-repack.run(若有软实时OS需求,则驱动包为Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64-repack.run)驱动文件会自动存放于“Ascend310B-source/”目录下。
    • xxx表示软件包版本号。
    • 用户请将编译后的驱动包上传至自有的环境进行安装,安装操作请参见驱动与固件升级