Linux 2.6.31.4在TQ2440上的移植

拿什么来拯救自己 2011-06-24

平台:Fedora 10 内核 linux-2.6.27.5 在终端输入uname –a 可查看内核版本信息

交叉编译工具链:arm-linux-gcc 4.3.2 在终端输入arm-linux-gcc –v可查看版本信息

这里为了方便,直接修改顶层Makefile文件,指定平台和交叉编译器:

#vim Makefile

#:set nu    显示行号

第183和184行改为如下:这里按键盘上的ins键可切换插入和替换模式

ARCH            ?= arm                        ß指定系统硬件架构

CROSS_COMPILE   ?= arm-linux-         ß指定交叉编译器

以下所有修改完成后都要保存,如下

#wq

修改arch/arm/mach-s3c2440/mach-smdk2440.c 这里是机器的时钟

static void __init smdk2440_map_io(void)

{

        s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));

        s3c24xx_init_clocks(12000000);       ß改为12000000

        s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));

}

修改arch/arm/tools/mach-types 这里是机器码 一定要和开发板bootloader提供的

相同,否则会提示错误,由于我的是168,修改如下:

#:/s3c2440                      搜索关键字

toto                    ARCH_TOTO               TOTO                    361

s3c2440                 ARCH_S3C2440            S3C2440                 168

ks8695p                 ARCH_KS8695P            KS8695P                 363

好了,以上确保内核最基本的引导,下面进入图形化配置界面:

在linux-2.6.31.4目录下:

#make menuconfig

选择 Load an Alternate Configuration File,输入2440的默认配置文件:

arch/arm/configs/s3c2410_defconfig

然后在保存为默认的 .config

 

这里进行配置:

在System Type里面

S3C24xx Machines里面选择这几项,其余取消

System Type  --->

           S3C2410 Machines  --->

               [*] SMDK2410/A9M2410

   S3C2440 Machines  --->

               [*] SMDK2440

               [*] SMDK2440 with S3C2440 CPU module

在Kernel Features里面选择:

[*] Use the ARM EABI to compile the kernel                      

[*]   Allow old ABI binaries to run with this kernel (EXPERIMENTA

在Boot Options里面修改为:这里的mtdblock2是启动时要挂载的分区,确保根文件系统

在这一分区,后面会提到。console 为控制台,这里是串口

noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200

最后保存:

Do you wish to save your new kernel configuration?  

           <ESC><ESC> to continue.                            

       

           < Yes >      <  No  >

#make zImage

相关推荐