主题 : mini2440从存储卡启动(根文件系统):方便维护的好方法! 复制链接 | 浏览器收藏 | 打印
欢迎访问我的博客http://chinmel.blog.163.com
级别: 新手上路
UID: 16953
精华: 0
发帖: 36
金钱: 180 两
威望: 36 点
综合积分: 72 分
注册时间: 2010-03-23
最后登录: 2016-02-27
楼主  发表于: 2011-02-18 21:26

 mini2440从存储卡启动(根文件系统):方便维护的好方法!

    今天讨论的主题是如何较为方便地传送调试程序并及时备份文件系统。
如果我说在linux开发时使用串口传送需要调试的程序,再用串口备份文件系统中重要文件,必定有人会笑了:那都是远古时代的事了,现在都用nfs了!连根文件系统都能直接挂在nfs上!
    是的。nfs是太方便了。然而这种方便是建立在复杂网络的基础上的。很多人肯定会同意这样的评论:nfs建立不容易,在实体linux下固然稳定,然而在虚拟机中,实在是难以恭维,一不小心环境就坏了。
    有没有一种既能方便开发调试后的文件系统备份,又能十分方便建立使用环境的方法呢?且看下文。
    不要惊讶:使用你手中的存储卡。也许你会说,这种方法还没有串口方便!反复复制!别说是备份系统了,就是传一个文件都太麻烦了!别急,我们自有理由。这种方法不使用任何网络资源,不占用复杂的接口电路,它的使用仅仅需要两个条件:内核支持内嵌的mmc驱动,内核支持某种文件系统,如yaffs,ext,cramfs,fat,甚至ntfs。
    我们要做的就是将存储卡挂载为根文件系统,并从其根目录下启动。这样所有工作中的数据都被完整地记录在存储卡中了,需要修改文件(尤其是修改重大启动文件时),只需将卡从开发板上取下,放在读卡器中,甚至不需要虚拟机就能直接对文件进行修改:windows下有支持linux分区的工具的。
    此外,这种方法更方便于普通用户的固件升级:不需要专业刷机工具,无任何风险,即可刷机。


具体操作方法:
1.格式化存储卡为ext2格式(本文以它为例,也可格式化成其它的格式,但不保证fat是成功的)
2.确保内核内嵌支持mmc驱动和ext2文件系统,而不是模块支持。此法成败的关键所在。
3.修改启动参数为:
noinitrd root=/dev/mmcblk0p1 init=/linuxrc console=/dev/ttySAC0 rootdelay=2 注意最后的一段非常重要,不加上很可能因为你的存储卡反应较慢而无法启动成功。
4.不出意外,应该可以从存储卡启动了。
一卡在手,万事无忧!

注:使用mini2440+surpervivi+kernel2.6.32.2+自制rootfs+gcc4.4.1成功。