RK3568驅(qū)動指南|第一篇 驅(qū)動基礎-第2章 你好!內(nèi)核源碼
從上圖(圖1)可以看到多個版本的內(nèi)核分支,分別為主線版本(mainline)、穩(wěn)定版本(stable)和長期支持版本(longterm)。以上各個支線和主線是由linus torvalds(Linux之父)所領導。半導體廠商和一些內(nèi)核愛好者會在官網(wǎng)下載相應版本的內(nèi)核源碼,對該源碼進行打補丁等操作。以此讓官網(wǎng)的內(nèi)核源碼可以在半導體廠家設計的主控(CPU)上跑起來,所以在開發(fā)和學習的過程中,我們并不會直接去Linux內(nèi)核官網(wǎng)下去下載源碼,而且是使用半導體廠家提供的源碼包。
但是不論是Linux官網(wǎng)的內(nèi)核源碼還是半導體廠家提供的內(nèi)核源碼不影響我們來看它的廬山真面目!作者下載了Linux官方網(wǎng)站的4.19.262分支源碼,下載好的源碼存放在“iTOP-RK3568開發(fā)板【底板V1.7版本】\03_【iTOP-RK3568開發(fā)板】指南教程\02_Linux驅(qū)動配套資料\01_Linux內(nèi)核官方源碼”如下圖(圖2-2)所示:
將Linux內(nèi)核官方源碼拷貝到虛擬機ubuntu上如下圖(圖2-3)所示:
使用以下命令對內(nèi)核官方源碼進行解壓,解壓完成如下圖(圖2-4)所示:
解壓完成后我們會看到非常多的文件夾,這些文件夾放的就是Linux內(nèi)核源碼,在下一小節(jié)中作者來介紹Linux內(nèi)核源碼的結構和每個目錄的作用。
目錄的內(nèi)容如下表(表2-6)所示:
2.3 編譯內(nèi)核源碼
本小節(jié)使用的內(nèi)核源碼是半導體廠家提供的內(nèi)核源碼,是我們學習和開發(fā)要使用的內(nèi)核源碼。在進行驅(qū)動學習之前需要將此內(nèi)核源碼編譯成功。
內(nèi)核源碼存放路徑為“iTOP-RK3568開發(fā)板【底板V1.7版本】\03_【iTOP-RK3568開發(fā)板】指南教程\02_Linux驅(qū)動配套資料\02_Linux_SDK源碼”,將對應目錄下的內(nèi)核源碼拷貝到虛擬機ubuntu目錄下,如下圖(圖2-7)所示:
注:編譯環(huán)境使用的是迅為搭建好的編譯環(huán)境,迅為的環(huán)境經(jīng)過測試在不進行修改的前提下,可以直接將內(nèi)核源碼編譯通過。
使用以下命令對內(nèi)核源碼的進行解壓,解壓完成如下圖(圖2-8)所示:
使用“cd linux_sdk”命令進入內(nèi)核源碼目錄,如下圖(圖2-9)所示:
使用命令“./build.sh kernel”進行內(nèi)核源碼的編譯,編譯過程如下圖(圖2-10)所示:
編譯時間和電腦虛擬機配置相關,編譯完成如下圖(圖2-11)所示:
通過對內(nèi)核源碼官網(wǎng)的探索,內(nèi)核源碼的目錄結構講解以及內(nèi)核源碼的編譯。我相信大家對Linux內(nèi)核源碼應該有了一個初步的認識了。下一章我們來學習第一個驅(qū)動helloworld。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。