Linux 2.6.31.4在TQ2440上的移植

2014-11-24 09:24:37 · 作者: · 浏览: 1

交叉编译工具链: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


to continue.



< Yes > < No >


#make zImage