關於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(我想可能從廠商代碼那裏借鑑來的吧)
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章