您的位置:首页 > 运维架构 > Linux

s3c2440的linux内核移植简程

2015-08-27 10:08 519 查看
平台:JZ2440

系统:Ubuntu

编译链:arm-linux-gcc-3.4.5

此文章为s3c2440平台移植linux内核简单教程。

1. 打yaffs2文件系统补丁

(假设内核目录为/work/linux-2.6.22.6,yaffs源码目录为/work/Development)

a 解压压缩包linux2.6.22.6.tar.bz2和压缩包yaffs_source.tar.gz

b. 执行以下命令向内核源码打补丁:

/work/Development/yaffs2/patch-ker.sh  C  /work/linux-2.6.22.6

2.  修改内核目录顶层的Makefile文件内容

原文:

   ARCH ?=  $(SUBARCH)

   CROSS_COMPILE ?=

修改为:

   ARCH ?=  arm

   CROSS_COMPILE ?=  arm-linux-

3. 复制配置文件s3c2410_defconfig到顶层覆盖.config文件

命令:#make  /work/linux-2.6.22.6/s3c2410_defconfig

4. 配置内核的内容参数等等,有关配置内容请查看详细内容

命令: make  /work/linux-2.6.22.6/menuconfig

5. 内核的配置界面中,在Boot options的第三行命令行参数里输入以下内容

noinitrd  root="/dev/mtdblock3"  rootfstype="jffs2"(空格后紧接下一行) 

console="ttySAC0",115200  init="/linuxrc"  mem="64M"

6. 内核配置后选择Save an Alternate Configuration File保存退出

7. 修改文件/work/linux-2.6.22.6/arch/arm/mach-s3c2440/mach-smdk2440.c内容

将函数static void __init smdk2440_map_io(void)中的数值16934400修改为12000000

8. 修改文件/work/linux-2.6.22.6/arch/arm/plat-s3c24xx/common-smdk.c内容

修改后的内容为:

static struct  mtd_partition  smdk_default_nand_part[ ] = {

[0] = {

.name  = "bootloader",

.size     =  0x00040000,

.offset  =  0,

},

[1] = {
.name  = "params",
.size     =  0x00020000,
.offset  =  MTDPART_OFS_APPEND,
},

[2] = {
.name  = "kernel",
.size     =  0x00200000,
.offset  =  MTDPART_OFS_APPEND,
},

[3] = {
.name  = "root",
.size     =  MTDPART_SIZ_FULL,
.offset  =  MTDPART_OFS_APPEND,
}
};

9. 进行内核编译,要用到工具mkimage(将此工具放在Ubuntu的目录/usr/bin)
命令:#make  /work/linux-2.6.22.6/uImage
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: