我是一个纯粹折腾开发板的人。所以我需要一个很大的文件系统。64的Flash远远不能满足需要。相信有很多和我一样的兄弟。
我第一个想到的就是使用SD卡文件系统。因为我对U-boot了解很少。手头的U-boot(感谢本论坛的hugerat兄弟分享 )没有添加SD启动功能。
所以我想到了一个从FLSH加载kernel。然后从kernel挂载SD卡上的文件系统。经过试验成功。废话就到这。具体步骤如下:
准备条件:
1、首先kernel需要加载ext2的驱动。这个大家可以参考开发板的手册 Kernel定制。记的ext2不能选择<M> 一定要加载到Kernel中。
2、有一个大一些的SD卡。为了够能折腾。越大越好。然后将它格式化成ext2格式。(因为FAT32是没有办法建立符号连接的。具体为什么我也不知道- -..还没来得及查。。知道的大大给补一下:))
3、将友善的文件系统全部解压缩到这个SD卡的分区里
关键时刻到了:
我使用的U-boot就是精华贴中hugerat 兄弟共享的。大家可以去下一个。非常的强大。非常好用。
按照步骤将Kernel烧好。然后就是bootargs的设定了。这个折磨了我很久。按照Kernel挂载SD的设备名。SD卡应该是/dev/mmcblk0p1 所以我首先这样试了一下
setenv bootargs noinitrd root=/dev/mmcblk0p2 init=/linuxrc console=ttySAC0
结果发现失败了。Kernel没有去挂载SD卡。所以无法挂载文件系统。失败了几次以后。不得不求助Google.最后发现了一个问题。
就是在bootargs中如果加入了 ip 地址kernel就会加载SD卡。所以将bootargs改为如下
bootargs=noinitrd rw console=ttySAC0,115200 root=/dev/mmcblk0p1 ip=192.168.0.12:192.168.0.254:192.168.0.254:255.255.255.0 init=/linuxrc rootwait=5
然后boot
启动~惊喜人的时刻到来了。哈哈。SD上的文件系统被挂载了。不知道这个IP问题是不是一个Kernel的BUG。但是确实是一个烦人的问题。
弄完SD卡文件系统。就顺手把 Debian的apt-get 还有SSH弄过来了~不然想安装个软件还要自己编译有点痛苦。这个明天总结一下和大家共享~
我可怜的开发板变成了我的下载服务器。24小时开机挂BT。然后还能在公司SSH回来管理~~