如何使用gem5使用initrd或initramfs启动Linux内核?

时间:2018-03-13 16:58:42

标签: gem5

使用QEMU,我可以使用-initrd '${images_dir}/rootfs.cpio作为initrd,或者将initramfs图像直接传递给-kernel Image

但如果我使用gem5 initramfs尝试fs.py --kernel Image图片,则会失败:

fatal: Could not load kernel file

使用QEMU能够使用的完全相同的initramfs内核映像。

我没有看到-initrd的类似物。

我工作的唯一方法是使用原始ext2--disk-image磁盘映像传递给vmlinux

https://www.mail-archive.com/gem5-users@gem5.org/msg15198.html

1 个答案:

答案 0 :(得分:0)

initrd至少在arm和x86上似乎未实现,因为gem5必须知道如何加载它并通知内核其位置,而grepping initrd仅显示以下内容对ARM的影响:

src/arch/arm/linux/atag.hh

但它们已被注释掉。

Initramfs可能更容易工作,但是我已经尝试过了,并且内核启动了,并且看不到附件的cpio。

它可以与QEMU在同一内核上运行,我认为唯一的区别是QEMU使用bzImage和gem5 vmlinuz。<​​/ p>

要进行此测试,我还必须传递一个来自gem5 7fa4c946386e7207ad5859e8ade0bbfc14000d91的虚拟磁盘映像,因为脚本不能很好地处理丢失的--disk-image,您可以转储一些随机的512字节并使用它们: / p>

dd if=/dev/zero of=dummy.iso bs=512 count=1