QT6410移植Linux-2.6.39 笔记(一)

2014-11-24 13:53:49 · 作者: · 浏览: 6

2、Cross-compiling environment:arm-2009q3.tar.bz2


3、Development board:QT6410


4、nanflash:K9F2G08(256M)


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.39
linux-2.6.36.2 linux-2.6.39.tar.bz2
linux-2.6.36.2.tar.gz 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 可以在QT6410 上运行。首先,使得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)


修改完成后退出保存


二、创建目标平台



从smdk6410到qt6410


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


root@bootloader:/home/eilian/development/Linux/linux-2.6.39/arch/arm/mach-s3c64xx#cp mach-smdk6410.c mach-qt6410.c


将mach-mach-qt6410.c文件中的所有smdk6410改成qt6410


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



修改mach-s3c64xx目录下的Makefile和Kconfig 修改如下:


Kconfig:添加如下红色代码


config MACH_SMDK6410
bool "SMDK6410"
select CPU_S3C6410
select SAMSUNG_DEV_ADC
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_I2C1
select SAMSUNG_DEV_IDE
select S3C_DEV_FB
select S3C_DEV_RTC
select SAMSUNG_DEV_TS
select S3C_DEV_USB_HOST
select S3C_DEV_USB_HSOTG
select S3C_DEV_WDT
select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_PWM
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select S3C64XX_SETUP_SDHCI
select S3C64XX_SETUP_I2C1
select S3C64XX_SETUP_IDE
select S3C64XX_SETUP_FB_24BPP
select S3C64XX_SETUP_KEYPAD
help
Machine support for the Samsung SMDK6410

config MACH_QT6410
bool "QT6410"
select CPU_S3C6410
select SAMSUNG_DEV_ADC
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_I2C1
select SAMSUNG_DEV_IDE
select S3C_DEV_FB
select S3C_DEV_RTC
select SAMSUNG_DEV_TS
select S3C_DEV_USB_HOST
select S3C_DEV_USB_HSOTG
select S3C_DEV_WDT
select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_PWM
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select S3C64XX_SETUP_SDHCI
select S3C64XX_SETUP_I2C1
select S3C64XX_SETUP_IDE
select S3C64XX_SETUP_FB_24BPP
select S3C64XX_SETUP_KEYPAD
help
Machine support for the Samsung QT6410

Makefile:添加如下红色代码


obj-$(CONFIG_MACH_ANW6410) += mach-anw6410.o
obj-$(CONFIG_MACH_SMDK6400) += mach-smdk6400.o
obj-$(CONFIG_MACH_SMDK6410) += mach-smdk6410.o
obj-$(CONFIG_MACH_QT6410) += mach-qt6410.o
obj-$(CONFIG_MACH_REAL6410) += mach-real6410.o
obj-$(CONFIG_