十.linux移植
时间:2009-03-20 来源:chenkuizhong
一.修改顶层Makefile
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
二.把U-BOOT生成的mkimage拷贝到PATH中,这样编译linux的时候,会直接调用mkimage
然后编译:
Make s3c2410_defconfig
Make menuconfig
Make uImage
下载到板上运行:
Tftp 0x32000000 uImage
Bootm 0x32000000
可以看到会打印一大堆乱码
三.在配置菜单中选项择以下两个开发板:
System Type -> S3C2410 Machines -> SMDK2410/A9M2410
System Type -> S3C2440 Machines -> SMDK2440
File systems --->
Pseudo Filesystems --->
<*> Virtual memory file system support (former shm fs)
四.修改arch/arm/mach-s3c2440/mach-smdk2440.c
S3c24xx_init_clocks(12000000);
五.编译,下载运行,看是否能启动,可以看到内核启动信息,最后出现panic信息
六.修改MTD分区
1.修改arch/arm/plat-s3c24xx/command-smdk.c:
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "kernel",
.size = SZ_2M,
.offset = 0,
},
[1] = {
.name = "jffs",
.offset = MTDPART_OFS_APPEND,
.size = SZ_8M,
},
[2] = {
.name = "yaffs",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
七.移植YAFFS文件系统
1.解压yaffs的源代码包
2.进入yaffs2文件夹
3../patch-ker.sh c /work/system/linux-2.6.22.6
4.make menuconfig
File systems-à Miscellaneous filesystems-à <*>YAFFS2 file system support
5.make uImage
6.tftp 0x32000000 uImage
Nand erase 0 0x200000
Nand write.jffs2 0x32000000 0 $(filesize)
ckz24x0 > set bootcmd 'nboot 0x32000000 0 0; bootm 0x32000000'
ckz24x0 > saveenv