Linux有一個龐大的開源社區(qū),每個人都可以向開源社區(qū)提交代碼。由于Linux內(nèi)核十分龐大所以每個模塊都有對應(yīng)的維護人員。維護人員的工作就是審核人們提交的代碼是否正確,如果沒有問題,就會合并到主分支上。這樣就會使Linux內(nèi)核不斷完善和更新。
接下來就是芯片原廠例如恩智浦,開發(fā)人員會不定期在Linux官網(wǎng)下載穩(wěn)定版本的內(nèi)核,將其適配到各個芯片上,芯片原廠也會對內(nèi)核進行維護形成自己的維護版本。
最后是板卡廠商,會到芯片原廠獲取已經(jīng)適配好的穩(wěn)定版本的內(nèi)核,在其基礎(chǔ)上進行各個外設(shè)接口的適配,然后給用戶提供移植好的板級開發(fā)包。板卡廠商也會對移植好的內(nèi)核版本進行維護,例如一些BUG修復或者物料替換。
地址:https://mirrors.edge.kernel.org/pub/Linux/kernel/
如果不是在芯片原廠工作一般不會到Linux官網(wǎng)下載源碼,但我們有必要了解這種獲取源碼的方法。因為Linux官網(wǎng)對一些bug或者驅(qū)動更新的比較及時,在遇到一些內(nèi)核問題時就可以到Linux官網(wǎng)的源碼中查一下是不是有相關(guān)的提交記錄。

每個芯片原廠都有自己的git倉庫,他們會把已經(jīng)開發(fā)完成的內(nèi)核源碼放到git倉庫中,供用戶查看和下載。下面以NXP的倉庫為例進行講解。
地址:https://github.com/nxp-imx/Linux-imx
(一)切換到對應(yīng)的版本,因為開發(fā)板是在Linux4.1.15上進行的適配,所以講解均以4.1.15版本內(nèi)核為例。

(二)可以選擇使用git克隆,也可以選擇下載ZIP壓縮包

ELF1的內(nèi)核源碼在資料包當中的路徑如下:ELF1開發(fā)板資料包