首页 / 操作系统 / 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