學到本章節(jié),大家應該對Linux操作系統(tǒng)都有了一定的了解,但可能還不知道我們拿到手的內核源碼都經歷了什么。
linux有一個龐大的開源社區(qū),每個人都可以向開源社區(qū)提交代碼。由于linux內核十分龐大所以每個模塊都有對應的維護人員。維護人員的工作就是審核人們提交的代碼是否正確,如果沒有問題,就會合并到主分支上。這樣就會使linux內核不斷完善和更新。
接下來就是芯片原廠例如恩智浦,開發(fā)人員會不定期在linux官網(wǎng)下載穩(wěn)定版本的內核,將其適配到各個芯片上,芯片原廠也會對內核進行維護形成自己的維護版本。
最后是板卡廠商,會到芯片原廠獲取已經適配好的穩(wěn)定版本的內核,在其基礎上進行各個外設接口的適配,然后給用戶提供移植好的板級開發(fā)包。板卡廠商也會對移植好的內核版本進行維護,例如一些BUG修復或者物料替換。
接下來講一下獲取這三種源碼的方法:
獲取linux官網(wǎng)源碼
地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
如果不是在芯片原廠工作一般不會到linux官網(wǎng)下載源碼,但我們有必要了解這種獲取源碼的方法。因為linux官網(wǎng)對一些bug或者驅動更新的比較及時,在遇到一些內核問題時就可以到linux官網(wǎng)的源碼中查一下是不是有相關的提交記錄。
獲取芯片原廠的linux源碼
每個芯片原廠都有自己的git倉庫,他們會把已經開發(fā)完成的內核源碼放到git倉庫中,供用戶查看和下載。下面以NXP的倉庫為例進行講解。
地址:https://github.com/nxp-imx/linux-imx
(一)切換到對應的版本,因為開發(fā)板是在linux4.1.15上進行的適配,所以講解均以4.1.15版本內核為例。
(二)可以選擇使用git克隆,也可以選擇下載ZIP壓縮包。
獲取ELF?1開發(fā)板源碼
ELF?1的內核源碼在資料包當中的路徑如下:ELF 1開發(fā)板資料包