环境
- 昊算npu云
- 910b
报错情况
终端输入npu-smi info
后报错:
npu-smi: error while loading shared libraries: libc_sec.so: cannot open shared object file: No such file or directory
解决方案
- 调用
ldd /usr/local/bin/npu-smi
查看缺少哪些文件
root@ascend-1743749729-chief-0:~# ldd /usr/local/bin/npu-smi
linux-vdso.so.1 (0x0000ffff968fe000)
libc_sec.so => not found
libdrvdsmi_host.so => /usr/local/Ascend/driver/lib64/driver/libdrvdsmi_host.so (0x0000ffff965d0000)
libmmpa.so => not found
libascend_hal.so => /usr/local/Ascend/driver/lib64/driver/libascend_hal.so (0x0000ffff96170000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff96140000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff95f90000)
/lib/ld-linux-aarch64.so.1 (0x0000ffff968c1000)
libc_sec.so => not found
libc_sec.so => not found
librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff95f60000)
根据前文的报错信息和该命令的输出信息,缺少lib_sec.so
- 使用
find
命令查看
find / -name "libc_sec.so"
输出信息为:
root@ascend-1743749729-chief-0:~# find / -name "libc_sec.so"
find: ‘/sys/devices/virtual/powercap/dtpm’: Permission denied
/usr/local/Ascend/driver/lib64/common/libc_sec.so
可知libc_sec.so
文件的位置在/usr/local/Ascend/driver/lib64/common/libc_sec.so
,随后检查环境变量PATH
和动态链接库LD_LIBRARY_PATH
root@ascend-1743749729-chief-0:~# echo $PATH
/usr/lib/code-server/lib/vscode/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@ascend-1743749729-chief-0:~# echo $LD_LIBRARY_PATH
/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver:
可知是动态链接库中缺少lib_sec.so
- 将
/usr/local/Ascend/driver/lib64/common/libc_sec.so
添加到动态链接库LD_LIBRARY_PATH
中
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver://usr/local/Ascend/driver/lib64/common
- 验证库文件是否能被找到:
ldd /usr/local/bin/npu-smi
- 测试工具是否正常运行:
/usr/local/bin/npu-smi info
- 若有效,将设置写入环境配置文件:
echo 'export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver://usr/local/Ascend/driver/lib64/common' >> ~/.bashrc
source ~/.bashrc