張彥
作為計算機網絡技術與經濟共同發展的產物,消費類電子產品的產生和流通有效帶動了電子產業的發展。本文以消費類電子產品中Linux系統移植作為研究對象,通過引入S3C2440平臺,在對交叉編譯環境搭建進行分析的基礎上,從Linux移植與U-boot移植兩方面對基于S3C2440平臺下Linux系統的搭建環境展開了深入研究。
【關鍵詞】S3C2440平臺 Linux環境 U-boot
基于S3C2440平臺下的Linux系統主要是由主機中的交叉編譯環境進行編譯和實現的,作為啟動Linux系統的引導系統,U-boot在進行移植后,可以使整個Linux系統在S3C2440的硬件平臺下得以良好運行。而作為Linux系統與應用程序的銜接橋梁,文件系統則可以為Linux系統提供應用程序的存儲和運行環境。為了使Linux系統可以應用并運行到各類計算機或電子產品中,本文對基于S3C2440平臺下的Linux系統移植進行了詳細分析。
1 交叉編譯器移植簡述
1.1 交叉編譯工具
嵌入式系統的開發利用的是交叉開發的模式,即程序是在A機器中編譯生成并在B機器上運行的系統實現模式。簡單來說,交叉編譯則是在一個平臺上生成的可以在另一個平臺上運行的代碼。交叉工具鏈是指在進行交叉編譯過程中,系統進行編譯、匯編和鏈接的一整套工具,其作用是彌補gcc(編譯器套裝)編譯程序無法在目標平臺上運行的不足,即使系統編譯器的程序可以良好運行在目標機器上。
1.2 交叉編譯器移植方法
交叉編譯器的移植需要兩套工具鏈,一套是在開發系統的內核時使用,另一套則是在U-boot(開放源碼項目)中使用。交叉編譯器主要存在兩個版本(3.4.5版本與4.4.3版本),高版本主要勇于編譯內核,而低版本則用于編譯U-boot。交叉編譯器的移植過程便是交叉編譯的實現過程,具體的移植步驟為:
(1)將已下載的編譯器版本拖到Linux系統中。
(2)將交叉編譯器進行解壓。
(3)向Linux中添加環境變量使編譯器生效。編譯器生效的方式主要有兩種,分別為:a)source/root/brashrc。b)source/ect/profile。
(4)編譯器生效的檢驗,其檢驗命令為ECHO或PATH。在交叉編譯器完成移植后,若在今后的使用中,需要查看其具體版本,則可以輸入命令arm-linux-gcc-v。
2 Linux移植
2.1 內核簡介
作為任何一個操作系統的核心,內核不僅可以對系統的內存、文件、進程以及設備驅動程序網絡系統進行高效管理,而且對于整個系統的穩定性與具有決定性的作用。Linux系統內核的特點為:穩定性高、功能強大、源代碼完全開放并可以對多種類型的硬件平臺進行支持。
2.2 移植步驟
根據Linux系統自身特點,本文將其移植的硬件平臺選為S3C2440平臺,將其內核版本選為當前版本稍低的3.4.5 Linux系統內核。Linux系統的移植步驟為:首先,對makefile文件進行修改。具體的修改步驟為:先進行3.4.5版本的Linux系統下載,并在計算機虛擬機中建立一個文件用以存放Linux;修改makefile,具體修改過程如下:
export KBUILD_BUILDHOST:=$( SUBARCH)
ARCH = arm
CROSS COMPILE = arm-linux-
其次,進行系統默認配置的選擇。由于系統的內核配置具有較多選項,通常大部分選項均可以選用默認方式進行配置。因此,并不需要各個選項所代表的具體含義。但是在某些應用程序當中,需要將Linux系統內核進行裁剪,從而使其滿足系統移植條件,此時,便需要對相關選項的意義進行掌握和了解。具體操作為:輸入命令cd arch/arm/configs,并鍵入ls對各選項中的配置進行查看,由于系統硬件平臺為S3C2440,因此,需要先查看是否存在2440的相關配置,即ls *2440*。最后,生成Linux移植系統的鏡像文件,輸入命令為make uImage。
3 U-boot移植
3.1 U-boot的功能簡述
U-boot是一種遵循GPL條款的開放源碼項目,Boot即為Bootloader,表示在Linux系統運行前的一段引導程序,此種引導程序可以將硬件設備進行初始化,進而完成計算機或相關電子產品由硬件啟動到系統啟動的過度。簡單來說,就是為系統運行的硬件提供一個適宜運行的狀態,進而為后續操作系統的調用打下良好的基礎。
3.2 U-boot移植流程
本文所選取的U-boot版本為2012.04.01.tar.bzr,基于此版本的U-boot移植流程為:首先,下載并建立source insight工程,并對其進行編譯和燒寫,如果程序無法運行,對其進行原因分析。具體配置流程為:解壓——進入目錄——默認配置——編譯。U-boot經過上述配置后,若無法啟動,則需要對相關代碼進行分析;其次,分析U-boot借助鏈接命令對其組成文件進行分析,并根據閱讀代碼分析U-boot的啟動過程。最后,對U-boot代碼進行修改和完善,具體做法為:建立一個單板cp smdk2410 smdk2440 -rf;cp smdk2410.hsmdk2440.H,若配置通過,則對U-boot進行調試并查看串口波特率的設置,即亂碼,進而使U-boot實現正常運行。
4 結論
本文以基于S3C2440平臺下Linux系統的搭建環境作為研究對象,在對交叉編譯環境進行搭建的基礎上,分別對Linux系統移植與U-boot移植的方法展開了深入探討。可見,未來加強對基于S3C2440平臺下Linux系統環境搭建與移植方法的研究力度,對于促進我國計算機技術的發展和電子消費類產品的流通具有重要的作用和意義。
參考文獻
[1]張凱.基于S3C2440的Linux嵌入式視頻監控系統設計與實現[D].西安科技大學,2013.
[2]張騰.基于S3C2440遠程監控系統設計[D].長安大學,2012.
[3]高文輝,師奕兵,張偉.基于S3C2440的U-Boot雙啟動實現[J].測控技術,2012,02(12):87-91.
作者單位
石家莊職業技術學院信息工程系 河北省石家莊市 050081endprint