作者使用的平台有:
一台装有Windows系统的宿主机,在该宿主机上装有Ubuntu 20.04虚拟系统;
瑞芯微RK3588开发板,开发板上的系统为Ubuntu22.04系统;
更新板子的 rknn_server 和 librknnrt.so,rknn_server 和 librknnrt.so 介绍如下所示:
librknnrt.so: 是一个板端的 runtime 库。
rknn_server: 是一个运行在板子上的后台代理服务,用于接收 PC 通过 USB 传输过来的协议, 然后执行板端 runtime 对应的接口,并返回结果给 PC。
rknn_server 以及 librknnrt.so 文件来源于:https://github.com/rockchip-linux/rknpu2 如下:
下载好文件夹(rknpu2-master)后,如下所示:
打开runtime文件夹,得到:
由于我们的开发板为RK3588,因此我们打开名为RK3588的文件夹,得到:
由于开发板上面的系统为Ubuntu22.04系统,因此我们打开名为Linux的文件夹,得到:
首先打开rknn_server文件夹,得到:
由于是Ubuntu系统,因此选择 aarch64 文件夹,得到:
进入usr文件夹,得到:
进入bin文件夹,得到:
我们需要将上图中的rknn_server 文件推送到开发板上,具体过程及指令如下所示:
推送拷贝 rknn_server 到开发板,输入以下命令: adb push runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/rknn_server /vendor/bin/
接下来我们推送拷贝 librknnrt.so 文件 。
直接到这一步,如下图所示:
打开librknn_api -> aarch64 ,得到:
我们需要将上图中的 librknnrt.so 文件推送到开发板上,具体过程及指令如下所示:
推送拷贝 librknnrt.so 到开发板,输入以下命令:
adb push runtime/RK3588/Linux/librknn_api/aarch64/librknnrt.so /vendor/lib64
打开 adb shell 命令行,即可操作 iTOP-rk3588 开发板。
修改 rknn_server 权限,并同步修改的内容(sync),输入以下命令: chmod +x /vendor/bin/rknn_server