Android操作系统内核移植

来源:互联网 发布:hadoop2.6.5 ubuntu 编辑:程序博客网 时间:2024/05/01 22:55

Android操作系统内核移植

第一步:   从“http://code.google.com/p/android/downloads/list?can=1&q=”下载“linux-2.6.25-android-1.0_r1.tar.gz”压缩文件;

 

【图5-3-1】            

第二步:   linux-2.6.25-android-1.0_r1.tar.gz压缩文件复制到Linux工作目录;

 

第三步:   Linux下利用“tar xzvf linux-2.6.25-android-1.0_r1.tar.gz”命令解压“linux-2.6.25-android-1.0_r1.tar.gz”压缩文件。

 

第四步:   进入解压后的kernel.git目录下,利用vi编辑工具修改kernel.git目录下的顶层Makefile文件。

 

第五步:   修改kernel.git目录下的顶层Makefile文件,设置编译linux操作系统的CPU体系架构变量ARCH 和所使用的交叉编译工具链变量CROSS_COMPILE(注:使用arm-linux交叉编译工具链4.2.1版本。)

改为

ARCH  ?= arm

CROSS_COMPILE ?= /opt/arm-linux-4.2.1/bin/arm-linux-

 

  

 

第六步:   kernel.git目录下的arch/arm/configs/mainstone_defconfig文件复制为xsbase270_defconfig文件。

 

第七步:   kernel.git/arch/arm/mach-pxa目录下增加一个xsbase270.c文件(实际上从该目录下的mainstone.c复制而来.也可以直接复制实验代码中的文件),然后根据实际平台进行修改。

 

第八步:   修改kernel.git/arch/arm/mach-pxa目录下的Makefile文件,增加编译xsbase270.c的编译选项,即:obj-$(CONFIG_MACH_XSBASE270) += xsbase270.o

 

第九步:   修改kernel.git/arch/arm/mach-pxa目录下的Kconfig文件,增加在裁剪内核时支持对EELiod/Liod平台的选择

  

【图5-3-2】            

 

第十步:   kernel.git/drivers/mtd/maps文件夹中增加一个xsbase270-flash.c文件(注:xsbase270-flash.c从该目录下的mainstone-flash.c修改而来, 也可以直接复制实验代码中的文件)。

 

第十一步:          修改kernel.git/drivers/mtd/maps目录下的Makefile文件,增加编译xsbase270-flash.c的编译选项,

即:obj-$ (CONGIG_MTD_XSBASE270 ) +=  xsbase270-flash.o

 


第十二步:          修改kernel.git/drivers/mtd/maps目录下的Kconfig文件,增加在裁剪内核时支持对EELiod/Liod平台flash驱动的选择

【图5-3-3】            

第十三步:          kernel.git/arch/arm/mach-pxa/include/mach目录下增加一个xsbase270.h的头文件。

 

第十四步:          修改kernel.git/arch/arm/mach-pxa/include/mach目录中irqs.h文件(也可以直接复制实验代码中的文件),在文件最后增加EELiod/Liod平台相关中断定义,内容如下。

【图5-3-4】            

第十五步:          kernel.git目录下执行make  xsbase270_defconfig

 

第十六步:          kernel.git目录下执行make menuconfig命令,进入内核配置主菜单。

 


第十七步:          在内核配置主菜单中选择System Type---> Intel PXA2xx Implementations --->  Select target board 选择 (X) Emdoor EELiod/Liod Development Platform,该选项对应于第九步修改的内容。

【图5-3-5】            

第十八步:          在内核配置主菜单中选择Device Drivers---> Memory Technology DeviceMTDsupport ---> Mapping drivers for chip access ---> 选择 (*) CFI Flash device mapped on Emdoor EELiod board,该选项对应于第12步修改的内容。

【图5-3-6】            


第十九步:          在内核配置主菜单中选择Boot options--->root=/dev/nfs ip=bootp console=tyyS0,115200 mem=64)改为root=/dev/mtdblock2 rootfstype=jffs2 console=tyyS0, 115200 mem=64M

【图5-3-7】             

第二十步:          配置完成后,在提示是否保存内核配置的提示对话框中选择<Yes>

【图5-3-8】            

第二十一步:  配置完成后,在kernel.git目录下运行make zIamge编译内核,编译后的内核文件保存在kernel.git/arch/arm/boot/目录下。

 

第二十二步:  将编译好的内核文件zImage下载到目标平台,(必须同时要下载Linux文件系统),重新启动开发平台,查看内核启动情况(注:Bootloader源码中的command.c文件中kernel0###)函数,其中###必须与1141对应才能引导内核)。

 

原创粉丝点击