开发环境搭建
2.1 板端环境准备
系统要求
支持的操作系统
- Ubuntu 20.04 LTS (推荐)
- Ubuntu 22.04 LTS
- Debian 11/12
- Buildroot (定制系统)
硬件要求
- 开发板: GM-3568JHF
- 内存: 最低2GB RAM (推荐4GB+)
- 存储: 最低16GB存储空间
- 网络: 以太网或WiFi连接
NPU驱动安装
检查NPU硬件
# 检查NPU设备节点
ls -la /dev/rknpu*
# 查看NPU设备信息
cat /proc/device-tree/npu*/compatible
# 检查NPU在设备树中的状态
cat /proc/device-tree/npu*/status安装NPU驱动
# 检查内核模块
lsmod | grep rknpu
# 如果没有加载,手动加载驱动
sudo modprobe rknpu
# 设置开机自动加载
echo "rknpu" | sudo tee -a /etc/modules
# 验证驱动加载成功
dmesg | grep -i npu驱动配置文件
# NPU设备权限配置
sudo nano /etc/udev/rules.d/99-rknpu.rules
# 添加以下内容
SUBSYSTEM=="rknpu", GROUP="video", MODE="0666"
# 重新加载udev规则
sudo udevadm control --reload-rules
sudo udevadm triggerRKNN Runtime 安装
方法一:使用预编译包
# 下载RKNN Runtime包
wget https://github.com/rockchip-linux/rknpu2/releases/download/v1.4.0/rknpu2_1.4.0_aarch64.tar.gz
# 解压安装包
tar -xzf rknpu2_1.4.0_aarch64.tar.gz
cd rknpu2_1.4.0_aarch64
# 安装运行时库
sudo cp runtime/Linux/librknn_api/aarch64/librknnrt.so /usr/lib/
sudo ldconfig
# 安装Python绑定
cd runtime/Linux/rknn_server/aarch64/usr/bin/
sudo cp rknn_server /usr/bin/
sudo chmod +x /usr/bin/rknn_server
# 安装Python API
pip3 install runtime/Linux/rknn_toolkit_lite2/packages/rknn_toolkit_lite2-1.4.0-cp38-cp38-linux_aarch64.whl方法二:从源码编译
# 克隆源码仓库
git clone https://github.com/rockchip-linux/rknpu2.git
cd rknpu2
# 编译运行时库
cd runtime/Linux/librknn_api
mkdir build && cd build
cmake ..
make -j4
# 安装库文件
sudo make install
sudo ldconfigPython环境配置
安装Python依赖
# 更新包管理器
sudo apt update
# 安装Python3和pip
sudo apt install python3 python3-pip python3-dev
# 安装必要的系统库
sudo apt install libopencv-dev python3-opencv
sudo apt install libnumpy-dev python3-numpy
sudo apt install python3-pillow
# 安装RKNN相关Python包
pip3 install rknn-toolkit-lite2
pip3 install opencv-python
pip3 install numpy
pip3 install pillow验证Python环境
#!/usr/bin/env python3
# test_rknn_env.py
import sys
print(f"Python版本: {sys.version}")
try:
import numpy as np
print(f"NumPy版本: {np.__version__}")
except ImportError:
print("NumPy未安装")
try:
import cv2
print(f"OpenCV版本: {cv2.__version__}")
except ImportError:
print("OpenCV未安装")
try:
from rknnlite.api import RKNNLite
print("RKNN Lite API导入成功")
except ImportError:
print("RKNN Lite API导入失败")
# 测试NPU设备
try:
rknn = RKNNLite()
print("RKNN Lite对象创建成功")
except Exception as e:
print(f"RKNN Lite对象创建失败: {e}")# 运行测试脚本
python3 test_rknn_env.py系统优化配置
内存和性能优化
# 增加swap空间 (如果内存不足)
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久启用swap
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 调整内存参数
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.confNPU频率和电源管理
# 查看NPU频率
cat /sys/class/devfreq/fdab0000.npu/cur_freq
# 设置NPU性能模式
echo performance | sudo tee /sys/class/devfreq/fdab0000.npu/governor
# 查看可用频率
cat /sys/class/devfreq/fdab0000.npu/available_frequencies
# 设置固定频率 (可选)
echo 600000000 | sudo tee /sys/class/devfreq/fdab0000.npu/userspace/set_freq网络和远程开发配置
SSH服务配置
# 安装SSH服务
sudo apt install openssh-server
# 启动SSH服务
sudo systemctl enable ssh
sudo systemctl start ssh
# 配置SSH (可选)
sudo nano /etc/ssh/sshd_config
# 重启SSH服务
sudo systemctl restart ssh文件传输工具
# 安装rsync
sudo apt install rsync
# 安装scp/sftp (通常已包含在openssh中)
# 使用示例:
# scp file.txt user@board_ip:/home/user/
# rsync -av local_dir/ user@board_ip:/remote_dir/2.2 PC 端环境搭建
系统要求
支持的操作系统
- Windows 10/11 (x64)
- Ubuntu 18.04/20.04/22.04 (x64)
- macOS 10.15+ (x64/ARM64)
硬件要求
- CPU: Intel i5或AMD Ryzen 5以上
- 内存: 最低8GB RAM (推荐16GB+)
- 存储: 最低20GB可用空间
- 网络: 稳定的互联网连接
Python环境安装
Windows环境
# 下载并安装Python 3.8-3.10 (推荐3.9)
# 从 https://www.python.org/downloads/ 下载
# 验证安装
python --version
pip --version
# 升级pip
python -m pip install --upgrade pip
# 安装虚拟环境工具
pip install virtualenv
# 创建虚拟环境
python -m venv rknn_env
# 激活虚拟环境
rknn_env\Scripts\activate
# 在虚拟环境中安装依赖
pip install rknn-toolkit2
pip install numpy opencv-python pillow matplotlibLinux环境
# Ubuntu/Debian系统
sudo apt update
sudo apt install python3 python3-pip python3-venv
# 创建虚拟环境
python3 -m venv rknn_env
# 激活虚拟环境
source rknn_env/bin/activate
# 安装RKNN-Toolkit2
pip install rknn-toolkit2
# 安装其他依赖
pip install numpy opencv-python pillow matplotlib torch torchvision onnxmacOS环境
# 安装Homebrew (如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装Python
brew install python@3.9
# 创建虚拟环境
python3 -m venv rknn_env
# 激活虚拟环境
source rknn_env/bin/activate
# 安装依赖
pip install rknn-toolkit2
pip install numpy opencv-python pillow matplotlibRKNN-Toolkit2 详细安装
安装最新版本
# 激活虚拟环境
source rknn_env/bin/activate # Linux/macOS
# 或
rknn_env\Scripts\activate # Windows
# 安装RKNN-Toolkit2
pip install rknn-toolkit2
# 验证安装
python -c "from rknn.api import RKNN; print('RKNN-Toolkit2安装成功')"离线安装 (网络受限环境)
# 下载离线安装包
wget https://github.com/rockchip-linux/rknn-toolkit2/releases/download/v1.4.0/rknn_toolkit2-1.4.0+29bac7b4-cp39-cp39-linux_x86_64.whl
# 离线安装
pip install rknn_toolkit2-1.4.0+29bac7b4-cp39-cp39-linux_x86_64.whl
# 安装其他依赖
pip install numpy opencv-python pillow matplotlib开发工具安装
代码编辑器
# Visual Studio Code (推荐)
# 下载地址: https://code.visualstudio.com/
# 安装有用的扩展
# - Python
# - Jupyter
# - Remote-SSH (远程开发)
# - GitLensJupyter Notebook
# 安装Jupyter
pip install jupyter notebook
# 启动Jupyter
jupyter notebook
# 或安装JupyterLab
pip install jupyterlab
jupyter labGit版本控制
# Windows: 下载Git for Windows
# Linux: sudo apt install git
# macOS: brew install git
# 配置Git
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"环境验证
创建测试脚本
#!/usr/bin/env python3
# pc_env_test.py
import sys
import platform
print("=== PC端RKNN开发环境检查 ===")
print(f"操作系统: {platform.system()} {platform.release()}")
print(f"Python版本: {sys.version}")
print(f"Python路径: {sys.executable}")
# 检查必要的包
packages = [
'numpy', 'cv2', 'PIL', 'matplotlib',
'rknn', 'torch', 'onnx'
]
for package in packages:
try:
if package == 'cv2':
import cv2
print(f"✓ OpenCV: {cv2.__version__}")
elif package == 'PIL':
import PIL
print(f"✓ Pillow: {PIL.__version__}")
elif package == 'rknn':
from rknn.api import RKNN
print("✓ RKNN-Toolkit2: 导入成功")
else:
module = __import__(package)
version = getattr(module, '__version__', '未知版本')
print(f"✓ {package}: {version}")
except ImportError:
print(f"✗ {package}: 未安装")
# 测试RKNN基本功能
try:
from rknn.api import RKNN
rknn = RKNN(verbose=False)
print("✓ RKNN对象创建成功")
# 测试支持的平台
platforms = ['rk3566', 'rk3568', 'rk3588']
print(f"✓ 支持的目标平台: {platforms}")
except Exception as e:
print(f"✗ RKNN测试失败: {e}")
print("\n=== 环境检查完成 ===")# 运行测试脚本
python pc_env_test.py网络连接配置
配置开发板连接
# connection_config.py
BOARD_CONFIG = {
'ip': '192.168.1.100', # 开发板IP地址
'username': 'root', # 用户名
'password': 'root', # 密码
'ssh_port': 22, # SSH端口
}
# SSH连接测试
import paramiko
def test_ssh_connection():
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(
BOARD_CONFIG['ip'],
port=BOARD_CONFIG['ssh_port'],
username=BOARD_CONFIG['username'],
password=BOARD_CONFIG['password'],
timeout=10
)
stdin, stdout, stderr = ssh.exec_command('uname -a')
result = stdout.read().decode()
print(f"开发板连接成功: {result}")
ssh.close()
return True
except Exception as e:
print(f"开发板连接失败: {e}")
return False
if __name__ == "__main__":
test_ssh_connection()项目目录结构
推荐的项目结构
rknn_project/
├── models/ # 原始模型文件
│ ├── onnx/ # ONNX模型
│ ├── pytorch/ # PyTorch模型
│ └── tensorflow/ # TensorFlow模型
├── rknn_models/ # 转换后的RKNN模型
├── datasets/ # 数据集
│ ├── images/ # 测试图片
│ └── calibration/ # 校准数据
├── scripts/ # 脚本文件
│ ├── convert/ # 模型转换脚本
│ ├── test/ # 测试脚本
│ └── deploy/ # 部署脚本
├── src/ # 源代码
│ ├── python/ # Python代码
│ └── cpp/ # C++代码
├── docs/ # 文档
├── requirements.txt # Python依赖
└── README.md # 项目说明创建项目模板
# 创建项目目录
mkdir rknn_project
cd rknn_project
# 创建子目录
mkdir -p models/{onnx,pytorch,tensorflow}
mkdir -p rknn_models
mkdir -p datasets/{images,calibration}
mkdir -p scripts/{convert,test,deploy}
mkdir -p src/{python,cpp}
mkdir docs
# 创建requirements.txt
cat > requirements.txt << EOF
rknn-toolkit2
numpy>=1.19.0
opencv-python>=4.5.0
pillow>=8.0.0
matplotlib>=3.3.0
torch>=1.8.0
torchvision>=0.9.0
onnx>=1.8.0
paramiko>=2.7.0
tqdm>=4.60.0
EOF
# 创建README.md
cat > README.md << EOF
# RKNN项目模板
## 环境要求
- Python 3.8+
- RKNN-Toolkit2
## 安装依赖
\`\`\`bash
pip install -r requirements.txt
\`\`\`
## 项目结构
- models/: 原始模型文件
- rknn_models/: 转换后的RKNN模型
- scripts/: 各种脚本
- src/: 源代码
## 使用说明
1. 将原始模型放入models/目录
2. 运行转换脚本生成RKNN模型
3. 使用测试脚本验证模型
4. 部署到开发板
EOF常见问题解决
Python环境问题
# 问题1: pip安装速度慢
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rknn-toolkit2
# 问题2: 权限问题 (Linux/macOS)
pip install --user rknn-toolkit2
# 问题3: 版本冲突
pip install --upgrade --force-reinstall rknn-toolkit2网络连接问题
# 问题1: SSH连接被拒绝
# 检查开发板SSH服务状态
sudo systemctl status ssh
# 问题2: 防火墙阻止连接
# 开发板端开放SSH端口
sudo ufw allow ssh
# 问题3: IP地址冲突
# 使用静态IP配置
sudo nano /etc/netplan/01-netcfg.yamlRKNN工具问题
# 问题1: 导入RKNN失败
# 检查Python版本兼容性
python --version
# 问题2: 模型转换失败
# 检查模型格式和版本
# 更新到最新版本的RKNN-Toolkit2
# 问题3: 内存不足
# 增加虚拟内存或使用更小的batch size环境搭建检查清单
PC端检查清单
- [ ] Python 3.8+ 安装完成
- [ ] 虚拟环境创建并激活
- [ ] RKNN-Toolkit2 安装成功
- [ ] 必要依赖包安装完成
- [ ] 开发工具配置完成
- [ ] 项目目录结构创建
- [ ] 网络连接测试通过
板端检查清单
- [ ] 操作系统正常运行
- [ ] NPU驱动加载成功
- [ ] RKNN Runtime 安装完成
- [ ] Python环境配置完成
- [ ] 系统性能优化完成
- [ ] SSH服务正常运行
- [ ] 网络连接稳定
连接测试清单
- [ ] PC到开发板SSH连接正常
- [ ] 文件传输功能正常
- [ ] RKNN环境测试通过
- [ ] 示例代码运行成功
完成以上环境搭建后,您就可以开始进行RKNN模型的开发和部署工作了。下一章将介绍如何运行官方的YOLOv5示例来验证环境配置的正确性。
