Cuttlefish 在 AArch64 上的 WebRTC 中不显示设备屏幕

问题描述 投票:0回答:0

此缺陷已被互联网上的多位作者报告(参见https://medium.com/@BushMinusZero/cuttlefish-on-arm64-in-aws-b1f60d937614https://junsun.net/wordpress/ tag/cuttlefish/ ),我自己也遇到了同样的问题。

重现:

  1. 在 AWS 上创建一个 a1.metal 实例,或使用任何其他裸机或允许嵌套虚拟化的 AArch64 机器
  2. 安装 Ubuntu 22.04 ARM64
  3. 在机器上设置 ubuntu-desktop 和一个用于远程查看屏幕的 VNC 服务器
  4. 在 AArch64 机器上设置 Firefox
  5. 按照官方说明设置 Cuttlefish:https://source.android.com/docs/setup/create/cuttlefish-use
  6. 按照官方说明启动Cuttlefish后,访问https://localhost:8443,可以看到没有建立到Android Virtual Device显示的连接。

我附上墨鱼日志以供参考:

屏幕输出:

~/work/avd$ HOME=$PWD ./bin/launch_cvd --daemon --start_webrtc=true
===================================================================
NOTICE:

By using this Android Virtual Device, you agree to
Google Terms of Service (https://policies.google.com/terms).
The Google Privacy Policy (https://policies.google.com/privacy)
describes how Google handles information generated as you use
Google Services.
===================================================================

launch_cvd I 03-27 08:03:20  2881  2881 main.cc:312] Host changed from last run: 0
assemble_cvd D 03-27 08:03:20  3103  3103 fetcher_config.cpp:220] Could not find file ending in kernel
assemble_cvd D 03-27 08:03:20  3103  3103 fetcher_config.cpp:220] Could not find file ending in initramfs.img
assemble_cvd I 03-27 08:03:20  3103  3103 config_flag.cpp:153] Launching CVD using --config='phone'.
assemble_cvd D 03-27 08:03:20  3103  3103 subprocess.cpp:333] Started (pid: 3106): /home/ubuntu/work/avd/bin/extract-ikconfig
assemble_cvd D 03-27 08:03:20  3103  3103 subprocess.cpp:335] /home/ubuntu/work/avd/boot.img
assemble_cvd D 03-27 08:03:21  3103  3103 subprocess.cpp:333] Started (pid: 3114): /home/ubuntu/work/avd/bin/unpack_bootimg
assemble_cvd D 03-27 08:03:21  3103  3103 subprocess.cpp:335] --boot_img
assemble_cvd D 03-27 08:03:21  3103  3103 subprocess.cpp:335] /home/ubuntu/work/avd/boot.img
assemble_cvd D 03-27 08:03:21  3103  3103 subprocess.cpp:335] --out
assemble_cvd D 03-27 08:03:21  3103  3103 subprocess.cpp:335] /tmp/RXHefo
Failed to load library: libEGL.so
Failed to load library: libEGL.so
Failed to wait for subprocess: subprocess terminated by signal 11.
Failed to wait for subprocess: subprocess terminated by signal 11.
GPU auto mode: did not detect prerequisites for accelerated rendering support, enabling --gpu_mode=guest_swiftshader.
The following files contain useful debugging information:
  Logcat output: /home/ubuntu/work/avd/cuttlefish/instances/cvd-1/logs/logcat
  Kernel log: /home/ubuntu/work/avd/cuttlefish/instances/cvd-1/kernel.log
  Point your browser to https://localhost:8443 to interact with the device.
  Launcher log: /home/ubuntu/work/avd/cuttlefish/instances/cvd-1/logs/launcher.log
  Instance configuration: /home/ubuntu/work/avd/cuttlefish/instances/cvd-1/cuttlefish_config.json
Virtual device booted successfully
VIRTUAL_DEVICE_BOOT_COMPLETED

日志:https://drive.google.com/drive/folders/1JAPyCzKq3PNnenXXrVqUZ7pNKDoxFDUu?usp=sharing

我认为错误与此输出有关

Failed to load library: libEGL.so
,所以我尝试通过从https://android.googlesource.com/platform/prebuilts/android-emulator-build/common/+/emu 下载工件来修复它-master-dev/swiftshader/linux-aarch64/lib 并将它们放入
avd/bin
目录。我发现
HOME=$PWD strace -f -v -s150 ./bin/launch_cvd --daemon --start_webrtc=true 2>&1 | fgrep libEGL.so
Cuttlefish 确实在那里寻找工件,而不是系统目录。

我还从源代码构建了基于 Messa

llvmpipe
的软件渲染器,并将其安装在主机系统上。
libEGL.so
错误无法通过上述任何一种方式解决。

请建议我还能尝试什么。

android ubuntu opengl android-virtual-device arm64
© www.soinside.com 2019 - 2024. All rights reserved.