先找客服要SDK源码

一、编译RK182X模块   (这步官方给的教程有)(在虚拟机上)

拿到RK182XSDK后

1.解压SDK
建一个文件夹放这个SDK
mkdir rk182x_sdk

cd rk182x_sdk

解压客服给的SDK压缩包
tar xf RK182X_AI_COPROCESSOR_SDK_ALPHA_V1.0.0.tgz

.repo/repo/repo sync -l
2.配置
./build.sh config

会跳出

Select board type:
1) RK182X EVB1
2) RK182X SODIMM
3) RK182X SODIMM USB
4) RK182X M2
5) Cancel
#? 

选择2就好了

然后编译

./build.sh

然后就会生成RK182X的软件包,在output/firmware/rknn3_rk182x_sodimm_installer_arm64.tgz这个路径下。

二、将软件包在开发板上安装

把rknn3_rk182x_sodimm_installer_arm64.tgz文件拷贝到开发板上,我是直接放桌面上

在桌面建一个文件夹

mkdir RK182X

把软件包拷贝在这个目录下

进入这个目录
cd RK182X

解压
tar xzf rknn3_rk182x_sodimm_installer_arm64.tgz

安装
./install.sh

安装好后一定要重启开发板

如果没有重启输入

sudo rknn-smi -v

会显示

firefly@firefly:~/Desktop/RK182X$ sudo rknn-smi -v
  rknn-smi version              : 1.1.0
  PCIe driver version           : NA
  RC chips connect version      : NA
  EP chips connect version      : NA
  rknn3 API version             : 1.0.0
firefly@firefly:~/Desktop/RK182X$

这是不对的,重启后就会显示

rknn-smi version : 1.1.0
PCIe driver version : 3.3.0
RC chips connect version : 3.2.0
EP chips connect version : 3.2.0
PCIe Device 0 firmware version: 1.0.0
rknn3 API version : 1.0.0

这是对的。

三、RKLLM-Toolkit 安装(在虚拟机上)

1. 安装 Miniconda
下载 Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装
bash Miniconda3-latest-Linux-x86_64.sh

按照提示操作:
按 Enter 阅读协议
输入 yes 接受协议
确认安装路径(默认即可)
输入 yes 初始化 conda

重新加载配置
source ~/.bashrc

验证安装
conda -V
2.安装 miniforge3
下载 miniforge3 安装包
wget -c https://mirrors.bfsu.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh

安装 miniforge3
chmod 777 Miniforge3-Linux-x86_64.sh

bash Miniforge3-Linux-x86_64.sh

进入Conda base 环境,miniforge3 为安装目录
source ~/miniforge3/bin/activate

创建一个 Python3.9 版本(建议版本)名为 RKLLM-Toolkit 的 Conda 环境
conda create -n RKLLM-Toolkit python=3.9 -y

进入 RKLLM-Toolkit Conda 环境
conda activate RKLLM-Toolkit
3.克隆 RKNN-LLM 仓库
我是建了一个文件夹来放
mkdir RKSDK

cd RKSDK

git clone -b release-v1.2.3 https://github.com/airockchip/rknn-llm.git

打开这个克隆的软件包,在(RKLLM-Toolkit) topeet@ubuntu:~/Desktop/RKSDK/rknn-llm/rkllm-toolkit/packages$ ls
requirements_rwkv7.txt
requirements.txt
rkllm_toolkit-1.2.3-cp310-cp310-linux_x86_64.whl
rkllm_toolkit-1.2.3-cp311-cp311-linux_x86_64.whl
rkllm_toolkit-1.2.3-cp312-cp312-linux_x86_64.whl
rkllm_toolkit-1.2.3-cp39-cp39-linux_x86_64.whl有这个,安装和Python 版本安装对应的 whl 文件

我的是3.9

使用清华源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rkllm_toolkit-1.2.3-cp39-cp39-linux_x86_64.whl

验证是否安装成功

输入
python
from rkllm.api import RKLLM

显示下面这个就是安装成功
lm-toolkit/packages$ python
Python 3.9.23 | packaged by conda-forge | (main, Jun  4 2025, 17:57:12) 
[GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from rkllm.api import RKLLM
>>> 

四、大语言模型转换

我部署千问7B的模型,所以就以千问7B模型部署为例

1.获取模型
使用 Hugging Face 镜像加速
设置镜像环境变量:
export HF_ENDPOINT=https://hf-mirror.com

安装 huggingface_hub:
pip install huggingface_hub

下载模型:
huggingface-cli download Qwen/Qwen2.5-7B-Instruct --local-dir ./Qwen2.5-7B-Instruct --resume-download
2.下载后进入模型转换案例文件夹里
cd ~/Desktop/RKSDK/rknn-llm/examples/rkllm_api_demo/export
3.修改export_rkllm.py文件,把modelpath = '/home/topeet/Desktop/RKSDK/rknn-llm/rkllm-toolkit/packages/Qwen2.5-7B-Instruct'这个改为你自己下载的模型路径。

运行过程中因为我没有GPU所以会自动启动CPU模式,但是我的内存只有26G,运行一半我的模型转换会被杀死,于是把float32改为float16,但是CPU模式又不支持float16,所以最后只能增大交换内存

# 创建额外的 16GB swap
sudo fallocate -l 16G /swapfile2
sudo chmod 600 /swapfile2
sudo mkswap /swapfile2
sudo swapon /swapfile2

# 查看总 swap(应该变成 35GB)
free -h
4.转换模型
python3 export_rkllm.py

转换成功

5.在 PC 上交叉编译 llm_demo
# 1. 下载交叉编译工具链(如果还没有)
cd ~
在这个地址下载编译工具,复制到虚拟机里
https://developer.arm.com/-/media/files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz?rev=33c6e30e5ac64e6dba8f0431f2c35f1b&revision=33c6e30e-5ac6-4e6d-ba8f-0431f2c35f1b&hash=632C6C0BD43C3E4B59CA8A09A7055D30

解压
tar -xf gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz

# 2. 进入 RKLLM 部署目录
cd ~/Desktop/RKSDK/rknn-llm/examples/rkllm_api_demo/deploy

# 3. 编辑编译脚本
vim build-linux.sh

找到GCC_COMPILER_PATH这行,改为GCC_COMPILER_PATH=~/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu就可以,改成你自己下载的版本

添加可执行权限

chmod +x ./build-linux.sh

编译

./build-linux.sh
6.打包部署文件
# 1. 创建部署目录
mkdir -p ~/rkllm_deploy

# 2. 复制模型文件(你的转换好的模型)
cp ~/Desktop/RKSDK/rknn-llm/examples/rkllm_api_demo/export/Qwen2.5-7B-Instruct_W8A8_RK3588.rkllm ~/rkllm_deploy/

# 3. 复制 llm_demo
cp ~/Desktop/RKSDK/rknn-llm/examples/rkllm_api_demo/deploy/install/demo_Linux_aarch64/llm_demo ~/rkllm_deploy/

# 4. 复制 Runtime 库
cp ~/Desktop/RKSDK/rknn-llm/examples/rkllm_api_demo/deploy/install/demo_Linux_aarch64/lib/librkllmrt.so ~/rkllm_deploy/

# 5. 复制定频脚本
cp ~/Desktop/RKSDK/rknn-llm/scripts/fix_freq_rk3588.sh ~/rkllm_deploy/ 2>/dev/null || echo "定频脚本不存在,跳过"

# 6. 添加执行权限
chmod +x ~/rkllm_deploy/llm_demo
chmod +x ~/rkllm_deploy/fix_freq_rk3588.sh 2>/dev/null

# 7. 打包
cd ~
tar -czf rkllm_deploy.tar.gz rkllm_deploy/

# 8. 查看打包文件大小
ls -lh rkllm_deploy.tar.gz

把压缩包复制到开发板上

五、大语言模型部署

1.解压
tar -xzf rkllm_deploy.tar.gz
2.
# 修改第一行
sed -i 's|#!/system/bin/sh|#!/bin/bash|' fix_freq_rk3588.sh

# 添加执行权限
chmod +x fix_freq_rk3588.sh

# 运行
sudo ./fix_freq_rk3588.sh
3.
# 设置库路径
export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH

# 运行
./llm_demo ./Qwen2.5-7B-Instruct_W8A8_RK3588.rkllm 4096 512

等待模型加载成功即可

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐