- 论坛徽章:
- 0
|
友善的mini2440用户往往要碰到这个问题:
将光盘中的uboot1.1.6按用户手册的方法下到nand flash中,
希望从nand flash启动,然后按uboot的menu提示烧写内核到板子上,启动内核。
往往会出错,
重启... 嘿嘿,发现已经烧的u-boot不见了,啥都启不动了~~~
今在
http://www.arm9home.com
论坛上看到很多帖子讨论此事,
综合前辈们的意见,终于使uboot在板子启动内核了。
先是改了uboot1.1.6两个地方:
1.将/include/configs/open24x0.h的56行:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:2m@0(kernel)," \
"8m(jffs2)," \
"-(yaffs)"
改为:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader),2m(kernel)," \
"8m(jffs2)," \
"-(yaffs)"
原因是没分好区,烧内核时烧在uboot的地址上将其覆盖了。
2.将/board/open24x0/Open24x0.c的65行:
else
{
/* arch number of SMDK2440-Board */
gd->bd->bi_arch_number = MACH_TYPE_S3C2440;
}
改为:
else
{
/* arch number of SMDK2440-Board */
gd->bd->bi_arch_number = 782;
}
将机器Id改为782;这是因为友善提供的内核中的机器ID是782,这要与bootload中相同。
改好后重新编译uboot1.1.6
make Open24x0_config
make
编完后通过Supervivi烧进nand flash中。
接下来因为友善给的内核镜像是zImage而uboot支持的格式是uImage
因此要自己编一个uImage的内核。
首先要make menuconfig一下,
关于make menuconfig这里要说一下,因为本人的交叉编译环境是ubuntu7.10
首先得先安装两个包:
apt-get install libncurses
apt-get install libncurses5-dev
就没有问题了。
按用户手册make menuconfig完毕
编译之前还要做几个事情。
将编好的uboot1.1.6的/tools里的mkimage拷到/usr/bin目录下
还要打个补丁,友善给的uboot1.1.6中arch/arm/boot/Makefile屏蔽掉了uImage的编译
补丁下面给出。
拷在顶层,
输入命令:
patch -p1
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104319/showart_2076638.html |
|