实验6 ——Linux 内核移植实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验 6 Linux-2.6.28移植实验
【实验目的】
熟悉Linux-2.6.28移植过程。
【实验步骤】
第一步:从/pub/linux/kernel/v2.6下载linux-2.6.28.tar.bz2压缩文件(或光盘中提供);
【图5-3-1】
第二步:将linux-2.6.28.tar.bz2压缩文件复制到Linux工作目录;
第三步:在Linux下利用tar jxvf linux-2.6.28.tar.bz2命令解压linux-2.6.28.tar.bz2压缩文件。
第四步:进入解压后的linux-2.6.28目录下,利用vi编辑工具修改linux-2.6.28目录下的顶层Makefile文件。
第五步:修改linux-2.6.28目录下的顶层Makefile文件,设置编译linux操作系统的CPU体系架构变量ARCH 和所使用的交叉编译工具链变量CROSS_COMPILE(注:实验使用arm-linux交叉编译工具链 4.2.1版本,可从/pub/snapgear/tools/arm-linux/下载arm-linux-tools-20070808.tar.gz压缩文件,解压到/OPT目录下)。
改为
ARCH ?= arm
CROSS_COMPILE ?=/opt/usr/local/bin/arm-linux-
【图5-3-2】
第六步:将linux-2.6.28目录下的arch/arm/configs/mainstone_defconfig文件复制为xsbase270_defconfig文件。
第七步:在linux-2.6.28/arch/arm/mach-pxa目录下增加一个xsbase270.c文件(实际上从该目录下的mainstone.c复制而来.也可以直接复制实验代码中的文件),然后根据实际平台进行修改。
第八步:修改linux-2.6.28\arch\arm\mach-pxa目录下的Makefile文件,增加编译xsbase270.c 的编译选项,即:obj-$(CONFIG_MACH_XSBASE270) += xsbase270.o。
第九步:修改linux-2.6.28\arch\arm\mach-pxa目录下的Kconfig文件,增加在裁剪内核时支持对EELiod/Liod平台的选择
【图5-3-3】
第十步:linux-2.6.28/drivers/mtd/maps文件夹中增加一个xsbase270-flash.c文件(注:xsbase270-flash.c从该目录下的mainstone-flash.c修改而来, 也可以直接复制实验代码中的文件)。
第十一步:修改linux-2.6.28\drivers\mtd\maps目录下的Makefile文件,增加编译xsbase270-flash.c的编译选项,
即:obj-$ (CONGIG_MTD_XSBASE270 ) += xsbase270-flash.o。
第十二步:修改linux-2.6.28\drivers\mtd\maps目录下的Kconfig文件,增加在裁剪内核时支持对EELiod/Liod平台flash驱动的选择
【图5-3-4】
第十三步:在linux-2.6.28\arch\arm\mach-pxa\include\mach目录下增加一个xsbase270.h的头文件。
第十四步:修改linux-2.6.28\arch\arm\mach-pxa\include\mach目录中irqs.h文件(也可以直接复制实验代码中的文件),在文件最后增加EELiod/Liod平台相关中断定义,内容如下。
【图5-3-5】
第十五步:在linux-2.6.28目录下执行make xsbase270_defconfig。
第十六步:在linux-2.6.28目录下执行make menuconfig命令,进入内核配置主菜单。
第十七步:在内核配置主菜单中选择System Type---> Intel PXA2xx Implementations ---> Select target board 选择(X) Emdoor EELiod/Liod Development Platform,该选项对应于第九步修改的内容。
【图5-3-6】
第十八步:在内核配置主菜单中选择Device Drivers---> Memory Technology Device (MTD)support ---> Mapping drivers for chip access ---> 选择(*) CFI Flash device mapped on Emdoor EELiod board,该选项对应于第12步修改的内容。
【图5-3-7】
第十九步:在内核配置主菜单中选择Boot options--->(root=/dev/nfs ip=bootp console=tyyS0,115200 mem=64)改为root=/dev/mtdblock2 rootfstype=jffs2 console=tyyS0, 115200 mem=64M。
【图5-3-8】
第二十步:配置完成后,在提示是否保存内核配置的提示对话框中选择
【图5-3-9】
第二十一步:配置完成后,在Linux-2.6.28目录下运行make zIamge编译内核,编译后的内核文件保存在Linux-2.6.28/arch/arm/boot/目录下。
第二十二步:将编译好的内核文件zImage下载到目标平台,(必须同时要下载Linux文件系统),重新启动开发平台,查看内核启动情况(注:Bootloader源码中的command.c文件中kernel(0,###)函数,其中###必须与1141对应才能引导内核)。