[英]Qemu-Arm Is stuck with black screen - running vanilla kernel
I have tried to run qemu-arm with a complied linux kernel (Version 4.9) and with an initfs that i have created with a sample program. 我试图用一个编译好的Linux内核(版本4.9)和一个用示例程序创建的initfs来运行qemu-arm。
This is was based on an excellent post from here . 这是基于这里的优秀帖子。
This is the command that i have executed: 这是我执行的命令:
qemu-system-arm -M vexpress-a9 -kernel linux-4.9/arch/arm/boot/zImage -initrd initramfs -append "console=tty1"
then, qemu shows me these errors and its graphical window is getting stuck: 然后,qemu向我展示了这些错误,其图形窗口卡住了:
pulseaudio: set_sink_input_volume() failed
pulseaudio: Reason: Invalid argument
pulseaudio: set_sink_input_mute() failed
pulseaudio: Reason: Invalid argument
Even when I run it without the -initrd parameter, for just loading the kernel - nothing happens. 即使我在没有-initrd参数的情况下运行它,只是加载内核 - 没有任何反应。
When I tried run it with a vmlinuz-3.2.0-4-vexpress image in this example, it worked for me. 当我在这个例子中尝试用vmlinuz-3.2.0-4-vexpress图像运行它时,它对我有用。
Does someone have clue what may be the problem? 有人知道可能是什么问题吗? Something with the fact that it is a zImage? 有什么事实它是一个zImage? Is there a way to debug it? 有没有办法调试它?
Thanks! 谢谢!
"QEMU sits there and prints nothing" is quite a common symptom, and it almost always means "the guest kernel crashed before being able to print anything, because it wasn't configured correctly". “QEMU坐在那里并且什么都不打印”是一个非常常见的症状,它几乎总是意味着“客户内核在能够打印任何内容之前崩溃,因为它没有正确配置”。 This is pretty much the same effect you get if you try to boot a wrongly configured kernel on real hardware, and the process for debugging it is about the same: 如果您尝试在真实硬件上启动错误配置的内核,这与您获得的效果几乎相同,并且调试它的过程大致相同:
Nothing about this is particularly QEMU specific -- it's the same sort of pain you have to go through if you're trying to do kernel bringup on hardware. 没有任何关于这一点特别是QEMU特定的 - 如果你试图在硬件上进行内核启动,那么你必须经历同样的痛苦。
PS: my first guess is that the kernel is crashing because it doesn't have enough memory -- you haven't passed QEMU a '-m' option, so it is defaulting to 128MB; PS:我的第一个猜测是内核崩溃,因为它没有足够的内存 - 你没有通过QEMU'-m'选项,所以它默认为128MB; the vexpress-a9 board can handle up to 1GB. vexpress-a9主板最高可处理1GB。 earlycon would probably be sufficient debug output to identify this issue. earlycon可能是足够的调试输出来识别这个问题。 You also aren't passing a device tree blob via -dtb, which may be an issue for newer kernels (older kernels would happily boot without one). 您也没有通过-dtb传递设备树blob,这可能是较新内核的问题(较旧的内核很乐意在没有内核的情况下启动)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.