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

无法运行自己编译的redroid-11-arm64镜像

Open wulliwui opened this issue 2 years ago • 3 comments

编译结果如下

[ 98% 25253/25691] //art/build/apex:art-check-debug-apex-gen generate art-check-debug-apex-gen.dummy
--bitness=auto, trying to autodetect. This may be incorrect!
  Detected multilib
[100% 25691/25691] Install system fs image: out/target/product/redroid_arm64/system.img

#### build completed successfully (04:25 (mm:ss)) ####

mac@redroid-builder:/src$ exit
exit
mac@ubuntu:~/android-builder-docker$ cd ~/redroid/out/target/product/redroid_arm64/
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo mount system.img system -o ro
[sudo] password for mac: 
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo mount vendor.img vendor -o ro
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo tar --xattrs -c vendor -C system --exclude="./vendor" . | docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?changes=ENTRYPOINT+%5B%22%2Finit%22%2C+%22androidboot.hardware%3Dredroid%22%5D&fromSrc=-&message=&repo=redroid&tag=": dial unix /var/run/docker.sock: connect: permission denied
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo tar --xattrs -c vendor -C system --exclude="./vendor" . |sudo  docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid
sha256:97f35c501a44136e3e0327bc0eb62a14a1ee8042913a324f4bcde2482c945c14
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo umount system vendor
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ tar --xattrs -c -C root . | docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid-dev
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?changes=ENTRYPOINT+%5B%22%2Finit%22%2C+%22androidboot.hardware%3Dredroid%22%5D&fromSrc=-&message=&repo=redroid-dev&tag=": dial unix /var/run/docker.sock: connect: permission denied
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ tar --xattrs -c -C root . |sudo  docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid-dev
sha256:d62fdea538d0e70a9830fc573d5d6c5089b42f1a300caf46289af74008a6c7c7
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ docker images
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
redroid-dev       latest    d62fdea538d0   2 minutes ago   2.65kB
redroid           latest    97f35c501a44   2 minutes ago   1.74GB
redroid-builder   latest    4fba9e45965e   21 hours ago    891MB
当我尝试运行上面的镜像报错docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/init": stat /init: no such file or directory: unknown.

具体命令执行如下
mac@ubuntu:~$ sudo docker run -itd --rm --privileged \
>     -v ~/data:/data \
>     -p 5555:5555 \
>     --device /dev/video0:/dev/video0 \
>     --device /dev/video1:/dev/video1 \
>     redroid-dev
6fc44a2381046127dbfdffcf64398aed840a0f3f464c109a1567a1aa3a55c1bb
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/init": stat /init: no such file or directory: unknown.
mac@ubuntu:~$ sudo docker images
REPOSITORY        TAG       IMAGE ID       CREATED        SIZE
redroid-dev       latest    d62fdea538d0   2 hours ago    2.65kB
redroid           latest    97f35c501a44   2 hours ago    1.74GB
redroid-builder   latest    4fba9e45965e   24 hours ago   891MB
mac@ubuntu:~$ sudo docker run -itd --rm --privileged     -v ~/data:/data     -p 5555:5555     --device /dev/video0:/dev/video0     --device /dev/video1:/dev/video1     redroid
f32dcaa350815ea31bad6ff14ef993bedb597155a8fa34b555727df2a9343c55
mac@ubuntu:~$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
mac@ubuntu:~$ sudo docker ps

wulliwui avatar Jan 18 '24 05:01 wulliwui

redroid-dev is a rootfs-only image. You should manually mount system / vendor partitions.

Check dmesg, and figure out why redroid container exits.

zhouziyang avatar Jan 19 '24 06:01 zhouziyang

mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo docker logs 855a88626036da6996b033fdbd66c07fd03cc0d47af6ac9da9748cac4f343e5d exec /init: exec format error 我在x86_64上运行了我编译的redroid_arm64-userdebug 这似乎是问题所在, 所以我应该编译redroid_x86_64-userdebug么? 那么我如何在redroid_x86_64-userdebug里运行arm64的app?

wulliwui avatar Jan 22 '24 02:01 wulliwui

Try build redorid-x86_64 with native bridge if want to run on x86_64 platforms. Take a look at https://github.com/remote-android/redroid-doc?tab=readme-ov-file#native-bridge-support

zhouziyang avatar Jan 22 '24 06:01 zhouziyang