内核zImage的制作(initramfs)

本文介绍了内核zImage的生成过程,特别是涉及到initramfs.cpio.gz的创建,该文件由usr/gen_init_cpio.c编译生成,并在内核启动时通过gunzip解压到内存中。问题可能源于内核下载地址与SDRAM映射地址不匹配。
摘要由CSDN通过智能技术生成
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 文件加载到内存的特定位置。
内核
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值