工控網(wǎng)首頁(yè)
>

應(yīng)用設(shè)計(jì)

>

基于 NXP iMX8MP ARM平臺(tái)安裝測(cè)試 Openclaw

基于 NXP iMX8MP ARM平臺(tái)安裝測(cè)試 Openclaw

1). 簡(jiǎn)介

Openclaw AI agent 開(kāi)源項(xiàng)目最新非?;馃?,目前主流是基于 Mac 或者 X68 PC 進(jìn)行安裝部署,本文就嘗試基于 NXP iMX8MP ARM 平臺(tái)通過(guò) Docker 環(huán)境進(jìn)行部署測(cè)試。另外,通過(guò) Docker 部署的好處除了可復(fù)用性,同時(shí)也一定程度保證了 Openclaw 和本機(jī)系統(tǒng)和數(shù)據(jù)的隔離,只將需要的數(shù)據(jù)通過(guò)共享目錄提供給 Docker 內(nèi)的 Opanclaw 處理即可。

 

本文測(cè)試使用的平臺(tái)來(lái)自于 Toradex Verdin i.MX8MP 嵌入式平臺(tái)。

 

 

2. 準(zhǔn)備

a). Verdin i.MX8MP ARM核心版配合Dahlia 載板,并連接調(diào)試串口和 HDMI 顯示器用于測(cè)試。

 

 

3). BSP 配置

a). 參考這里文章說(shuō)明,下載適用于 Verdin iMX8MP 的 TorizonOS 7.x BSP Image 并通過(guò) Toradex Easy Installer 安裝到 Verdin i.MX8MP 模塊。

 

b). TorizonOS 默認(rèn)使能了 Docker 環(huán)境,可以非常方便的安裝和測(cè)試各種 Docker Image,本文中 Openclaw 也通過(guò) Docker 方式進(jìn)行安裝部署。

 

 

4). Openclaw 安裝

a). Openclaw 源碼 github 如下,在支持 git 命令的系統(tǒng)可以直接通過(guò) git 命令 clone 下來(lái),因?yàn)?nbsp;TorizonOS 目前默認(rèn)未集成 git,因此這里直接下載壓縮包后復(fù)制到 TorizonOS $HOME 目錄。

------------------------------

### Openclaw official github ###

https://github.com/openclaw/openclaw

### copy source code package to Verdin iMX8MP ###

torizon@verdin-imx8mp-06849028:~$ cp /openclaw-main.zip /home/torizon

torizon@verdin-imx8mp-06849028:~$ unzip openclaw-main.zip

------------------------------

 

b). 修改源碼中默認(rèn)的 docker-compose.yml 文件以適配安裝和配置進(jìn)程:

./ 主要增加了掛載目錄以保證配置和應(yīng)用數(shù)據(jù)固化,修改了網(wǎng)絡(luò)模式同時(shí)增加了 NPM 倉(cāng)庫(kù)鏡像和 DNS 配置,以便于國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下在 Openclaw 容器內(nèi)可以正常安裝一些組件。

------------------------------

--- 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 本地相關(guān)目錄

------------------------------

### 配置目錄-config;工作目錄-workspaceOpenclaw /home/node 掛載目錄-home ###

torizon@verdin-imx8mp-06849028:~$ mkdir -p /home/torizon/openclaw/{config,workspace,home}

### 更改目錄權(quán)限

torizon@verdin-imx8mp-06849028:~$ chown -R 1000:1000 /home/torizon/openclaw

------------------------------

 

d). 輸出 Openclaw 安裝配置所需的一些環(huán)境變量:為了減少安裝時(shí)間和復(fù)雜度,這里直接使用官方編譯好的 docker image,而不是通過(guò)源碼編譯。

------------------------------

### 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 下載運(yùn)行后,Onboarding 交互模式啟動(dòng),開(kāi)始進(jìn)行配置:

./ Onboarding 模式要選擇 Manual,否則會(huì)導(dǎo)致網(wǎng)絡(luò)以 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). 模型配置:

./ 需要提前注冊(cè)好想要使用的 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 配置:

./ 需要提前注冊(cè)好要使用的 Channel,本文使用飛書(shū),創(chuàng)建新機(jī)器人 APP 并獲得相關(guān)的 App Secret 和 App id 用于綁定 pluginFeishu Plugin 通過(guò) npm 或者 local 方式安裝都可以。

------------------------------

◇  Configure chat channels now?

│  Yes

◇  Select channel (QuickStart)

│  Feishu/Lark (飛書(shū))

◇  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). 其他配置:

./ 為了簡(jiǎn)化配置流程,先都 skip 跳過(guò)。

------------------------------

◇  Configure DM access policies now? (default: pairing)

│  No

◇  Search provider

│  Skip for now

◇  Configure skills now? (recommended)

│  No

◇  Enable hooks?

│  Skip for now

------------------------------

 

f). 此時(shí)配置過(guò)程就完成了,會(huì)提示通過(guò)如下瀏覽器 URL 來(lái)打開(kāi) Dashboard 等信息后,自動(dòng)退出安裝腳本

------------------------------

...

Dashboard link (with token):

http://127.0.0.1:18789/#token=

...

------------------------------

 

 

6). 模型測(cè)試和飛書(shū) Channel 連接

a). 連接 dashboard:有兩種方式,本地顯示和局域網(wǎng)遠(yuǎn)程訪問(wèn)

./ 本地顯示

------------------------------

### 分別通過(guò)如下命令下載運(yùn)行 Weston 和 Cog 瀏覽器,通過(guò)本地網(wǎng)址和之前預(yù)設(shè)的  進(jìn)行連接 ###

# 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=

### 第一次連接會(huì)提示  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

------------------------------

基于 NXP iMX8MP ARM平臺(tái)安裝測(cè)試 Openclaw9080.png 

 

./ 通過(guò)局域網(wǎng)內(nèi)其他電腦瀏覽器連接

------------------------------

### 首先在其他電腦和 Veridn iMX8MP 設(shè)備間建立 SSH Tunnel ###

$ ssh -L 18789:127.0.0.1:18789 torizon@-N

### 然后瀏覽器通過(guò)如下 URL 連接,第一次連接同樣需要和本地連接一樣完成 pairing request

http://127.0.0.1:18789/#token=

------------------------------

 

b). 飛書(shū)連接和測(cè)試

./ 關(guān)于飛書(shū)平臺(tái)機(jī)器人應(yīng)用的創(chuàng)建和權(quán)限配置這里不再贅述,可以自行查詢(xún)公開(kāi)資料。

./ 同樣在第一次通過(guò)飛書(shū) APP 發(fā)消息給 Openclaw 時(shí)候,會(huì)提示需要 pairing,并給出 Pairing code,此時(shí)在命令下通過(guò)如下命令 approve

------------------------------

torizon@verdin-imx8mp-06849028:~$ docker compose exec openclaw-gateway node dist/index.js pairing approve feishu

------------------------------

基于 NXP iMX8MP ARM平臺(tái)安裝測(cè)試 Openclaw9717.png 

 

c). 到這里基于 Verdin iMX8MP 平臺(tái)部署的 Openclaw AI agent 就可以基本工作了,更進(jìn)一步使用就需要自行開(kāi)發(fā)或者安裝相應(yīng)的 SKILL 等,本文不再深入測(cè)試。

./ 由于當(dāng)前僅僅是基本狀態(tài),查看系統(tǒng)資源占用非常小,后續(xù)資源占用情況可能會(huì)根據(jù)不同 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). 總結(jié)

本文基于 NXP i.MX8MP 處理器平臺(tái)演示了通過(guò) Docker 方式來(lái)測(cè)試部署 OpenClaw,希望能夠?qū)τ谠谇度胧竭吘墱y(cè)設(shè)備使用 AI 工具有一些嘗試和探討。

 

免責(zé)聲明:本文測(cè)試流程僅供學(xué)習(xí)交流,請(qǐng)勿在實(shí)際生產(chǎn)環(huán)境部署測(cè)試,造成的任何風(fēng)險(xiǎn)和損失本文不承擔(dān)任何相關(guān)責(zé)任。

審核編輯(
王靜
)

提交

查看更多評(píng)論
其他資訊

查看更多

在NXP iMX8QM上使用 Jailhouse

基于 Toradex 硬件和 ROS 2 加速機(jī)器人原型開(kāi)發(fā):SiBrain 的技術(shù)視角

Weston 桌面雙屏顯示獨(dú)立觸摸配置

NXP iMX8MP 使用 OP-TEE

NXP iMX8MM 通過(guò)本地服務(wù)器更新 BSP 鏡像