はじめに
Raspberry Pi は OpenClaw を運用するためのコストパフォーマンスに優れた選択肢です。低消費電力、小型で、24時間365日の常時稼働もまったく問題ありません。本記事では、Raspberry Pi 4 または Raspberry Pi 5 に OpenClaw をデプロイし、専用のAIアシスタントサーバーを構築する方法を詳しく解説します。
ハードウェア要件
| モデル | 動作体験 | 備考 |
|---|---|---|
| Raspberry Pi 5 (8GB) | 快適 | 推奨モデル、十分な性能 |
| Raspberry Pi 5 (4GB) | 良好 | 基本的なニーズに対応 |
| Raspberry Pi 4 (8GB) | 良好 | コストパフォーマンス重視 |
| Raspberry Pi 4 (4GB) | 使用可能 | 不要なサービスの停止を推奨 |
| Raspberry Pi 4 (2GB) | ぎりぎり | 非推奨、メモリ不足 |
その他の必要品
- MicroSDカード:16GB以上、32GB Class 10以上を推奨
- 電源アダプタ:Raspberry Pi 5 は 5V/5A USB-C、Raspberry Pi 4 は 5V/3A USB-C が必要
- ヒートシンクまたはファン(長時間運用時の冷却のため推奨)
- イーサネットケーブルまたはWi-Fi接続
ステップ1:OSの準備
システムイメージの書き込み
OpenClaw にはグラフィカルインターフェースが不要なため、Raspberry Pi OS Lite(64ビット)の使用を推奨します。
-
Raspberry Pi Imager をダウンロード
-
MicroSDカードを挿入
-
OS を選択:Raspberry Pi OS Lite (64-bit)
-
詳細設定で以下を設定:
- ホスト名(例:
openclaw) - SSH ログイン(有効化し、パスワードまたは鍵を設定)
- Wi-Fi 情報(イーサネットを使用しない場合)
- タイムゾーンと言語
- ホスト名(例:
-
「書き込み」をクリックして完了
初回起動と接続
MicroSD カードを Raspberry Pi に挿入し、電源を接続します。約1分後に SSH で接続します。
ssh [email protected]
# またはIPアドレスを使用
ssh [email protected]
システムの更新
sudo apt update && sudo apt upgrade -y
ステップ2:Node.js 22 (ARM) のインストール
Raspberry Pi は ARM アーキテクチャのプロセッサを使用しているため、ARM 版の Node.js をインストールする必要があります。
方法1:NodeSourceリポジトリを使用(推奨)
# NodeSourceリポジトリを追加
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# Node.jsをインストール
sudo apt install -y nodejs
# インストールの確認
node --version
npm --version
方法2:nvmを使用
# nvmをインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
# Node.js 22をインストール
nvm install 22
nvm alias default 22
# 確認
node --version
アーキテクチャの確認
Node.js が ARM64 アーキテクチャで正常に動作していることを確認します。
node -e "console.log(process.arch)"
# 出力: arm64
ステップ3:OpenClawのインストール
sudo npm install -g openclaw@latest
インストールの確認:
openclaw --version
ステップ4:初期設定
openclaw onboard
設定ウィザードでモデルとチャネルの設定を完了します。Raspberry Pi は性能が限られているため、以下の点にご注意ください。
- モデル選択:ローカルモデルではなく、クラウドAPI(Claude、OpenAI、Gemini)の使用を推奨
- チャネル数:最初は同時に多くのチャネルを接続せず、実際の負荷に応じて段階的に追加
- ログレベル:ディスク書き込みを減らすために
warnに設定することを推奨
設定ファイルの場所:
~/.config/openclaw/openclaw.json5
ステップ5:起動とテスト
openclaw up
診断を実行してすべてが正常であることを確認します。
openclaw doctor
ステップ6:systemdによる自動起動の設定
Raspberry Pi では systemd で OpenClaw サービスを管理するのがベストプラクティスです。
systemdサービスファイルの作成
sudo tee /etc/systemd/system/openclaw.service > /dev/null << 'EOF'
[Unit]
Description=OpenClaw AI Assistant Platform
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi
ExecStart=/usr/bin/openclaw up
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
Environment=NODE_ENV=production
# リソース制限(任意)
MemoryMax=1G
CPUQuota=80%
[Install]
WantedBy=multi-user.target
EOF
nvm でインストールした Node.js を使用している場合は、ExecStart のパスをフルパスに変更する必要があります。
# openclawの実際のパスを確認
which openclaw
# 例: /home/pi/.nvm/versions/node/v22.x.x/bin/openclaw
サービスの有効化と起動
# systemd設定を再読み込み
sudo systemctl daemon-reload
# 自動起動を有効化
sudo systemctl enable openclaw
# サービスを起動
sudo systemctl start openclaw
# 状態を確認
sudo systemctl status openclaw
ログの確認
# リアルタイムでログを確認
sudo journalctl -u openclaw -f
# 最新100行を確認
sudo journalctl -u openclaw -n 100
パフォーマンスの最適化
メモリ使用量の削減
/etc/systemd/system/openclaw.service を編集し、ExecStart に Node.js のメモリパラメータを追加します。
ExecStart=/usr/bin/node --max-old-space-size=512 /usr/bin/openclaw up
swapによるメモリの拡張
メモリが不足する場合は、swap領域を増やすことができます。
# デフォルトのswapを無効化
sudo dphys-swapfile swapoff
# swapサイズを1GBに変更
sudo sed -i 's/CONF_SWAPSIZE=.*/CONF_SWAPSIZE=1024/' /etc/dphys-swapfile
# 再初期化して有効化
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
# 確認
free -h
SDカードへの書き込み削減
頻繁な書き込みはSDカードの寿命を縮めます。以下の対策を推奨します。
# 一時ファイルディレクトリをメモリにマウント
echo 'tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,size=100m 0 0' | sudo tee -a /etc/fstab
# ログの書き込み頻度を削減
sudo sed -i 's/#Storage=auto/Storage=volatile/' /etc/systemd/journald.conf
sudo sed -i 's/#RuntimeMaxUse=/RuntimeMaxUse=50M/' /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
不要なサービスの停止
# Bluetoothを無効化(不要な場合)
sudo systemctl disable bluetooth
sudo systemctl stop bluetooth
# avahiを無効化(.localドメイン解決が不要な場合)
sudo systemctl disable avahi-daemon
sudo systemctl stop avahi-daemon
温度監視
長時間運用する場合は、CPU温度の監視をお勧めします。
# 現在の温度を確認
vcgencmd measure_temp
# 定期監視スクリプトの設定
cat > ~/check_temp.sh << 'SCRIPT'
#!/bin/bash
TEMP=$(vcgencmd measure_temp | grep -oP '\d+\.\d+')
if (( $(echo "$TEMP > 75" | bc -l) )); then
echo "[WARNING] CPU温度が高すぎます: ${TEMP}°C"
fi
SCRIPT
chmod +x ~/check_temp.sh
# crontabに追加し、5分ごとにチェック
(crontab -l 2>/dev/null; echo "*/5 * * * * ~/check_temp.sh >> ~/temp.log") | crontab -
温度が継続的に高い場合(70°C超)は、ヒートシンクとファンを取り付けてください。
ヘッドレスモード運用のテクニック
Raspberry Pi は通常ヘッドレスモード(モニターなし)で運用されます。以下のテクニックが役立ちます。
tmuxによるセッション管理
# tmuxをインストール
sudo apt install -y tmux
# OpenClaw専用セッションを作成
tmux new-session -d -s openclaw 'openclaw up'
# セッションに接続して出力を確認
tmux attach -t openclaw
# セッションを切り離す(Ctrl+B の後に D を押す)
固定IPの設定
/etc/dhcpcd.conf に以下を追加します。
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8 8.8.4.4
その後、ネットワークを再起動します。
sudo systemctl restart dhcpcd
トラブルシューティング
| 問題 | 解決方法 |
|---|---|
| npm install でメモリ不足エラー | swap を 1GB 以上に増やす |
| 起動後すぐにクラッシュ | journalctl -u openclaw でログを確認 |
| ネットワーク接続タイムアウト | DNS設定とファイアウォールを確認 |
| SDカードが読み取り専用 | ファイルシステムが破損、fsck で修復を試行 |
| CPU温度が高すぎる | ヒートシンクを取り付け、CPUQuota を下げる |
まとめ
Raspberry Pi は OpenClaw を運用するための優れた選択肢です。低消費電力、低コストで、24時間365日安定して稼働できます。systemd による自動起動と適切なパフォーマンス最適化を組み合わせることで、Raspberry Pi のAIアシスタントサーバーを長期間にわたって信頼性高く運用できます。最高の体験を得るには、Raspberry Pi 5(8GB)の使用をお勧めします。