关于android linux kernel

-------------------------------------------------------------

be prepared: how to know exact cpu info?
-------------------------------------------------------------
 
cat /proc/cpuinfo有时提供的信息不太具体
 
官方一般会有hw spec,拆机直接看芯片比较准确 :)
 
 
------------------------------------------------------------
android kernel source code不在kernel.org
------------------------------------------------------------
 
android kernel ==\== standard linux kernel 
android made changes like async-share-memory, power management, etc...
(这类文章很多,例如http://blog.sina.com.cn/s/blog_4d661a8c0100r6ir.html)
 
android kernel changes are NOT contributed into kernel.org yet, due to some contribution process issues 
 
google自己也需要不断追赶kernel的版本更新。kernel是android的upstream project。webkit v8是另外两个所谓的上游项目。与上游版本同步(跟随之)很头疼吧?
 
------------------------------------------------------------
so, 哪里下载android kernel source code? 怎么编译?
------------------------------------------------------------
 
谷歌提供的下载: git clone git://android.git.kernel.org/kernel/common.git (尚未恢复?)
git clone git://android.googlesource.com/kernel/common.git (这个也没有开通?)
(现在没地方下载?)
 
搜一下,相关文章挺多的refer to :
* http://blog.csdn.net/junglyfine/article/details/6303163
* http://web.nchu.edu.tw/~jlu/cyut/android/build22.shtml  把玩"魔术师" -- 编译 AOSP 2.2 (Froyo) 原始码
* http://hi.baidu.com/donghaozheng/blog/item/b519adcc53b9261c00e92855.html
 
毕竟谷歌kernel能支持的手机为数有限,也许包括dream, magic, passion, nexus吧
要想编译其他厂商的手机的kernel,还是要参考下面厂商kernel一节。
 
---------------------------------------------------------------
kernel版本越高越好?不一定
---------------------------------------------------------------
 
wiki百科(http://en.wikipedia.org/wiki/Android_version_history)说:
cupcake --> 2.6.27
donut/eclair --> 2.6.29
froyo --> 2.6.32
gingerbread --> 2.6.35 (http://developer.android.com/sdk/android-2.3-highlights.html)
honeycomb 3.x --> 2.6.36 
但是不要误解,没有2.6.35的kernel也有可能跑gingerbread。我的MT15i就是2.6.32上跑2.3.3,挺好没问题。
(android 2.2, 2.3, 4.0 sdk 的qemu emulator都还在用2.6.29 kernel)
所以上面“-->”的含义是google so far追赶到的最高版本。
 
说实话,这些kernel区别大么?一定要升级么?还是nice to have? PC上升级kernel经常是因为security原因...
有的时候,原因来自其它软件,比如(只是比如)最新版flash 1x.x播放器要求2.6.3x以上的核心.... 
TODO: study linux kernel release note to clarify the important updates in 2.6.27/29/32/35 ... 
 
综上所述,也不是kernel版本越新越好,如果只是为了玩eclair,2.6.29的核心就足够了(依次类推)没必要下载最新版本。
 
目前android 4.0 ice cream sandwich已经到了发布的前夜,有迹象表明这个android 4.0有可能追上了linux kernel 3.0版本。
 
目前semc看到的3.0.x和4.0.x固件都配合2.6.32.9一个版本,所以ginger-mogami只有这一个版本么? 
所有edream3/4的手机都是同一个版本的kernel,只是编译config/def不同?
(为什么这么做?硬件cpu都一样?维护简单?)
(谁提供了kernel,更关键的,谁维护源码? qualcomm ti semc-PLD, BSP的概念?)
 
 
---------------------------------------------------------------
厂商自己的kernel
---------------------------------------------------------------
 
厂商自己的kernel一般都包含有很多为特定型号手机开发的硬件驱动程序,比如充电电路的驱动,比较有搞头了。所以厂商kernel一般是按照手机型号提供的。对于HTC来说 http://htcdev.com/devcenter/downloads
 
对索爱来说download kernel source from http://opensource.sonyericsson.com/
see also: 
* SEMC official blog, how to build kernel for semc phone:  http://blogs.sonyericsson.com/wp/2011/05/06/how-to-build-a-linux-kernel/  
 
另外搜到这个,这个url看起来有趣,没有研究过
git clone git://android.git.kernel.org/kernel/samsung.git 
 
--------------------------------------------------------------
民间kernel
-------------------------------------------------------------- 
 
厂商的kernel是在GPL协议下被迫公开的,一般来说技术支持相当不给力。
而民间android rom就不同了,百花齐放,特别精彩,例如大名鼎鼎的CM
 
当然这些民间android也提供kernel(我想可能从厂商代码那里借鉴来的吧)
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章