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