s3c2440的linux内核移植简程

本文提供了一套详细的步骤指南,教你如何将S3C2440平台移植到Linux内核,包括打补丁、修改配置文件、编译内核等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平台: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值