本教程适合rk3588以及rk356x.
因为目前内核中RKNPU版本过低, 导致 c demo无法运行, 也就是c语言的推理无法进行, 需要进行驱动方面的升级, 但是在网上找到的教程都是升级rknn_server和librknnrt.so文件, 只是升级了调用的api接口罢了, 并不能真正的解决问题.
自己琢磨了好久终于解决, 并将rknpu驱动从0.8.2升级到0.8.8.
其实很简单的.
如果不升级RKNPU (内核驱动层面 ) 驱动会导致c接口无法调用.
# 查看 RKNPU 版本
dmesg | grep -i rknpu
升级RKNPU方法:
1、解压 rk3588_kernel_drivers_rknpu_0.8.8.tar.gz,并替换到 SDK/kernel/drivers 目录中。
2、在 SDK 根目录下执行 ./build.sh kernel 以重新编译内核。
3、编译完成后,将生成的 boot.img 文件(位于 SDK/rockdev/ 目录)烧录到设备的 boot 分区即可。
测试是否升级成功
重启开机执行 dmesg | grep rknpu , 查看是否升级成功, 结果如下:
[ 4.482983] RKNPU fdab0000.npu: RKNPU: rknpu iommu is enabled, using iommu
mode
[ 4.483810] [drm] Initialized rknpu 0.8.8 20230428 for fdab0000.npu on minor 1
[ 4.486180] debugfs: Directory 'fdab0000.npu-rknpu' with parent 'vdd_npu_s0'
already present!
中间的显示已经是0.8.8了, 成功 !!!