移植linux3.10.20到s3c2440开发板

jz2440开发板初始使用的是基于linux2.6.22的code。现在需要把linux3.10.20移植上去。

 

1.因为jz2440默认系统分区kernel分区只分了2M,而基于linux3.10.20的kernel编译之后会大于2M,所以需要先对uboot系统分区进行修改,使得kernel分区为4M。可参考上一篇博客。下面是我的开发板初始环境变量(kernel分区已经修改为4M):

OpenJTAG> print
bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
bootdelay=2
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
netmask=255.255.255.0
mtdids=nand0=nandflash0
ipaddr=192.168.1.117
serverip=192.168.1.102
filesize=306C8
mtdparts=mtdparts=nandflash0:256k@0(bootloader),128k(params),4m(kernel),-(root)
bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
stdin=serial
stdout=serial
stderr=serial
partition=nand0,0
mtddevnum=0
mtddevname=bootloader


Environment size: 509/131068 bytes

2.编译linux3.10.20:

 添加机器码--LINGD2440
在arch/arm/tools/mach-types 下,添加以下一行
lingd@ubuntu14:~/arm/linux-3.14.6$ vim arch/arm/tools/mach-types 
lingd2440 MACH_LINGD2440 LINGD2440 1998

1>.在kernel中查找默认配置文件.可以用find指令查找。

root:linux-3.10.20#find -name "*defconfig*"
arch/arm/configs/s3c2410_defconfig
......

因为s3c2440不存在,所以我们使用和s3c2440最相似的s3c2410作为配置文件。

root:linux-3.10.20#make s3c2410_defconfig

会自动生成".config"文件 

我们先做一个备份:

root:linux-3.10.20#cp .config config_ok

然后就以此配置为基础编译内核。
2>.修改Makefile文件。
到顶层目录vi Makefile
ARCH  ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
修改为:
ARCH  ?= arm
CROSS_COMPILE ?= arm-linux-
1.1将arch/arm/mach-s3c24xx/mach-smdk2440.c中的:s3c24xx_init_clocks(16934400);
修改为:
s3c24xx_init_clocks(12000000);
vi arch/arm/mach-s3c24xx/mach-smdk2440.c
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值