重构驱动包
前提条件
- 一台带网络端口且操作系统为Ubuntu 22.04的x86 Linux服务器。
- Linux服务器已安装python、make、gcc、unzip、pigz、bison、flex、libncurses-dev、squashfs-tools、bc、device-tree-compiler、libssl-dev、cmake、rpm2cpio与交叉编译工具链。

- 所有的依赖必须用root用户进行安装。
- 用户可以通过如下命令进行安装上述依赖。
apt-get install -y python3 make gcc unzip pigz bison flex libncurses-dev squashfs-tools bc device-tree-compiler libssl-dev cmake rpm2cpio
- 交叉编译工具链安装请参见安装工具链。
操作步骤
- 登录Linux服务器。
- 执行如下命令,切换至root用户。
su - root
- 使用WinSCP工具或其他工具,将下载软件包获取的源码包“Ascend310B-source.tar.gz”上传至Linux系统root用户属组目录下,例如“/opt”。详细操作请参见使用WinSCP传输文件。
- 执行如下命令,进入源码包所在目录,例如“/opt”。
cd /opt
- 执行如下命令,解压源码包“Ascend310B-source.tar.gz”。
tar -xzvf Ascend310B-source.tar.gz
- 执行如下命令,进入“Ascend310B-source”目录。
cd Ascend310B-source
- 使用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传输文件。
- 执行以下命令,为驱动包添加可执行权限。
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。
- (可选)新增或替换文件。
在二次开发场景中,若用户需要新增或替换驱动包中的Image、dt.img、驱动文件(ko文件)或驱动文件的加载脚本等,可根据需要,选择执行以下操作。
- 执行以下命令,在“Ascend310B-source”目录下新建“repack”目录并进入。若已创建,则无需重复创建。
mkdir repack
cd repack
- 执行以下命令,在“repack”目录下新建“firmware”目录,用于替换Image或dt.img文件。新建“drivers”目录,用于替换驱动文件(ko文件)。新建“scripts”目录,用于替换驱动文件的加载脚本。
mkdir firmware
mkdir drivers
mkdir scripts
- 执行以下命令,进入“firmware”目录。
cd firmware
上传Image或dt.img文件,文件生成方式请参见编译内核,文件传输方式请参见使用WinSCP传输文件。
执行以下命令,查看上传的Image或dt.img文件。
ls
- 执行以下命令回到“repack”目录,再进入“drivers”目录。
cd /opt/Ascend310B-source/repack
cd drivers
上传新的驱动文件(ko文件),文件生成方式请参见编译驱动,文件传输方式请参见使用WinSCP传输文件。
执行以下命令,查看上传的驱动文件(ko文件)。
ls
- 执行以下命令回到“repack”目录,再进入“scripts”目录。
cd /opt/Ascend310B-source/repack
cd scripts
上传含通用驱动的自动加载配置文件11-atlas.conf或上传不含通用驱动的自动加载配置文件filelist.csv和minirc_sys_init_ext.sh,文件生成方式请参见驱动自动加载配置,文件传输方式请参见使用WinSCP传输文件。
执行以下命令,查看上传的驱动文件的加载脚本。
ls
- 执行如下命令,回到“Ascend310B-source”目录。
cd /opt/Ascend310B-source
- 执行以下命令,在“Ascend310B-source”目录下新建“repack”目录并进入。若已创建,则无需重复创建。
- 执行如下命令,编译驱动。
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表示软件包版本号。
- 用户请将编译后的驱动包上传至自有的环境进行安装,安装操作请参见驱动与固件升级。