我只是试着在qemu上运行android。我在一台装有Intel(R) Core(TM) i7-4790 CPU的ubuntu16.04上工作。
我同步android-6.0.1_r1并将其编译成aosp_arm-eng。我在arm平台上同步编译了qemu 2.9.91。
然后,我尝试通过以下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尚未初始化显示(尚未)“:

这个问题可能是因为内核和选项不匹配。
因此,首先(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

现在,qemu的选项中可能有一些错误。那么,谁能告诉我有用的机器类型或其他选择?
如果你能给我一些帮助,我将非常感谢(⊙o⊙)
发布于 2018-11-18 06:47:20
尝试使用-display gtk,gl=off禁用GL显示驱动程序,可能会有所不同。
或者-nographic,以实现无头运行。
请参阅https://www.linux-kvm.org/images/b/b2/01x10b-QEMUGfraphics.pdf
https://stackoverflow.com/questions/45809557
复制相似问题