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 Device(MTD)support ---> 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文件中kernel(0,###)函数,其中###必须与1141对应才能引导内核)。
- Android操作系统内核移植
- S3C6410 移植Android 内核
- S3C6410 移植Android 内核
- Android内核移植
- S3C6410 移植Android 内核
- Android内核移植
- S3C6410 移植Android 内核
- S3C6410 移植Android 内核
- S3C6410 移植Android 内核
- 内核移植和Android文件系统
- ANDROID内核真机移植
- Google Android操作系统内核编译
- 操作系统移植
- Android内核移植到2440A
- 基于android内核的Busybox移植过程
- Android下Linux内核网卡驱动移植
- Android ROM移植相关/内核学习
- android移植(一)-s3c2416内核的移植
- 好听的歌曲~~~推荐
- 推荐:做人的基本原则 - 温家宝
- [Perl]正则表达式基础。
- 嵌入式linux启动信息完全注释
- 双启动U盘制作
- Android操作系统内核移植
- Kernel Preempt
- Java native2ascii 简单转码
- .net 下用API的参考站点
- Android文字跑马灯控件(文本自动滚动控件)
- RVDS4.0导入ADS工程
- CAP & MAP & VLR & HLR & GMSC & DP & gsmSSF简介
- Linux Kernel API (2.6)
- 动态的获取文本框输入的字符