在 Raspberry Pi 上執行 OpenClaw

目標

在 Raspberry Pi 上運行常駐、全天候的 OpenClaw Gateway,一次性費用約 $35-80(無月費)。

適合用途:

  • 24/7 個人 AI 助理
  • 智慧家庭自動化中心
  • 低功耗、隨時待命的 Telegram/WhatsApp 機器人

硬體需求

Pi 型號RAM可用?備註
Pi 54GB/8GB✅ 最佳速度最快,推薦
Pi 44GB✅ 良好多數使用者的最佳選擇
Pi 42GB✅ 堪用可運行,建議加 swap
Pi 41GB⚠️ 吃緊加 swap 且精簡設定後可用
Pi 3B+1GB⚠️ 偏慢能跑但反應較遲鈍
Pi Zero 2 W512MB不建議

最低規格: 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 位元)——無頭伺服器不需要桌面環境。

  1. 下載 Raspberry Pi Imager
  2. 選擇 OS:Raspberry Pi OS Lite (64-bit)
  3. 點選齒輪圖示(⚙️)預先設定:
    • 設定主機名稱:gateway-host
    • 啟用 SSH
    • 設定使用者名稱/密碼
    • 設定 WiFi(若不使用乙太網路)
  4. 燒錄至 SD 卡 / USB 隨身碟
  5. 插入並開機

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

依照精靈指引操作:

  1. Gateway 模式: Local
  2. 驗證: 建議使用 API 金鑰(無頭 Pi 上 OAuth 可能不太穩定)
  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

然後在本機瀏覽器開啟印出的控制面板 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 加速後續執行(statushealth--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」:

  1. 檢查該執行檔是否有 ARM64 版本
  2. 嘗試從原始碼建構
  3. 或使用支援 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 的費用。


另請參閱