1

我是新手。我正在尝试在 qemu 中启动为 powerpc 交叉编译的 linux 内核映像。我按照网上的指南进行操作,但我被卡住了,我真的不知道下一步该做什么。

qemu-system-ppc -kernel vmlinux_2 -hda ss1.1.img -append "console=ttyS0 root=/dev/sda1" -nographic

>> =============================================================
>> OpenBIOS 1.1 [Jul 30 2013 21:44]
>> Configuration device id QEMU version 1 machine id 2
>> CPUs: 1
>> Memory: 128M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,750
Welcome to OpenBIOS v1.1 built on Jul 30 2013 21:44
>> [ppc] Kernel already loaded (0x01000000 + 0x001e5608) (initrd 0x00000000 + 0x00000000)
>> [ppc] Kernel command line: console=ttyS0 root=/dev/sda1

从这里开始它什么都不做,我可以进入监控模式但什么都没有。什么都没发生。我什至试图将 fs 复制到 img 文件中,希望 smt 会发生,但什么也没有。如果我在没有 nographic 选项的情况下运行命令,vnc 只会显示带有 bios 版本的白屏和闪烁的光标。有什么想法/建议吗?我查看了 qemu 文档,但问题是我什至不知道我错在哪里。

4

5 回答 5

0

使用 Yocto 构建 qemuppc 映像时,我遇到了同样的问题。请尝试在没有此配置的情况下重建内核 - 它解决了我的问题:

  • CONFIG_KEXEC

kexec 是一个系统调用,它实现了关闭当前内核并启动另一个内核的能力。这就像重新启动,但它独立于系统固件。

如果你用谷歌搜索“CONFIG_KEXEC PowerPC”,你也会找到一些答案。

于 2014-08-25T16:04:47.247 回答
0

查看您的 initrd 输出:

(0x01000000 + 0x001e5608) (初始化 0x00000000 + 0x00000000)

它看起来真的一点也不正常。

我的启动尝试:

qemu-system-ppc -m 1024 -kernel vmlinux -cdrom mini.iso -boot d

mini.iso、initrd.gz、vmlinux 从这里加载:

http://ports.ubuntu.com/ubuntu-ports/dists/xenial/main/installer-powerpc/current/images/powerpc/netboot

确实有效。在安装提示符下,只要输入“alt-F2”(或“alt-F3”)切换到另一个控制台和“dmesg”,就可以看到整个内核已经成功启动了。

dmesg 尾部和起始行如下所示:

在此处输入图像描述

于 2013-12-10T04:56:51.333 回答
0

OF[openfirmware] 无法启动 kdump 内核。qemuppc 使用 openbios。

于 2018-04-24T03:19:24.683 回答
0

对我来说,这是我构建内核的时候。如果我没有启用:平台支持 ---> 支持从 Open 固件或 yaboot 启动,我得到的屏幕与您完全相同。当我打开它时,使用 bitbake virtual/kernel -c menuconfig for yocto/poky 重建内核一切都很好!:)

于 2017-12-22T14:53:03.177 回答
-1

不要nographic 使用下面的命令,

qemu-system-ppc -kernel vmlinux_2 -hda ss1.1.img -append "console=ttyS0 root=/dev/sda1"

或者

qemu-system-ppc -kernel vmlinux_2 -hda ss1.1.img -append "root=/dev/sda1"

于 2013-08-22T05:32:46.627 回答