mini2440移植之目标环境搭建

一.建立环境

1.目标环境:

从官网下载linux2.6.32的源代码

http://www.kernel.org/pub/linux/kernel/v2.6/

linux-2.6.32.2(SMDK2440->mini2440)

2.指定交叉编译变量

修改总目录下的Makefile,设置缺省目标平台及缺省编译器

export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
改为
export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-

接下来,要测试一下linux 的编译是否能正常通过。
执行:
#make s3c2410_defconfig ;使用缺省内核配置文件,s3c2410_defconfig 是SMDK2440 的,make help可以看到所有支持平台的内核配置文件
缺省配置文件
#make ;

3.克隆建立目标平台

1)机器码

内核在启动的时候,是通过bootloader传入的机器码(MACH_TYPE)确定应启动哪种目标平台,从linux2.6.31,官方内核已经支持mini2440,

bootloader要启动内核,必须MACH_TYPE保持一致,否则


linux2.6.32内核中已经有机器码

[root@localhost linux-2.6.32.2]# vim arch/arm/tools/mach-types 


目前U-boot 从2009.06 版本也已经加入了mini2440 的机器码定义
提示:在U-boot/include/asm-arm/mach-types.h 中可以看到mini2440 的机器码定义,

2)删除原有mini2440,

删除linux-2.6.32.2/arch/arm/mach-s3c2440 目录下mach-mini2440.o,mach-mini2440.c

[root@localhost mach-s3c2440]# rm -rf mach-mini2440.c mach-mini2440.o



3)修改时钟源频率

SMDK2440外接晶振是16.9344MHz,mini2440是12MHz


4)从SMDK2440到MINI2440

将mach-mini2440中smdk2440改为mini2440,使用批处理命令

:%s/smdk2440/mini2440/g


注释掉smdk_machine_init()


5)编译测试

#make mini2440_defconfig //建立mini2440的内核配置文件

#make zImage





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值