android - 当我尝试在 qemu 上运行 Android 时没有显示消息 :"Guest has not initialized the display (yet)."

标签 android ubuntu virtual-machine qemu boot

我只是尝试在 qemu 上运行 android。我使用 Intel(R) Core(TM) i7-4790 在 Ubuntu 16.04 上工作中央处理器。

我同步并编译android-6.0.1_r1进入aosp_arm-eng . 我同步编译qemu 2.9.91带 ARM 平台。

然后,我尝试通过以下 shell 代码完成我的工作:

    ANDROID_IMAGE_PATH=${ANDROID_PATH}/out/target/product/generic
    QEMU_ARCH="arm"
    QEMU_OPTS="-cpu cortex-a15 -machine type=virt"
    KERNEL_CMDLINE='console=ttyAMA0,38400 earlycon=pl011,0x09000000 debug nosmp drm.debug=0x0 rootwait androidboot.selinux=permissive'
    LINUX_PATH=${ANDROID_PATH}/prebuilts/qemu-kernel
    KERNEL=${LINUX_PATH}/arm/kernel-qemu-armv7

    ${QEMU_PATH}/${QEMU_ARCH}-softmmu/qemu-system-${QEMU_ARCH} \
    ${QEMU_OPTS} \
    -append "${KERNEL_CMDLINE}" \
    -m 1024 \
    -serial mon:stdio \
    -kernel ${KERNEL} \
    -initrd ${ANDROID_IMAGE_PATH}/ramdisk.img \
    -drive index=0,if=none,id=system,format=raw,file=${ANDROID_IMAGE_PATH}/system.img \
    -device virtio-blk-pci,drive=system \
    -drive index=1,if=none,id=cache,format=raw,file=${ANDROID_IMAGE_PATH}/cache.img \
    -device virtio-blk-pci,drive=cache \
    -drive index=2,if=none,id=userdata,format=raw,file=${ANDROID_IMAGE_PATH}/userdata.img \
    -device virtio-blk-pci,drive=userdata \
    -netdev user,id=mynet,hostfwd=tcp::5550-:5555 -device virtio-net-pci,netdev=mynet \
    -display gtk,gl=on \
    -device virtio-gpu-pci,virgl \
    -device nec-usb-xhci,id=xhci \
    -device sdhci-pci \
    -d guest_errors \
    $*

然后我在 qemu 窗口上收到消息:“Guest has not initialized the display (yet)”,如下图所示: enter image description here

问题可能是因为内核和选项不匹配。

所以首先 (1) 我检查图像。 我用上面的图像和路径运行模拟器。 该模拟器基于 qemu 并从 Android 源代码中获取。 我使用以下代码运行模拟器并且它可以工作。

EMULATOR_PATH=${ANDROID_PATH}/prebuilts/android-emulator/linux-x86_64
${EMULATOR_PATH}/emulator \
    -kernel ${KERNEL} \
    -ramdisk ${ANDROID_IMAGE_PATH}/ramdisk.img \
    -system ${ANDROID_IMAGE_PATH}/system.img \
    -data ${ANDROID_IMAGE_PATH}/userdata.img \
-sysdir ${ANDROID_IMAGE_PATH} \
-memory 512 \
    -partition-size 1024

enter image description here

现在,qemu 的选项可能有问题。 那么有人可以告诉我有用的机器类型或其他选项吗?

如果你能给我一些帮助,我会非常感谢你(⊙o⊙)

最佳答案

尝试 -display gtk,gl=off 禁用 GL 显示驱动程序,这可能会有所不同。

-nographic,以便 headless 运行。

参见 https://www.linux-kvm.org/images/b/b2/01x10b-QEMUGfraphics.pdf

关于android - 当我尝试在 qemu 上运行 Android 时没有显示消息 :"Guest has not initialized the display (yet).",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45809557/

相关文章:

java - MainActivity 中弹出窗口中的 AutoCompleteTextView

android - 圆形笔划的涟漪效应

mysql - 无法在纯 ubuntu 20.04 上安装 mysql

linux - debian包依赖,如何为不同版本的ubuntu设置它?

Ubuntu 16.04 虚拟盒蓝牙

memory-management - KVM 中的动态内存分配

android - Android 中的 FFmpeg 命令以编程方式

file - Ubuntu - 如何创建相对文件路径快捷方式

xcode - 在 Mac 上开发还是在基于 Windows 的 PC 上使用虚拟机?

android - 当 Recyclerview 不在第一项时如何禁用 swiperefreshlayout?