RK3568驅動(dòng)指南|第一篇 驅動(dòng)基礎-第2章 你好!內核源碼
從上圖(圖1)可以看到多個(gè)版本的內核分支,分別為主線(xiàn)版本(mainline)、穩定版本(stable)和長(cháng)期支持版本(longterm)。以上各個(gè)支線(xiàn)和主線(xiàn)是由linus torvalds(Linux之父)所領(lǐng)導。半導體廠(chǎng)商和一些內核愛(ài)好者會(huì )在官網(wǎng)下載相應版本的內核源碼,對該源碼進(jìn)行打補丁等操作。以此讓官網(wǎng)的內核源碼可以在半導體廠(chǎng)家設計的主控(CPU)上跑起來(lái),所以在開(kāi)發(fā)和學(xué)習的過(guò)程中,我們并不會(huì )直接去Linux內核官網(wǎng)下去下載源碼,而且是使用半導體廠(chǎng)家提供的源碼包。
但是不論是Linux官網(wǎng)的內核源碼還是半導體廠(chǎng)家提供的內核源碼不影響我們來(lái)看它的廬山真面目!作者下載了Linux官方網(wǎng)站的4.19.262分支源碼,下載好的源碼存放在“iTOP-RK3568開(kāi)發(fā)板【底板V1.7版本】\03_【iTOP-RK3568開(kāi)發(fā)板】指南教程\02_Linux驅動(dòng)配套資料\01_Linux內核官方源碼”如下圖(圖2-2)所示:
將Linux內核官方源碼拷貝到虛擬機ubuntu上如下圖(圖2-3)所示:
使用以下命令對內核官方源碼進(jìn)行解壓,解壓完成如下圖(圖2-4)所示:
解壓完成后我們會(huì )看到非常多的文件夾,這些文件夾放的就是Linux內核源碼,在下一小節中作者來(lái)介紹Linux內核源碼的結構和每個(gè)目錄的作用。

目錄的內容如下表(表2-6)所示:
2.3 編譯內核源碼
本小節使用的內核源碼是半導體廠(chǎng)家提供的內核源碼,是我們學(xué)習和開(kāi)發(fā)要使用的內核源碼。在進(jìn)行驅動(dòng)學(xué)習之前需要將此內核源碼編譯成功。
內核源碼存放路徑為“iTOP-RK3568開(kāi)發(fā)板【底板V1.7版本】\03_【iTOP-RK3568開(kāi)發(fā)板】指南教程\02_Linux驅動(dòng)配套資料\02_Linux_SDK源碼”,將對應目錄下的內核源碼拷貝到虛擬機ubuntu目錄下,如下圖(圖2-7)所示:
注:編譯環(huán)境使用的是迅為搭建好的編譯環(huán)境,迅為的環(huán)境經(jīng)過(guò)測試在不進(jìn)行修改的前提下,可以直接將內核源碼編譯通過(guò)。
使用以下命令對內核源碼的進(jìn)行解壓,解壓完成如下圖(圖2-8)所示:
使用“cd linux_sdk”命令進(jìn)入內核源碼目錄,如下圖(圖2-9)所示:
使用命令“./build.sh kernel”進(jìn)行內核源碼的編譯,編譯過(guò)程如下圖(圖2-10)所示:
編譯時(shí)間和電腦虛擬機配置相關(guān),編譯完成如下圖(圖2-11)所示:
通過(guò)對內核源碼官網(wǎng)的探索,內核源碼的目錄結構講解以及內核源碼的編譯。我相信大家對Linux內核源碼應該有了一個(gè)初步的認識了。下一章我們來(lái)學(xué)習第一個(gè)驅動(dòng)helloworld。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。