我只是尝试在qemu上运行android。我使用Intel(R) Core(TM) i7-4790
CPU处理Ubuntu 16.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 \
$*
然后我收到消息:" Guest尚未初始化显示(尚未)"在qemu窗口上如下图:
问题可能是因为内核和选项不匹配。
首先(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⊙)
答案 0 :(得分:0)
尝试-display gtk,gl=off
禁用GL显示驱动程序,这可能会有所不同。
或-nographic
,以便无头运行。
请参阅https://www.linux-kvm.org/images/b/b2/01x10b-QEMUGfraphics.pdf