本次总结的失败原因都和commandLine没填或者填错有关系。
1.No OS found
现象
原因是commandline没有填写,由于烧录的superboot2440.bin为友善之臂自己制作的bootloader,不向用户提供源码,所以要用minitools烧录的话,格式化之后commandline是必填的,如果没有选择格式化nandflash,此值可以不填,默认用上一次的command。
正确填写的commandline如下:
//从本机启动
noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
//从nfs服务器启动
console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.9:/tmp/Desktop/rootfs_qtopia_qt4 ip=192.168.1.44:192.168.1.9:192.168.1.1:255.255.255.0:sbc2440.arm9.net:eth0:AC0
2.Unable to mount root fs on unknown-block
现象如下:
大多数与命令行分隔符有关系,mini2240识别的分隔符为空格,而我们从光盘中自带的文本中复制粘贴到命令行输入框中,此时的我们以为的空格实际上是换行符,将我们复制过的文本再复制到notpad++里面,通过 视图->显示行尾符 我们能够清晰的看到,其实我们眼中的空格实际是换行符,所以首先需要将换行符删除,然后换成空格。
看红色第一处提示,提示root的参数有问题,原始是由于我们用的是换行符分隔的,所以看上一行提示,它的含义是 root的参数系统截取了nfsnfsroot=192.168.1.9:/tmp/Desktop/rootfs_qtopia_qt4ip=19,所以系统才认为系统的参数不正确。
总结,mini2440从NFS启动失败的大多数原因应该都是命令行参数的问题。
1.参数是否正确,
2.检测间隔符是否为空格
还有,mini2440手册上有许多表述有问题的地方,不是完全正确的,需要自己去尝试,然后发现错误。