2011-09-14 57 views
1

我擁有一個三星Galaxy 3,並且希望移植可用於其他Android設備的內核。我準備好了所有的建築環境。我也有C知識。我不明白的是,移植過程中涉及到的是什麼和什麼,哪些代碼應該以什麼方式修改?關於Android內核從一個設備移植到其他設備的指導

如果有人可以幫助我。這會很棒。

在此先感謝。


好吧,我明白了。但真正的問題是我不明白一件事。

什麼需要在源代碼中進行更改,以便使其兼容於其他設備?有人能解釋我嗎?

+0

請不要在這裏摧毀你的問題。我已經將其回滾到原來的狀態。 –

回答

3

Idolon給出了一個很好的建議。從理論上講,所寫的是真實的。實際上,這涉及更多一點。我幾個月來一直在移植Android Kernel。我的目標是用我的定製I/O在我的定製電路板上安裝定製的S5PV210處理器模塊。我有三星galaxy標籤和幾個三星的android智能手機的源代碼,以及三星評估板(S5PV210 CPU的SMDKV210)的幾個版本(Froyo,薑餅)。 FYI,S5PC110是一個緊密的衍生產品。這是我發現的。儘管所有設備驅動程序都應該以非常模塊化的方式構建,並且彼此獨立,並且您應該可以用類似的設備替換它們,但三星做的並不完全如此。給你舉一個例子是關於電源管理。在許多處理硬件設備的低級驅動程序中,它會爲諸如電源管理芯片等其他硬件設備調用一些特定的例程。所以,當你在「make xconfig」或「make menuconfig」中改變驅動程序的選擇時,它將刪除你不想要的東西的源代碼並添加你想要的東西,但還有其他模塊正在調用您移除的低級別功能。在構建時,您將會遇到大量未解決的外部問題,因爲您已經移除了您的硬件所沒有但在您開始使用的源中使用的電源管理芯片。我瀏覽了幾個三星的設備源代碼,他們很早就分支了。他們已經被不同的團隊改編,從一個源代碼包中的一個設備到另一個設備將是一項重要的工作。

下面是我成功的原因:我買了一個已經移植了Android Kernel(薑餅)的S5PV210評估板。所有的電源管理和相互依賴的問題已經清理完畢。然後,形成一個工作包,我可以更換我需要的設備(沒有100K單位/年的承諾就無法購買),而不會陷入相互依賴的狀態。然後我甚至可以改變LCD分辨率(從800x480到1024x768),觸摸屏,Cell調制解調器等等。整件事情只需要一個人(我)就可以工作大約一個月。

從Galaxytab或其他商業設備開始,我浪費了幾個月的頭球,沒有有用的結果,但我學到的東西。

有一個要求我的方法取得成功。你必須知道你正在使用的硬件。舉個例子,你需要知道你的硬件有哪些觸摸屏(芯片組)來選擇驅動程序,並且是否連接它將它連接到正確的設備(USB,Serial等)。所有其他設備(電源管理芯片,鍵盤,背光,LCD等)的相同的東西

希望有助於給你一個有關工作的想法,以及如何做到這一點。

0

我也到Android的移植東西相當長的一段時間,我建議如下路線:

你需要有Android的移植和AOSP源代碼,目錄stucture層次的基本知識。 我建議你開始閱讀https://books.google.co.in/books/about/Embedded_Android.html?id=plHsngEACAAJ&hl=en 並且還請參考https://source.android.com/devices/index.html作爲好人指出,你也可以谷歌Android移植相關組,併成爲其中的成員,如果你被困在一個問題有機會類似的問題可能已經面臨的人否則以前。

觀察

AOSP代碼: 部件並聯時,您需要潛到android源碼例如,從像https://android.googlesource.com/鏈接觀察哪些組件放置在源代碼,是什麼從以前的機器人版本更新(像ART在LL中取代了dalvik),在頂層將會有通用代碼,硬件/設備/文件夾中特定於硬件的代碼,稱爲HAL。

內核代碼: 在內核還需要觀察目錄結構和知道哪些東西躺在那裏像SoC的特定代碼將在arch /目錄defconfigs(用於選擇內核配置)將拱// configs /目錄。 也有好的書籍可用於Linux內核,你可以谷歌他們,並開始閱讀他們也。

同時移植的內核,你需要採取新的內核以下

1.如果照顧已經有支持的SoC,其在硬件用於移植,那麼你需要添加像假設只有設備的具體變化你想將新內核版本移植到三星Galaxy S3,你可以選擇一個具有exynos支持的參考android內核,然後你只需要添加對三星Galaxy S3的支持就可以進行更改。

爲了您需要參考某些支持s3的舊內核,您可以從那裏學習已添加的補丁以添加對s3的支持並將這些補丁移植到較新的內核中。

實驗

首先,你只能端口需要啓動該平臺的最低限度的變化,編譯和閃光吧你的平臺上,然後觀察輸出,如果一切都看起來不錯比之後的修改繼續以其他方式嘗試解決問題。

謝謝, Devarsh

相關問題