本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。
转载请注明出处:http://blog.csdn.net/muge0913/article/details/7240201
一、解压内核并修改Makefile
1)解压源码
2)指定交叉编译器
进入linux源码主目录
#ls linux-2.6.39用vi打开Makefile,定位到196行,修改如下:
#vi Makefile #Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= arm CROSS_COMPILE ?= arm-linux- # Architecture as present in compile.h UTS_MACHINE := $(ARCH) SRCARCH := $(ARCH)二、创建目标平台
从smdk6410到th6410
#cd arch/arm/mach-s3c64xx #cp mach-smdk6410.c mach-th6410.cmach-qt6410.c文件中的所有smdk6410改成th6410
#vi mach-th6410.c修改mach-s3c64xx目录下的Makefile和Kconfig修改如下:
Kconfig:添加如下代码
Makefile:添加如下代码 obj-$(CONFIG_MACH_ANW6410) += mach-anw6410.o obj-$(CONFIG_MACH_SMDK6400) += mach-smdk6400.o obj-$(CONFIG_MACH_SMDK6410) += mach-smdk6410.o //muge0913 add code here obj-$(CONFIG_MACH_TH6410) +=mach-th6410.o obj-$(CONFIG_MACH_REAL6410) += mach-real6410.o obj-$(CONFIG_MACH_MINI6410) += mach-mini6410.o obj-$(CONFIG_MACH_NCP) += mach-ncp.o obj-$(CONFIG_MACH_HMT) += mach-hmt.o obj-$(CONFIG_MACH_SMARTQ) += mach-smartq.o obj-$(CONFIG_MACH_SMARTQ5) += mach-smartq5.o obj-$(CONFIG_MACH_SMARTQ7) += mach-smartq7.o
三、设置机器码
打开arch/arm/tools/mach-types,修改如下
th6410 MACH_TH6410 TH6410 2520上面的机器码必须和uboot中的设置匹配,如:
进入arch/arm/mach-s3c64xx/mach-th6410.c修改如下:
MACHINE_START(S3C6410, "SMDK6410") , 将其修改为
四、配置、编译测试
#cp arch/arm/configs/s3c6400_defconfig .config #make menuconfig出现下图所示内核配置根菜单
进入System Type配置如下:
最后编译内核并下载到mini6410开发板上即可
由于篇幅开发板启动信息我放在下篇。
本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。
转载请注明出处:http://blog.csdn.net/muge0913/article/details/7240201