在嵌入式AI開發中,將Deepseek大模型部署到RK3588(瑞芯微高性能SoC)是實現邊緣端智能應用的關鍵需求。但很多開發者會卡在編譯配置、依賴沖突等環節。本文基于實際操作流程,詳細講解直接在RK3588板子上編譯Deepseek可執行程序的完整步驟,包含CMake配置、代碼上傳、常見報錯解決,幫你避開所有“坑”。

本文將圍繞以下4部分展開:
1.部署前必備準備(硬件/軟件/工具)
2.核心配置:CMakeLists.txt解析與修改
3.分步操作:代碼上傳→編譯→報錯解決
4.編譯成功驗證與總結
一、部署前準備:確認這些“必需品”
在開始操作前,先確保你的環境滿足以下條件,避免后續反復返工:
|
類型
|
具體要求
|
|
硬件
|
RK3588開發板(已刷入Linux系統,如Linaro-Alip),確保有SSH連接或串口訪問權限
|
|
軟件源碼
|
Deepseek部署可執行程序源碼包(含main.cc、CMakeLists.txt、lib庫目錄)
|
|
依賴庫
|
內置librkllmrt.so(RKLLM推理庫)、libgomp.so(OpenMP支持庫)
|
|
編譯工具
|
板子自帶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 ./) # 安裝模型文件夾
關鍵提醒:若你的工具鏈路徑、源碼目錄與本文不同,需同步修改第4、5、6、9行的路徑參數,這是后續編譯成功的基礎!
三、分步操作:從代碼上傳到編譯排錯
這部分是實操核心,我們按“上傳→編譯→解決報錯”的順序逐步推進,所有命令均來自實際RK3588終端操作。
步驟1:將代碼上傳到RK3588的/data路徑
先通過SSH或U盤將Deepseek源碼壓縮包(xsc_deepseek.zip)傳到RK3588的/data目錄,然后執行解壓命令,查看目錄結構是否完整:
|
正常情況下,ls會輸出以下文件/目錄(確認無缺失):
build-linux.sh CMakeLists.txt lib main.cc rkllm_model
其中:
?lib/:存放librkllmrt.so和libgomp.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系統時間與文件修改時間不匹配(可能是板子斷網后時間錯亂)
解決命令:手動同步系統時間(本文示例時間為2025年09月02日18:28,可根據實際修改)
# 設置系統時間(格式:年-月-日 時秒)date-s"20250902 1800"# 重新執行編譯腳本./build-linux.sh
報錯3:“undefined reference to pthread_getaffinity_np@GLIBC_2.32”
原因:自帶的libgomp.so版本與RK3588的GLIBC(2.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_DIR和RKLLM_RT_LIB的路徑不能錯;
2.報錯解決有規律:權限問題用chmod,時間問題用date -s,依賴庫問題用“查找系統兼容庫+替換”的思路;
3.驗證步驟不能少:編譯后一定要到install目錄確認可執行程序和模型目錄是否存在,為后續運行模型做好準備。
如果后續需要運行Deepseek模型,只需在安裝目錄執行./xsc_deepseek_demo即可(需確保模型配置正確)。若你在操作中遇到其他問題,歡迎在評論區留言討論!
?
-
嵌入式
+關注
關注
5198文章
20449瀏覽量
334061 -
大模型
+關注
關注
2文章
3650瀏覽量
5183 -
DeepSeek
+關注
關注
2文章
835瀏覽量
3266
發布評論請先 登錄
ATK-DLRK3588開發板deepseek-r1-1.5b/7b部署指南
添越智創基于 RK3588 開發板部署測試 DeepSeek 模型全攻略
RK3588開發板上部署DeepSeek-R1大模型的完整指南
手把手教你安裝Quartus II
在RK3588開發板上部署并測試DeepSeek模型
瑞芯微RKNPU開發全指南:從環境搭建到性能優化,一文搞定邊緣AI部署
RK3588 CPU?隔離:AB/非?AB?系統雙方案適配實戰
手把手教你在RK3588上部署Deepseek:從編譯到排錯全指南
評論