溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux內(nèi)核移植指的是什么

發(fā)布時(shí)間:2022-03-24 10:32:04 來源:億速云 閱讀:233 作者:iii 欄目:建站服務(wù)器

這篇“l(fā)inux內(nèi)核移植指的是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“l(fā)inux內(nèi)核移植指的是什么”文章吧。

在linux中,內(nèi)核的移植指的是將程序代碼從一種硬件平臺(tái)轉(zhuǎn)移到另一種硬件平臺(tái)上運(yùn)行;linux內(nèi)核的移植包括三個(gè)層次,分別是體系結(jié)構(gòu)級(jí)別的移植、SOC級(jí)別的移植和主板級(jí)別的移植。

本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

什么是linux內(nèi)核的移植

所謂移植就是把程序代碼從一種運(yùn)行環(huán)境轉(zhuǎn)移到另一種運(yùn)行環(huán)境。對(duì)于內(nèi)核移植來說,主要是從一種硬件平臺(tái)轉(zhuǎn)移到另一種硬件平臺(tái)上運(yùn)行。

在一個(gè)目標(biāo)板上Linux內(nèi)核的移植包括3個(gè)層次,分別為體系結(jié)構(gòu)級(jí)別的移植、SoC級(jí)別的移植和主板級(jí)別的移植。

  • 體系結(jié)構(gòu)級(jí)別的移植是指在不同體系結(jié)構(gòu)平臺(tái)上Linux內(nèi)核的移植,例如,在ARM、MIPS、PPC等不同體系結(jié)構(gòu)上分別都要對(duì)每個(gè)體系結(jié)構(gòu)進(jìn)行特定的移植工作。一個(gè)新的體系結(jié)構(gòu)出現(xiàn)就需要進(jìn)行這個(gè)層次上的移植。

  • SoC級(jí)別的移植是指在具體的SoC處理器平臺(tái)上Linux內(nèi)核的移植,例如,ARM920T IP核的兩個(gè)處理器S3C2410和AT91RM9200等平臺(tái)都分別要進(jìn)行SoC特定的移植工作。

  • 主板級(jí)別的移植是指在具體的目標(biāo)主板上Linux內(nèi)核的移植,例如,在FS2410目標(biāo)板上,需要進(jìn)行主板特定的移植工作。

在這里討論主板級(jí)別的移植,主要是添加開發(fā)板初始化和驅(qū)動(dòng)程序的代碼。這部分代碼大部分是與體系結(jié)構(gòu)相關(guān)的,在arch目錄下按照不同的體系結(jié)構(gòu)管理。

Linux 2.6內(nèi)核已經(jīng)支持S3C2410處理器的多種硬件板,例如,SMDK2410、Simtec-BAST、IPAQ-H1940、Thorcom-VR1000等。我們可以參考SMDK2410參考板來移植開發(fā)板的內(nèi)核。

S3C2410屬于片上系統(tǒng),處理器芯片具備串口、LCD等外圍接口的控制器。這樣,參考板上的設(shè)備驅(qū)動(dòng)程序多數(shù)可以直接使用。但并不是所有的外部設(shè)備都相同,不同的開發(fā)板可以使用不同的SDRAM、Flash、以太網(wǎng)接口芯片等。這就需要根據(jù)硬件修改或者開發(fā)驅(qū)動(dòng)程序。

例如,串口驅(qū)動(dòng)程序是典型的設(shè)備驅(qū)動(dòng)程序之一,這個(gè)驅(qū)動(dòng)程序幾乎不需要任何改動(dòng)。然而,如果用2.4內(nèi)核的配置使用方式,是不能得到串口控制臺(tái)信息的。在2.6的內(nèi)核中,串口設(shè)備在/dev目錄下對(duì)應(yīng)的設(shè)備節(jié)點(diǎn)為/dev/ttySAC0、/dev/ttySAC1等。所以,再使用過去的串口設(shè)備ttyS0,就得不到控制臺(tái)打印信息了?,F(xiàn)在可以很簡(jiǎn)單地解決這個(gè)問題,把內(nèi)核命令行參數(shù)的控制臺(tái)設(shè)置修改為console = ttySAC0,115200。

在內(nèi)核已經(jīng)支持S3C2410處理器以后,基本上無須改動(dòng)代碼就可以讓內(nèi)核運(yùn)行起來。但是,在有些情況下,我們必須針對(duì)不同的設(shè)備進(jìn)行驅(qū)動(dòng)級(jí)的移植,至少硬件地址和中斷號(hào)可能會(huì)不同。例如,有時(shí)需要移植網(wǎng)絡(luò)芯片和Nand Flash芯片等外設(shè)的驅(qū)動(dòng)程序。

以上就是關(guān)于“l(fā)inux內(nèi)核移植指的是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI