之前 Nas 上一直靠破解n卡的 vgpu 功能开 windows 虚拟机挂机明日方舟,最近沉迷视频编解码买了块 intel 的 a380,但是换成a380后好像不能搞 vgpu 了,只能想办法找找有没有 linux 下也可以完美挂机的方案,踩的一些坑总结如下。
硬件与系统环境
- CPU: AMD Ryzen 5800
- GPU: Intel Arc A380
- OS: Ubuntu 24.04 LTS
- 容器管理: Dockge
关于系统的选择: 其他 Linux 发行版理论上都可以,Redroid 的文档里面给了很多系统的使用方法。Debian 也行。但我推荐 Ubuntu,因为在处理 Redroid 的
binder设备绑定时,Ubuntu 比较省心。Debian 需要三个三个地绑定 binder devices,我不只一个游戏要挂机,就用的 Ubuntu。
一、Redroid 容器配置
我选用的镜像是这个
- 镜像:
erstt/redroid:11.0.0_ndk_magisk_litegapps_ChromeOS
在我这个配置下只有这个镜像运行的不错,赛马娘台服也能跑,但是学马仕跑不了,运行明日方舟有奇怪的bug,启动的时候会黑屏卡住。
解决方案: 完全靠运气或者手速。黑屏的时候在彻底卡住闪退之前,按一下安卓的“任务栏键”,然后再点回游戏,有概率能刷出画面。一旦进入主界面,后续挂机就一切正常了。
二、ALAS 与 MAA 部署
我所有 Compose 文件都用 Dockge 进行部署管理。选用 ALAS 不用 maa cli 的原因是我不会用,突然发现这个居然不仅有 web ui,还可以跑 maa 和 fgo 的脚本。项目地址是AzurLaneAutoScript
安装 ALAS: 根据 ALAS 文档 docker 部署的教程,直接 Clone 到
/opt/stack目录,然后重命名为azurlaneautoscript,这样方便 Dockge 识别和管理。**准备 MAA **: 下载 MAA 的 Linux 版本,解压到 NAS 的某个目录(例如
/home/yourname/MAA)。- 注意:建议先进入 MAA 文件夹运行一下
./maa,根据提示更新资源或初始化之类的,确保 MAA 本身能正常工作。
- 注意:建议先进入 MAA 文件夹运行一下
三、修改 Dockerfile
ALAS 原版的 Dockerfile 我死活构建不起来。
参考了项目 Issue 中大佬 CJH-James 的方案,修改了一份 Dockerfile。
请修改 azurlaneautoscript/deploy/docker/Dockerfile 内容如下:
# 将基础镜像改为 Ubuntu 24.04 以支持 GLIBC 2.38/2.39
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
# System dependencies
# 重点:添加了 libatomic1 等必要依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
wget git adb libgomp1 libatomic1 openssh-client ca-certificates \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install Miniconda (Miniconda3-py313_25.9.1-3)
RUN wget -q https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-3-Linux-x86_64.sh \
-O /tmp/miniconda.sh \
&& bash /tmp/miniconda.sh -b -p /opt/conda \
&& rm /tmp/miniconda.sh
# Add conda to PATH
ENV PATH="/opt/conda/bin:${PATH}"
# 切换为 conda-forge 源,移除 defaults
RUN conda config --system --remove channels defaults \
&& conda config --system --add channels conda-forge \
&& conda config --system --set channel_priority strict
RUN conda install -y mamba
WORKDIR /app/AzurLaneAutoScript
COPY requirements.txt /tmp/requirements.txt
# Install PyAV according to requirements.txt
# 单独安装 PyAV,锁定 Python 3.7
RUN AV_VERSION=$(grep -E '^av==' /tmp/requirements.txt | cut -d '=' -f 3) \
&& echo "Installing av == $AV_VERSION" \
&& mamba install -y "python=3.7" "av==$AV_VERSION" \
&& conda clean --all --yes
# Install other pip dependencies (skip av)
RUN grep -v '^av==' /tmp/requirements.txt > /tmp/requirements_no_av.txt \
&& pip install --no-cache-dir -r /tmp/requirements_no_av.txt \
&& rm /tmp/requirements.txt /tmp/requirements_no_av.txt
# 环境检查(Debug 用)
RUN echo "[ENV_CHECK_START]========================================" \
&& echo "Final Environment Verification Checks (After all installations):" \
&& echo "1. Python Version Check (should be 3.7.x):" \
&& python --version \
&& echo "2. Pip Path Check (should be /opt/conda/bin/pip):" \
&& which pip \
&& echo "3. Complete Package List (Conda and Pip):" \
&& conda list \
&& echo "[ENV_CHECK_END]=========================================="
CMD ["python", "gui.py"]
然后在 Dockge 里面点启动就行。
五、ALAS 内部配置
容器启动成功后,进入 ALAS 的 WebUI,还需要做几步修改。
1. 修改 MAA 路径
在 ALAS 设置中,找到 MAA 路径设置。
- 填写容器内的路径:
/app/MAA
2. ADB 连接与触控方案
- 模拟器地址:填入你 NAS 的 IP + Redroid 端口(例如
192.168.1.xxx:5555)。 - 触控方案:须选择 ADB Input,其他方案我运行不起来。
3. 修复 ADB 连接失败
按照默认配置,启动任务时控制台会报错:
INFO 13:38:39.742 │ [Message.ConnectionInfo] 192.168.1.xxx:5555 ConnectFailed
CRITICAL 13:38:39.744 │ Request human takeover
原因:ALAS 默认寻找的 adb 路径和我们容器内安装的路径不一致,或者权限有问题。
解决方法:
需要修改 ALAS 的配置文件 deploy.yaml。
- 找到文件路径:
/azurlaneautoscript/config/deploy.yaml - 找到
AdbExecutable:这一项。 - 将其修改为系统自带的 ADB 路径:
AdbExecutable: /usr/bin/adb
保存文件后重启 ALAS 容器,再次连接,应该就可以了。 目前跑了三四天左右,还是很稳定的。只要不关机就这样一直挂着应该也没什么问题。