将 Qemu 控制台重定向到文件或主机终端?

问题描述 投票:0回答:3

背景:

我的系统是基于 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/Page Down 在 QEMU 控制台中导航。所以我尝试通过命令使用curses将输出重定向到主机终端:

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

但我再次无法导航并找到问题。

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

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

logging qemu
3个回答
16
投票

添加以下命令:

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磁盘在哪里?即 -

-initrd (initrdimage)

要启动系统,您需要两个映像,1) zImage 或 bZimage(如果是 x86) 2) rootfs - 根文件系统

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


0
投票

根据文档,您可以使用选项 -ngraphic 并且 qemu-system 将直接打印到您的控制台

sudo qemu-system-x86_64 [your things here] -nographic

0
投票

你可以尝试这样的事情: qemu-system-x86_64 -serial stdio -kernel linux-3.9.2/arch/x86/boot/bzImage
-追加“root=/dev/ram0 console=ttyS0”

因为默认控制台是 ttyS0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.