因为我没有真机的环境 所以需要在模拟器中进行模拟进行,所以要下载支持模拟器的源代码版本,而goldfish这个源代码版本就是专门为模拟器环境而提供的。
The goldfish project contains the kernel sources for the emulated platforms.
一、首先,到
git clone https://android.googlesource.com/kernel/goldfish.git下载Linux Kernel for Android emulator源代码。
1、使用GIT工具下载,执行以下命令:
USER-NAME@MACHINE-NAME:~/$ git clone https://android.googlesource.com/kernel/goldfish.git
同样是经过漫长的等待后,在home目录下有一个goldfish目录,Linux内核代码就在这里了。
2、下载完成后,可以查看下载的内核代码版本:
USER-NAME@MACHINE-NAME:~$ cd goldfish
USER-NAME@MACHINE-NAME:~/goldfish$ ls -a
. .. .git
3、 .git include 内核源代码,现在我们需要适用于模拟器用的内核,因此,我们需要checkout goldfish版本:
USER-NAME@MACHINE-NAME:~/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
选择remotes/origin/android-goldfish-3.4:
USER-NAME@MACHINE-NAME:~/my_android/kernel/goldfish$ git checkout remotes/origin/android-goldfish-3.4
二、编译内核代码。
1、导出交叉编译工具目录到$PATH环境变量中去:
USER-NAME@MACHINE-NAME:~/my_android/kernel/goldfish$
export ARCH=arm
export SUBARCH=arm
export PATH=$PATH:/home/v0idp0int/tools/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin
export CROSS_COMPILE=arm-linux-androideabi-
2、现在是要得到android的内核编译参数的配置文件的时候了,该文件需要从已经安装好的android的模拟器
中得到才行。所以安装android的sdk也是必须的,
首先启动android模拟器,然后通过adb得到模拟器中提供的内核配置文件:
USER-NAME@MACHINE-NAME:emulator &
USER-NAME@MACHINE-NAME:adb pull /proc/config.gz .
这时候adb工具会连接模拟器,并从它里面下载一个叫做config.gz的文件到你的当前目录下。
把它拷贝到你的kernel/goldfish目录:
USER-NAME@MACHINE-NAME:cd ~/my_android/kernel/goldfish
USER-NAME@MACHINE-NAME:cp ~/config.gz
解压缩该文件,并重命名为.config,这一步做了就可以跳过make menuconfig之类的内核参数设置
动作了。
USER-NAME@MACHINE-NAME:gunzip config.gz
USER-NAME@MACHINE-NAME:mv config .config
若是重新编译一个模拟器的内核版本的话,使用命令make goldfish_defconfig 或者make goldfish_armv7_defconfig产生的.config来编译内核。