在qemu中引导ppc linux内核

在qemu中引导ppc linux内核,linux,kernel,qemu,powerpc,Linux,Kernel,Qemu,Powerpc,这方面我是新手。 我正在尝试在qemu内为powerpc启动一个交叉编译的linux内核映像。 我跟随网络上的指南,但我被卡住了,我不知道;我真的不知道下一步该怎么办 qemu-system-ppc -kernel vmlinux_2 -hda ss1.1.img -append "console=ttyS0 root=/dev/sda1" -nographic >> =========================================================

这方面我是新手。 我正在尝试在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文档,但问题是我甚至不知道我错在哪里。

不要使用
nographic
使用下面的命令

qemu系统ppc-kernelvmlinux_2-hdass1.1.img-append“console=ttyS0 root=/dev/sda1”


qemu系统ppc-kernel vmlinux_2-hda ss1.1.img-append“root=/dev/sda1”

查看initrd输出:

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

这看起来真的一点都不正常

我的启动尝试:

qemu-system-ppc -m 1024 -kernel vmlinux -cdrom mini.iso -boot d
其中mini.iso、initrd.gz、vmlinux从这里加载:

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

dmesg尾端和起始线如下所示:


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

  • 配置KEXEC
kexec是一个系统调用,它实现关闭当前内核和启动另一个内核的功能。它类似于重新启动,但与系统固件无关


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

对我来说,那是我构建内核的时候。如果我没有启用: 平台支持---> 支持从开放固件或yaboot引导
我的屏幕和你的一模一样。当我打开它时,使用bitbake virtual/kernel-c menuconfig为yocto/poky重建了内核,一切都很好!:)

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

不起作用……我以前试过,但我使用-nographic获得更多输出。但是,它们不起作用。我尝试使用root/console。Graphic/no-grpahic,network/no-network,但结果总是一样的。我不知道ppc的构造,因为在Arm内核中传递了zImage参数,你能在ppcit的为ppc编译的linux内核(make ARCH=ppc CROS_COMPILE=$CC)中了解一下内核vmlinux_2吗。更确切地说是linux 2.6内核。我想我做错了什么,我就是搞不清楚。从prom_init=>返回0x00000000,这就是我现在得到的。在构建means平台和机器名时,你使用的是哪种*_defconfig?我得到一个内核死机运行:(