1.通过busybox制作一个我们需要的文件系统,但是没有压缩,所有的文件在目录~/armsource/ramfs下面。
2.initramfs其实就是一个用gzip压缩的cpio文件。我们可以把initramfs直接集成到kernel里,也可以单独加载initramfs。在kernel源码的scripts目录下,有一个gen_initramfs_list.sh脚本,专门是用来生成initramfs镜像和initramfs list文件。你可以通过如下方式自动生成initramfs镜像:
sh scripts/gen_initramfs_list.sh -o initramfs_data.cpio.gz ~/armsource/ramfs
然后修改kernel的.config配置文件来包含这个文件:
CONFIG_INITRAMFS_SOURCE="initramfs_data.cpio.gz"
重新编译后,kernel就自动集成了你制作的initramfs_data.cpio.gz,并会在初始化完成后,加载这个根文件系统,并产生一个shell。
制作内核:
$MAP_ROOT_DIR/tools/mkimage -A ppc -O linux -T multi -C gzip -a 0x0 -e 0x0 -n 'PPC Linux-2.6.21.7' -d piggy.gz:initramfs_data.cpio.gz:SCMF.dtb zImage
linux2.6 内核使用的 initrd 是 cpio 格式,其核心文件是 /init。下面介绍 linux2.6 内核对initrd 的处理流程:
boot loader 把内核以及 initrd 文件加载到内存的特定位置。
内核
2.initramfs其实就是一个用gzip压缩的cpio文件。我们可以把initramfs直接集成到kernel里,也可以单独加载initramfs。在kernel源码的scripts目录下,有一个gen_initramfs_list.sh脚本,专门是用来生成initramfs镜像和initramfs list文件。你可以通过如下方式自动生成initramfs镜像:
sh scripts/gen_initramfs_list.sh -o initramfs_data.cpio.gz ~/armsource/ramfs
然后修改kernel的.config配置文件来包含这个文件:
CONFIG_INITRAMFS_SOURCE="initramfs_data.cpio.gz"
重新编译后,kernel就自动集成了你制作的initramfs_data.cpio.gz,并会在初始化完成后,加载这个根文件系统,并产生一个shell。
制作内核:
$MAP_ROOT_DIR/tools/mkimage -A ppc -O linux -T multi -C gzip -a 0x0 -e 0x0 -n 'PPC Linux-2.6.21.7' -d piggy.gz:initramfs_data.cpio.gz:SCMF.dtb zImage
linux2.6 内核使用的 initrd 是 cpio 格式,其核心文件是 /init。下面介绍 linux2.6 内核对initrd 的处理流程:
boot loader 把内核以及 initrd 文件加载到内存的特定位置。
内核