在 Raspberry Pi 上執行 OpenClaw
目標
在 Raspberry Pi 上運行常駐、全天候的 OpenClaw Gateway,一次性費用約 $35-80(無月費)。
適合用途:
- 24/7 個人 AI 助理
- 智慧家庭自動化中心
- 低功耗、隨時待命的 Telegram/WhatsApp 機器人
硬體需求
| Pi 型號 | RAM | 可用? | 備註 |
|---|---|---|---|
| Pi 5 | 4GB/8GB | ✅ 最佳 | 速度最快,推薦 |
| Pi 4 | 4GB | ✅ 良好 | 多數使用者的最佳選擇 |
| Pi 4 | 2GB | ✅ 堪用 | 可運行,建議加 swap |
| Pi 4 | 1GB | ⚠️ 吃緊 | 加 swap 且精簡設定後可用 |
| Pi 3B+ | 1GB | ⚠️ 偏慢 | 能跑但反應較遲鈍 |
| Pi Zero 2 W | 512MB | ❌ | 不建議 |
最低規格: 1GB RAM、1 核心、500MB 磁碟空間 建議規格: 2GB+ RAM、64 位元作業系統、16GB+ SD 卡(或 USB SSD)
所需材料
- Raspberry Pi 4 或 5(建議 2GB+)
- MicroSD 卡(16GB+)或 USB SSD(效能更佳)
- 電源供應器(建議使用官方 Pi PSU)
- 網路連線(乙太網路或 WiFi)
- 約 30 分鐘
1) 燒錄作業系統
使用 Raspberry Pi OS Lite(64 位元)——無頭伺服器不需要桌面環境。
- 下載 Raspberry Pi Imager
- 選擇 OS:Raspberry Pi OS Lite (64-bit)
- 點選齒輪圖示(⚙️)預先設定:
- 設定主機名稱:
gateway-host - 啟用 SSH
- 設定使用者名稱/密碼
- 設定 WiFi(若不使用乙太網路)
- 設定主機名稱:
- 燒錄至 SD 卡 / USB 隨身碟
- 插入並開機
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 安裝 Node.js
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
依照精靈指引操作:
- Gateway 模式: Local
- 驗證: 建議使用 API 金鑰(無頭 Pi 上 OAuth 可能不太穩定)
- 頻道: Telegram 最容易上手
- 背景服務: 是(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
然後在本機瀏覽器開啟印出的控制面板 URL。
若 UI 要求驗證,將 gateway.auth.token(或 OPENCLAW_GATEWAY_TOKEN)中的 token 貼到 Control UI 設定中。
若需全天候遠端存取,請參閱 Tailscale。
效能最佳化
使用 USB SSD(大幅提升效能)
SD 卡速度慢且容易損壞。USB SSD 能顯著改善效能:
# 檢查是否從 USB 開機
lsblk
設定方式請參閱 Pi USB 開機指南。
加速 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加速後續執行(status、health、--help)。/var/tmp比/tmp更能在重新開機後保留資料。OPENCLAW_NO_RESPAWN=1避免 CLI 自我重啟帶來的額外啟動成本。- 首次執行會暖化快取;之後的執行受益最多。
systemd 啟動調校(選用)
若這台 Pi 主要用來跑 OpenClaw,可加入服務覆蓋設定來降低重啟抖動並維持啟動環境穩定:
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 can automate service recovery。
降低記憶體用量
# 停用 GPU 記憶體分配(無頭模式)
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 |
若某個 skill 執行失敗,檢查其執行檔是否有 ARM64 版本。許多 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 執行檔問題
若某個 skill 出現「exec format error」:
- 檢查該執行檔是否有 ARM64 版本
- 嘗試從原始碼建構
- 或使用支援 ARM 的 Docker 容器
WiFi 斷線
無頭 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 的費用。
另請參閱
- Linux 指南 — 一般 Linux 設定
- DigitalOcean 指南 — 雲端替代方案
- Hetzner 指南 — Docker 部署
- Tailscale — 遠端存取
- 節點 — 將你的筆電/手機與 Pi Gateway 配對