在树莓派上部署 OpenClaw

目标

约 $35-80 的一次性成本在树莓派上运行持久化、常驻的 OpenClaw Gateway(无月费)。

适合:

  • 全天候个人 AI 助手
  • 家庭自动化中枢
  • 低功耗、随时可用的 Telegram/WhatsApp 机器人

硬件要求

型号内存能用?备注
Pi 54GB/8GB✅ 最佳最快,推荐
Pi 44GB✅ 好大多数用户的甜点
Pi 42GB✅ 可以能跑,加 swap
Pi 41GB⚠️ 紧张加 swap + 精简配置可以
Pi 3B+1GB⚠️ 慢能跑但比较迟缓
Pi Zero 2 W512MB不推荐

最低配置: 1GB 内存、1 核、500MB 硬盘 推荐配置: 2GB+ 内存、64 位系统、16GB+ SD 卡(或 USB SSD)

你需要准备的

  • 树莓派 4 或 5(建议 2GB+)
  • MicroSD 卡(16GB+)或 USB SSD(性能更好)
  • 电源适配器(推荐官方 Pi 电源)
  • 网络连接(以太网或 WiFi)
  • 大约 30 分钟

1) 烧录系统

使用 Raspberry Pi OS Lite (64-bit) — 无桌面的 headless 服务器不需要桌面环境。

  1. 下载 Raspberry Pi Imager
  2. 选择系统:Raspberry Pi OS Lite (64-bit)
  3. 点击齿轮图标(⚙️)预配置:
    • 设置主机名:gateway-host
    • 启用 SSH
    • 设置用户名/密码
    • 配置 WiFi(不用以太网的话)
  4. 烧录到 SD 卡 / USB 驱动器
  5. 插入并启动 Pi

2) SSH 连接

ssh user@gateway-host
# 或使用 IP 地址
ssh [email protected]

3) 系统设置

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装必要软件包
sudo apt install -y git curl build-essential

# 设置时区(对定时任务/提醒很重要)
sudo timedatectl set-timezone America/Chicago  # 换成你的时区

4) 安装 Node.js 24(ARM64)

# 通过 NodeSource 安装
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejs

# 验证
node --version  # 应显示 v24.x.x
npm --version

5) 添加 Swap(2GB 及以下内存很重要)

Swap 防止内存不足崩溃:

# 创建 2GB swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 设为永久
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 低内存优化(降低 swappiness)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

6) 安装 OpenClaw

方案 A:标准安装(推荐)

curl -fsSL https://openclaw.ai/install.sh | bash

方案 B:开发安装(适合折腾)

git clone https://github.com/openclaw/openclaw.git
cd openclaw
npm install
npm run build
npm link

开发安装让你直接访问日志和代码——排查 ARM 特有问题时很有用。

7) 运行引导设置

openclaw onboard --install-daemon

按引导向导操作:

  1. Gateway 模式: Local
  2. 认证: 推荐 API key(OAuth 在 headless Pi 上可能比较折腾)
  3. 频道: Telegram 最容易上手
  4. 守护进程: 是(systemd)

8) 验证安装

# 查看状态
openclaw status

# 查看服务
sudo systemctl status openclaw

# 查看日志
journalctl -u openclaw -f

9) 访问 OpenClaw 控制面板

user@gateway-host 替换为你的 Pi 用户名和主机名或 IP。

在你的电脑上,让 Pi 打印控制面板 URL:

ssh user@gateway-host 'openclaw dashboard --no-open'

命令会打印 Dashboard URL:。根据 gateway.auth.token 的配置方式,URL 可能是普通的 http://127.0.0.1:18789/ 链接或者带 #token=... 的链接。

在另一个终端窗口中创建 SSH 隧道:

ssh -N -L 18789:127.0.0.1:18789 user@gateway-host

然后在本地浏览器中打开刚才打印的 Dashboard URL。

如果 UI 要求认证,把 gateway.auth.token(或 OPENCLAW_GATEWAY_TOKEN)中的 token 粘贴到 Control UI 设置中。

需要持续远程访问,见 Tailscale


性能优化

使用 USB SSD(效果显著)

SD 卡读写慢且容易磨损。USB SSD 能大幅提升性能:

# 检查是否从 USB 启动
lsblk

设置方法见 Pi USB boot guide

加速 CLI 启动(模块编译缓存)

在性能较弱的 Pi 上,启用 Node 的模块编译缓存让重复 CLI 调用更快:

grep -q 'NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache' ~/.bashrc || cat >> ~/.bashrc <<'EOF' # pragma: allowlist secret
export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
mkdir -p /var/tmp/openclaw-compile-cache
export OPENCLAW_NO_RESPAWN=1
EOF
source ~/.bashrc

说明:

  • NODE_COMPILE_CACHE 加速后续运行(statushealth--help)。
  • /var/tmp/tmp 更能在重启后保留。
  • OPENCLAW_NO_RESPAWN=1 避免 CLI 自重启的额外启动开销。
  • 首次运行预热缓存;后续运行获益最大。

systemd 启动调优(可选)

如果这台 Pi 主要跑 OpenClaw,添加 service drop-in 以减少重启抖动并保持启动环境稳定:

sudo systemctl edit openclaw
[Service]
Environment=OPENCLAW_NO_RESPAWN=1
Environment=NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
Restart=always
RestartSec=2
TimeoutStartSec=90

然后应用:

sudo systemctl daemon-reload
sudo systemctl restart openclaw

尽量把 OpenClaw 的状态/缓存放在 SSD 存储上,避免冷启动时 SD 卡随机 I/O 成为瓶颈。

Restart= 策略如何帮助自动恢复: systemd 可以自动化服务恢复

减少内存占用

# 禁用 GPU 内存分配(headless)
echo 'gpu_mem=16' | sudo tee -a /boot/config.txt

# 不需要蓝牙就禁用
sudo systemctl disable bluetooth

监控资源

# 查看内存
free -h

# 查看 CPU 温度
vcgencmd measure_temp

# 实时监控
htop

ARM 架构说明

二进制兼容性

大多数 OpenClaw 功能在 ARM64 上正常工作,但有些外部二进制可能需要 ARM 构建:

工具ARM64 状态备注
Node.js完美运行
WhatsApp (Baileys)纯 JS,没问题
Telegram纯 JS,没问题
gog (Gmail CLI)⚠️查看是否有 ARM 版本
Chromium (浏览器)sudo apt install chromium-browser

如果某个技能失败,检查其二进制是否有 ARM 构建。很多 Go/Rust 工具有,有些没有。

32 位 vs 64 位

务必使用 64 位系统。 Node.js 和许多现代工具都需要 64 位。检查方法:

uname -m
# 应显示:aarch64(64 位)而不是 armv7l(32 位)

推荐模型配置

Pi 只是 Gateway(模型在云端运行),所以用 API 模型:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-sonnet-4-20250514",
        "fallbacks": ["openai/gpt-4o-mini"]
      }
    }
  }
}

别想在 Pi 上跑本地 LLM — 即使小模型也太慢了。让 Claude/GPT 来干重活。


开机自启

引导向导已经设好了,但如果要验证:

# 检查服务是否已启用
sudo systemctl is-enabled openclaw

# 没启用就启用
sudo systemctl enable openclaw

# 开机启动
sudo systemctl start openclaw

故障排查

内存不足(OOM)

# 查看内存
free -h

# 增加 swap(见步骤 5)
# 或者减少 Pi 上运行的其他服务

性能慢

  • 用 USB SSD 代替 SD 卡
  • 禁用不需要的服务:sudo systemctl disable cups bluetooth avahi-daemon
  • 检查 CPU 降频:vcgencmd get_throttled(应返回 0x0

服务启动失败

# 查看日志
journalctl -u openclaw --no-pager -n 100

# 常见解法:重新构建
cd ~/openclaw  # 如果用的开发安装
npm run build
sudo systemctl restart openclaw

ARM 二进制问题

如果某个技能报 “exec format error”:

  1. 检查该二进制是否有 ARM64 构建
  2. 尝试从源码编译
  3. 或者使用支持 ARM 的 Docker 容器

WiFi 掉线

headless Pi 使用 WiFi 时:

# 禁用 WiFi 省电
sudo iwconfig wlan0 power off

# 设为永久
echo 'wireless-power off' | sudo tee -a /etc/network/interfaces

成本对比

方案一次性成本月费备注
Pi 4 (2GB)~$45$0+ 电费(约 $5/年)
Pi 4 (4GB)~$55$0推荐
Pi 5 (4GB)~$60$0性能最佳
Pi 5 (8GB)~$80$0略显富裕但面向未来
DigitalOcean$0$6/月$72/年
Hetzner$0€3.79/月~$50/年

回本周期: Pi 约 6-12 个月回本(相比云 VPS)。


延伸阅读