我又再安裝了一次!Pixel 4 復活記的續集!
📱 Pixel 4 復活記:將舊手機改造成 AI Agent
身為一個 CS Major 的大叔,抽屜裡總有幾支捨不得丟的舊手機。這幾天看著那支 Pixel 4 (Snapdragon 855),心想它的算力其實比樹莓派 4 還強,為什麼不拿來跑最近很紅的 OpenClaw (AI Agent 框架) 呢?
這是一場從 Root 刷機、Linux 容器撞牆,最後回歸 Android 原生 Termux 的技術長征。如果你也想把舊手機變成 24 小時待命的 AI 伺服器,這篇 SOP 可以幫你省下至少 10 小時的 Debug 時間。
🛠️ 為什麼不 Root?技術選擇的反思
一開始我也陷入了迷思,覺得 Server 就是要 Root、就是要跑 Ubuntu (透過 PRoot)。結果遇到了兩個大坑:
- SystemError 13: Ubuntu 容器內的標準 Node.js 試圖讀取
/proc/net/dev,被 Android 的 SELinux 擋下,導致 OpenClaw 直接崩潰。 - 效能耗損: 跑一個完整的 Linux Distro 對手機記憶體與電量都是負擔。
結論: 最好的解法是 「Termux 原生環境 + chroot 模擬層」。既能享受 Android 優化的 Node.js,又能解決路徑相容性問題。
🚀 實戰 SOP:10 分鐘架設龍蝦伺服器
1 基礎環境初始化
安裝好 F-Droid 版 Termux 後,第一件事是防止系統殺後台,並安裝必要的開發工具。
# 1. 換源並更新系統
termux-change-repo
pkg update && pkg upgrade -y
# 2. 安裝核心工具 (包含 chroot, ssh, tmux, nodejs)
# 注意:我們使用 nodejs-lts 版本以確保穩定
pkg install proot termux-tools openssh tmux python nodejs-lts make clang build-essential git nano -y
2 安裝 OpenClaw (Local Install)
我們不使用 -g 全域安裝,避免汙染 Termux 環境。採用專案級安裝 (Local Installation) 是最佳實踐。
# 建立專案目錄
mkdir ~/lobster && cd ~/lobster
# 初始化並安裝
npm init -y
npm install openclaw
3 解決路徑問題 (關鍵魔法)
OpenClaw (以及很多 Linux 程式) 會嘗試寫入 /tmp,但 Android 沒有這個目錄。我們使用 termux-chroot 來建立一個虛擬的檔案系統層。
# 建立設定檔 (直接寫入,跳過互動問答)
mkdir -p ~/.openclaw
# 寫入設定 (將 YOUR_PASSWORD 換成你的密碼)
cat < ~/.openclaw/openclaw.json
{
"gateway": {
"mode": "local",
"auth": {
"token": "YOUR_PASSWORD"
}
}
}
EOF
4 啟動與長駐 (Tmux 方案)
在 Termux 上,PM2 往往會因為 SSH 斷線而被系統殺死。最穩定的 Server 方案是使用 Tmux。
# 1. 開啟一個新的 Tmux Session
tmux new -s lobster
# 2. 【重要】進入模擬層 (解決 /tmp 報錯)
termux-chroot
# 3. 進入目錄並啟動 (前台模式)
cd ~/lobster
npx openclaw gateway run
當你看到 Gateway started 且畫面卡住時,恭喜你成功了!
現在按下 Ctrl + b,放開後按 d,即可將視窗分離 (Detach)。這時就算你關掉電腦的 SSH,OpenClaw 依然會在 Pixel 4 的背景默默工作。
☁️ 自動化備份 (Rclone)
既然是 Server,資料備份不能少。我們使用 Rclone 將資料同步到 Google Drive。
# 備份整個 Termux 環境 (暴力備份法)
tar -zcf /sdcard/termux-backup.tar.gz -C /data/data/com.termux/files ./home ./usr
# 同步到雲端 (需先設定好 rclone config)
rclone copy /sdcard/termux-backup.tar.gz gdrive:/Pixel4_Backups/
留言
發佈留言