欢迎来到天天文库
浏览记录
ID:37913219
大小:32.00 KB
页数:4页
时间:2019-06-02
《Android 内核源代码交叉编译》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android内核源代码交叉编译本文是在Ubuntu10.10系统上进行实践的。1因为我们需要Android的模拟器,所以需要安装Android的SDK,并创建AVD, 可以一次命名为AVD15,AVD22,AVD23,... AVD15对应1.5,AVD22对应2.2,AVD23对应2.3,... 获取.config文件:在启动模拟器AVD15:$emulator-avdAVD15$pull/proc/config.gz.//将/proc/config.gz这个文件复制到本地的目录,对应Linux上运行该命令的当前工作的目录,下同然后,将其解压并保存
2、为.config,留待后面使用 2arm编译器去网站下载arm工具链注意选择较早的版本,很有可能是google那班人在编译的时候选择的是当时的最新的版本,但是后来就一直用那个版本http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite要之前的版本:点击Allversions即可看到所有的发行版本,2008q3-41这个版本是经过很多人测试可以用的。解压后,设置环境变量,将/usr/local/arm-2008q3/bin添加到$PATH中其中/usr/loc
3、al/为保存解压后的arm-tools-chain的根目录 3下载Android的Linux内核记住是Android的Linux内核(gitclonegit://android.git.kernel.org/kernel/common.git),而不是通用的Linuxe内核源码(gitclonegit://android.git.kernel.org/kernel/linux-2.6.git)$gitclonegit://android.git.kernel.org/kernel/common.git kernel-common//其中kernel-c
4、ommon为存放从代码库下来的代码的目录,下同这一步是个漫长的等待...$cd~/kernel-common$gitbranch$android-2.6.36//这个随着版本的变化而变化 4下载完Android的Linux内核源码,你会发现在/arch/arm/configs/下没有goldfish_defconfig这个文件,恩我们需要check_outgold_fish版本(模拟器的硬件配置就是Gold_Fish的)$cd~/kernel_common$gitbranch-a$ *android-2.6.36 remotes/origin/HEAD
5、->origin/android-2.6.36 remotes/origin/android-2.6.35 remotes/origin/android-2.6.36 remotes/origin/archive/android-2.6.25 remotes/origin/archive/android-2.6.27 remotes/origin/archive/android-2.6.29 remotes/origin/archive/android-2.6.32 remotes/origin/archive/android-gldfish-2.6.
6、29 remotes/origin/archive/android-goldfish-2.6.27//以上显示是目前看到的,将来的某个时候可以就有点不同了,甚至老版本的Branch名字也会被修改//故要特别注意$gitcheckoutremotes/origin/archive/android-gldfish-2.6.29//这个过程就快多了,等待下载完数据//git这个东西确实不怎么好用,还是想念Windows上TortoiseSVN当下载完,你就能在kernel-common/arch/arm/configs/下看到goldfish_defconf
7、ig这个文件5编译1)将1中的.config文件拷贝到~/kernel_common目录下2)修改~/kernel_common目录下的Makefile文件(修改两处)--修改之掐最好备份下这个文件,因为如果你修改了这个文件用git获取新版本的时候会提示Makefile文件被修改ARCH ?=arm//制定CPU的架构为ARMCROSS_COMPILE ?=arm-none-linux-gnueabi-//arm编译工具前缀3)$makegoldfish_defconfig$make-j2//现在的机器都是双核的,这样代码编译就快多了编译
8、最后两行信息: OBJCOPYarch/arm/boot/zImage Kernel:arch
此文档下载收益归作者所有