使用ubuntu下载linux内核,2. ubuntu下载编译运行linux kernel

一. 引言

诚如老罗所言,android源代码里面并没有带linux kernel代码。它使用的是预先编译好的kernel,大家可以使用adb shell cat proc/version就可以查看到,如下:

android@ubuntu:~/working_directory$ adb shell cat proc/version

Linux version 2.6.29-00261-g0097074-dirty (digit@digit.mtv.corp.google.com) (gcc version 4.4.0 (GCC) ) #20 Wed Mar 31 09:54:02 PDT 2010

android@ubuntu:~/working_directory$

从kernel版本可以看到现在使用的还是google在2010编译的kernel,那怎么下载/编译/运行自己的kernel呢?

二. 下载kernel

下载方法请参考老罗的博客

http://blog.csdn.net/luoshengyang/article/details/6564592

不过有个地方要注意,跟第1篇帖子类似,由于地址被墙,不能下载成功(至少我没有成功...)

所以得去清华大学的镜像站下载

下载地址https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git

1. 新建kernel目录

mkdir kernel

cd kernel

2. git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git

clone完成后进入goldfish目录

3. cd goldfish

4. git branch -a 查看远程分支

android@ubuntu:~/working_directory/kernel/goldfish$ git branch -a

* master

remotes/origin/HEAD -> origin/master

remotes/origin/android-3.10

remotes/origin/android-3.18

remotes/origin/android-3.4

remotes/origin/android-goldfish-2.6.29

remotes/origin/android-goldfish-3.10

remotes/origin/android-goldfish-3.10-l-mr1-dev

remotes/origin/android-goldfish-3.10-m-dev

remotes/origin/android-goldfish-3.18-dev

remotes/origin/android-goldfish-3.4

remotes/origin/android-goldfish-3.4-l-mr1-dev

remotes/origin/linux-goldfish-3.0-wip

remotes/origin/master

android@ubuntu:~/kerle_test/goldfish$

5. 切换到android-goldfish-2.6.29分支,因为这个分支和2.3版本是最相近的。

git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29

6. 查看本地分支和远程分支对应情况

git branch -avv

7538c47aa07bc6bcfb52e970d02af6ce.png

可以看到我们本地所处的android-goldfish-2.6.29分支和远程分支“4bb8fa0 [origin/android-goldfish-2.6.29] goldfish: Add encrypted SD Card support.”是对应的。

至此,kernel代码就下载完成了。

另外,我发现默认下载的kernel文件夹是goldfish,不知道为啥老罗的是common,也许他的git命令指定了文件夹吧。

三. 编译kernel

编译kernel的话请参考老罗的方法,配置交叉编译环境,使用make命令编译

http://blog.csdn.net/luoshengyang/article/details/6564592

ps:

make menuconfig是启动配置菜单,可以配置编译选项。

四. 运行自己的kernel

emulator -kernel ./kernel/common/arch/arm/boot/zImage

老罗的命令是emulator -kernel ./kernel/common/arch/arm/boot/zImage &

但是发现没有这个&也是可以运行的

五. 验证是不是自己的kernel

等模拟器启动完成后,跟第一步一样,在命令行里面输入adb shell cat proc/version

查看输出的内容和第一步是不是不一样了呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值