如何使用qemu模拟器加载cpio独立生成的initramfs.img的2.6.30.4内核
和
如何使用qemu模拟器加载built-in进initramfs文件系统的2.6.30.4内核类似,
只是在编译内核时,不需要设置Initramfs source file文件位置,这样zImage将含有initramfs的驱动.
luther@gliethttp:/luther/works/linux-2.6.30.4$ make menuconfig
"General setup" ==>
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
() Initramfs source file(s)
然后使用cpio指令生成ramfs.img.gz
luther@gliethttp:/vobs/crosscomplie_tootls/busybox-1.14.3/_install$ find . | cpio -o -H newc | gzip > ../ramfs.img.gz
最后使用qemu虚拟器运行内核
luther@gliethttp:/luther/works/linux-2.6.30.4$ qemu -kernel arch/x86/boot/bzImage -initrd /vobs/crosscomplie_tootls/busybox-1.14.3/ramfs.img.gz /dev/null
Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
qemu: loading initrd (0x11cd1b bytes) at 0x7ed3000 // 这是qemu加载initrd的地址
可以从log中看到
Unpacking initramfs...提示(见下图),之后就正常进入busybox的ash了[luther.gliethttp].
阅读(2501) | 评论(0) | 转发(0) |