如何编译Android的kernel,如何下载并编译Android 4.0内核源码Goldfish(图文)

关于如何下载Android 源码请查看另一篇文章(同样是图文教程):

如何编译Android 源码请看:

下面进入正题:

第一步:下载goldfish源码

在Android源码根目录下新建kernel文件夹

$mkdir kernel

$cd kernel  下载源码:

$git clone ;

389bfaaa83bbd94808431cc8ab583b21.png

下载完毕如下图:

f09132ad76ae01a1538f78fa2231dfe7.png

此时在kernel目录下会生成一个goldfish文件夹进入此目录:

$cd goldfish

此目录下有一个隐藏的目录git通过

$ls al

可看到此目录:

0efa3a93da9c7e42739d9724c5b36923.png

查看所有分支:

git  branch a

如下图:

930f72d94e5054a6110816fb490b66e0.png

check out:

$git checkout remotes/origin/Androidgoldfish

aac9611d001692c181e98c39eb4c6fee.png

此时你会看到goldfish目录下会出现很多文件:

$ls

da4402a560073cb3ac936c7d42e55d16.png

这个时候goldfish源码就已经下下来了接下来的事情就是编译了

第二步:编译goldfish

导出交叉编译工具目录到$PATH环境变量中去

export PATH=$PATH:~/WORKING_DIRECTORY/prebuilt/linuxx/toolchain/armeabi/bin

我们将使用上述这个目录下的交叉编译器armeabigcc

然后在glodfish目录下用gedit打开Makefile文件找到这两行文字:

# ARCH?= (SUBARCH)

# CROSS_COMPILE?=

修改为:

ARCH ?= arm

CROSS_COMPILE ?= armeabi

$gedit Makefile

93f931c22797ff7b14b0c6c7192ef064.png

注意:ARTH ?=arm的arm后边不要有空格不然就会出现如下类似错误:

Make:/kernel/goldfish/arch/arm: Is a directoryStop

害我白白浪费了几个小时

关闭gedit接下来就开始make了执行如下指令:

$ make goldfish_armv_defconfig

$ make

注用$make goldfish_defconfig这样配置也可以编译通过模拟器也可以启动但是Android的开机画机就显示不了$adb shell也死活连不上原因就是这个goldfish_defconfig这个配置文件问题

提示:

$make goldfish_armv_defconfig指令的意思是将目录WORKING_DIRECTORY/kernel/goldfish/arch/arm/configs/下的goldfish_armv_defconfig文件内的Kconfig配置内容复制到WORKING_DIRECTORY/kernel/goldfish/目录下nfig文件中nfig文件是一个隐藏目录保存着各个目录下Kconfig文件的配置

最终结果如下图所示:

50362df035d4e225eec0d82f885c5bc4.png

这样就表示编译成功了

$ ls arch/arm/boot/

可以看到zImage文件

d54f6d04d6917fea22c87c18514a9ea9.png

第三步:在模拟器中启动编译好的内核

$ export PATH=$PATH:~/WORKING_DIRECTORY/out/host/linuxx/bin

$ export Android_PRODUCT_OUT=~/WORKING_DIRECTORY/out/target/product/generic

$ emulator kernel ~/WORKING_DIRECTORY/kernel/goldfish/arch/arm/boot/zImage &

模拟器启动界面:

c8cf4c8ffe277def1b74ce5912b1bfbf.png

进入模拟器从设置里看版本信息:

a6ba6f4bdea8249a9a573d8b5a1d1728.png

从上图可以看出当前Android版本是内核版本是说明成功了

同样也可以通过adb shell来查看内核版本信息如下图:

$adb shell

#cd proc

#cat version

2061300223263645f3819858736607a6.png

完!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值