
在我的學習期間,我開發 Android iOS 應用程式和網站已有近 18 個月的時間。現在,作為我最後一年的項目,我正在研究 Linux 原始碼,目標是在行動裝置(例如 Android)上啟動它。我按照互聯網上的教程成功地將其作為 Debian 軟體包。我目前正在使用Ubuntu。
我有一個策略,但不確定我是否走在正確的道路上。如下:
A:
下載Linux原始碼。刪除額外的驅動程序,在目前運行的 Ubuntu 上編譯並安裝並使用它。
進一步自訂程式碼並將其作為我自己的發行版啟動。為此我正在關注線性FS。
指定一個特定的目標移動設備,修改它的程式碼,編寫驅動程式(如果我需要的話),不確定是哪一個(這就是我在這裡的原因:)),然後在其上啟動核心。
我不知道我的策略是否正確。如果有人能告訴我,我將非常感激:
乙:
- 我走在正確的軌道上嗎?如果不是,那什麼才是正確的呢?
- 我是否需要指定一款手機並為其定制內核代碼?
- 除了驅動程式之外,我還需要更改核心中的哪些內容?
- 最後但並非最不重要的一點:當我在行動裝置上啟動核心時;我在那裡有任何介面或終端機嗎?
抱歉,如果我的問題沒有意義。我是一名學生,仍在努力解決問題。如果有人能給我一些關於在網路上搜尋哪些主題的提示,我將非常感激。
更新:我想要的是確認我的策略是否正確。如果沒有,請列出我應該遵循的步驟。
答案1
首先嘗試編譯 Android Linux 核心而不僅僅是 kernel.org 中的普通核心不是更容易嗎?原則上,這應該適用於所有 Android 設備,因為核心是 GPL。如果您無法取得目標裝置的核心原始碼,因為製造商要么一無所知,要么是已知的 GPL 違反者,那麼您的下一個選擇是下載並編譯具有類似 SoC(Tegra 3、RK3188、 ETC) 。
請注意,在運行多種 SoC 設計的行動裝置上啟動比從具有熟悉的 AMD 或 Intel CPU 的桌上型電腦或筆記型電腦啟動要不確定得多。實際上,您甚至不確定是否可以將核心複製或閃存到行動裝置中(當然,除非行動裝置是筆記型電腦)。所以你也需要研究一下。
所以我首先要研究的是目標設備。選擇可以從外部 SD 卡啟動的裝置是個好主意,因為理論上您只需將核心和其他作業系統內容複製到 SD 卡即可運行 Linux。除此之外,選擇一個具有工作恢復分割區的設備,它允許您將核心刷新到適當的啟動分割區。這樣的裝置其實有兩個啟動分割區:Android 啟動分割區和復原分割區。因此,如果出現問題導致裝置無法啟動,您可以按下裝置上的特殊硬體按鈕組合,以便啟動至復原分割區並將裝置返回到可用狀態。