基于易百纳玄武S3(RK3588+RK182X平台)部署llama-rknn3-server示例

📅 发布时间:2026/10/14 15:47:06
基于易百纳玄武S3(RK3588+RK182X平台)部署llama-rknn3-server示例
硬件平台易百纳玄武S3简介本文主要介绍llama-rknn3-server示例在Ebaina玄S3边缘计算AI终端上的交叉编译、板端部署与运行验证方法。该示例基于llama.cpp Web UI和OpenAI兼容接口提供统一入口实际推理由板端rkllm3-server完成面向RK3588RK182平台可在完全离线的端侧运行大模型对话。服务启动后包含两个进程llama-server对外提供 Web UI、健康检查及 OpenAI 兼容接口默认监听0.0.0.0:18080rkllm3-server本机后端模型服务默认监听127.0.0.1:8082由llama_server_startup启动、停止和切换模型。说明deb包只包含应用二进制、运行脚本、动态库和systemd服务文件不包含模型文件也不包含rkllm3-server本体需板端提前安装rkllm3-server。示例功能提供Web UI对话界面默认监听0.0.0.0:18080支持文本与图片多轮对话模型下拉框位于输入框右下角可在多个模型之间切换切换时llama-server调用llama_server_startup switch model重启后端rkllm3-server自动识别视觉模型模型目录中含*vision*/*vl*的.rknn选择视觉模型后可在Web UI上传图片问答支持多卡分段级联模型xxx_seg0.rknn/xxx_seg1.rknn…分段数与NPU卡数一一对应可体验更大参数量模型。整体流程分为三步在x86编译服务器上准备llama.cpp源码、交叉编译并打包生成arm64 deb包将deb包推送到板端安装将模型推送到板端/userdata/models目录启动llama-rknn3-server服务通过Web UI与OpenAI兼容接口验证对话与推理效果。环境准备项目说明编译环境x86_64 Linux 编译服务器Nodejs版本要求Node.js 22.12SDKRK182X SDK网盘资料【易百纳】玄武S3边缘计算AI终端_V2.0中的rk182x_ai_release.tar.gz交叉编译工具链aarch64-none-linux-gnu(toolchain)目标板Ebaina玄武S3边缘计算AI终端Debian 13RK3588RK182X模型与文件Qwen3.5-4Bllama.cpp.tar.gz从【易百纳】RK182X_模型文件网盘资料获取1. 准备 llama.cpp 源码将llama.cpp.tar.gz网盘资料获取放到SDK/applications/llama-rknn3-server/目录下解压再执行准备脚本cd applications/llama-rknn3-server tar -xvf llama.cpp.tar.gz # 执行准备脚本应用本地补丁、校验版本 bash scripts/prepare-llama-cpp.sh2. 编译设置交叉编译工具链后执行编译脚本cd SDK/applications/llama-rknn3-server # 工具链路径以本机实际位置为准 export AARCH64_TOOLCHAIN/toolchain实际路径/toolchain/aarch64-none-linux-gnu bash scripts/build-linux.sh -DGGML_CCACHEOFF编译输出编译完成后运行产物会暂存到install/llama-rknn3-server/暂存目录中的主要文件包括usr/bin/llama-serverusr/bin/llama_rkllm3_server_runusr/bin/llama_server_startupusr/lib/lib*.so.0usr/lib/libllama-server-impl.so3. 打包执行打包脚本生成 arm64 deb 包cd SDK/applications/llama-rknn3-server bash scripts/package-deb.sh默认生成 out/llama-rknn3-server_1.0.0_arm64.debout/llama-rknn3-server_1.0.0_arm64.deb.sha256。deb 安装后的系统路径如下系统路径说明/usr/bin/llama-server对外 Web UI 和 OpenAI proxy 服务。/usr/bin/llama_rkllm3_server_runsystemd 主启动脚本。/usr/bin/llama_server_startuprkllm3-server后端控制脚本。/usr/lib/lib*.so.0llama.cpp 运行库。/usr/lib/libllama-server-impl.sollama-server 实现库。/lib/systemd/system/llama-rknn3-server.servicesystemd 服务文件。4. 板端安装以下命令使用通用 ADB 写法适用于已连接的 ADB 设备也可在板端 shell 中直接执行对应命令# PC端推送deb包到板端任意目录 adb push \out\llama-rknn3-server_1.0.0_arm64.deb /userdata cd userdata/ # 板端安装 dpkg -i llama-rknn3-server_1.0.0_arm64.deb5. 板端模型部署将模型目录推送到板端/userdata/models下本例以Qwen3.5-4B为例亦支持Qwen2.5-3B等其他RKLLM模型# 将模型目录推送到板端/userdata/models目录下 adb push Qwen3.5-4B /userdata/models6. 运行# 运行 systemctl start llama-rknn3-server # 停止 systemctl stop llama-rknn3-server # 重启 systemctl restart llama-rknn3-server查看服务状态systemctl status llama-rknn3-server --no-pager /usr/bin/llama_server_startup status /usr/bin/llama_server_startup pid查看日志journalctl -u llama-rknn3-server -n 100 --no-pager cat /run/llama-rknn3-server/rkllm3.log7. Web访问对话服务启动后在PC浏览器访问http://board-ip:18080本例为http://192.168.1.168:18080/请替换为你板端的实际IP地址。如图所示可以进行对话对话框右下角可以选择模型8. 测试基础接口测试curl -sS http://board-ip:18080/health curl -sS http://board-ip:18080/v1/modelsWeb UI静态资源默认使用压缩响应命令行测试首页时建议加--compressedcurl --compressed -sS -o /tmp/llama-rknn3-ui.html -w %{http_code}\n http://board-ip:18080/文本问答测试curl -sS http://board-ip:18080/v1/chat/completions \ -H Content-Type: application/json \ -d { model: model-id-from-v1-models, messages: [ { role: user, content: 你好请用一句话介绍你自己。 } ], stream: false }图片问答测试建议直接使用Web UI选择视觉模型后在输入框区域上传图片并提问。常见问题服务启动失败先检查rkllm3-server是否可执行adb shell which rkllm3-serverWeb UI 无法访问检查llama-rknn3-server.service是否处于active并确认板端18080端口未被其他服务占用ss -ltnp | grep 18080。后端异常退出systemd 会将服务判定为失败并按Restarton-failure自动重启。可通过journalctl -u llama-rknn3-server -n 100 --no-pager和/run/llama-rknn3-server/rkllm3.log查看具体原因。编译时报llama.cpp has local changes说明llama.cpp工作区有未提交改动先恢复干净再编译git -C llama.cpp reset --hard HEAD git -C llama.cpp clean -fd git -C llama.cpp status --short或将llama.cpp目录备份移走后重新执行bash scripts/prepare-llama-cpp.sh --force。