我正在尝试使用QEMU来加载u-boot,这样我就可以在那里与控制台进行交互。 u-boot的最终目标没有串口,因此我可以通过模拟器与u-boot控制台进行交互的最简单方法。
当我使用这些标志运行模拟器时,模拟器启动,但没有任何内容打印到控制台:
qemu-system-ppc -nographic -M virtex-ml507 -cpu 440epx -kernel u-boot.bin -dtb virtex440-ml507.dtb -serial mon:stdio -append 'console=ttyS0'
我尝试在没有-nographic标志的情况下运行程序,但收到错误gtk initialization failed
。
我还尝试使用更多“标准”输入运行模拟器:
qemu-system-ppc -nographic -M virtex-ml507 -cpu 440epx -kernel zImage -dtb virtex440-ml507.dtb -initrd ramdisk.image.gz -serial mon:stdio -append 'console=ttyS0'
您可能会注意到我使用的是zImage
而不是bzImage
。目前,当我构建内核时,没有生成bzImage
。为了彻底,我还在vmlinux
中为zImage
提供了无效的帮助。
我还尝试在没有-serial
和-append
标志的情况下运行模拟器,允许模拟器处理I / O,如第一个指南中所述。
QEMU似乎运行正常,即没有挂起,因为我仍然可以进入命令模式并正常退出。这似乎是一个切入点问题,但我认为入口点将由模拟器处理,我没有看到任何指导告诉我指定它们。也许我正在使用的文件以某种方式被破坏,因为我没有在其他任何地方运行它们,但我的构建看似正确。
答案 0 :(得分:0)
首先要记住的是,一般来说,只知道U-Boot和QEMU以及PowerPC适用于' qemu-ppce500'构建目标,这是一个与你上面所针对的440不同的CPU系列。所有这些都说,在尝试做你正在做的事情时,对于PowerPC,你需要使用-bios标志,参数是构建的 u-boot 文件。您不需要也不想传递-dtb,-kernel和-append。