从上面信息可以看出,从2410配置项移植过来的 kernel 还需要进行修改才能正常,下面进行配置相关项
6)修改内核参数
由于我们板子使用的是12MHZ晶振,则修改arch/arm/mach-s3c2440/mach-smdk2440.c中参数
180 s3c24xx_init_clocks(16934400);
修改为
180 s3c24xx_init_clocks(12000000);
7)修改MTD分区,我们设置分区如下:
kernel : 0Mbit ~ 2Mbit
jffs2 : 2Mbit ~ 10Mbit
yaffs2 : 10Mbit~ 64Mbit
修改代码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 = SZ_2M,
.size = SZ_8M,
},
[2] = {
.name = "yaffs",
.offset = SZ_2M+SZ_8M,
.size = SZ_64M-SZ_2M-SZ_8M,
}
};
然后保存,再使用make zImage生成的zImage文件使用mkimage制作uImage文件烧录到SDRAM会出现分区信息如下
creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00200000 : "kernel"
0x00200000-0x00a00000 : "jffs2"
0x00a00000-0x04000000 : "yaffs2" |
8)移植YAFFS文件系统
A.解压yaffs文件系统后里面有两个目录yaffs和yaffs2,我们使用最新的yaffs2代码
B.修改内核代码fs/Kconfig文件,增加下面代码
# patched by YAFFS
source "fs/yaffs2/Kconfig"
C.修改内核代码fs/Makefile文件,增加下面代码
# patched by YAFFS
obj-$(CONFIG_YAFFS_FS)
D.在内核fs/下创建yaffs2目录,然后拷贝yaffs2目录下的源文件至该目录下,包括以下文件
Makefile.kernel 修改为Makefile
Kconfig
*.c,*.h(不包括子目录下的文件)
9)配置编译内核
使用make menuconfig后,进入如下目录选择YAFFS2 file system support目录
File system --->
Miscellaneous filesystem --->
<*> YAFFS2 file system support
最后make zImage再制作uImage文件烧录入nand flash,启动kernel就基本可以使用了,到这里我们移植的kernel基本可以使用了,但里面还没有根文件系统,所以会出现panic,下一节我们介绍如何移植busybox等
阅读(1891) | 评论(0) | 转发(0) |