mini2440内核停在booting the kernel问题以及无法运行linuxrc问题的解决方法

这几天在2440板子上面移植2.6.32.2的内核,用的现成的uboot,但是每次uImage自解压之后就卡住了,booting the kernel然后就没有下文了,高了半天才发现制作uImage出了问题,我直接make uImage生成的uImage,也不知道是不是uboot里面的mkimage工具生成uImage的时候抽风了,最后还是保险地自己用mkimage工具生成uImage:

mkimage -n 'mini2440' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage

然后内核启动就没有问题了,接下来挂载根文件系统又出问题,提示信息是无法运行/linuxrc,根文件系统的制作是确定没有问题的,uboot传给内核的启动参数有root=/dev/mtdblock3,我查看了内核代码,mtd分区3的起始地址是0x560000,烧写根文件系统也确实是烧到这个地址的,一切看来没问题,但是最后发现烧写的时候用的指令是nand write, 后来才发现,烧写yaffs2镜像必须用nand write.yaffs指令,并且最后指定的烧写长度必须是flash的一页长度加00b区长度(对于mini2440就是2048+64)的倍数,当然mkyaffs2image工具已经考虑了这个问题,其生成的yaffs2镜像大小就是2112的倍数,使用nand write.yaffs指令之后,系统启动一切正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值