资源描述:
《linux-26242在fl2440开发板上的内核移植》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Linux-2.6.24.2在FL2440开发板上的内核移植(经本人验证已经成功)自己在移植中遇到很多问题,写这篇文章的目的是为能为那些正在学习Linux内核移植的朋友提供参考。感谢互联网上无数作者的的无私奉献。宿主机:RedhatLinux9.0目标机:s3c2440交叉编译器:arm-linux-gcc-3.4.1要移植的内核版本:linux-2.6.24.2文件系统类型:yaffs2(从网上下载cvs-root.tar.gz)1.解压linux-2.6.24.2,和arm-linux-gcc-3.4.1
2、然后通过超级终端进入linux-2.6.24.2目录下进行这样一步操作:#makedistclean2.进入linux-2.6.24.2根目录,修改makefile文件vimakefile第193行改为:ARCH=armCROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-(告诉交叉编译器的路径CROSS_COMPILE根据你自己arm-linux-gcc-3.4.1安装的路径设置.)3.修改arch/arm/plat-s3c24xx/common-smdk.c文件
3、,修改NAND_FLASH分区信息和硬件信息.根据FL2440的板子,我设置如下:找到staticstructmtd_partitionsmdk_default_nand_part[]的结构体,将内容修改为: [0]={ .name ="boot", .size =0x00020000, .offset=0 },[1]={ .name ="bootParam", .siz
4、e =0x00060000, .offset=0x00020000, }, [2]={ .name ="Kernel", .size =0x00300000, .offset=0x00500000, }, [3]={ .name ="fs_yaffs", .size =0x03c00000, .o
5、ffset=0x00800000, }, [4]={ .name ="eboot", .size =0x00080000, .offset=0x04400000, }, [5]={ .name ="WINCE", .size =0x03b80000, .offset=0x04480000, }注意:一定要和boot
6、loader上的分类方法一样,并且根文件系统分区必须放在第4个目录中(即标号为[3]的那个分区)另外修改smdk_nand_info,如下:staticstructs3c2410_platform_nandsmdk_nand_info={.tacls=0,.twrph0=30,.twrph1=0,.nr_sets=ARRAY_SIZE(smdk_nand_sets),.sets=smdk_nand_sets,};4.修改时钟:arch/arm/mach-s3c2440/mach-smdk2440.c stat
7、icvoid__initsmdk2440_map_io(void){s3c24xx_init_io(smdk2440_iodesc,ARRAY_SIZE(smdk2440_iodesc));s3c24xx_init_clocks(12000000);外部的晶振的频率是12MHzs3c24xx_init_uarts(smdk2440_uartcfgs,ARRAY_SIZE(smdk2440_uartcfgs));}5、修改机器码。进入内核目录,修改机器码跟bootloader的机器码一致(FL2440为193)
8、#cd../linux-2.6.24.2#viarch/arm/tools/mach-types首先删除以下行:s3c2410 ARCH_S3C2410 S3C2410 182然后将以下行:s3c2440 ARCH_S3C2440 S3C2440 362修改为:s3c2440