内核启动到
Starting kernel ...
Uncompressing Linux... done, booting the kernel. 卡死。网上的原因有很多。一个个分析全都没用,最后换了块板子直接pass。想了很多,估计原因是由于我之前的开发箱比较非主流,它是采用onenand flash,在mach-smdk6410.c里面添加onenand分区以及初始化,以及后面配置onenand 驱动出现差错。导致内核启动无法访问flash,卡在那一步,此时串口还没初始化,无法输出信息。。。
。。 后来发现分区设置错误其实不会影响内核启动,很多教程都说内核分区和bootloader分区信息要一致,我亲自验证过不一致一样ok。
NAND_ECC_NONE selected by board driver. This is not recommended!
Scanning device for bad blocks
Creating 4 MTD partitions on "nand":
0x000000000000-0x000000200000 : "uboot"
0x000000400000-0x000000700000 : "Kernel"
0x000000900000-0x000000c00000 : "my"
0x000000600000-0x000080000000 : "rootfs"
这个和uboot的完全不一样。 仔细看看rootfs和my分区甚至有重合,但这不重要,只要内核挂载文件系统的时候 rootfs的地址和真正地文件系统地址一致就ok!! 有点奇怪 我将rootfs设置为比真实的文件系统地址附近的时候,可以正确挂载。如果差距很远,则不行,这个可能跟yaffs2文件系统有关系。
机器码出错时 显示信息如下:
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x0000065a).
Available machine support:
ID (hex) NAME
000008ce Airgoo-HMT
00000272 OK6410
0000078d NCP
000009e6 SmartQ 5
000009af SmartQ 7
Please check your kernel config and/or bootloader.
编译内核 yaffs2时,碰到诡异的file not recognized: File truncated 这种问题,折磨了很久们无法解决,索性换个交叉编译器,ok,没问题了
Bringing up interface eth0: arping: socket: Address family not supported by protocol
确认这两项是否选上:CONFIG_PACKET and CONFIG_INET可能没选上!!
刚开始自己制作的yaffs2文件系统总是提示init option出错,我想里面明明有的,而且板子自带的yaffs2文件系统烧进去也出错,通过分析,可能是mkyaffs2image-nand2这个命令的问题,导致文件系统里面的文件访问出错,于是改用nfs测试文件系统。。一定要认真分析问题。
关于挂载nfs的问题:
首先在板子上mount 文件系统 一直提示错误 根据教程一步步来
多半是设置 /etc/exports 或是 mount命令出错
mount -t nfs -o nolock 192.168.1.12:/nfs_share /mnt
这一步能通过 nfs挂载就多半没问题了
setenv bootargs "root=/dev/nfs nfsroot=192.168.1.12:/home/moon/rootfs ip=192.168.1.11:192.168.1.12:192.168.1.1:255.255.255.0:witech.com.cn:eth0:off console=ttySAC0,115200"