我用的是Davinci6446,在下一届同学用的时候,板子启动时出现BOOTME,一行接一行。开始不确定是不是板子坏掉,想从bootme出现的原因下手,久而无功。师兄建议我重新写bootloader,我想了想别无它法,于是按照说明书,首先在windows下按照所述连接方式,尤其是跳线,用CCS连接到板子,连接arm端,加载gel文件,加载程序nandflash.out,然后烧写ubl_nand.bin,uboot.bin,以及内核uImage。此时系统已经可以启动,说明上要用windows+linux服务器+板子来回复文件系统。我想太麻烦,直接用linux主机进行文件系统的恢复。这时候我想看看,系统启动到底有什么结果,我按原来的连接方式,及J23J24为01,应该是从 启动,结果与以前一样,过了一会儿就出现bootme,说明不是引导的问题。我按照说明,选择00,这时候会显示每一步的执行情况,结果启动说是无法加载devfs error -2,这时从nandflash启动,然后就死机。我重启按照说明,中断自动启动,设置如下setenv bootargs mem=120M console=ttyS0,115200n8 root=/dev/nfs noinitrd rw ip=dhcp nfsroot=192.168.253.210:/opt/nfs video=dm64xxfb:output=pal。(注:首先要保证nfs开通没问题,把文件放在nfs路径下),下面做一番解释,这里mem指定启动所用内存大小,后面是控制终端,接着是232通信波特率以及方式,ip如果是静态制定,则直接指定板子ip,后面是nfs文件路径。restore.sh和rootfs.tgz放在nfs路径里。启动,照样是devfs文件系统无法加载。郁闷!查了很多材料,有的说编译时候选项问题,应重新编译,去掉devfs选项。有一个解释说说,找不到文件系统,所以当然无法加载devfs,我于是把rootfs解压,放在nfs路径里,重启,竟然进入系统了。大喜中。不过按照说明执行restore.sh时无法通过,其内容如下
#!/bin/sh
mkdir -p /mnt/restore
mount -t yaffs /dev/mtdblock0 /mnt/restore
echo "Creating target root filesystem..."
cp -a /mnt/rootfs.tar.gz /mnt/restore/
cd /mnt/restore/
tar zxf rootfs.tar.gz
rm rootfs.tar.gz
echo "Restore complete"
echo "You have created the following directory in nand partition:"
ls
cd ..
umount /mnt/restore
抱着试试看的心态,我重启,自动启动,依然报以前错误。后来我再次用nfs启动,执行ls /dev
里面只有mtdblock,于是我去掉0,执行,依然出错。我查了半天,无果。我想试试看mtdblock里面到底有什么,于是执行 ls /dev/mtdblock,结果输出 /0,我手动执行 mount -t yaffs /dev/mtdblock/0 /mnt/restore 可以了(以yaffs加载mtdblock0到mnt),执行后面程序,重启,一切都好。
阅读(1254) | 评论(1) | 转发(0) |