想亲手参与AI相框开发?这篇文章带你从零开始,将OpenAI Codex装进一块Android开发板,打造一个能自主调试的AI硬件工作台。核心内容:1. 将AI开发环境移植到Android硬件的背景与思路2. 在Orange Pi 5 Max上部署Termux和开发工具链的详细步骤3. 构建一个能直接参与项目开发与调试的设备端工作台
如果说电脑是 AI 项目的“办公室”,那真实硬件就是它的“施工现场”。
这一次,我没有只在 Mac 上写代码、跑脚本、模拟设备效果,而是把开发环境直接搬进了一块 Orange Pi 5 Max Android 设备里。
目标很简单,也很有意思:
让这块 Android 开发板自己跑起 Termux、Node.js、Python、Rust、Git,最后再装上 OpenAI Codex CLI。
这样一来,它就不只是一个被动显示内容的屏幕,而是可以直接参与 AI 相框项目开发、调试、排障和验证的设备端工作台。
AI 相框听起来像一个“展示照片”的产品。
但真正做起来,它更像一个小型的边缘智能终端:
如果所有调试都只发生在电脑上,等到上真机时,很多问题都会变成“它在我电脑上明明可以”的经典现场。
所以这次的思路是:把 Codex 带到设备上。
让 AI 不只在桌面开发环境里给建议,而是在真实硬件里参与排查和改代码。
这一步看起来很基础,但它决定了后面会不会误伤别的 Android 设备。
本次目标设备是:
ADB 地址:192.168.99.73:XXXX 型号:orangepi5max 产品:rk3588_t Android:13 架构:arm64 内核:Linux 5.10.157 内存:约 8GB 屏幕:1024x600 GPU/OpenGL:OpenGL ES 3.2
本机 ADB 路径:
/Users/XXX/Library/Android/sdk/platform-tools/adb
同一局域网里还出现过另一台 Android 设备,所以所有 ADB 操作都明确带上 -s 192.168.99.73:5555。
在硬件开发里,这不是洁癖,是保命习惯。
Pi 5 Max 的 Android 系统里原本没有 Termux,所以直接安装 F-Droid 官方签名版本。
版本信息:
包名:com.termux 版本:0.118.3 versionCode:1002 架构:arm64-v8a
安装完成后,Termux Activity 可以正常启动。也就是说,这块 Android 开发板已经有了一个接近 Linux 的终端入口。
接下来就可以在设备上准备开发工具链。
Termux 初始化后,先更新包,再安装基础工具:
pkg update -y pkg install -y curl tar coreutils pkg install -y nodejs-lts python rust git
最终验证到的版本是:
Node.js v24.15.0 Python 3.13.13 rustc 1.95.0 cargo 1.95.0 git version 2.54.0
这里有一个小插曲。
原本希望精确使用 Node.js v24.14.1,但 Termux 当前可维护的 LTS 包安装到的是 v24.15.0。中间也短暂试过当前版 nodejs,会安装到 v26.2.0。
最后选择 nodejs-lts。
做硬件端环境,稳定和可维护比“版本数字刚好一致”更重要。
优先尝试官方 standalone installer:
curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_NON_INTERACTIVE=1 sh
安装器在 Termux 里识别为:
Linux (ARM64)
安装后得到:
Codex CLI 0.138.0 安装路径:~/.local/bin/codex
把路径加到当前会话:
export PATH="$HOME/.local/bin:$PATH"
验证:
codex --version
输出:
codex-cli 0.138.0
到这里,事情已经成功了一半。
但 Android/Termux 毕竟不是标准 Linux 发行版,后面还有一个平台识别的小坑。
为了让 Termux/Android 下的可执行文件更稳,后续又补了一次 npm 安装:
npm install -g @openai/codex
问题来了:Termux 会把平台识别成 android,导致 npm 可选 native 包不会按普通 Linux 方式自动安装。
处理方式是强制补装官方 Linux ARM64 native 包:
npm install -g --force @openai/codex-linux-arm64@npm:@openai/[email protected]
最终验证路径:
/data/data/com.termux/files/usr/bin/codex
最终版本:
codex-cli 0.138.0
这一步的意义是:以后在设备端调试,不用担心某次 PATH 或 native 包选择导致命令不可用。
原计划使用设备码登录:
codex login --device-auth
但在 Pi 5 Max Termux 中多次失败,错误指向设备码接口请求失败:
Error logging in with device code: error sending request for url (https://auth.openai.com/api/accounts/deviceauth/usercode)
尝试过 CA 证书路径、网络连通性和 DNS 方向排查后,设备码登录仍没有成功。
最后采用了本机已有 Codex 登录缓存迁移方式:
源文件:/Users/XXX/.codex/auth.json 目标位置:/data/data/com.termux/files/home/.codex/auth.json
权限设置:
chmod 700 ~/.codex chmod 600 ~/.codex/auth.json
这里必须强调:这不是通用首选方案。
通用首选仍然是设备码登录。只有在设备码网络请求失败,并且本机已经有可信 Codex 登录状态时,才考虑迁移认证缓存。
认证文件不能写进文档、Git 仓库、聊天记录或任何项目文件。
认证完成后,在 Pi 5 Max Termux 中执行:
command -v codex codex --version codex doctor --summary codex debug models
关键结果:
codex 命令可以被找到。codex-cli 0.138.0。codex debug models 能返回模型能力 JSON。这说明 Codex CLI 已经能读取认证,并且可以访问 OpenAI 服务。
换句话说,Pi 5 Max 不再只是一个“被电脑控制的屏幕”,它已经具备了设备端 AI 开发节点的雏形。
后续可以在 Pi 5 Max 上建立一个设备端项目目录:
mkdir -p ~/ai-frame cd ~/ai-frame codex "检查当前目录,并帮我规划 AI 相框的设备端项目结构"
建议的目录结构是:
~/ai-frame/ content/ # 图片、视频、文案、展示素材 scripts/ # 拉取内容、生成播放列表、清理缓存等脚本 renderer/ # 相框页面或播放器逻辑 agent/ # Codex/LLM 驱动的决策逻辑 logs/ # 运行日志 config/ # API、设备、显示、网络配置,不提交密钥
第一阶段不用一下子做得很复杂。
最小闭环可以是:
content/ 目录里的图片可以轮播。playlist.json。这样做的好处是,每一步都发生在真实硬件上。
不是先幻想一个完整系统,而是让设备自己先跑起来。
第一,ADB 网络连接可能不稳定。
安装过程中 Pi 5 Max 一度从 ADB 设备列表里消失,ping 和 ARP 也出现过异常。恢复后,192.168.99.73 可以 ping 通,但 ADB TCP 5555 一开始仍然 Connection refused。
所以不要省略确认步骤:
adb connect 192.168.99.73:5555 adb devices -l
第二,Termux 不是标准 Linux。
它足够强,但在平台识别、native 包选择、路径权限和登录请求上,都会有 Android 自己的差异。
第三,认证文件必须谨慎处理。
不要把 auth.json、API Key、Cookie 或 token 写入项目,也不要为了“方便复现”把它们贴到文档里。
第四,真实设备开发一定要带设备 ID。
多台 Android 设备同时在线时,ADB 命令不带 -s 就是在和运气合作。
这次的结果是:
0.138.0。codex debug models 已能返回 OpenAI 模型能力信息。它还不是一个完整的 AI 相框产品。
但它已经从“一块能显示内容的 Android 板子”,变成了“可以在设备端开发、调试、验证 AI 相框逻辑的边缘节点”。
这一步很关键。
因为真正的 AI 硬件产品,不是 PPT 里的能力堆叠,而是一个个能在真实设备上跑通的小闭环。
电脑负责规划,设备负责验证。
当 Codex 也能进入设备现场,AI 相框项目就开始离真实产品更近了一点。
登录查看剩余 70% 内容