手把手教你在RK3588上部署Deepseek:从编译到排错全指南

伍华  2026-02-19 11:39:21  阅读 6 次

嵌入式AI开发中,将Deepseek大模型部署到RK3588瑞芯微高性能SoC)是实现边缘端智能应用的关键需求。但很多开发者会卡在编译配置、依赖冲突等环节。本文基于实际操作流程,详细讲解直接在RK3588板子上编译Deepseek可执行程序的完整步骤,包含CMake配置、代码上传、常见报错解决,帮你避开所有

手把手教你在RK3588上部署Deepseek:从编译到排错全指南

本文将围绕以下4部分展开:

1.部署前必备准备(硬件/软件/工具)

2.核心配置:CMakeLists.txt解析与修改

3.分步操作:代码上传编译报错解决

4.编译成功验证与总结

一、部署前准备:确认这些必需品

在开始操作前,先确保你的环境满足以下条件,避免后续反复返工:

类型

具体要求

硬件

RK3588开发板(已刷入Linux系统,如Linaro-Alip),确保有SSH连接或串口访问权限

软件源码

Deepseek部署可执行程序源码包(含main.ccCMakeLists.txtlib库目录)

依赖库

内置librkllmrt.soRKLLM推理库)、libgomp.soOpenMP支持库)

编译工具

板子自带aarch64-linux-gnu-gcc/g++(需确认路径与版本,本文用GNU 10.2.1

先通过以下命令验证系统编译工具是否可用(若有输出则正常):

# 查看GCC版本gcc --version# 查看G++版本g++ --version# 确认工具链路径(本文默认路径为/usr/bin/)whichaarch64-linux-gnu-gcc

二、核心配置:修改CMakeLists.txt

CMakeLists.txt是编译的指挥文件,需根据RK3588环境调整工具链路径、依赖库引用与安装配置。以下是完整配置代码及关键参数解析:

# 1. 最低CMake版本要求(需≥3.8,避免语法不兼容)cmake_minimum_required(VERSION 3.8)# 2. 项目名称(自定义,建议含硬件标识)project(xsc_deepseek_rkllm_demo)# 3. C++标准配置(固定C++11,适配多数嵌入式环境)set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_REQUIRED ON)# 4. 工具链路径配置(关键!需与RK3588实际路径匹配)set(TOOLCHAIN_DIR /usr) # 工具链根目录set(CMAKE_CXX_COMPILER${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-g++) # C++编译器set(CMAKE_C_COMPILER${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-gcc) # C编译器# 5. 源码目录与头文件路径(指定Deepseek源码根目录,引入RKLLM头文件)set(CMAKE_SOURCE_DIR /data/xsc_deepseek)include_directories(${CMAKE_SOURCE_DIR}/lib/librkllm_api/include/)# 6. 依赖库配置(链接RKLLM推理库与OpenMP库)set(RKLLM_RT_LIB${CMAKE_SOURCE_DIR}/lib/librkllm_api/librkllmrt.so) # RKLLM核心库set(GOMP_LIB${CMAKE_SOURCE_DIR}/lib/libgomp/libgomp.so) # OpenMP并行库# 7. 生成可执行程序(指定源码文件main.cc,输出程序名xsc_deepseek_demo)add_executable(xsc_deepseek_demo main.cc)# 8. 链接依赖库(将程序与RKLLM、OpenMP库关联,缺一不可)target_link_libraries(xsc_deepseek_demo${RKLLM_RT_LIB}${GOMP_LIB})# 9. 安装配置(指定编译产物的输出目录,方便后续调用)set(CMAKE_INSTALL_PREFIX${CMAKE_SOURCE_DIR}/install/xsc_deepseek_rkllm_demo)install(TARGETS xsc_deepseek_demo DESTINATION ./) # 安装可执行程序install(DIRECTORY rkllm_model DESTINATION ./) # 安装模型文件夹

关键提醒:若你的工具链路径、源码目录与本文不同,需同步修改第4569行的路径参数,这是后续编译成功的基础!

三、分步操作:从代码上传到编译排错

这部分是实操核心,我们按上传编译解决报错的顺序逐步推进,所有命令均来自实际RK3588终端操作。

步骤1:将代码上传到RK3588/data路径

先通过SSHU盘将Deepseek源码压缩包(xsc_deepseek.zip)传到RK3588/data目录,然后执行解压命令,查看目录结构是否完整:

# 进入/data目录cd/data# 解压源码包unzip xsc_deepseek.zip# 进入解压后的目录,查看文件列表cdxsc_deepseekls

正常情况下,ls会输出以下文件/目录(确认无缺失):

build-linux.sh CMakeLists.txt lib main.cc rkllm_model

其中:

lib/:存放librkllmrt.solibgomp.so依赖库

rkllm_model/Deepseek模型文件目录

build-linux.sh:编译脚本

main.cc:核心业务代码

步骤2:执行编译脚本,解决3类常见报错

直接运行编译脚本可能会遇到权限、时间戳、依赖库3类问题,我们逐个解决:

报错1“bash: ./build-linux.sh:权限不够

原因:编译脚本没有可执行权限

解决命令:给脚本赋最高权限(777表示读//执行权限全开)

chmod777 ./build-linux.sh# 重新执行编译脚本./build-linux.sh

报错2警告:文件"../../main.cc"的修改时间在未来14665332秒后

原因RK3588系统时间与文件修改时间不匹配(可能是板子断网后时间错乱)

解决命令:手动同步系统时间(本文示例时间为2025090218:28,可根据实际修改)

# 设置系统时间(格式:年-月-日 时秒)date-s"20250902 1800"# 重新执行编译脚本./build-linux.sh

报错3“undefined reference to pthread_getaffinity_np@GLIBC_2.32”

原因:自带的libgomp.so版本与RK3588GLIBC2.32版本)不兼容

解决步骤

1.先找到系统中兼容的libgomp.so路径(RK3588默认在/usr/lib/gcc/aarch64-linux-gnu/10/

2.替换源码目录中旧的libgomp.so

具体命令:

# 1. 查找系统中所有libgomp.so路径find .././ -name libgomp.so# 输出会包含:../../usr/lib/gcc/aarch64-linux-gnu/10/libgomp.so(这是兼容版本)# 2. 替换源码lib目录下的旧库(覆盖两个路径,确保编译时引用正确)cp../../usr/lib/gcc/aarch64-linux-gnu/10/libgomp.so ../../usr/lib/libgomp/libgomp.socp../../usr/lib/gcc/aarch64-linux-gnu/10/libgomp.so ../../userdata/xsc_deepseek/lib/libgomp/libgomp.so# 3. 再次执行编译脚本,此时无报错./build-linux.sh

步骤3:确认编译成功

当终端输出以下信息时,说明编译与安装完成:

--Configuringdone--Generatingdone--Buildfiles have been written to:/userdata/xsc_deepseek/build/build_linux_aarch64[50%]LinkingCXXexecutable xsc_deepseek_demo[100%]Builttarget xsc_deepseek_demoInstallthe project...--Installconfiguration:""--Installing:/data/xsc_deepseek/install/xsc_deepseek_rkllm_demo/./xsc_deepseek_demo--Setruntime path of"/data/xsc_deepseek/install/xsc_deepseek_rkllm_demo/./xsc_deepseek_demo"to""--Installing:/data/xsc_deepseek/install/xsc_deepseek_rkllm_demo/./rkllm_model

可通过以下命令验证产物:

# 进入安装目录cd/data/xsc_deepseek/install/xsc_deepseek_rkllm_demo# 查看文件(应包含可执行程序和模型目录)ls输出如下即正常:xsc_deepseek_demo rkllm_model

四、总结:部署关键要点与后续建议

本次在RK3588上部署Deepseek的核心是本地编译+依赖适配,总结3个关键注意点,帮你避免重复踩坑:

1.CMake配置是基础:工具链路径、头文件目录、依赖库必须与RK3588实际环境匹配,尤其是TOOLCHAIN_DIRRKLLM_RT_LIB的路径不能错;

2.报错解决有规律:权限问题用chmod,时间问题用date -s,依赖库问题用查找系统兼容库+替换的思路;

3.验证步骤不能少:编译后一定要到install目录确认可执行程序和模型目录是否存在,为后续运行模型做好准备。

如果后续需要运行Deepseek模型,只需在安装目录执行./xsc_deepseek_demo即可(需确保模型配置正确)。若你在操作中遇到其他问题,欢迎在评论区留言讨论!

手把手教你在RK3588上部署Deepseek:从编译到排错全指南  


本文地址:https://www.shazhe.cn/huagu1198.html
免责声明:本文为原创文章,版权归 伍华 所有,欢迎分享本文,转载请保留出处!

评论已关闭!