分类: 嵌入式
2012-07-03 20:48:56
在前一篇文章提到,从源代码树下载下来的最新Android源代码,是不包括内核代码的,也就是Android源代码工程默认不包含Linux Kernel代码,而是使用预先编译好的内核,也就是prebuilt/android-arm/kernel/kernel-qemu文件。那么,如何才能DIY自己的内核呢?
一. 首选,参照前一篇Ubuntu下载Android源代码
二. 下载Linux Kernel for Android源代码。
1.在Android目录下新建一个存放内核的目录kernel, 使用GIT工具下载,执行以下命令:
git clone (下载模拟器内核源码)
其它参考命令:
$ git clone |
同样是经过漫长的等待后,在kernel目录下有一个goldfish目录,内核代码就在这里了。
终端中会打印 1.Cloning into 'goldfish'... 2.remote: Counting objects: 162982, done 3.remote: Counting objects: 2442007, done 4.git clone % (366302/2442007), 119.28 MiB | 1.25 MiReceiving objects: 100% (2442007/2442007), 499.15 MiB | 1.25 MiB/s, done. 5.remote: Total 2442007 (delta 2047652), reused 2442007 (delta 2047652) 6.Resolving deltas: 100% (2048534/2048534), done.
显示100%之后则表示同步完成。此时goldfish下的所有内核版本的源码都已同步完成。 |
2、设定默认使用版本
进入到goldfish目录下,使用如下命令查看所有可用版本名称。
$ git branch -a
master remotes/origin/HEAD -> origin/master remotes/origin/Android-goldfish-2.6.29 remotes/origin/Android-goldfish-3.4 remotes/origin/linux-goldfish-3.0-wip remotes/origin/master |
“*”指代的当前目录下默认的版本。PS:正常下载完后默认是“master”
下面将会介绍如何设定指定可用版本
如果读者想设定“Android-goldfish-2.6.29”为默认,则可以在终端中输入如下命令:
git checkout -b Android-2.6.29 origin/android-goldfish-2.6.29
(此命令正确执行之后才可以看到相应内核版本的源码)
-b后面的Android-2.6.29只是给后面的内核源码版本起了个自己定义的名字,方便自己查看而已,也可以不定义,不定义就会使用默认名称。此时,查看goldfish下的目录即为“android-goldfinsh-2.6.29”版本的模拟器内核源码。
在goldfish目录下使用如下命令进行查看当前内核版本的名称。
git branch
笔者这里显示如下:
1.* Android-2.6.29
2. master
现在进行安卓内核编译:Ubuntu 安卓编译内核代码。