redroid-doc icon indicating copy to clipboard operation
redroid-doc copied to clipboard

debian 无法启动多个redroid

Open xj011011 opened this issue 2 years ago • 10 comments

debian11 docker run 多个 redroid 只有第一个设备正常,其余都是离线状态。我修改了端口和挂载路径,请教下还需要调整那些配置 第一次启动

docker run -itd --rm --privileged \
    --pull always \
    -v /dev/binder1:/dev/binder \
    -v /dev/binder2:/dev/hwbinder \
    -v /dev/binder3:/dev/vndbinder \
    -v ~/data:/data \
    -p 5555:5555 \
    redroid/redroid:11.0.0-latest

第二次启动

docker run -itd --rm --privileged \
    --pull always \
    -v /dev/binder1:/dev/binder \
    -v /dev/binder2:/dev/hwbinder \
    -v /dev/binder3:/dev/vndbinder \
    -v ~/data2:/data2 \
    -p 5556:5555 \
    redroid/redroid:11.0.0-latest

xj011011 avatar Dec 28 '23 08:12 xj011011

Should not share binder devices. Check https://github.com/remote-android/redroid-doc/blob/master/deploy/debian.md for debian support

zhouziyang avatar Dec 28 '23 10:12 zhouziyang

谢谢你的回复,我尝试以下属性设置,但是设备无法正常启动。请您帮忙看看

CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"

docker run -itd --rm --privileged \
    --pull always \
    -v ~/data11:/data \
    -p 5555:5555 \
    --name redroid11 \
    redroid/redroid:11.0.0-latest

tmp.BzuyFfF7MD.tgz

xj011011 avatar Dec 28 '23 11:12 xj011011

The binderfs is not enabled in your running kernel. Please double check.

BTW, just allocate more binder devices, and it's convenient for small platform.

zhouziyang avatar Dec 28 '23 11:12 zhouziyang

好的,我查看下binderfs情况,非常感谢您

xj011011 avatar Dec 28 '23 11:12 xj011011

非常感谢你,开启binderfs还是踩很多坑。以下是我汇总debian11下的流程

此外我还想请教下,虚拟机中我开启多个模拟器后,本地无法使用``进行远程连接虚拟机的防火墙是关闭状态,我该如何远程连接呢。 我使用过172.17.0.1:5555仍无法连接 debug infotmp.YxRFANZTLT.tgz

# 1.安装必要的工具
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev flex bison libssl-dev libelf-dev bc

# 2.下载当前Debian内核版本的源代码
sudo apt-get source linux-source
# 3.进入内核源码目录
cd linux-*

# 4.配置内核,运行配置工具以启用BinderFS支持。使用 make menuconfig 或 make nconfig:
make menuconfig
# 出现选项就按这个流程走 General setup -> Pseudo filesystems -> Binder IPC and BinderFS file system 启用这些选项,然后保存并退出

# 也可以检查下源码目录下.config文件,并设置一下内容
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
CONFIG_ANDROID_BINDER_IPC_SELFTEST=y


# 5.编译内核
make -j$(nproc)

# 6.安装新内核
sudo make modules_install
sudo make install

# 7.重新启动
sudo reboot

xj011011 avatar Jan 04 '24 09:01 xj011011

Try adb connect <GUEST-VM-IP>:<PORT>

172.17.0.1 is docker gateway IP which only valid inside guest VM.

zhouziyang avatar Jan 04 '24 10:01 zhouziyang

我这边debian12就算是开启一个redroid虚拟机,宿主机也无法通过adb连接。完全按照文档部署的环境,同样不知道该怎么解决


cx@debian-minix:~$ docker ps
CONTAINER ID   IMAGE                            COMMAND                  CREATED         STATUS                  PORTS                                                           NAMES
e63082657520   redroid/redroid:11.0.0-latest    "/init qemu=1 androi…"   5 minutes ago   Up 5 minutes            0.0.0.0:5555->5555/tcp, :::5555->5555/tcp                       redroid11
be0f47930d1c   filebrowser/filebrowser:latest   "/filebrowser"           40 hours ago    Up 39 hours (healthy)   0.0.0.0:8080->80/tcp, :::8080->80/tcp                           filebrowser
28ebff0ce0c6   containrrr/watchtower            "/watchtower"            40 hours ago    Up 39 hours             8080/tcp                                                        watchtower
aaaacd682e00   portainer/portainer-ce:latest    "/portainer"             40 hours ago    Up 39 hours             8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer
cx@debian-minix:~$ adb devices
List of devices attached
127.0.0.1:5555  offline
emulator-5554   offline
localhost:5555  offline

cx@debian-minix:~$ adb -s localhost:5555 shell
error: device offline

chenxiahuaxu avatar Jan 05 '24 06:01 chenxiahuaxu

debian下参考debian.md 你是否开启binder_linux ,如果开启,参照 信息收集

xj011011 avatar Jan 05 '24 07:01 xj011011

@zhouziyang 你好,再次打扰下,我使用以下dockerfile构建新的镜像,发现RUN任何命令 的时候都会出现exec /bin/sh: no such file or directory我该如何解决 示例

FROM redroid/redroid:11.0.0-latest

RUN pwd
# 自定义逻辑

xj011011 avatar Jan 10 '24 09:01 xj011011

Should avoid add RUN commands in Dockerfile; Try create a tar-ball, then add it to redroid base image.

BTW, please discuss in a new thread since it's not relevant to the origin issue.

zhouziyang avatar Jan 10 '24 10:01 zhouziyang