开发环境 ubuntu18.0(编译机),rk3568开发版(行业主板)
RKNN安装
- 下载rknn sdk源码(roc rk3568)
https://www.t-firefly.com/doc/download/107.html - 安装教程:
https://wiki.t-firefly.com/zh_CN/ROC-RK3568-PC/usage_npu.html#
编译demo,部署到RK3568开发板
教程文档位于/doc目录下Rockchip_RK356X_User_Guide_RKNN_API_V1.1.0_CN.pdf
主要记录一下可能会遇到的问题
- 报错信息:** no rules target ‘…/…/…/Linux/librknn_api/aarch64/librknn_api_andriod.so’ need by ‘rknn_mobilenet_demo’
检查CMakeList.txt文件发现,在设置RKNN_API_LIB变量时其命名为librknn_api_andriod.so,然而路径‘Linux/librknn_api/aarch64/’下的对应文件名为librknn_api.so,将CMakeList.txt内的librknn_api_andriod.so(不存在的文件,所以会报错)修改为正确的文件librknn_api.so(真实存在的文件,是正确的依赖文件),再次执行build-linux.sh,编译成功结束。
总结:这个错误是由于生成文件和预设的环境异常导致的,文档中没有明确说明,一般情况下只需要确定GCC_COMPILER(gcc/g++编译器的路径)正确就行了,这次比较特殊,出现了依赖项文件不存在的情况。
我们可以尝试以下方法:
1、检查gcc编译器路径,是否可以正常使用gcc。
2、(CMakeList.txt,build/build_linux_aarch64/Makefile都可以看看)检查依赖项文件的路径填写是否完整,可用。
3、检查依赖文件是否存在(根据报错提示的路径查找文件)。
- 运行sdk中的rknn_mobilenet_demo, 提示
failed to open rknpu module,need to insmod rknpu dirver failed to open rknn device!!
部署到rk3568板载系统后,无法运行rknn模型,提示无法打开rknn设备。
解决方案:到官网下载最新固件,更新板载系统后重试。
更新固件教程:
https://wiki.t-firefly.com/zh_CN/ROC-RK3568-PC/03-upgrade_firmware.html
固件链接: https://www.t-firefly.com/doc/download/107.html 下的 固件–》Ubuntu