Welcome 微信登录

首页 / 操作系统 / Linux / Linux 2.6.31.4在TQ2440上的移植

平台: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                    361s3c2440                 ARCH_S3C2440            S3C2440                 168ks8695p                 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