当前位置:首页>Linux>Linux配置瑞芯微RKNN

Linux配置瑞芯微RKNN

  • 2026-10-21 13:26:52
Linux配置瑞芯微RKNN
目标:Windows下安装虚拟机,安装Ubuntu,配置RKNN环境,将.onnx转为.rknn
Docker固然好,能一键无痛搞定环境依赖问题,但是在实际模型转换中,有些板子需要用到最新的2.3.2版本,而Docker镜像版本只到2.3.0,版本不够会导致转换出错:
​
在Linux下安装RKNN-Toolkit2,需要注意各种版本的依赖。还好,Linux下面也有Docker镜像。我们可以根据官方提供的Docker来选择Ubuntu版本。
打开RKNN-Toolkit2的官方仓库:https://github.com/airockchip/rknn-toolkit2,进入目录rknn-toolkit2/rknn-toolkit2/packages/x86_64/中,可以看到提供了各Python版本下的Docker镜像,比Windows下丰富多了:
在 Linux (Ubuntu) 上安装 RKNN-Toolkit2 v2.3.2,官方支持几个特定版本的 Ubuntu。下面是官方支持的组合:
Ubuntu版本和Python版本
Ubuntu 20.04    Python 3.8, 3.9
Ubuntu 22.04    Python 3.10, 3.11  
Ubuntu 24.04    Python 3.12
这里保守一点,选个Python3.9,也就是安装20.04版本。
​
arm64和x86_64的区别
在目录rknn-toolkit2/rknn-toolkit2/packages/中有arm64和x86_64两个文件夹,对应不同的文件后缀,_x86_64.whl供开发主机用,主要用于模型的加载、转换(ONNX -> RKNN)、量化、仿真和性能分析。
_aarch64.whl供ARM设备用,直接在 ARM架构的开发板如RK3568的Linux系统中。在开发板上直接运行RKNN模型进行推理,或需要在板端进行一些简单的模型操作时安装。通常不在开发板上做复杂的模型转换。
​
一、安装虚拟机和Ubuntu
虚拟机软件选的是Oracle VirtualBox,免费开源,可以在的Windows系统上创建一个完整、独立的Ubuntu虚拟机,提供最纯净可控的Linux开发环境。
下载Ubuntu镜像文件ubuntu-desktop-amd64.iso,创建虚拟机:
接着会自动安装Ubuntu系统,等待自动安装完成,这里ubuntu下载的镜像系统是24.04。本来想下20.04的,但是,官网直接弹出的这个版本,于是就下载了,希望不要出Bug:
​
这里Virtual Box的鼠标操作:按右 Ctrl 键在宿主机和虚拟机间切换鼠标控制。
​
设置共享文件夹
完成安装后,设置共享文件夹,让在虚拟机访问宿主机的文件。
①在VirtualBox中,把虚拟机已关机
②右键点击虚拟机 -> 设置 -> 共享文件夹
③添加需要共享的文件夹,设置文件夹名称,如 rk_share,务必勾选“自动挂载”和“固定分配”。
启动虚拟机,打开终端,运行以下命令。
创建文件夹 sudo mkdir /mnt/share
将共享文件夹挂载到创建得文件夹中 sudo mount -t vboxsf rk_share /mnt/share
其中rk_share为在添加共享文件夹时的共享文件夹名称。
在Windows的rk_share文件中放入文件,在虚拟机命令行输入 ls /mnt/share,可以看到自己刚刚在 winshare文件中放的文件。共享设置成功!
二、Ubuntu环境配置
①更新系统包:sudo apt update
​
②下载RKNN-Toolkit2安装包
方法一:使用GihHub下载(文件大下载慢容易断网) https://github.com/airockchip/rknn-toolkit2.git
方法二:使用Gitee镜像(速度很快):https://gitee.com/polarbird/rknn-toolkit2
​
③设置虚拟环境
安装虚拟环境工具:sudo apt install python3-venv python3-full -y
创建虚拟环境(路径可自定义,如 ~/rknn_env): python3 -m venv ~/rknn_env
激活虚拟环境:source ~/rknn_env/bin/activate
激活后,终端前缀会显示 (rknn_env),此时可以安装本地包
​
④安装依赖和RKNN-Toolkit2
安装pip: sudo apt install python3-pip
安装必需的Python依赖库:pip3 install -r requirements_cp38-2.3.2.txt
安装 RKNN-Toolkit2 主包:
pip3 install ./rknn_toolkit2-2.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
⑥验证安装
在终端输入 python,进入Python交互环境,执行:from rknn.api import RKNN,没有报错说明环境安装成功。
​
三、模型转换
将model.onnx和convert.py放到Windows系统下的rk_share文件夹中,在Linux进入/mnt/share,执行转换命令:
python3 convert.py model.onnx ./out.rknn
如果不出意外的话,就能得到out.rknn模型文件了,但是,,果然出意外,报错了,,,
这个报错提示 AttributeError: module 'onnx' has no attribute 'mapping' 是典型的 依赖版本不兼容问题。
可能的原因有两个:
一个是ONNX版本过高:rknn_toolkit2 2.3.2 依赖旧版 ONNX(如 1.13.1),而你当前环境安装的是新版 ONNX(1.15+),新版已移除 onnx.mapping 模块。
二是Python版本过高:rknn_toolkit2 2.3.2 官方仅支持 Python 3.8~3.10,当前使用Python 3.12,存在底层兼容性风险。
解决办法:创建一个低版本的Python虚拟环境
安装miniconda3管理虚拟环境:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && bash miniconda.sh
安装引导:
执行安装命令后,终端会弹出引导,以下操作,不要改默认配置:
  1. 用户协议:按 回车 翻到协议末尾,输入 yes 同意。
  2. 安装路径:默认路径为 /home/你的用户名/miniconda3,直接按 回车(不要修改,否则后续配置会出错)。
  3. 初始化配置:最后会提示 Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no] → 输入 yes 并回车!
这是解决「conda 命令找不到」的核心步骤,选 no 会导致环境变量未配置,后续需手动修复。
安装完成后输入:conda --version  可以查看conda版本,说明安装成功。
使用conda创建python3.9版本的虚拟环境:
conda create -n py39 python=3.9 -y
果然,又弹出问题了:
CondaToSNonInteractiveError 是 Anaconda 官方源的新机制:Anaconda 官方源(repo.anaconda.com)现在要求用户接受《服务条款(Terms of Service, ToS)》才能访问包。但是当前终端处于非交互式模式,无法自动弹出同意界面,因此创建环境的命令被拦截。没办法,只能输入以下命令接受,否则只能换源,换源的命令更麻烦。
接受 main 通道的 ToS:
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
接受 r 通道的 ToS:
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
接着重新创建虚拟环境:conda create -n py39 python=3.9 -y
激活虚拟环境:conda activate py39
进入到/mnt/share目录下,重新安装rknn-toolkit,注意:以下操作都在虚拟环境中进行:
在py39的虚拟环境中安装依赖库:pip3 install -r requirements_cp39-2.3.2.txt (装着装着报错:磁盘空间不够,VB又不知道怎么扩容,气得我直接删主机重装系统)
安装 RKNN-Toolkit2 主包:
pip3 install ./rknn_toolkit2-2.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
在终端输入 python,验证rknn:from rknn.api import RKNN
模型转换:python3 convert.py model.onnx ./out.rknn
OK!终于转换成功!
想多了!!!,还是报错:
报错原因是onnx版本问题,这里我们已经按照了虚拟环境,所以不怕,按照以下操作来:
①卸载onnx:pip uninstall onnx -y
②安装兼容版本onnx:pip install onnx==1.13.1
再次执行模型转换:python3 convert.py model.onnx ./out.rknn
OK!这次终于成功了!没有报错!
RKNN-Toolkit2官方明确支持的最高版本为3.8~3.10。兼容性较好的ONNX版本是onnx 1.13.1,所以修改onnx版本后就KO了。
​
Ubutun简洁操作流程
梳理了一遍Ubuntu的流程,该流程不管在哪个版本下的Ubuntu下都可以正常转换,因为使用了conda管理虚拟环境:
1. 更新linux包,安装pip3
sudo apt update
sudo apt install python3-pip

2.安装miniconda,装好后重开终端
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && bash miniconda.sh

3. 接受conda新机制
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r

4. 创建虚拟环境,激活虚拟环境
conda create -n py39 python=3.9 -y
conda activate py39

5. 安装rknn依赖库
pip3 install -r requirements_cp39-2.3.2.txt

6. 安装rknn主包
pip3 install ./rknn_toolkit2-2.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

7. 导包验证成功
from rknn.api import RKNN

8. 模型转换
python3 convert.py model.onnx ./out.rknn
小结
Linux下的RKNN安装流程清晰,主要是一些包的安装和依赖兼容性问题需要解决。
​

最新文章

随机文章