ramdisk作为根文件系统的配置.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ramdisk作为根文件系统的配置

转帖从ramdisk根文件系统启动Linux成功,总结一下今天做了个试验,让Linux从ramdisk根文件系统启动成功,总结一下。其中涉及的内容较多,很多东西不再详述,如需深入研究请查阅相关资料(百度或谷歌一下一大堆)。开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核版本:-FriendlyARM。昨天写贴子的时候具体记不清了,今天起来启动开发板用uname -r查一下,就是叫做-FriendlyARM,帖子已经改好了。本文就是友善之臂的-FriendlyARM的那个版本的内核的基础上改的。其它版本的应该也类似,仅供参考。开发板:mini2440-128M Nand FlashBootloader:u-boot-2009.11具体步骤如下:1.解压内核源码树解压linux-2.6.29-mini2440tgz到自己的工作目录,会生成一个友善之臂修改过的并且有几个mini2440默认配置文件的内核源码目录linux-2.6.29。具体步骤参照友善之臂mini2440开发板用户手册,具体不详述了。2.修改内核配置选项进入内核源码目录linux-2.6.29目录#cp config_mini2440_t35 .config#make menuconfig ARCH=arm打开配置菜单,修改两个配置项,分别是:a):General setup--选择 Initial RAM filesystem and RAM disk...... 项b):Device Drivers--Block devices--选择 RAM block device support 项并检查Optimize for size是否被选中,如果没有则选中,此项优化内核大小,根据需要进行配置。修改(8192)Default RAM disk size kbytes选项为(4096)Default RAM disk size kbytes,之所以修改是因为我之后制作的ramdisk是4096KB大小的。当然如果你想制作8192KB大小的ramdisk,这里就要对应为8192了,以此类推。但是最小系统嘛,是不用那么大的ramdisk的。此项的默认配置就是(4096),以前我改过这个配置,所以是(8192)了。如果这个大小和你做的ramdisk不匹配,则启动时仍然会出现kernel panic内核恐慌,提示ramdisk格式不正确,挂载不上ramdisk。然后特别要注意的一点是,ramdisk是一种内存虚拟磁盘技术,实质上并不是一种文件系统,它使用的文件系统时ext2文件系统。所以一定要在make menuconfig ARCH=arm的时候进入File systems菜单,选上* Second extended fs support。以提供内核对ext2文件系统的支持。我以前添加过了ext2文件系统了,所以开始的时候在此没有说明,在此为了说明为什么有的人照着我的方法做了,但是仍然kernel panic,特别把这一步也加上。然后保存配置退出。这样就为内核添加好了ramdisk启动功能和ramdisk的驱动支持了。3.修改内核启动参数方法有二:a):修改.config的第310行,修改CONFIG_CMDLINE=的定义修改为CONFIG_CMDLINE=initrd=00x200000 root=/dev/ram rw init=/linuxrc console=ttySAC0 mem=64M保存。意思为从ramdisk启动,ramdisk压缩文件起始地址在内存地址0,文件大小为0x200000。此参数也可以在make menuconfig ARCH=arm时进入Boot options菜单,然后在Default kernel command string里修改。效果是一样的。b):或者不修改.config的的第310行CMDLINE定义,而是用u-boot的bootargs环境变量来传递启动参数。同样也是修改该环境变量为bootargs=initrd=00x200000 root=/dev/ram0 rw init=/linuxrc console=ttySAC0 mem=64M并saveenv保存u-boot环境变量以上a),b)的效果是一样的。4.编译内核#make zImage ARCH=arm CROSS_COMPILE=arm-linux-然后是二十分钟左右的等待。编译完成后在当前目录下就出现了zImage内核映像了。好像友善之臂把内核源码目录里的uImage目标给注释了,以前在论坛里看到过有人说,直接ma

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档