QEMU仅显示黑屏

时间:2018-03-04 20:15:21

标签: linux linux-kernel operating-system qemu

我使用不同的配置和图像编译我的自定义内核,如u,zImages。但是当我尝试用我的图像运行qemu时,qemu只显示黑屏。

我也看了this post,但它对我没有帮助。

修改

我只是尝试使用这些命令编译内核。

  

制作ARCH = arm distclean

     

制作ARCH = arm integrator_defconfig

     

制作ARCH = arm menuconfig

注意:我使用默认的menuconfig。

  

make ARCH = arm CROSS_COMPILE = arm-none-eabi- zImage

     

qemu-system-arm -M integratorcp -kernel arch / arm / boot / zImage

最后我尝试了这个命令;

  

qemu-system-arm -M integratorcp -kernel arch / arm / boot / zImage -append' console = ttyAMA0 earlyprintk = ttyAMA0' -serial stdio

注意:当我尝试使用-dtb时,qemu会给我" 无法在内存中复制设备树。"错误。

1 个答案:

答案 0 :(得分:1)

" QEMU什么都不做黑屏"几乎总是意味着" QEMU运行正常,但访客代码在启动过程中早期崩溃或停止而没有发送任何输出"。几乎可以肯定,您的内核配置错误,或者您的QEMU命令行错误。你没有提供足够的信息来说出哪些。你至少需要告诉我们:

  • 您正在运行的内核以及您为其配置的内容
  • 您正在使用的QEMU命令行是

使用命令行给出更新的问题,提出一些建议:

  • 告诉您的访客使用串口(使用QEMU选项-append' console = ttyAMA0'设置访客内核命令行)
  • 检查GUI中的串行输出视图,或使用-nographic或-serial stdio将其发送到stdout
  • 启用guest虚拟机配置中的所有earlyprintk或earlycon选项,以及guest虚拟机命令行,因此如果guest虚拟机提前失败,则有更多机会捕获它
  • 使用-dtb integratorcp.dtb传递内核的设备树(使用内核树中的那个;你可能需要告诉内核makefile为你构建它)。

PS:integratorcp是一个绝对古老的开发板 - 为什么要使用它?