6

背景:

我的系统是基于 x86 的内核和基于ramfs的根文件系统。我已经制作了基于 cpio 存档的 ramfs(它将使用 boot=/dev/ram0 作为 RAM 设备),但我在 init 上遇到了一些问题。整个目的是将 ramfs 优化到最低限度,以适应一个非常小的系统。我正在尝试调试 init 中的问题。我使用以下命令在Ubuntu 12.10 (Quantal Quetzal) 中启动QEMU :

qemu-system-x86_64 -kernel linux-3.9.2/arch/x86/boot/bzImage -serial stdio \
    -append "root=/dev/ram0 console=tty1"

正如预期的那样,系统进入 OOPS。

问题:

我想查看日志以调查崩溃的原因,但我无法使用Shift键和Page Up/在 QEMU 控制台中导航Page Down。所以我尝试通过命令使用curses将输出重定向到主机终端:

qemu-system-x86_64 -kernel linux-3.9.2/arch/x86/boot/bzImage -serial stdio \
    -append "root=/dev/ram0 console=tty1" -curses

但是在这里我又无法导航并找到问题。

PS 如果我的系统启动正常(使用正确的 rootfs),那么我可以导航并查看消息。

如何将消息重定向到终端或文件?

4

1 回答 1

15

添加以下命令:console=ttyAMA0 console=ttyS0

qemu-system-x86_64 -kernel linux-3.9.2/arch/x86/boot/bzImage -serial stdio \
    -append "root=/dev/ram0 console=ttyAMA0 console=ttyS0"

现在所有 dmesg 日志都将重定向到您的控制台。

还有一件事:我从上面的命令中观察到,您的初始 RAM 磁盘在哪里?IE --initrd (initrdimage)

要启动系统,您需要两个映像,1) zImage 或 bZimage(在 x86 的情况下)2) rootfs -root 文件系统

在您的情况下,缺少的组件是 rootfs 。

于 2013-08-07T10:18:57.590 回答