ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

在 Orin NX 上跑 OpenClaw:ARM 环境配置与 TaoToken 免费 Token 接入

在 Orin NX 上跑 OpenClaw:ARM 环境配置与 TaoToken 免费 Token 接入 1. 为什么要在 Orin NX 上折腾 OpenClawJetson Orin NX 是一块很有意思的板子ARM64 架构、算力够用、功耗可控很多人拿它做边缘推理、机器人控制或者本地 Agent 网关。而 OpenClaw 这类工具的价值在于它能把模型调用、工具执行、会话管理这几件事收拢到一个进程里让你在边缘设备上也能跑一个能干活的智能体而不是只做单次推理。问题在于Orin NX 是 aarch64不是 x86。你在笔记本上npm install一把梭的流程搬到这块板子上大概率会卡在三个地方Node.js 版本太旧、Chromium 没有合适的 ARM 包、CMake 版本低于依赖要求。这三个坑我都在 Orin NX 上踩过报错信息还都挺隐晦。这篇就按从零到跑通的顺序写先把 Node.js 和系统依赖铺好再给 OpenClaw 的config.toml和settings.json骨架然后接上 TaoToken 的统一 Key 通道最后做一次连通性验证。适合手里已经有 Orin NX、想在上面跑一个本地 Agent 但被 ARM 环境卡住的人。全程命令可直接复制遇到报错对照第 5 节排查。2. 前置准备TaoToken 统一 Key 与 API 通道在写配置文件之前先把模型从哪来这件事定下来。OpenClaw 本身不绑定某一家模型服务它读的是你配置文件里的 base_url 和 api_key。TaoToken 在这里扮演的角色是一个统一的 API 通道你拿一个 Key就能通过同一套 OpenAI 兼容接口去调不同模型省得在 Orin NX 上维护一堆厂商的 SDK 和鉴权逻辑。对边缘设备来说这点很实际——Orin NX 的存储和内存都有限少装几个 SDK 就少几百 MB 依赖也少一堆 ARM 兼容性问题。操作路径是这样的先到官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册账号然后进控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 创建 API Key。Key 只在创建时完整显示一次复制下来存好后面写进settings.json。注意Key 属于凭证不要直接提交到 Git 仓库。Orin NX 上建议放在~/.config/openclaw/下并chmod 600。如果你只是想先验证模型能不能通不想马上写配置可以直接用模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 发一条消息试试确认 Key 有效再往下走。接口地址统一用 https://taotoken.net/api 这个地址不带任何查询参数直接填进配置即可。3. 可复制配置ARM 环境 OpenClaw 骨架3.1 系统依赖与 Node.js 环境Orin NX 出厂一般带 JetPackPython3 和 apt 都是现成的。先更新索引把编译工具链补齐sudo apt update sudo apt install -y git curl build-essentialNode.js 版本是第一个硬门槛。OpenClaw 依赖的一些包要求 Node 22 以上JetPack 自带的 Node 往往偏旧。用 NodeSource 的源装 24.xcurl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - sudo apt install -y nodejs node --version npm --version装完确认node --version输出 v24 开头。如果还是旧版本检查which node是不是指向了/usr/local/bin下的旧安装把它清掉再重装。pnpm 用官方脚本装ARM 下同样适用curl -fsSL https://get.pnpm.io/install.sh | sh - source ~/.bashrc pnpm --version3.2 Chromium 与 CMake 的 ARM 处理OpenClaw 里如果有网页抓取或渲染类工具会依赖 Chromium。ARM 上没有官方通用包用专门为 ARM 优化的 PPAsudo add-apt-repository ppa:saiarcot895/chromium-beta sudo apt update sudo apt install -y chromium-browserCMake 是第二个坑。Jetson 上 apt 自带的 CMake 版本经常低于某些原生模块的要求编译时会报CMake 3.x or higher is required。直接用 pip 装它会自动适配 aarch64sudo pip3 install cmake3.24.4 cmake --version这里有个细节值得说清楚apt 装的 CMake 在/usr/bin/cmakepip3 装的在/usr/local/bin/cmake。PATH 查找顺序通常让/usr/local/bin优先所以cmake --version会显示 pip 装的版本。如果显示的还是旧版本用which cmake确认路径必要时在~/.bashrc里把/usr/local/bin提到前面。3.3 config.toml 骨架OpenClaw 的主配置放在~/.config/openclaw/config.toml。下面这份是能跑通的最小骨架字段按你的实际路径调整[server] host 127.0.0.1 port 8787 log_level info [runtime] work_dir /home/nvidia/openclaw-workspace max_concurrent 2 timeout_seconds 120 [tools] enable_shell true enable_http true chromium_path /usr/bin/chromium-browser [model] provider openai-compatible base_url https://taotoken.net/api model_name qwen-plusmax_concurrent在 Orin NX 上别开太大2 到 3 比较稳边缘设备内存吃紧并发高了容易 OOM。chromium_path要指向实际安装位置用which chromium-browser确认。3.4 settings.json 与 Key 注入凭证单独放~/.config/openclaw/settings.json和 config.toml 分开方便做权限控制{ api_key: sk-你的TaoToken密钥, base_url: https://taotoken.net/api, default_model: qwen-plus, request_timeout: 60, retry: { max_attempts: 3, backoff_seconds: 2 } }设好权限chmod 600 ~/.config/openclaw/settings.jsonretry这段在边缘网络下很有用Orin NX 如果走的是 Wi-Fi 或者共享网络偶发超时是常态重试能省掉很多手动重跑。4. 启动验证与连通性检查配置写完先做静态检查确认 TOML 和 JSON 没有语法错误python3 -c import tomllib; tomllib.load(open(/home/nvidia/.config/openclaw/config.toml,rb)); print(toml ok) python3 -m json.tool ~/.config/openclaw/settings.json /dev/null echo json ok两条都输出 ok 再启动。启动命令按你的安装方式如果是 pnpm 全局链接的pnpm link openclaw start --config ~/.config/openclaw/config.toml看到server listening on 127.0.0.1:8787就说明进程起来了。接着做一次真实的模型连通性验证直接打 API 通道curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -H Content-Type: application/json \ -d { model: qwen-plus, messages: [{role: user, content: 回复两个字通了}] }返回体里choices[0].message.content有内容就说明 Key、base_url、网络三层都通了。这一步很关键——它把OpenClaw 配置问题和模型通道问题隔离开后面出问题能快速定位是哪一层。再验证 OpenClaw 自己的健康端点curl -s http://127.0.0.1:8787/health返回{status:ok}之类的结构说明服务内部状态正常。两个都过整条链路就算跑通了。5. 本篇常见报错排查报错一Error: Cannot find module xxx.node或invalid ELF header这是典型的架构不匹配。某个依赖在安装时拉到了 x86 的预编译二进制。处理办法是强制从源码编译pnpm rebuild --pending如果还不行删掉node_modules和 lock 文件重装安装时加--build-from-source。Orin NX 上编译慢是正常的耐心等。报错二CMake 3.x or higher is required说明当前cmake指向的还是 apt 旧版本。用which cmake确认路径如果是/usr/bin/cmake执行hash -r刷新 shell 缓存或者直接在~/.bashrc里加export PATH/usr/local/bin:$PATH报错三Chromium 启动即崩报Failed to launchARM 下 Chromium 需要额外的沙箱参数。在 config.toml 的[tools]段加一行chromium_args --no-sandbox --disable-dev-shm-usage--disable-dev-shm-usage在内存偏小的设备上尤其重要能避免共享内存耗尽导致的崩溃。报错四请求返回 401 或 403先确认settings.json里的 Key 没有多余空格或换行再确认base_url是 https://taotoken.net/api 而不是带/v1的完整路径——路径拼接由客户端负责重复写/v1会导致 404 或鉴权失败。如果 Key 确认无误还是 401去控制台 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 检查这个 Key 是否被禁用或额度用尽。报错五EADDRINUSE: address already in use8787 端口被占了。lsof -i:8787找到进程 kill 掉或者改 config.toml 里的port。6. 后续怎么用起来跑通之后日常使用其实就两件事一是保持 OpenClaw 进程常驻用systemd或者tmux都行二是把 Key 和配置管好别在调试时把凭证打进日志。如果你打算在 Orin NX 上长期跑编码类或 Agent 类任务可以看一下 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 它针对长时间、多轮次的调用场景做了额度安排比按次调用更适合边缘设备上那种挂着慢慢跑的用法。接入细节和参数说明在文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里遇到字段不确定的时候直接查比猜配置快得多。最后留一个我自己的习惯每次改完 config.toml先跑一遍第 4 节那两条静态检查命令再重启服务。Orin NX 上重启一次进程要几秒但排查一个 TOML 语法错误可能要十分钟这个顺序能省不少时间。
返回列表