首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

应用initramfs

2012-11-23 
使用initramfs菜鸟心得,高手路过。。。。。在方案公司开发环境一般极其复杂, 有一种情况如果在板子inand没有驱

使用initramfs

菜鸟心得,高手路过。。。。。

 

      在方案公司开发环境一般极其复杂, 有一种情况如果在板子inand没有驱动起来的时候,没有分区,没有根文件系统。快被淘汰掉的nandflash板子上压根没焊,而且手机的板子中根本没有rj45接口,所以想要做nfs那是天方夜谈的事情。想要安安心心的进入shell界面谈何容易。除非有别的方法启动板子,但是会让本就复杂的情况变得更复杂。至于其他理由及需求我这里不在赘述。

      因为当网络中这方面资料讲的虽然比较全面,而且提纲挈领,但是方法繁多,结构松散,不知从何入手。几经折腾后写下这篇心得,不管你多菜,跟随五个步骤一步一步做,问题应该能够得到解决。(initramfs.cpio我认为是很好的一种方法,使用简单,内核自带,不需要打任何补丁,在逻辑中内核跟文件系统看起来浑然一体,移植性更高,不需要各种复杂的uboot操作,使用这种方法足以对应各种发杂的开发环境)

     注:我这里用到的环境是s3c6410 linux2.6.32.2

1)找个简单一下的跟文件系统,需要一个busybox用来做一些最简单的操作

应用initramfs

注:这里我放在了内核根目录下面,在逻辑上来看内核跟文件系统形成了一部分东西

2)make menuconfig中勾选

          General setup  --->

          [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

然后这里填入具体根目录的路径(内核目录下的minirootfs)

应用initramfs

3)make重新编译内核,一般情况不需要clean

应用initramfs

编译过程中会发现usr/initramfs_data.cpio被更新了

来到usr目下发现确实是有这么一个7.8M的东东,不管,继续去arch/arm/boot/下查看

应用initramfs

发现zImage变成了7M的大家伙,做到这步,说明你已经成功一半了

应用initramfs

 

5)OK让我们放到板子上跑一下

想办法把把zImage拷贝到内寸中,不管用什么办法,拷贝到启动地址即可,我这里使用的是TFTP(s3c6410的启动地址是0x50008000这里就不在赘述了)

应用initramfs

 

设置bootargs为"console=ttySAC0,115200 init=/linuxrc ==>ttySAC0"即不指定根"root=xxx"

bootm启动

 应用initramfs

如果你进shell了,说明你已经成功了,在我博客blog.csdn.net/dragon101788上顶一下帖子说明对你有所帮助。如果没有成功,那么加我QQ:45797408,一起讨论

如果你想更深入的了解请点击精通initramfs构建step by step

 

 

可能会出现问题:

应用initramfs

 

找不到控制台,串口连不上

解决方案:来到initramfs根目录中的dev下创建console与null

应用initramfs

重新make以下步骤,问题得以解决

热点排行