前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ubuntu14.04编译android4.4对应的linux内核

ubuntu14.04编译android4.4对应的linux内核

作者头像
用户2930595
发布2018-08-23 10:12:54
1.2K0
发布2018-08-23 10:12:54
举报
文章被收录于专栏:difcareer的技术笔记

参考资料: [google官方资料] 官方是最权威的,但会有细节缺失。 [如何下载编译android内核] 可以参考别人的动手实践,弥补缺失的细节。

先看看AOSP中自带的kernel是什么版本:

代码语言:javascript
复制
cd prebuilts/qemu-kernel/arm/
dd if=kernel-qemu bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel-qemu | cut -d ':' -f 1) | zgrep -a 'Linux version'

结果为:

代码语言:javascript
复制
Linux version3.4.0-gfb3ea4f (keunyoung@keunyoung-linux.mtv.corp.google.com) (gcc version4.7(GCC) )#1 Tue Apr 2 17:27:47 PDT 20132215029+0recordsin2215029+0records out2215029bytes (2.2MB) copied,4.07794s,543kB/s

和那篇文章里的一模一样,说明是AOSP自带的是同一次编译出来的内核。

下载kernel源码: 上面确定linux是3.4.0的,那就用这个版本吧,在官方文档中,有各种版本的内核源码,其中提到: The goldfish project contains the kernel sourcesforthe emulated platforms. 正好我现在只是使用模拟器,那就选择goldfish好了:

代码语言:javascript
复制
mkdir kernel                  //此时在android源码根目录
cd kernel
git clone https://android.googlesource.com/kernel/goldfish.git  //这里要等一段时间
cd goldfish 
git branch -a
git checkout remotes/origin/android-goldfish-3.4

配置环境并编译

代码语言:javascript
复制
export PATH=~/AOSP/android-4.4.4_r2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/:$PATH
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eab
make goldfish_armv7_defconfig
make

最后输出:

代码语言:javascript
复制
LD      arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready

编译成功,内核文件zImage在kernel/goldfish/arch/arm/boot下。 查看编译的内核信息:

代码语言:javascript
复制
cd kernel/goldfish/arch/arm/boot
dd if=kernel-qemu bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel-qemu | cut -d ':' -f 1) | zgrep -a 'Linux version'

输出为:

代码语言:javascript
复制
Linux version3.4.67-gb1dfee2 (ubt@ubuntu) (gcc version4.6.x-google20120106(prerelease) (GCC) )#1 PREEMPT Mon Jul 20 21:17:07 PDT 20152385045+0recordsin2385045+0records out2385045bytes (2.4MB) copied,4.07455s,585kB/s

对比上面自带的kernel信息可看出差异。

让模拟器使用新编译出来的内核

代码语言:javascript
复制
emulator -kernel ~/AOSP/android-4.4.4_r2/kernel/goldfish/arch/arm/boot/zImage

接下来就是在源码中加入自己的代码,再编译再运行了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.03.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档