基于 NXP iMX8MP ARM平臺安裝測試 Openclaw
1). 簡介
Openclaw AI agent 開源項目最新非常火熱,目前主流是基于 Mac 或者 X68 PC 進行安裝部署,本文就嘗試基于 NXP iMX8MP ARM 平臺通過 Docker 環(huán)境進行部署測試。另外,通過 Docker 部署的好處除了可復用性,同時也一定程度保證了 Openclaw 和本機系統(tǒng)和數據的隔離,只將需要的數據通過共享目錄提供給 Docker 內的 Opanclaw 處理即可。
本文測試使用的平臺來自于 Toradex Verdin i.MX8MP 嵌入式平臺。
2. 準備
a). Verdin i.MX8MP ARM核心版配合Dahlia 載板,并連接調試串口和 HDMI 顯示器用于測試。
3). BSP 配置
a). 參考這里文章說明,下載適用于 Verdin iMX8MP 的 TorizonOS 7.x BSP Image 并通過 Toradex Easy Installer 安裝到 Verdin i.MX8MP 模塊。
b). TorizonOS 默認使能了 Docker 環(huán)境,可以非常方便的安裝和測試各種 Docker Image,本文中 Openclaw 也通過 Docker 方式進行安裝部署。
4). Openclaw 安裝
a). Openclaw 源碼 github 如下,在支持 git 命令的系統(tǒng)可以直接通過 git 命令 clone 下來,因為 TorizonOS 目前默認未集成 git,因此這里直接下載壓縮包后復制到 TorizonOS $HOME 目錄。
------------------------------
### Openclaw official github ###
https://github.com/openclaw/openclaw
### copy source code package to Verdin iMX8MP ###
torizon@verdin-imx8mp-06849028:~$ cp
torizon@verdin-imx8mp-06849028:~$ unzip openclaw-main.zip
------------------------------
b). 修改源碼中默認的 docker-compose.yml 文件以適配安裝和配置進程:
./ 主要增加了掛載目錄以保證配置和應用數據固化,修改了網絡模式同時增加了 NPM 倉庫鏡像和 DNS 配置,以便于國內網絡環(huán)境下在 Openclaw 容器內可以正常安裝一些組件。
------------------------------
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -9,6 +9,14 @@
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY:-}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY:-}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE:-}
+ # ========== add npm local registry ==========
+ NPM_CONFIG_REGISTRY: https://registry.npmmirror.com/
+ # ======================================
+ network_mode: bridge
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+ - 114.114.114.114
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
@@ -65,6 +73,9 @@
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY:-}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY:-}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE:-}
+ # ========== add npm local registry ==========
+ NPM_CONFIG_REGISTRY: https://registry.npmmirror.com/
+ # ======================================
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
------------------------------
c). 創(chuàng)建 Openclaw 本地相關目錄
------------------------------
### 配置目錄-config;工作目錄-workspace;Openclaw /home/node 掛載目錄-home ###
torizon@verdin-imx8mp-06849028:~$ mkdir -p /home/torizon/openclaw/{config,workspace,home}
### 更改目錄權限
torizon@verdin-imx8mp-06849028:~$ chown -R 1000:1000 /home/torizon/openclaw
------------------------------
d). 輸出 Openclaw 安裝配置所需的一些環(huán)境變量:為了減少安裝時間和復雜度,這里直接使用官方編譯好的 docker image,而不是通過源碼編譯。
------------------------------
### env 環(huán)境變量文件 ###
torizon@verdin-imx8mp-06849028:~$ cat env
# openclaw official docker image
export OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest
# configuration folder
export OPENCLAW_CONFIG_DIR=/home/torizon/openclaw/config
# workspace folder
export OPENCLAW_WORKSPACE_DIR=/home/torizon/openclaw/workspace
# HOME folder
export OPENCLAW_HOME_VOLUME=/home/torizon/openclaw/home
# gateway network bind mode and port
export OPENCLAW_GATEWAY_BIND=lan
export OPENCLAW_GATEWAY_PORT=18789
export OPENCLAW_GATEWAY_TOKEN=
### export env ###
torizon@verdin-imx8mp-06849028:~$ source ./env
------------------------------
e). 安裝 Openclaw
------------------------------
torizon@verdin-imx8mp-06849028:~$ cd openclaw-main
torizon@verdin-imx8mp-06849028:~$ ./docker-setup.sh
------------------------------
5). Openclaw 配置
a). 上述步驟 docker image 下載運行后,Onboarding 交互模式啟動,開始進行配置:
./ Onboarding 模式要選擇 “Manual”,否則會導致網絡以 “loopback” 模式工作。
-------------------------------
...
==> Onboarding (interactive)
Docker setup pins Gateway mode to local.
Gateway runtime bind comes from OPENCLAW_GATEWAY_BIND (default: lan).
Current runtime bind: lan
Gateway token:
Tailscale exposure: Off (use host-level tailnet/Tailscale setup separately).
Install Gateway daemon: No (managed by Docker Compose)
...
-------------------------------
./ security configuration
-------------------------------
I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue?
│ ● Yes / ○ No
-------------------------------
./ Onboarding mode
-------------------------------
◇ Onboarding mode
│ Manual
◇ Workspace directory
│ /home/node/.openclaw/workspace
-------------------------------
b). 模型配置:
./ 需要提前注冊好想要使用的 AI 模型提供商,并獲得 API Key
-------------------------------
Model/auth provider
│ MiniMax
◇ MiniMax auth method
│ MiniMax M2.5 (CN)
◇ How do you want to provide this API key?
│ Paste API key now
◇ Enter MiniMax China API key
│
◆ Default model
│ ● Keep current (minimax-cn/MiniMax-M2.5)
│ ○ Enter model manually
│ ○ minimax-cn/MiniMax-M2.5
│ ○ minimax-cn/MiniMax-M2
│ ○ minimax-cn/MiniMax-M2.1
│ ○ minimax-cn/MiniMax-M2.5-highspeed
-------------------------------
c). Gateway 配置:
------------------------------
◇ Gateway port
│ 18789
◇ Gateway bind
│ LAN (0.0.0.0)
◇ Gateway auth
│ Token
◇ Tailscale exposure
│ Off
◇ How do you want to provide the gateway token?
│ Generate/store plaintext token
◇ Gateway token (blank to generate)
│
------------------------------
d). Channel 配置:
./ 需要提前注冊好要使用的 Channel,本文使用飛書,創(chuàng)建新機器人 APP 并獲得相關的 App Secret 和 App id 用于綁定 plugin。Feishu Plugin 通過 npm 或者 local 方式安裝都可以。
------------------------------
◇ Configure chat channels now?
│ Yes
◇ Select channel (QuickStart)
│ Feishu/Lark (飛書)
◇ Install Feishu plugin?
│ Use local plugin path/Download from npm (@openclaw/feishu)
◇ Feishu credentials ───────────────────────────
│ 1) Go to Feishu Open Platform (open.feishu.cn) │
│ 2) Create a self-built app │
│ 3) Get App ID and App Secret from Credentials page │
│ 4) Enable required permissions: im:message, im:chat, contact:user.base:readonly │
│ 5) Publish the app or add it to a test group │
│ Tip: you can also set FEISHU_APP_ID / FEISHU_APP_SECRET env vars. │
│ Docs: 8;;https://docs.openclaw.ai/channels/feishufeishu8;; │
├────────────────────────────────────
◇ How do you want to provide this App Secret?
│ Enter App Secret
◇ Enter Feishu App Secret
│
◇ Enter Feishu App ID
│
◇ Feishu connection mode
│ WebSocket (default)
◇ Which Feishu domain?
│ Feishu (feishu.cn) - China
◇ Group chat policy
│ Disabled - don't respond in groups
◇ Select a channel
│ Finished
------------------------------
e). 其他配置:
./ 為了簡化配置流程,先都 skip 跳過。
------------------------------
◇ Configure DM access policies now? (default: pairing)
│ No
◇ Search provider
│ Skip for now
◇ Configure skills now? (recommended)
│ No
◇ Enable hooks?
│ Skip for now
------------------------------
f). 此時配置過程就完成了,會提示通過如下瀏覽器 URL 來打開 Dashboard 等信息后,自動退出安裝腳本
------------------------------
...
Dashboard link (with token):
http://127.0.0.1:18789/#token=
...
------------------------------
6). 模型測試和飛書 Channel 連接
a). 連接 dashboard:有兩種方式,本地顯示和局域網遠程訪問
./ 本地顯示
------------------------------
### 分別通過如下命令下載運行 Weston 和 Cog 瀏覽器,通過本地網址和之前預設的
# Weston
docker container run -d --name=weston --net=host \
--cap-add CAP_SYS_TTY_CONFIG \
-v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ \
--device-cgroup-rule="c 4:* rmw" --device-cgroup-rule="c 253:* rmw" \
--device-cgroup-rule="c 13:* rmw" --device-cgroup-rule="c 226:* rmw" \
--device-cgroup-rule="c 10:223 rmw" --device-cgroup-rule="c 199:0 rmw" \
torizon/weston-imx8:4 \
--developer
# Cog
docker run -d --rm --name=cog --net=host\
-v /tmp:/tmp -v /var/run/dbus:/var/run/dbus \
-v /dev/dri:/dev/dri --device-cgroup-rule='c 226:* rmw' \
torizon/cog:$CT_TAG_COG \
http://127.0.0.1:18789/#token=
### 第一次連接會提示 “ pairing request”
# 執(zhí)行下面命令獲取
torizon@verdin-imx8mp-06849028:~$ cd openclaw-main
torizon@verdin-imx8mp-06849028:~$ docker compose exec openclaw-gateway node dist/index.js devices list
# 執(zhí)行下面命令 approve request
docker compose exec openclaw-gateway node dist/index.js devices approve
# 重啟 Cog 即可正常連接 Gateway
torizon@verdin-imx8mp-06849028:~$ docker restart cog
------------------------------
./ 通過局域網內其他電腦瀏覽器連接
------------------------------
### 首先在其他電腦和 Veridn iMX8MP 設備間建立 SSH Tunnel ###
$ ssh -L 18789:127.0.0.1:18789 torizon@
### 然后瀏覽器通過如下 URL 連接,第一次連接同樣需要和本地連接一樣完成 pairing request
http://127.0.0.1:18789/#token=
------------------------------
b). 飛書連接和測試
./ 關于飛書平臺機器人應用的創(chuàng)建和權限配置這里不再贅述,可以自行查詢公開資料。
./ 同樣在第一次通過飛書 APP 發(fā)消息給 Openclaw 時候,會提示需要 pairing,并給出 Pairing code,此時在命令下通過如下命令 approve
------------------------------
torizon@verdin-imx8mp-06849028:~$ docker compose exec openclaw-gateway node dist/index.js pairing approve feishu
------------------------------
c). 到這里基于 Verdin iMX8MP 平臺部署的 Openclaw AI agent 就可以基本工作了,更進一步使用就需要自行開發(fā)或者安裝相應的 SKILL 等,本文不再深入測試。
./ 由于當前僅僅是基本狀態(tài),查看系統(tǒng)資源占用非常小,后續(xù)資源占用情況可能會根據不同 SKILL 的使用情況各不相同。
------------------------------
0[###* 5.8%] Tasks: 48, 151 thr, 109 kthr; 0 running
1[##* 4.5%] Load average: 0.18 0.44 0.63
2[##* 5.8%] Uptime: 1 day, 05:15:55
3[##** 6.5%]
Mem[|||||||||||||#@$$$$$$$$$$$$$1.28G/3.83G]
Swp[ 0K/0K]
[Main] [I/O]
PID USER PRI NI VIRT RES SHR S CPU%-MEM% TIME+ Command
...
99047 torizon 20 0 11.3G 445M 57140 S 0.6 11.4 0:53.40 openclaw-gateway
...
------------------------------
7). 總結
本文基于 NXP i.MX8MP 處理器平臺演示了通過 Docker 方式來測試部署 OpenClaw,希望能夠對于在嵌入式邊緣測設備使用 AI 工具有一些嘗試和探討。
免責聲明:本文測試流程僅供學習交流,請勿在實際生產環(huán)境部署測試,造成的任何風險和損失本文不承擔任何相關責任。
提交
在NXP iMX8QM上使用 Jailhouse
基于 Toradex 硬件和 ROS 2 加速機器人原型開發(fā):SiBrain 的技術視角
Weston 桌面雙屏顯示獨立觸摸配置
NXP iMX8MP 使用 OP-TEE
NXP iMX8MM 通過本地服務器更新 BSP 鏡像

投訴建議