admin管理员组文章数量:1130349
orangepi 5 plus 刷了2404的版本,内核也更新了。
GitHub - Joshua-Riek/ubuntu-rockchip: Ubuntu for Rockchip RK35XX Deviceshttps://github/Joshua-Riek/ubuntu-rockchip在这个上面安装redroid 时
redroid-modules/README.md at master · remote-android/redroid-modules · GitHubhttps://github/remote-android/redroid-modules/blob/master/README.md下面命令就不好用了,因为内核变了
# Ubuntu 20.04+ (kernel 5.0+) sudo modprobe ashmem_linux sudo modprobe binder_linux devices=binder,hwbinder,vndbinder
明白 ✅。你是在 RK3588 + Ubuntu 24.04 上想跑 reDroid (一个 Android in Docker 的实现)。
我帮你梳理一套专门针对 RK3588 / Ubuntu 24.04 的安装流程,顺便解释跟 ashmem/binder 的关系。
1. reDroid 的运行条件
reDroid 本质是一个 Android GSI 内核补丁 + 容器运行环境,依赖以下几点:
-
内核必须支持 Android binder(binderfs/binder_linux)
-
ashmem 以前需要,但新版本可用 memfd 替代(你遇到
ashmem_linuxnot found 就是因为内核没带 ashmem,Ubuntu 24.04 默认也不用它了) -
Docker 或 Podman 作为容器运行环境
-
GPU 驱动/硬件加速:RK3588 上要结合 Mali GPU 驱动 + drm/kms 才能硬解码显示
2. 检查内核支持
容器场景通常只需要 binder(binderfs),ashmem 可由 memfd 兼容层替代。先检查 binder:
# 看配置(存在其一就行)
zcat /proc/config.gz 2>/dev/null | grep -E 'BINDER|BINDERFS' || \
grep -E 'BINDER|BINDERFS' /boot/config-$(uname -r)
# 看能否加载 binder 模块
sudo modprobe binder_linux 2>/dev/null || true
# 尝试挂载 binderfs
sudo mkdir -p /dev/binderfs
sudo mount -t binder none /dev/binderfs 2>/dev/null || sudo mount -t binder binder /dev/binderfs
# 验证
ls -l /dev/binderfs
运行下面的脚本,确认 binder 是否启用:
zcat /proc/config.gz | grep BINDER || grep BINDER /boot/config-$(uname -r)
ls /dev | grep binder
ls /dev/binderfs
-
如果能看到 binder/binderfs → OK
-
ashmem 不出现没关系,reDroid >= 11 可以直接用 memfd,不会影响
3. 安装依赖
sudo apt update
sudo apt install -y docker.io uidmap curl unzip
sudo systemctl enable docker
sudo systemctl start docker
检查 Docker:
docker run hello-world
4. 拉取 reDroid 镜像
reDroid 官方提供 Android 各版本镜像(arm64 也支持):
# Android 13 示例
docker pull redroid/redroid:13.0.0-arm64
常见版本:12.0.0-arm64, 13.0.0-arm64, 14.0.0-arm64
5. 启动 reDroid 容器
运行命令示例:
sudo docker run -d --name redroid-gpu-rk \
--privileged --restart unless-stopped \
-v /dev/binderfs:/dev/binderfs \
-v /opt/gpu-acc/android12-redroid-data:/data \
--device /dev/dri:/dev/dri \
--device /dev/mali0:/dev/mali0 \
-p 55559:5555 \
redroid/redroid:12.0.0_64only-latest \
androidboot.redroid_gpu_mode=guest \
androidboot.redroid_memfd=true \
androidboot.redroid_width=1080 androidboot.redroid_height=1920 androidboot.redroid_dpi=480
参数说明:
-
--privileged→ 容器需要访问 binderfs -
-v /dev/binderfs:/dev/binderfs→ 挂载主机的 binderfs -
androidboot.redroid_gpu_mode=guest → 使用 RK3588 的 GPU(host 需要 Mali 驱动)guest相当于没有用,另外使用guest时,连adb连不上,还在排查原因 -
androidboot.redroid_memfd=true→ 告诉 reDroid 用 memfd 替代 ashmem
6. 连接并使用
启动后,你可以通过 ADB 连接:
adb connect localhost:5555
adb shell
你应该能进入 Android 容器的 shell。
7. 显示/图形输出
在 SBC(RK3588)上,reDroid 默认是 headless(无界面)。常见做法有两种:
-
用 scrcpy 或 VNC:在 reDroid 内跑 VNC server,然后用客户端连接
-
直通 GPU:RK3588 内核+Docker 驱动允许时,可以跑
androidboot.redroid_gpu_mode=host,这样性能更好(但依赖 Mali GPU 驱动是否正确安装)
8. 总结
-
你 不需要 ashmem → reDroid 用
memfd替代 -
只要保证 binderfs 可用 就能跑
-
GPU 加速在 RK3588 上可能要额外配置(比如装 Rockchip Mali 驱动、修改 Docker 参数) reDroid)?这样你只要运行脚本,就能直接起来一个 Android 容器。
安装Docker + reDroid
以下是基于ubuntu2404的
sudo apt install -y docker.io uidmap curl unzip
sudo systemctl enable docker
sudo systemctl start docker
nano /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1ms.run"
]
}
另外要加上代理才可以下载镜像
终端命令行临时代理(仅当前终端有效):
export http_proxy=http://10.10.10.215:7897
export https_proxy=http://10.10.10.215:7897
终端永久代理设置(适用于所
orangepi 5 plus 刷了2404的版本,内核也更新了。
GitHub - Joshua-Riek/ubuntu-rockchip: Ubuntu for Rockchip RK35XX Deviceshttps://github/Joshua-Riek/ubuntu-rockchip在这个上面安装redroid 时
redroid-modules/README.md at master · remote-android/redroid-modules · GitHubhttps://github/remote-android/redroid-modules/blob/master/README.md下面命令就不好用了,因为内核变了
# Ubuntu 20.04+ (kernel 5.0+) sudo modprobe ashmem_linux sudo modprobe binder_linux devices=binder,hwbinder,vndbinder
明白 ✅。你是在 RK3588 + Ubuntu 24.04 上想跑 reDroid (一个 Android in Docker 的实现)。
我帮你梳理一套专门针对 RK3588 / Ubuntu 24.04 的安装流程,顺便解释跟 ashmem/binder 的关系。
1. reDroid 的运行条件
reDroid 本质是一个 Android GSI 内核补丁 + 容器运行环境,依赖以下几点:
-
内核必须支持 Android binder(binderfs/binder_linux)
-
ashmem 以前需要,但新版本可用 memfd 替代(你遇到
ashmem_linuxnot found 就是因为内核没带 ashmem,Ubuntu 24.04 默认也不用它了) -
Docker 或 Podman 作为容器运行环境
-
GPU 驱动/硬件加速:RK3588 上要结合 Mali GPU 驱动 + drm/kms 才能硬解码显示
2. 检查内核支持
容器场景通常只需要 binder(binderfs),ashmem 可由 memfd 兼容层替代。先检查 binder:
# 看配置(存在其一就行)
zcat /proc/config.gz 2>/dev/null | grep -E 'BINDER|BINDERFS' || \
grep -E 'BINDER|BINDERFS' /boot/config-$(uname -r)
# 看能否加载 binder 模块
sudo modprobe binder_linux 2>/dev/null || true
# 尝试挂载 binderfs
sudo mkdir -p /dev/binderfs
sudo mount -t binder none /dev/binderfs 2>/dev/null || sudo mount -t binder binder /dev/binderfs
# 验证
ls -l /dev/binderfs
运行下面的脚本,确认 binder 是否启用:
zcat /proc/config.gz | grep BINDER || grep BINDER /boot/config-$(uname -r)
ls /dev | grep binder
ls /dev/binderfs
-
如果能看到 binder/binderfs → OK
-
ashmem 不出现没关系,reDroid >= 11 可以直接用 memfd,不会影响
3. 安装依赖
sudo apt update
sudo apt install -y docker.io uidmap curl unzip
sudo systemctl enable docker
sudo systemctl start docker
检查 Docker:
docker run hello-world
4. 拉取 reDroid 镜像
reDroid 官方提供 Android 各版本镜像(arm64 也支持):
# Android 13 示例
docker pull redroid/redroid:13.0.0-arm64
常见版本:12.0.0-arm64, 13.0.0-arm64, 14.0.0-arm64
5. 启动 reDroid 容器
运行命令示例:
sudo docker run -d --name redroid-gpu-rk \
--privileged --restart unless-stopped \
-v /dev/binderfs:/dev/binderfs \
-v /opt/gpu-acc/android12-redroid-data:/data \
--device /dev/dri:/dev/dri \
--device /dev/mali0:/dev/mali0 \
-p 55559:5555 \
redroid/redroid:12.0.0_64only-latest \
androidboot.redroid_gpu_mode=guest \
androidboot.redroid_memfd=true \
androidboot.redroid_width=1080 androidboot.redroid_height=1920 androidboot.redroid_dpi=480
参数说明:
-
--privileged→ 容器需要访问 binderfs -
-v /dev/binderfs:/dev/binderfs→ 挂载主机的 binderfs -
androidboot.redroid_gpu_mode=guest → 使用 RK3588 的 GPU(host 需要 Mali 驱动)guest相当于没有用,另外使用guest时,连adb连不上,还在排查原因 -
androidboot.redroid_memfd=true→ 告诉 reDroid 用 memfd 替代 ashmem
6. 连接并使用
启动后,你可以通过 ADB 连接:
adb connect localhost:5555
adb shell
你应该能进入 Android 容器的 shell。
7. 显示/图形输出
在 SBC(RK3588)上,reDroid 默认是 headless(无界面)。常见做法有两种:
-
用 scrcpy 或 VNC:在 reDroid 内跑 VNC server,然后用客户端连接
-
直通 GPU:RK3588 内核+Docker 驱动允许时,可以跑
androidboot.redroid_gpu_mode=host,这样性能更好(但依赖 Mali GPU 驱动是否正确安装)
8. 总结
-
你 不需要 ashmem → reDroid 用
memfd替代 -
只要保证 binderfs 可用 就能跑
-
GPU 加速在 RK3588 上可能要额外配置(比如装 Rockchip Mali 驱动、修改 Docker 参数) reDroid)?这样你只要运行脚本,就能直接起来一个 Android 容器。
安装Docker + reDroid
以下是基于ubuntu2404的
sudo apt install -y docker.io uidmap curl unzip
sudo systemctl enable docker
sudo systemctl start docker
nano /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1ms.run"
]
}
另外要加上代理才可以下载镜像
终端命令行临时代理(仅当前终端有效):
export http_proxy=http://10.10.10.215:7897
export https_proxy=http://10.10.10.215:7897
终端永久代理设置(适用于所
版权声明:本文标题:orangepi 5 plus ubuntu24.04上安装redroid 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763960339a2974956.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论