




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章Linux內(nèi)核裁剪與移植4.1Linux內(nèi)核結(jié)構(gòu)4.2內(nèi)核配置選項(xiàng)4.3內(nèi)核裁剪及編譯4.4內(nèi)核升級(jí)4.1Linux內(nèi)核結(jié)構(gòu)4.1.1內(nèi)核的主要組成部分4.1.2內(nèi)核源碼目錄介紹4.1.1內(nèi)核的主要組成部分Linux內(nèi)核主要的5個(gè)部分:進(jìn)程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)接口、進(jìn)程通信。4.1.2內(nèi)核源碼目錄介紹Linux內(nèi)核代碼以源碼樹的形式存放,如果在安裝系統(tǒng)的時(shí)候已經(jīng)安裝了源碼樹,其源碼樹就在/usr/src/linux下。1.a(chǎn)rch目錄arch子目錄包括了所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它的每一個(gè)子目錄都代表一種支持的體系結(jié)構(gòu),例如arm子目錄是關(guān)于ARM平臺(tái)下各種芯片兼容的代碼。2.include目錄include子目錄包括內(nèi)核編譯時(shí)所需要的大部分頭文件。與平臺(tái)無關(guān)的頭文件在include/linux子目錄下,include/scsi目錄則是有關(guān)scsi設(shè)備的頭文件目錄,與arm相關(guān)的頭文件在include/asm-arm子目錄下。3.drivers目錄drivers子目錄放置系統(tǒng)所有的設(shè)備驅(qū)動(dòng)程序。有些驅(qū)動(dòng)是與硬件無關(guān)的,而有些驅(qū)動(dòng)是與硬件平臺(tái)相關(guān)。例如,在USB驅(qū)動(dòng)中,主機(jī)控制器有3種規(guī)格:OHCI
UHCI
EHCI
4.fs目錄fs子目錄列出了Linux支持的所有文件系統(tǒng),目前Linux支持ext3、vfat、ntfs、yaffs2、ramfs、cramfs和romfs等多種文件系統(tǒng)。在嵌入式系統(tǒng)中常用的閃存設(shè)備的文件系統(tǒng)有cramfs、romfs、ramfs、jffs2、yaffs等文件系統(tǒng)。5.init目錄init子目錄包含核心的初始化代碼(注意,不是系統(tǒng)的引導(dǎo)代碼)。它包含兩個(gè)文件main.c和version.c,這是研究核心如何工作的一個(gè)非常好的起點(diǎn)。6.ipc目錄ipc子目錄包含核心進(jìn)程間的通信代碼。Linux下進(jìn)程間通信機(jī)制主要包括管道、信號(hào)、消息隊(duì)列、共享內(nèi)存、信號(hào)量、套接口。7.kernel目錄kernel子目錄包含內(nèi)核管理的核心代碼。與處理器結(jié)構(gòu)相關(guān)代碼都放在arch/*/kernel目錄下。8.net目錄net子目錄里是核心的網(wǎng)絡(luò)部分代碼,其每個(gè)子目錄存放一個(gè)具體的網(wǎng)絡(luò)協(xié)議或者網(wǎng)絡(luò)模型代碼。9.mm目錄mm子目錄包含了所有的內(nèi)存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼位于arch/*/mm目錄下。10.scripts目錄scripts子目錄包含用于配置核心的腳本文件。11.lib目錄lib子目錄包含了核心的庫代碼,與處理器結(jié)構(gòu)相關(guān)的庫代碼被放在arch/*/lib/目錄下。4.2內(nèi)核配置選項(xiàng)4.2.1一般選項(xiàng)4.2.2內(nèi)核模塊加載方式支持選項(xiàng)4.2.3系統(tǒng)調(diào)用、類型、特性、啟動(dòng)相關(guān)選項(xiàng)4.2.4網(wǎng)絡(luò)協(xié)議支持相關(guān)選項(xiàng)4.2.5設(shè)備驅(qū)動(dòng)支持相關(guān)選項(xiàng)4.2.6文件系統(tǒng)類型支持相關(guān)選項(xiàng)4.2.7安全相關(guān)選項(xiàng)4.2.8其他選項(xiàng)4.2.1一般選項(xiàng)選項(xiàng)名說
明Automaticallyappendversioninformationtotheversionstring自動(dòng)在版本后添加版本信息,編譯時(shí)需要有perl及git倉庫支持,通常可以不選Supportforpagingofanonymousmemory(swap)支持交換內(nèi)存,通常選擇SystemVIPC進(jìn)程間通信,通常需要配置POSIXMessageQueuesPOSIX消息隊(duì)列,通常需要配置BSDProcessAccounting可以將行程資料記錄下來,通常建議配置Exporttask/processstatisticsthroughnetlink通過netlink接口向用戶空間導(dǎo)出任務(wù)/進(jìn)程的統(tǒng)計(jì)
信息Auditingsupport審計(jì)支持,某些內(nèi)核模塊(例如SELinux)需要配置RCUsubsystem同步機(jī)制Kernel.configsupport提供.config配置文件支持Kernellogbuffersize(16=>64KB,17=>128KB)內(nèi)核日志緩沖區(qū)大小(16代表64KB,17代表128KB)GroupCPUschedulerCPU組調(diào)度ControlGroupsupport控制組支持Createdeprecatedsysfslayoutforolderuserspacetools為舊的用戶空間工具創(chuàng)建過時(shí)的文件系統(tǒng)風(fēng)格Kernel->userspacerelaysupport(formerly
relayfs)在某些文件系統(tǒng)上(比如debugfs)提供從內(nèi)核空間向用戶空間傳遞大量數(shù)據(jù)的接口Namespacesupport命名空間支持InitialRAMfilesystemandRAMdisk(initramfs/initrd)support初始化RAM文件系統(tǒng)的源文件。initramfs可以將根文件系統(tǒng)直接編譯進(jìn)內(nèi)核,一般是cipo文件。對(duì)嵌入式系統(tǒng)有用Optimizeforsize代碼優(yōu)化。如果不了解編譯器,建議不選Configurestandardkernelfeatures(forsmallsystems)為特殊環(huán)境準(zhǔn)備的內(nèi)核選項(xiàng),通常不需要這些非標(biāo)準(zhǔn)內(nèi)核Disableheaprandomization禁用隨機(jī)heap(heap堆是一個(gè)應(yīng)用層的概念,即堆對(duì)CPU是不可見的,它的實(shí)現(xiàn)方式有多種,可以由OS實(shí)現(xiàn),也可以由運(yùn)行庫實(shí)現(xiàn),也可以在一個(gè)棧中來實(shí)現(xiàn)一個(gè)堆)ChooseSLABallocator選擇內(nèi)存分配管理器,建議選擇Profilingsupport支持系統(tǒng)評(píng)測(cè),建議不選Kprobes探測(cè)工具,開發(fā)人員可以選擇,建議不選4.2.2內(nèi)核模塊加載方式支持選項(xiàng)菜單選項(xiàng)(Loadablemodulesupport)的子菜單中包含一些內(nèi)核模塊加載方式選項(xiàng)。選項(xiàng)名說
明Forcedmoduleloading允許強(qiáng)制加載模塊驅(qū)動(dòng)Moduleunloading允許卸載已經(jīng)加載的模塊,建議選擇Forcedmoduleunloading允許強(qiáng)制卸載正在運(yùn)行的模塊,該功能危險(xiǎn),建議不選Moduleversioningsupport允許使用其他內(nèi)核版本的模塊,建議不選Sourcechecksumforallmodules為所有的模塊校驗(yàn)源碼,可以不選4.2.3系統(tǒng)調(diào)用、類型、特性、啟動(dòng)相關(guān)選項(xiàng)菜單選項(xiàng)(Blocklayer)的子菜單中包含一些系統(tǒng)調(diào)用方式選項(xiàng)。選項(xiàng)名說
明SupportforLargeBlockDevicesandfiles使用大容量塊設(shè)備時(shí)選擇Supportfortracingblockioactions支持塊隊(duì)列I/O跟蹤BlocklayerSGsupportv4支持通用scsi塊設(shè)備第4版Blocklayerdataintegritysupport支持塊設(shè)備數(shù)據(jù)完整性IOSchedulersI/O調(diào)度器4.2.3系統(tǒng)調(diào)用、類型、特性、啟動(dòng)相關(guān)選項(xiàng)菜單選項(xiàng)(KernelFeatures)的子菜單中包含一些系統(tǒng)特性選項(xiàng)。選
項(xiàng)
名說
明PreemptibleKernel搶占式內(nèi)核。建議采用UsetheARMEABItocompilethekernel使用ARMEABI編譯內(nèi)核AllowoldABIbinariestorunwiththiskernel使內(nèi)核支持舊版本的ABI程序Memorymodel只有FlatMemory供選擇AddLRUlisttotracknon-evictablepages對(duì)沒有使用的頁采用最近最少使用算法,建議選擇4.2.3系統(tǒng)調(diào)用、類型、特性、啟動(dòng)相關(guān)選項(xiàng)菜單選項(xiàng)(BootOptions)的子菜單中包含一些系統(tǒng)啟動(dòng)選項(xiàng)選項(xiàng)名說
明(0)CompressedROMbootloaderbaseaddressxImage存放的基地址(0)CompressedROMbootloaderBSSaddressBSS地址()DefaultKernelcommandstring內(nèi)核啟動(dòng)參數(shù)KernelExecute-In-PlacefromROM從ROM中直接運(yùn)行內(nèi)核,該內(nèi)核使用makexipImage編譯(0x00080000)XIPKernelPhysicalLocation選擇XIP后,內(nèi)核存放的物理地址KexecsystemcallKexec系統(tǒng)調(diào)用4.2.4網(wǎng)絡(luò)協(xié)議支持相關(guān)選項(xiàng)菜單選項(xiàng)(NetworkingSupport)的子菜單中包含一些網(wǎng)絡(luò)協(xié)議支持的選項(xiàng)。選項(xiàng)名說
明Networkingoptions該菜單的子菜單包含支持的各種具體網(wǎng)絡(luò)協(xié)議,在開發(fā)中可以根據(jù)需要進(jìn)行配置AmateurRadiosupport業(yè)余無線電支持,一般不選CANbussubsystemsupportCAN總線子系統(tǒng)支持IrDA(infrared)subsystemsupport紅外線支持Bluetoothsubsystemsupport藍(lán)牙支持RxRPCsessionsocketsRxRPC會(huì)話套接字支持PhonetprotocolsfamilyPhonet協(xié)議族支持Wireless無線電協(xié)議支持WiMAXWirelessBroadbandsupportWiMAX無線寬帶支持RFswitchsubsystemsupportRF交換子系統(tǒng)支持Plan9ResourceSharingSupport(9P2000)9計(jì)劃資源共享支持4.2.5設(shè)備驅(qū)動(dòng)支持相關(guān)選項(xiàng)菜單選項(xiàng)(Devicedrivers)的子菜單中包含一些設(shè)備驅(qū)動(dòng)的選項(xiàng)。選項(xiàng)名說
明Connector-unifieduserspace<->kernelspacelinker用戶空間和內(nèi)核空間的統(tǒng)一連接器MemoryTechnologyDevices(MTD)supportMTD設(shè)備支持,嵌入式系統(tǒng)使用Debugging調(diào)試功能MTDconcatenatingsupport連接多個(gè)MTD設(shè)備,例如使用JFFS2文件系統(tǒng)管理多片F(xiàn)lash的情形。只有一片F(xiàn)lash時(shí)不選MTDpartitioningsupportFlash分區(qū)支持,建議選擇MTDtestssupportMTD測(cè)試支持RedBootpartitiontableparsing使用RedBoot解析Flash分區(qū)表,如果需要讀取這個(gè)分區(qū)表的信息,選擇此項(xiàng)Commandlinepartitiontableparsing允許通過內(nèi)核命令行傳遞MTD分區(qū)表信息ARMFirmwareSuitepartitionparsing使用AFS分區(qū)信息TIAR7partitioningsupportAR7分區(qū)支持DirectchardeviceaccesstoMTDdevices將系統(tǒng)中的MTD設(shè)備看作字符設(shè)備進(jìn)行讀/寫4.2.6文件系統(tǒng)類型支持相關(guān)選項(xiàng)菜單選項(xiàng)(FileSystems)的子菜單中包含一些文件系統(tǒng)配置的選項(xiàng)。選
項(xiàng)
名說
明SecondextendedfssupportExt2文件系統(tǒng)支持Ext3journallingfilesystemsupportExt3文件系統(tǒng)支持TheExtended4(ext4)filesystemExt4文件系統(tǒng)支持ReiserfssupportReiserfs文件系統(tǒng)支持4.2.7安全相關(guān)選項(xiàng)菜單選項(xiàng)(Securityoptions)的子菜單中包含一些安全配置選項(xiàng)。4.2.8其他選項(xiàng)菜單選項(xiàng)(BusSupport)的子菜單中包含一些總線接口支持,嵌入式系統(tǒng)可以不選。菜單選項(xiàng)(CUPPowerManagement)的子菜單中包含電源管理選項(xiàng),嵌入式系統(tǒng)可以不選。菜單選項(xiàng)(Floating)的子菜單中包含一些總線接口支持,嵌入式系統(tǒng)可以不選。菜單選項(xiàng)(Libraryroutines)的子菜單中包含一些庫配置選項(xiàng),主要提供CRC支持,在開發(fā)通信類產(chǎn)品時(shí)可以選擇對(duì)應(yīng)的CRC。4.3內(nèi)核裁剪及編譯4.3.1安裝內(nèi)核源代碼4.3.2檢查編譯環(huán)境設(shè)置4.3.3配置內(nèi)核4.3.4編譯內(nèi)核4.3.1安裝內(nèi)核源代碼將源代碼壓縮包復(fù)制到/usr/local/arm目錄下,使用tar命令解壓源碼。tar–jxvflinux-2.6.32.tar.bz24.3.2檢查編譯環(huán)境設(shè)置源代碼解壓完成后,進(jìn)入linux-2.6.32目錄下,然后使用VI命令編輯Mackfile。確定編譯環(huán)境為arm交叉編譯工具與本機(jī)安裝的路徑和一致。ARCH=armCROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-4.3.3配置內(nèi)核(1)在一般Generalsetup配置項(xiàng)中選擇子項(xiàng)SystemVIPC。(2)在模塊加載方式中,只選擇子項(xiàng)Moduleunloading,其他可以不選。(3)如果系統(tǒng)沒有對(duì)磁盤調(diào)度方式有特殊的要求,對(duì)blocklayer可以不作任何配置。(4)在系統(tǒng)類型中選擇S3C2410DMAsupport和ForceUARTFIFOonduringbootprocess。(5)對(duì)于總線支持Bussupport配置,一般情況下該選項(xiàng)可以不作配置。(6)在對(duì)系統(tǒng)特性選項(xiàng)進(jìn)行配置時(shí),建議對(duì)選項(xiàng)UsetheARMEABItocompilethekernel。(7)對(duì)啟動(dòng)參數(shù)的配置。(8)選項(xiàng)CPUPowerManagement一般不作配置。(9)選項(xiàng)Floatingpointemulation一般不作配置。4.3.3配置內(nèi)核(10)選項(xiàng)Userspacebinaryformats,配置KernelsupportforELFbinaries。(11)對(duì)于電源管理選項(xiàng)一般不作配置。(12)對(duì)于網(wǎng)絡(luò)選項(xiàng)的支持,配置Networkingoptions中的TCP/IPnetworking和Unixdomainsockets。(13)在設(shè)備驅(qū)動(dòng)選項(xiàng)中添加MTD支持。在網(wǎng)路設(shè)備驅(qū)動(dòng)配置窗口中,選擇Ethernet(10or100Mbit)。在音頻設(shè)備驅(qū)動(dòng)時(shí),應(yīng)該配置Soundcards
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育科技如何為遠(yuǎn)程學(xué)習(xí)注入情感元素
- 教育技術(shù)在課堂實(shí)踐中的多元化應(yīng)用
- 智能化農(nóng)業(yè)科技轉(zhuǎn)化與應(yīng)用-洞察闡釋
- 虛擬現(xiàn)實(shí)技術(shù)在康復(fù)治療中的應(yīng)用-洞察闡釋
- 培訓(xùn)投入產(chǎn)出分析-洞察闡釋
- 深度學(xué)習(xí)在智能決策支持系統(tǒng)中的應(yīng)用研究-洞察闡釋
- 企業(yè)安全生產(chǎn)費(fèi)用提取和使用辦法2019
- 智慧城市出行新篇章交通大數(shù)據(jù)分析與應(yīng)用
- 虛擬水下環(huán)境交互技術(shù)-洞察闡釋
- 生物多樣性保護(hù)策略-第19篇-洞察闡釋
- 2023年松潘縣小升初英語考試題庫及答案解析
- 2023年公路工程監(jiān)理工作合同管理內(nèi)容及有效措施
- 一年級(jí)看圖寫話(教學(xué))課件
- 嚴(yán)重藥物不良反應(yīng)診斷與處理
- 直流屏原理-課件
- 加藥設(shè)備安裝 檢驗(yàn)批施工質(zhì)量驗(yàn)收表
- 盡職調(diào)查所用相關(guān)表格(全)
- 三基-學(xué)校兒童少年衛(wèi)生學(xué)(200題)練習(xí)
- 老年康養(yǎng)服務(wù)中心項(xiàng)目可行性研究報(bào)告寫作參考范文
- 生物質(zhì)中纖維素、半纖維素和木質(zhì)素含量的測(cè)定
- 枸杞采摘合同
評(píng)論
0/150
提交評(píng)論