[BUG]: Open-Computer setup fails on Mac (AWESOME project, though!!!!)

用户在 macOS ARM64 系统上,通过 Docker(本地模式)运行 AnythingLLM 的 Open-Computer 设置流程时触发失败。具体涉及 QEMU 虚拟机启动 Debian 安装盘、UEFI 引导及 SSH 网络配置环节。

[BUG]: Open-Computer setup fails on Mac (AWESOME project, though!!!!)

[BUG]: Open-Computer setup fails on Mac (AWESOME project, though!!!!)

快速结论:该报错出现在 macOS ARM64 环境下通过 Docker 运行 AnythingLLM 的 Open-Computer 功能时,优先排查 QEMU 模拟器参数不兼容以及基础镜像 ISO 未正确挂载的问题。目前官方已提供预捆绑基础镜像脚本 ./scripts/fetch-base-image.sh 作为替代方案。

问题场景

用户在 macOS ARM64 系统上,通过 Docker(本地模式)运行 AnythingLLM 的 Open-Computer 设置流程时触发失败。具体涉及 QEMU 虚拟机启动 Debian 安装盘、UEFI 引导及 SSH 网络配置环节。

报错原文

bundled qemu-system-aarch64 rejects "-display cocoa"
base install checks isoPath() but does not attach ISO to QEMU
resulting Debian install does not boot automatically from EDK2/UEFI
base provision depends on SSH, but base networking/SSH path is fragile

原因分析

可能原因包括:

  • macOS ARM64 平台自带的 qemu-system-aarch64 二进制不支持 -display cocoa 参数(该参数通常适用于 x86_64 架构的 QEMU)。
  • 基础安装检查 isoPath() 函数虽然验证了 ISO 文件路径,但未将 ISO 实际挂载到 QEMU 虚拟机中,导致系统无法从 CDROM 启动。
  • UEFI(EDK2)固件默认不自动引导启动,需要额外的启动顺序配置。
  • 基础配置脚本依赖 SSH 连接,但网络/SSH 路径在 macOS 上配置脆弱,容易失败。

环境排查

  • 操作系统:macOS ARM64(Apple Silicon)
  • Docker 版本(本地模式)
  • qemu-system-aarch64 版本及是否来自 Homebrew 或 Xcode
  • 基础镜像源:原始 Debian ISO 路径 vs 官方预捆绑镜像
  • SSH 客户端配置:密钥、端口、网络模式

解决步骤

  1. 使用官方预捆绑基础镜像:运行 chmod +x ./scripts/fetch-base-image.sh && ./scripts/fetch-base-image.sh 下载预配置镜像,避免 ISO 挂载和 UEFI 引导问题。
  2. 更新代码仓库:拉取最新 main 分支,包含 5f71fc2551d1f3d49b30aef84aabaf8591332014 提交中的修复(该提交已调整 QEMU 参数和 ISO 挂载逻辑)。
  3. 如果仍使用自定义 QEMU:检查 -display cocoa 参数是否被识别;若不支持,删除该参数或改为 -display none -vga none,并确认在 macOS 上使用适用于 ARM64 的 QEMU 版本(推荐 Homebrew 安装的 qemu-system-aarch64 v7.2+)。
  4. 确保 ISO 已挂载:在启动 QEMU 命令中显式添加 -drive file=/path/to/debian.iso,media=cdrom 参数,并验证 isoPath() 返回的路径是否正确且可读。
  5. 配置 SSH 网络:手动检查容器网络模式(推荐 host 模式),确认 SSH 端口(默认 2222)未被占用,并测试 ssh -p 2222 user@localhost 是否可通。

验证方法

运行 docker logs anythingllm-open-computer 检查 QEMU 启动日志,确认无 rejects "-display cocoa"no boot device 错误。然后通过 SSH 登录虚拟机(默认用户密码见项目文档),执行 uname -a 确认系统正常启动。如果使用预捆绑镜像,可跳过 ISO 挂载步骤,直接验证虚拟机可访问网络。

参考来源

Mintplex-Labs/anything-llm #5983

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 12744

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注