设为首页 加入收藏

TOP

Linux2.6.39在S3C2440上的移植(一)
2014-11-24 13:59:59 来源: 作者: 【 】 浏览:2
Tags:Linux2.6.39 S3C2440 移植

2、编译编译环境:arm-linux-gcc


3、开发板:Micro2440,2M nor flash,256M nand flash。


4、u-boot-version:u-boot-2010.06


5、linux -version:Linux-2.6.39


一、下载并解压内核源码


a)在命令行终端中可以通过下列方式下载,当然用其它下载工具下载


root@bootloader:/home/eilian/development/Linux# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.tar.gz


b)解压源码


root@bootloader:/home/eilian/development/Linux#
root@bootloader:/home/eilian/development/Linux# tar zxvf linux-2.6.39.tar.gz
root@bootloader:/home/eilian/development/Linux# ls
linux-2.6.32.2 linux-2.6.36.2.tar.gz
linux-2.6.39 linux-2.6.39.tar.gz
root@bootloader:/home/eilian/development/Linux# cd linux-2.6.39
root@bootloader:/home/eilian/development/Linux/linux-2.6.39#


c)指定交叉编译器


移植目的让 Linux-2.6.39 可以在mini2440 上运行。首先,使得Linux-2.6.39的缺省目标平台成为ARM 的平台,修改主目录下的Makefile。


用vi打开Makefile,定位到196行,修改如下:


root@bootloader:/home/eilian/development/Linux/linux-2.6.39# 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)


修改完成后退出保存


/********************************************************************************************************************************/


d)创建目标平台


个性移植从SMDK2440到eilian240


root@bootloader:/home/eilian/development/Linux/linux-2.6.39#cd arch/arm/mach-s3c2440


root@bootloader:/home/eilian/development/Linux/linux-2.6.39/arch/arm/mach-s3c2440#cp mach-smd2440.c mach-eilian240.c


将mach-eilian240.c文件中的所有smdk2440改成eilian240


root@bootloader:/home/eilian/development/Linux/linux-2.6.39/arch/arm/mach-s3c2440#vi mach-eilian240.c


操作如下:在vi的命令模式下输入



修改mach-s3c2440目录下的Makefile,打开Makefile定位到38行做如下修改


obj-$(CONFIG_MACH_ANUBIS) += mach-anubis.o
obj-$(CONFIG_MACH_OSIRIS) += mach-osiris.o
obj-$(CONFIG_MACH_RX3715) += mach-rx3715.o
obj-$(CONFIG_ARCH_S3C2440) += mach-smdk2440.o
obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o
obj-$(CONFIG_MACH_AT2440EVB) += mach-at2440evb.o
obj-$(CONFIG_MACH_MINI2440) += mach-mini2440.o
obj-$(CONFIG_MACH_NEO1973_GTA02) += mach-gta02.o
obj-$(CONFIG_MACH_RX1950) += mach-rx1950.o


obj-$(CONFIG_MACH_MINI2440) += mach-eilian240.o #为何这样修改呢 后面慢慢解释


修改mach-s3c2440目录下的Kconfig 添加如下代码


config MACH_MINI2440
bool "MINI2440 development board"
select CPU_S3C2440
select EEPROM_AT24
select NEW_LEDS
select LEDS_CLASS
select LEDS_TRIGGER
select LEDS_TRIGGER_BACKLIGHT
select S3C_DEV_NAND
select S3C_DEV_USB_HOST
help
Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
available via various sources. It can come with a 3.5" or 7" touch LCD.

config MACH_EILIAN240
bool "eilian240 development board"
select CPU_S3C2440
select EEPROM_AT24
select NEW_LEDS
select LEDS_CLASS
select LEDS_TRIGGER
select LEDS_TRIGGER_BACKLIGHT
select S3C_DEV_NAND
select S3C_DEV_USB_HOST
help
Say Y here to select support for the eilian240. Is a 10cm x 10cm board
available via various sources. It can come with a 3.5" or 7" touch LCD.


这样修改之后在选择配置缺省文件的时候直接选择mini2440_defconfig了


除此之外,还有一个地方需要改动,在eilian240_machine_init(void)函数中,把smdk_machine_init()

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HTML5之Worker用法 下一篇Linux2.6.39下DM9K驱动源码分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: