前言:

当前OpenClaw非常火爆,各种部署教程、使用说明文档很多,但笔者暂未发现在riscv芯片平台的部署内容。因此本文讲述笔者在riscv平台安装claw并且使用claw对芯片进行测试全过程。

一、运行平台:

arch:搭载Riscv架构玄铁c920 CPU芯片平台
系统:Linux Debian
(备注:不想自行编译的同学可以直接下载我的编译产物node_v25_linux_riscv.tar,执行包内install.sh 即可)

二、安装流程

2.1 使用官网安装指令尝试

  • 更新apt:apt update
  • 安装curl:apt-get install curl
  • 使用OpenClaw脚本安装:
curl -fsSL https://openclaw.ai/install.sh | bash

在这里插入图片描述
可以看出本地缺少nodejs,尝试手动先安装好nodejs环境;

2.2 交叉编译安装nodejs

2.2.1安装nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 
source ~/.bashrc 

在这里插入图片描述

2.2.2 使用 nvm 在 RISC-V 平台安装 Node.js

  • nvm ls-remote 指令列出支持版本
  • 安装最新版本:nvm install --lts,此处根据log信息可以看出nodejs没有针对riscv的包,nvm的行为是在进行下载本地编译。板子运行缓慢,因此我们直接下载到服务器进行交叉编译。
    在这里插入图片描述

2.2.3 交叉编译nodejs并手动安装

  作者使用如下配置的192核服务器交叉编译大致耗时17分钟,使用工作机进行本地交叉编译的同学可能会耗时很久,可以下载我的编译产物riscv-node-v25.8 解压到开发板上执行包内install.sh即可)
在这里插入图片描述

  根据nvm的输出我们看到下载的版本是v24.14.1(官网最新是25.8,此处我使用了最新版本)我们在服务器下载代码包,进行交叉编译
node源码包官网:https://nodejs.org/dist/

  • 下载代码:wget https://nodejs.org/dist/latest/node-v25.8.2.tar.xz
  • 解压代码:tar -xf node-v25.8.2.tar.xz
  • 配置交叉编译环境:-prefix 参数确定编译输出目录,作者定义输出到代码仓库内output目录(mkdir node-v25.8.2/output, realpath node-v25.8.2/output 拿到绝对路径)
#定义交叉编译工具环境
CC=riscv64-unknown-linux-gnu-gcc \
CXX=riscv64-unknown-linux-gnu-g++ \
CC_host=gcc \
CXX_host=g++ \
AR=riscv64-unknown-linux-gnu-ar \
RANLIB=riscv64-unknown-linux-gnu-ranlib \
python3 configure \
  --dest-cpu=riscv64 \
  --dest-os=linux \
  --cross-compiling \
  --openssl-no-asm \
  --prefix=/rvhome/yitong.lyt/release/tmp/node-v25.8.2/output

在这里插入图

  • 进行编译,并将编译产物进行strip,包含调试信息的执行文件size 达2G,不适合嵌入式环境。
make -j$(nproc)
make install
#进行strip
riscv64-unknown-linux-gnu-strip output/bin/node

执行完毕后输出如下产物:
在这里插入图片描述

  • 将输出包copy到开发板,在包内如下指令安装:
cp bin/node /usr/bin/
cp -rf lib/* /usr/lib/
cd /usr/bin/
ln -s /usr/lib/node_modules/npm/bin/npm-cli.js npm
ln -s /usr/lib/node_modules/npm/bin/npx-cli.js npx
  • 验证安装:在开发板执行如下指令,查看工具版本
node -v
npm -v

2.3 使用nodejs安装openclaw

  • 执行安装指令,使用-g 进行全局安装:
npm install -g openclaw

在这里插入图片描述

  • 测试openclaw:安装成功后会有帮助信息输出
openclaw -h

在这里插入图片描述

三、OpenClaw配置私有deepseek

为开发板创建 OpenClaw 配置文件:

mkdir ~/.openclaw/ 

将下面内容写入~/.openclaw/openclaw.json, 根据开发板实际路径修改 “workspace”: "/root/.openclaw/workspace"的值; gateway根据实际模型配置。

{
  "meta": {
    "lastTouchedVersion": "2026.3.8",
    "lastTouchedAt": "2026-03-10T05:39:37.657Z"
  },
  "wizard": {
    "lastRunAt": "2026-03-10T05:39:37.647Z",
    "lastRunVersion": "2026.3.8",
    "lastRunCommand": "onboard",
    "lastRunMode": "local"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "litellm": {
        "baseUrl": "xxxxx",
        "apiKey": "sk-local-deepseek",
        "auth": "api-key",
        "api": "openai-completions",
        "authHeader": false,
        "models": [
          {
            "id": "DeepSeek-R1",
            "name": "DeepSeek-R1",
            "api": "openai-completions",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 8193
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "litellm/DeepSeek-R1"
      },
      "workspace": "/root/.openclaw/workspace",
      "compaction": {
        "mode": "safeguard"
      },
      "maxConcurrent": 4,
      "subagents": {
        "maxConcurrent": 8
      }
    }
  },
  "tools": {
    "profile": "coding"
  },
  "messages": {
    "ackReactionScope": "group-mentions"
  },
  "commands": {
    "native": "auto",
    "nativeSkills": "auto",
    "restart": true,
    "ownerDisplay": "raw"
  },
  "session": {
    "dmScope": "per-channel-peer"
  },
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "auth": {
      "mode": "token",
      "token": "xxxxxxxxxxxxxxxxxxxx"
    },
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    },
    "nodes": {
      "denyCommands": [
        "camera.snap",
        "camera.clip",
        "screen.record",
        "contacts.add",
        "calendar.add",
        "reminders.add",
        "sms.send"
      ]
    }
  }
}

四、OpenClaw测试运行

  • 启动网关:openclaw gateway
    在这里插入图片描述
  • 开启会话:openclaw tui
    在这里插入图片描述
  • 执行测试:例如配置开发板Type-C为device,让pc识别出u盘。可以看到当openclaw执行完毕后,pc识别到了一个nonameu盘。
    在这里插入图片描述

4.1 绑定微信机器人

1) 将openclaw 网关关闭(将运行openclaw gateway 指令停掉,或者通过ps -ef | grep openclaw 找出进程号, 使用kill -9 pid 杀掉进程)
2) npm pack @tencent-weixin/openclaw-weixin@latest (手动下载安装包)
3) openclaw plugins install ./tencent-weixin-openclaw-weixin-2.1.1.tgz (安装插件,此指令安装时间较久)
4) apt install qrencode -y (安装二维码生成插件)
5) openclaw channels login --channel openclaw-weixin (生产绑定微信的二维码)
6) openclaw config get plugins.allow (查询插件状态,若没有发现weixin, 执行 openclaw config set plugins.allow '["openclaw-weixin"]' 进行添加) 
7) 重启openclaw 网关:openclaw gateway

在这里插入图片描述
(因环境限制原因,作者不做微信的机器人演示,功能和下面使用钉钉机器人基本一致)

钉钉机器人演示
此处使用机器人获取了开发板硬件资源信息,并且拍摄图片发送。
(备注:嵌入式环境拍摄图片方法没有统一标准,标准的v4l2 龙虾可以直接捕捉,其他模式需要提前教会它拍摄方法,并且需要具有将yuv转换为jpg等常用格式的功能。)
在这里插入图片描述

在这里插入图片描述

4.2 资源消耗与性能评估

  • 内存使用: 作者使用环境为8G ddr4 空载内存消耗如下:
    在这里插入图片描述
    运行龙虾后:使用将近600M内存
    在这里插入图片描述
    让龙虾自行评估性能,仅供娱乐

在这里插入图片描述

五、总结

作者体验:使用openclaw进行开发板上标准模块测试完成度很高,非标准模块需要使用md文件训练龙虾。大家可以将想要作者进行评估测试的内容以及自己的玩法贴到评论区共享。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐