全部博文(245)
分类: LINUX
2009-07-03 20:03:28
软件平台:redhat9.0 +arm-linux-gcc
硬件平台:s
致谢:
这里参考了很多文档,甚至这份文档中的一部分中从别的地方粘贴过来的,当做了很多的修改,因为不同版本的内核移植过程有很多地方是相似的,只可能有一些小的修改。因为毕业论文的原因,其中有一个月的时间没怎么弄这东西,很多地方变的生疏了,最近看见出了
1.修改顶层Makefile文件
直接将Makefile文件里面的
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
改为:
ARCH ?= arm
CROSS_COMPILE ?=/usr/local/arm/
然后用S
#make s
//要先按上面方法修改完成Makefile文件才能执行这一步
#make menuconfig //只需修改下面几项
载入默认2410的默认配置, 当需要对配置在简化一下,首先要简化io调度器,默认是4个都开,可以选择开启一个,我选择的是默认anticipatory i/o scheduler,取消对文件系统ext2 ext3 fat32 iso 等的支持, 取消对不需要设备的支持,这个看自己的需要了,这里我不需要sata、usb等,总之是很多的设备都不需要,逐项去掉就可以了。
2.修改MTD分区
MTD分区信息在arch/arm/plat-s
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "vivi",
.size = 0x00030000,
.offset = 0X00000000,
},
[1] = {
.name = "kernel",
.offset = 0x00050000,
.size = 0x00200000,
},
[2] = {
.name = "root",
.offset =0x00250000,
.size =0x03dac000,
}
};
有的文章介绍说这个文件还要修改smdk_nand_info如下:
static struct s
.tacls = 0, //default is 20
.twrph0 = 30, //default is 60
.twrph1 = 0, //defualt is 20 changed by yangdk
.nr_sets = ARRAY_SIZE(smdk_nand_sets),
.sets = smdk_nand_sets,
};
关于上边参数的设置,我的板子应该是30 70 30,这个参数估计都差不多。
3.内核增加yaffs2支持
到网上下载ysffs2源代码,解压之后进行如下修改:
./patch-ker.sh c /2440/linux-2.6.29
2.6的核中,加yaffs2的补丁是很容易的,只要上边的命令,就可以了,它会自动的更新响应的kconfig 和makefile文件,然后就支持make xconfig ,选中yaffs2选项就可以了。
4.#make zImage 生成zImage