生成2440的uImage 可以直接 用采用 韦东山给制作好的 补丁和配置。然后生成uImage即可。
即:
1.解压linux-2.6.22.6,然后打入补丁 linux-2.6.22.6_jz2440.patch
2. 然后采用韦东山制作好的配置文件 config_ok作为 .config
3. 编译即可。
具体如下:
- tar xjf linux-2.6.22.6.tar.bz2
- cd linux-2.6.22.6
- patch -p1 < ../linux-2.6.22.6_jz2440.patch
- mv ../4.3寸LCD_mach-smdk2440.c arch/arm/mach-s3c2440/mach-smdk2440.c //(用4.3寸LCD的源码覆盖原来的3.5寸源码)
- cp config_ok .config
- make uImage
接下来,我们讨论不使用 韦东山补丁,而一步步修改 原linux-2.6.22.6内核的方法。
1. 修改内核时钟为jz2440的12000000mhz时钟
修改 \arch\arm\mach-s3c2440 下的 mach-smdk2440.c 180行 “ s3c24xx_init_clocks(16934400);” 为“ s3c24xx_init_clocks(12000000); ”
2. 修改MTD分区
修改 arch\arm\plat-s3c24xx 的common-smdk.c 中的 smdk_default_nand_part结构体为
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "kernel",
.size = SZ_2M,
.offset = 0,
},
[1] = {
.name = "jffs2",
.offset = MTDPART_OFS_APPEND,
.size = SZ_8M,
},
[2] = {
.name = "YAFFS",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
3.移植 yaffs文件系统
- 1.下载yaffs源码 即韦东山提供的system/yaffs_source.tar.gz
- 2. 解压,tar zxvf yaffs_source.tar.gz
- 3.并进入yaffs根目录下,运行脚本patch-ker.sh 拷贝文件到linux源文件
- ./patch-ker.sh c /home/alex2440/sambashare2440/systems/linux-2.6.22.6
- 4.进入内核配置界面,选上 YAFFS的支持
- make menuconfig
- File systems---------->
- Miscellaneous filesystems--------->
- <*> YAFFS2 file system support
- 5. 编译内核 make uImage