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



背景:

我的系统是一个基于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。

问题:

我想查看日志来调查崩溃的原因,但我无法在QEMU控制台中使用Shift键和Page Up/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

但在这里,我又无法找到问题所在。

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

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

添加以下命令: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。

相关内容

最新更新