您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > linux26221 的在s3c2410板子上的移植
linux2.6.22.1的在s3c2410板子上的移植2007年11月05日星期一下午08:12linux2.6.22.1的在s3c2410板子上的移植----------------------------------------------bootloader编译环境:vivi版本:0.1.4交叉编译器(CROSS-COMPILE)版本:2.95.3(下载地址略:网上很多搜下。)操作系统:redhatserver5======================================linux内核编译环境:内核版本:linux2.6.22.2交叉编译器:自己做的适合Linux2.6.22.2版本的交叉编译器操作系统:redhatserver5======================================文件系统编译环境:busybox1.5.1,或1.4.2交叉编译器(CROSS-COMPILE)版本:同上操作系统:redhatserver5----------------------------------------------硬件:自己做的2410开发板内存:64MBSDRAM(2×16M×16位);CPU:S3C2410ARM处理器,NorFlash:2MB的NorFlash,用于固化测试程序(用来下载bootloader,内核,或文件系统);NANDflash:64MB的NandFlash,用于存储Bootloader、Linux内核及文件系统、应用程序和数据;++++++++++++++++++++++++++++++++++++++++++++++==================================================================================================一:编译环境搭建==================================================================================================一:搭建交叉编译环境说明:由于编译交叉编译环境比较繁琐,建议大家用已经编译好的交叉编译环境。下面以3.3.2的交叉编译环境的搭建为例,其他的两个的编译器环境搭建一样。1.解压文件命令:tarjxvfcorss-2.95.3.tar.bz22.把解压的文件夹中的“2.95.3”文件夹拷贝到/usr/local/arm目录下(如果没有arm目录就新建arm目录,但是一定要是拷贝到这个目录,不然不能运行)。3.在命令窗口输入exportPATH=/usr/local/arm/2.95.3/bin:$PATH或者:#vi/etc/profile添加pathmunage/usr/local/arm/2.95.3/bin#source/etc/profile4.如果输入arm-然后按下tab键能自动补全命令arm-linux-说明搭建成功。===================================================================================================二:bootloader编译===================================================================================================二:bootloader的修改主要修改分区信息,如果要能下载yaffs文件系统还得另外打补丁,最近我会写编这样的文章。具体修改:1.解压vivi:[root@localhostvivi]#lsarchCVSdriversinitMakefileRules.maketestvivivivi.mapCOPYINGDocumentationincludelibMakefile.newSDKscrīptsutilvivi-elf2.[root@localhostvivi]#vim./arch/s3c2410/smdk.c修改NANDflash分区如下:----------------------------------------------------------------------mtd_partition_tdefault_mtd_partitions[]={{name:bootloader,offset:0,size:0x00020000,flag:0},{name:param,offset:0x00020000,size:0x000E0000,flag:0},{name:kernel,offset:0x00100000,size:0x00300000,flag:0},{name:root,offset:0x00400000,size:0x01400000,flag:MF_BONFS},{name:user,offset:0x01800000,size:0x02C00000,flag:MF_BONFS}};-------------------------------------------------------------------------3.修改Makefile[root@localhostvivi]#vimMakefile修改ARCHLINUX_INCLUDE_DIRCROSS_COMPILE如下:------------------------------------------------------------------------ARCH:=armLINUX_INCLUDE_DIR=/usr/local/arm/2.95.3/include/CROSS_COMPILE=/usr/local/arm/2.95.3/bin/arm-linux-3.编译[root@localhostvivi]#make------------------------------------------------------------------------会在vivi目录生成你要的vivi程序(bootloader)------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^说明:我的nandfalsh的一块为16k,所以上面的分区:**************************************分区信息**************************************bootloader:128kparam:896kkernel:3Mroot:20Muser:40M**************************************bon操作**************************************bonpart01M4M:m24M:m解释一下上面的命令:第1个分区从0开始;第2个分区从0x30000(即192K)开始;第3个分区从0x200000(即2M)开始;第4个分区从0x400000(即4M)开始.***********************************bonpartinfo***********************************bonpartinfoBONinfo.(4partitions)No:offsetsizeflagsbad---------------------------------------------0:0x000000000x001000000000000001M1:0x001000000x003000000000000003M2:0x004000000x0140000000000001020M3:0x018000000x027fc00000000001039M+1008k***********************************partshow***********************************mtdpartinfo.(5partitions)nameoffsetsizeflag------------------------------------------------bootloader:0x000000000x000200000128kparam:0x000200000x000e00000896kkernel:0x001000000x0030000003Mroot:0x004000000x01400000420Muser:0x018000000x02c00000444M^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^===================================================================================================三:内核编译===================================================================================================三:内核编译注意:用的编译器是4.2.0的交叉编译器1.修改Makefile[root@localhostporting]#cdlinux-2.6.22[root@localhostlinux-2.6.22]#vimMakefile修改ARCH和CROSS_COMPILE--------------------------------------------------------------ARCH?=armCROSS_COMPILE?=/hoem/crosstoll/crosstool-gcc410-k26222/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-2.修改common-smdk.c文件[root@localhostlinux-2.6.22]#vimarch/arm/plat-s3c24xx/common-smdk.c------------------------------------------------------------------------------staticstructmtd_partitionsmdk_default_nand_part[]={[0]={.name=Boot,.size=SZ_128K,.offset=0,},[1]={.name=param,.offset=MTDPART_OFS_APPEND,.size=SZ_1M-SZ_128K,},[2]={.name=kernel,.offset=SZ_1M,.size=SZ_1M*3,},[3]={.name=root,.offset=MTDPART_OFS_APPEND,.size=SZ_2M*10,},/*,[5]={.name=S3C2410flashpartition5,.of
本文标题:linux26221 的在s3c2410板子上的移植
链接地址:https://www.777doc.com/doc-438322 .html