一、引言

最近要拆除一台 PVE 服务器,零件另做他用,所以要将这台服务器上的服务做迁移。在迁移运行 redroid 服务的虚拟机时遇到了一些问题:redroid 原来跑在 Ubuntu 22.04 的虚拟机上并直通了 i7-12700H 的核显做硬件加速,使用 PVE 集群的迁移功能迁移到 i7-13700 的机器上并直通核显后,虚拟机无法正常识别核显。在安装显卡驱动以及升级内核都无法解决问题的情况下,我决定重新部署一台 Ubuntu 24.04 的虚拟机用来运行 redroid,在这做个记录。

二、正文

  1. 环境准备

    ubuntu-24.04-live-server-amd64.iso

    使用该镜像做最小安装并备份,并在之后每一步重要操作后及时备份,以便于无法弥补的问题出现时能够及时回滚。

    # 检查/dev/dri下是否有显卡节点、redroid需要用到显卡硬件加速。
    ls /dev/dri
    by-path  card0  renderD128
  2. 安装docker

    使用在ubuntu22.04上适用的教程【CSDN】ubuntu上Docker的下载和使用时,发现docker服务无法正常启动,报Error starting daemon: Devices cgroup isn't mounted的错误。最后通过使用了一键安装命令解决了问题。

    sudo curl -sSL https://get.docker.com | sh
  3. 部署redroid的前置准备

    apt install linux-modules-extra-`uname -r`
    modprobe binder_linux devices="binder,hwbinder,vndbinder"
    modprobe ashmem_linux

    这套来自于redroid官方文档的命令在ubuntu22.04能够正常执行,在ubuntu24.04下执行语句modprobe ashmem_linux时遇到了报错modprobe: FATAL: Module ashmem_linux not found in directory /lib/modules/6.8.0-41-generic。不过这条命令似乎是个可选项,没做处理后续跑容器的时候没发现有啥问题。

    根据以前的经验,重启后内核模块加载会失效,所以我把这些内核模块的加载命令固化到ubuntu的启动脚本里了。

    # 创建并编辑rc.local
    nano /etc/rc.local
    
    # 键入以下内容
    #!/bin/bash
    
    modprobe binder_linux devices=binder,hwbinder,vndbinder
    
    # 赋权
    chmod +x /etc/rc.local

    可以重启后验证内核功能有没有被加载

    grep binder /proc/filesystems
    # 出现以下内容表示已生效
    nodev    binder
  4. 部署redroid

    这次之前环境的镜像和命令能够漂亮的把容器跑起来。

    docker run -itd --privileged \
        --restart always \
        -v ~/data-lhn:/data \
        -p 5555:5555 \
        --name redroid11-lhn \
        redroid/redroid:11.0.0-latest \
        androidboot.redroid_fps=30 \
        androidboot.redroid_width=720 \
        androidboot.redroid_height=1280 \
        androidboot.redroid_dpi=320 \
        androidboot.redroid_gpu_mode=guest \
        androidboot.use_memfd=true
  5. 验证可用

    使用QtScrcpy或者其他scrcpy工具连接,redroid能够正常上网且应用能正常安装。

三、总结

总的来说本次没有遇到多少疑难问题,搜索引擎前几个结果基本就能解决问题了,环境重装比环境升级的难度确实低很多。之前迁移后 Ubuntu 22.04 不识别核显可能是 5.15 内核没有内置 13700 的核显驱动,升级内核以及安装 Intel 驱动依然不识别,且 redroid 容器只跑软解也没法连接,所以干脆就直接重装操作系统为 Ubuntu 24.04(内核版本 6.8),核显能正常识别以后接下来安装程序都是按部就班。

四、文献引用

最后修改:2026 年 09 月 14 日
如果觉得我的文章对你有用,请随意赞赏