官术网_书友最值得收藏!

2.11 實驗:編譯Linux內核

實驗目的:

了解ARM系統內核的編譯過程。

實驗內容:

完成Linux內核的編譯。

預備知識:

熟悉Linux的基本操作。

實驗設備:

安裝Redhat9的PC,配置好ARM-Linux的開發環境。

實驗步驟:

1. 查看內核文件結構

打開Linux下的一個終端,輸入:

            cd /s3c2410_linux/kernel/

即可進入Linux內核文件所在的目錄,然后輸入:

            ls

此時在屏幕上即可輸出Linux內核所包含的文件。

2. 清理以前的編譯結果

在打開的終端上輸入:

            make clean
            make dep

在按回車鍵后即可清理掉以前的編譯結果。

3. 編譯內核

在打開的終端上輸入:

            make menuconfig   /*推薦使用*/

這條命令是用來調用菜單式的配制內核界面的,相應的還有命令行式的配制方法

            make config      /*不推薦使用*/

在按回車鍵后即會出現類似于vivi的配置界面的界面,如圖2-16所示。

圖2-16 Linux內核配置菜單圖

下面簡單介紹一下各個選項的含義。

(1)Code maturity level options

這個選項的作用域是整個配置空間,如果在這里選中響應的級別,則不符合此條件的選項就不會在后面出現。這個選項是代碼的成熟程度的選擇,意思是如果你需要一個非常成熟穩定的系統,那么有些新功能就不能使用,并且一個包含有新功能的系統就可能存在相應的風險,可以根據自己的需求選擇。進入“Code maturity level options”菜單后的畫面如圖2-17所示。

圖2-17 “Code maturity level options”菜單配置圖

(2)Loadable module support

這個選項是你的內核對內核模塊的支持選項,包括是否支持和支持的一些配置等,選擇此項會使內核文件變大。進入“Loadable module support”后的菜單畫面如圖2-18所示。

圖2-18 “Loadable module support”菜單配置圖

(3)System Type

選擇對系統的支持,如選擇什么樣的ARM內核、什么樣的配置平臺等。實驗儀提供的內核是給S3C2410提供的,如果使用不同的處理器系統或是不同的內核,此處的選項可能不同。進入“System Type”后的菜單畫面如圖2-19所示。

圖2-19 “System Type”菜單配置圖

(4)General setup

這里是內核本身的一些屬性的配置,包括壓縮方式、網絡支持等很多屬性。進入“General setup”后的菜單畫面如圖2-20所示。

圖2-20 “General Setup”菜單配置圖

(5)Parallel port support

這個選項顧名思義就是選擇內核對并口的支持,當選中對并口支持后會出現新的選項來配置不同類型、不同模式的并口。進入“Parallel port support”后的菜單畫面如圖2-21所示。

圖2-21 “Parallel port support”菜單配置圖

(6)Memory Technology Devices (MTD)

這個選項是對MTD設備的支持選項,對嵌入式系統比較重要,內核對各種Flash的支持都在這里配置,包括種類、分區等。進入Memory Technology Devices后的菜單畫面如圖2-22所示。

圖2-22 “Memory Technology Devices”菜單配置圖

(7)Plug and Play configuration

內核對即插即用的支持選項,這個選項在嵌入式系統中極少使用。進入“Plug and Play Support”后的菜單畫面如圖2-23所示。

圖2-23 “Plug and Play configuration”菜單配置圖

(8)Block device

內核對塊設備的支持選項,支持各種磁盤系統。進入“Block device”后的菜單畫面如圖2-24所示。

圖2-24 “Block device”菜單配置圖

(9)Multi-device support(RAID and LVM)

內核對多設備的支持選項,主要是對RAID和LVM的支持,這個在嵌入式系統中極少使用。進入“Multi-device support(RAID and LVM)”后的菜單畫面如圖2-25所示。

圖2-25 “Multi-device support(RAID and LVM)”菜單配置圖

(10)Networking options

內核的網絡支持選項,Linux對網絡的支持是內核級的,在這里可以配置對不同網絡協議的支持情況。進入“Networking options”后的菜單畫面如圖2-26所示。

圖2-26 “Networking options”菜單配置圖

(11)Network device support

內核對網絡設備的支持選項,通常對網卡的支持在這里選擇,是常用的選項,例如系統在配置不同的網卡時就要在這里選中不同的選項。進入“Network device support”后的菜單畫面如圖2-27所示。

圖2-27 “Network device support”菜單配置圖

(12)Amateur Radio support

業余無線電支持選項,在嵌入式系統中極少使用。進入“Amateur Radio support”后的菜單畫面如圖2-28所示。

圖2-28 “Amateur Radio support”菜單配置圖

(13)IrDA (infraed) support

IrDA支持選項,就是對紅外線通信口的支持。進入“IrDA (infraed) support”后的菜單畫面如圖2-29所示。

圖2-29 “IrDA (infraed)support”菜單配置圖

(14)ATA/IDE/MFM/RLL support

對IDE口的支持選項,這里選擇支持不同的IDE設備,包括CDPOM、HARDDISK、TAP等。進入“ATA/IDE/MFM/RLL support”后的菜單畫面如圖2-30所示。

圖2-30 “ATA/IDE/MFM/RLL support”菜單配置圖

(15)SCSI support

SCSI設備的支持選項,也比較少使用。進入“SCSI support”后的菜單畫面如圖2-31所示。

圖2-31 “SCSI support”菜單配置圖

(16)I2O device support

智能IO結構支持,在嵌入式系統中也比較少使用。進入“I2O device support”后的菜單畫面如圖2-32所示。

圖2-32 “I2O device support”菜單配置圖

(17)ISDN subsystem

ISDN的支持選項。進入“ISDN subsystem”后的菜單畫面如圖2-33所示。

圖2-33 “ISDN subsystem”菜單配置圖

(18)Input core support

輸入設備核支持選項,通常當需要支持USAB的HID設備時選中。進入“Input core support”后的菜單畫面如圖2-34所示。

圖2-34 “Input core support”菜單配置圖

(19)Character devices

字符型設備的支持選項,這個選項是在嵌入式系統中經常使用的選項,嵌入式系統中大量的設備都屬于Char型的設備。進入“Character devices”后的菜單畫面如圖2-35所示。

圖2-35 “Character devices”菜單配置圖

(20)Multimedia devices

多媒體設備的支持選項。進入“Multimedia devices”后的菜單畫面如圖2-36所示。

圖2-36 “Multimedia devices”菜單配置圖

(21)File systems

內核對不同文件系統的支持選項,在這里選擇需要支持的文件系統。進入“File systems”后的菜單畫面如圖2-37所示。

圖2-37 “File systems”菜單配置圖

(22)Console drivers

控制臺的選擇選項,這里主要選擇是否把Console定位到VGA上面,以及是否對Frame-Buffer支持。進入“Console drivers”后的菜單畫面如圖2-38所示。

圖2-38 “Console drivers”菜單配置圖

(23)Sound

對聲音設備的支持選項。進入“Sound”后的菜單畫面如圖2-39所示。

圖2-39 “Sound”菜單配置圖

(24)Mutimedia Capabilities Port drivers

多媒體設備的支持選項。進入“Mutimedia Capabilities Port drivers”后的菜單畫面如圖2-40所示。

圖2-40 “Mutimedia Capabilities Port drivers”菜單配置圖

(25)USB support

各種USB設備的支持選項。進入“USB support”后的菜單畫面如圖2-41所示。

圖2-41 “support for USB”菜單配置圖

(26)Bluetooth support

藍牙設備的支持選項。進入“Bluetooth support”后的菜單畫面如圖2-42所示。

圖2-42 “Bluetooth Subsystem support”菜單配置圖

(27)Kernel backing

內核Debug用的一些選項,用于報告各種信息。進入“Kernel backing”后的菜單畫面如圖2-43所示。

圖2-43 “Kernel backing”菜單配置圖

(28)Load and Alternate Configration File

Load不同的配置文件。進入“Load and Alternate Configration File”后的菜單畫面如圖2-44所示。

圖2-44 “Load and Alternate Configration File”菜單配置圖

(29)Save Configration to an Alternate File

保存配置文件。進入“Save Configration to an Alternate File”后的菜單畫面如圖2-45所示。

圖2-45 “Save Configration to an Alternate File”菜單配置圖

在設置好各選項后選擇“Exit”退出和保存就可以了。

4. 生成內核文件

在設置好各選項后退出,輸入:

            make zImage

zImage文件是通過內核編譯后生成的Linux內核文件,按回車鍵后即會在屏幕上看到其相應的生成過程。

5. 編譯模塊驅動程序

當內核編譯完成后輸入:

            make modules

即可開始模塊驅動程序的編譯,凡是在menuconfig中被選為<M>的都會在這條命令運行時被編譯。

至此內核的編譯已經完成,把生成的zImage文件復制到/tftpboot/目錄中備用:

            cp ./arch/arm/boot/zImage /tftpboot/ -f

實驗小結:

本次實驗編譯了Linux內核。內核的配置選項很多,本實驗儀提供的內核文件已經做好了相應的配置,如果想深入了解內核,還需要很多相關的知識。

主站蜘蛛池模板: 永吉县| 武鸣县| 福海县| 财经| 枝江市| 外汇| 无为县| 神木县| 五河县| 乐至县| 图木舒克市| 德钦县| 岚皋县| 麦盖提县| 凌源市| 集安市| 禄劝| 秦皇岛市| 监利县| 瓮安县| 洛扎县| 神木县| 织金县| 盐源县| 清远市| 叙永县| 扶沟县| 日照市| 抚顺县| 岫岩| 石屏县| 朝阳区| 大渡口区| 高唐县| 沿河| 台南市| 靖西县| 公主岭市| 桦川县| 常德市| 鄯善县|