版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023/2/1實(shí)驗(yàn)二Linux內(nèi)核的編譯與
文件系統(tǒng)的構(gòu)建2提綱13245基礎(chǔ)知識(shí)實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容預(yù)備知識(shí)實(shí)驗(yàn)設(shè)備6實(shí)驗(yàn)過程7實(shí)驗(yàn)報(bào)告要求31實(shí)驗(yàn)?zāi)康恼莆战徊婢幾g環(huán)境的設(shè)置掌握嵌入式Linux內(nèi)核編譯方法掌握嵌入式Linux文件系統(tǒng)編譯方法掌握嵌入式Linux文件加載及啟動(dòng)的方法42實(shí)驗(yàn)內(nèi)容設(shè)置嵌入式Linux的交叉編譯環(huán)境編譯Linux內(nèi)核及文件系統(tǒng)加載、運(yùn)行嵌入式Linux系統(tǒng)53預(yù)備知識(shí)掌握虛擬機(jī)及Linux系統(tǒng)的安裝方法掌握Linux系統(tǒng)的常用命令掌握vi編輯器的使用方法掌握make工具的使用方法掌握Linux內(nèi)核的構(gòu)成掌握Busybox文件的用途64實(shí)驗(yàn)設(shè)備JXARM9-2440教學(xué)實(shí)驗(yàn)箱ADT2000仿真器和ADTIDE集成開發(fā)環(huán)境串口連接線、網(wǎng)絡(luò)連接線75基礎(chǔ)知識(shí)Linux映像由內(nèi)核(kernel)和文件系統(tǒng)(fs)組成??蓪ernel和fs統(tǒng)一編譯到一個(gè)映像(image)文件中,也可以將kernel和fs獨(dú)立地放置于不同的映像文件中(燒寫到FLASH的不同區(qū)域),這需要通過修改Makefile文件和內(nèi)核中的文件系統(tǒng)加載代碼實(shí)現(xiàn)。本系統(tǒng)中kernel和fs分別位于不同的映像文件中。分別為(ramdisk.gz和zImage)。Linux支持壓縮核心(zImage),它是對(duì)原核心映像文件(linux.bin)進(jìn)行壓縮,并在壓縮后的文件頭部添加一段解壓縮代碼。在zImage運(yùn)行時(shí),先運(yùn)行這段解壓縮代碼將程序解壓縮到Linux核心運(yùn)行地址,完成后,跳轉(zhuǎn)到核心運(yùn)行。Linux開發(fā)過程BOOTLOADER開發(fā)Linux開發(fā)環(huán)境建立Linux內(nèi)核移植應(yīng)用程序開發(fā)5基礎(chǔ)知識(shí)引導(dǎo)Linux燒寫Linux內(nèi)核映像和文件系統(tǒng)初始化硬件5基礎(chǔ)知識(shí)支持Linux開發(fā)的BOOTLOADERGNU的交叉編譯器,包括以下組件:1.Gcc交叉編譯器,即在宿主機(jī)上開發(fā)編譯目標(biāo)上可運(yùn)行的二進(jìn)制文件;2.Binutils輔助工具,包括objdump、objcopy等;3.Gdb調(diào)試器。對(duì)于ARM可以采用如下兩個(gè)版本的編譯器:arm-elf-arm-linux-5基礎(chǔ)知識(shí)GNU交叉編譯(GNU'sNotUnix)arm-linux-gcc GNUC編譯器arm-linux-ld 連接器arm-linux-as 編譯gcc輸出的匯編文件arm-linux-objdump 顯示目標(biāo)文件信息arm-linux-objcopy 復(fù)制目標(biāo)文件內(nèi)容arm-linux-ar 建立、修改、提取歸檔文件5基礎(chǔ)知識(shí)arm-linux-交叉編譯器(推薦使用)Windows環(huán)境+CygwinWindows環(huán)境+VMWare虛擬機(jī)(安裝RedHat9.0)Linux環(huán)境,推薦RedHat9.0單機(jī)模式(一臺(tái)計(jì)算機(jī))雙機(jī)模式(兩臺(tái)計(jì)算機(jī))Windows+Linux5基礎(chǔ)知識(shí)Linux開發(fā)環(huán)境建立必須采用支持GDB的調(diào)試器(如ADT1000A)才能進(jìn)行調(diào)試,否則只能通過BOOTLOADER進(jìn)行簡(jiǎn)單的程序燒寫運(yùn)行等調(diào)試信息的打印可以通過串口完成,使用linux下的minicom超級(jí)終端程序(類似于Windows上的超級(jí)終端工具)接收并顯示目標(biāo)板傳送的打印信息Linux串口驅(qū)動(dòng)完成后,可以通過內(nèi)核打印函數(shù)printk向串口打印信息,這是Linux內(nèi)核調(diào)試過程中最有效的手段5基礎(chǔ)知識(shí)在linux環(huán)境下進(jìn)行Linux開發(fā)Linux內(nèi)核配置和編譯等在Cygwin環(huán)境下運(yùn)行,程序編輯和調(diào)試都在Windows環(huán)境下進(jìn)行,必須采用支持Windows下進(jìn)行l(wèi)inux調(diào)試的調(diào)試器(如ADT1000A)才能進(jìn)行調(diào)試,否則只能通過BOOTLOADER進(jìn)行簡(jiǎn)單的程序燒寫運(yùn)行等調(diào)試信息的打印可以通過串口完成,使用Windows上的超級(jí)終端工具接收并顯示目標(biāo)板傳送的打印信息Cygwin是運(yùn)行于Windows中的一個(gè)應(yīng)用程序,它可以使得Linux環(huán)境下的應(yīng)用程序可以在Cygwin環(huán)境下進(jìn)行編譯,即可以在Windows進(jìn)行編譯。5基礎(chǔ)知識(shí)在Windows+Cygwin環(huán)境下進(jìn)行Linux開發(fā)如果需要使用在Windows環(huán)境下調(diào)試的調(diào)試器,可通過在VMWare中安裝linux虛擬機(jī),在虛擬機(jī)中進(jìn)行編輯、編譯Linux,然后通過網(wǎng)絡(luò)(ftp、nfs、ssh)等手段傳送到Windows中,進(jìn)行調(diào)試,這樣編譯和調(diào)試可以分別在linux和windows環(huán)境下但是是在一臺(tái)電腦中完成,它的缺點(diǎn)是系統(tǒng)要求較高,運(yùn)行速度慢。也可以在兩臺(tái)電腦中分別安裝linux和windows,分別實(shí)現(xiàn)編譯和調(diào)試。VMWare是運(yùn)行于Windows中的一個(gè)應(yīng)用程序,是一個(gè)虛擬機(jī),可以在其上安裝多個(gè)操作系統(tǒng),相當(dāng)于在Windows上安裝一個(gè)虛擬的操作系統(tǒng)。5基礎(chǔ)知識(shí)在Windows+VMWare虛擬機(jī)環(huán)境下進(jìn)行Linux開發(fā)Linux內(nèi)核的移植可以分為板級(jí)移植和片級(jí)移植。對(duì)于Linux發(fā)行版本中已經(jīng)支持的CPU通常只需要針對(duì)板級(jí)硬件進(jìn)行適當(dāng)?shù)男薷募纯桑@種移植叫做板級(jí)移植。而對(duì)于Linux發(fā)行版本中沒有支持的CPU則需要添加相應(yīng)CPU的內(nèi)核移植,這種移植叫做片級(jí)移植。片級(jí)移植相對(duì)板級(jí)移植來說要復(fù)雜許多,本系統(tǒng)采用的Linux發(fā)行版本中已經(jīng)包含S3C2440XARM920T處理器的移植包,因此,只需要在其上進(jìn)行Linux板級(jí)移植的基本過程和方法。5基礎(chǔ)知識(shí)Linux內(nèi)核移植linuxDocumentationarchdriversfsincludeinitmmlibnetscript幫助文檔體系結(jié)構(gòu)相關(guān)源代碼驅(qū)動(dòng)程序文件系統(tǒng)頭文件kernel初始化Linux內(nèi)存管理常用函數(shù)網(wǎng)絡(luò)協(xié)議源代碼腳本文件5基礎(chǔ)知識(shí)Linux內(nèi)核的目錄結(jié)構(gòu)armbootkernellibmach-s3c2440vmlinux.lds壓縮內(nèi)核啟動(dòng)引導(dǎo)代碼內(nèi)核起始代碼常用函數(shù)s3c2440平臺(tái)相關(guān)代碼核心的連接腳本文件與架構(gòu)和平臺(tái)相關(guān)的源代碼都放在arch目錄下,對(duì)于ARM的Linux,包含于arch目錄下的arm子目錄中。5基礎(chǔ)知識(shí)Linux內(nèi)核的arch目錄配置內(nèi)核編譯內(nèi)核下載、運(yùn)行、調(diào)試內(nèi)核5基礎(chǔ)知識(shí)Linux內(nèi)核移植配置Linux內(nèi)核makeconfigmakemenuconfigmakexconfig5基礎(chǔ)知識(shí)配置Linux內(nèi)核系統(tǒng)及其存儲(chǔ)器配置網(wǎng)絡(luò)支持顯示器支持觸摸屏支持5基礎(chǔ)知識(shí)Linux常用配置選項(xiàng)在‘SystemType’菜單中中進(jìn)行配置選擇系統(tǒng)類型處理器型號(hào)選擇處理器其它特性(USB支持等)5基礎(chǔ)知識(shí)系統(tǒng)及其存儲(chǔ)器配置在’Networkingoptions’以及’Networkdevicesupport’中進(jìn)行配置選擇支持TCP/IP協(xié)議5基礎(chǔ)知識(shí)網(wǎng)絡(luò)支持在’Networkdevicesupport’配置中,添加選項(xiàng)’Networkdevicesupport’,并在’Ethernet(10or100Mbit)’中選擇’OtherISAcards’,如下圖所示選擇NE2000/NE1000support采用RTL8019網(wǎng)卡芯片,為NE2000兼容網(wǎng)卡芯片,因此,選擇該網(wǎng)卡5基礎(chǔ)知識(shí)網(wǎng)絡(luò)支持在’Characterdevices’以及’Consoledrivers’中進(jìn)行配置。在’Characterdevices’配置中,添加選項(xiàng)’Virtualterminal’配置,如下圖所示。Virtualterminal支持5基礎(chǔ)知識(shí)顯示器支持在’Consoledrivers’中添加’SupportFramebufferdevices’配置采用256色STN顯示器,因此必須選擇8bpp支持5基礎(chǔ)知識(shí)顯示器支持在’Characterdevices’的’SupportS3C2440TouchScreen’子菜單中進(jìn)行配置選擇s3c2440觸摸屏支持5基礎(chǔ)知識(shí)觸摸屏支持編譯Linux內(nèi)核建立依賴關(guān)系
makedep編譯內(nèi)核 make編譯內(nèi)核
makezImage編譯壓縮核心zImage編譯生成的Linux映像文件zImage通常保存在arch/arm/boot/目錄下5基礎(chǔ)知識(shí)編譯Linux內(nèi)核通過調(diào)試器下載內(nèi)核并運(yùn)行通過BOOTLOADER下載內(nèi)核到SDRAM中運(yùn)行通過BOOTLOADER將內(nèi)核燒寫到FLASH中,然后運(yùn)行Linux5基礎(chǔ)知識(shí)下載、運(yùn)行和調(diào)試內(nèi)核在Linux開發(fā)中,由于可能沒有標(biāo)準(zhǔn)鍵盤和顯示器支持,因此,通常通過串口將顯示信息發(fā)送到主機(jī),由主機(jī)端超級(jí)終端工具接收,以完成顯示功能。同時(shí)在超級(jí)終端中可以輸入數(shù)據(jù),然后由Linux接收,以完成標(biāo)準(zhǔn)鍵盤功能。調(diào)試過程中也可以通過串口將調(diào)試信息打印到超級(jí)終端,這是Linux最有效和最簡(jiǎn)單的方法。5基礎(chǔ)知識(shí)Linux調(diào)試手段對(duì)于板級(jí)移植,內(nèi)核移植主要包括如下幾個(gè)部分:內(nèi)核配置,包括板級(jí)包配置,如S3C44B0X-MBA44體系結(jié)構(gòu)相關(guān)代碼修改,根據(jù)板級(jí)包的配置,修改相應(yīng)的體系結(jié)構(gòu)相關(guān)代碼,包括:壓縮核心啟動(dòng)代碼:linux/arch/arm/boot/內(nèi)核啟動(dòng)代碼:linux/arch/arm/kernel/板級(jí)相關(guān)代碼:linux/arch/arm/mach-s3c2440/5基礎(chǔ)知識(shí)Linux內(nèi)核移植主要過程對(duì)于板級(jí)移植,內(nèi)核移植主要包括如下幾個(gè)部分:連接腳本核心連接腳本:linux/arch/arm/vmlinux.lds壓縮核心連接腳本:linux/arch/arm/boot/compressed/linux.lds5基礎(chǔ)知識(shí)Linux內(nèi)核移植主要過程加載文件系統(tǒng)ramdisk編寫驅(qū)動(dòng)程序 驅(qū)動(dòng)程序目錄:linux/drivers/
網(wǎng)卡驅(qū)動(dòng)程序:linux/drivers/net/ne.c LCD驅(qū)動(dòng)程序:linux/drivers/video/s3c2440fb.c
觸摸屏驅(qū)動(dòng)程序:linux/drivers/char/s3c2440-ts.c5基礎(chǔ)知識(shí)Linux內(nèi)核移植主要過程解壓縮核心核心打印信息內(nèi)核命令行存儲(chǔ)器5基礎(chǔ)知識(shí)Linux啟動(dòng)過程IIC總線初始化FrameBuffer顯示初始化5基礎(chǔ)知識(shí)Linux啟動(dòng)過程Linux控制臺(tái)5基礎(chǔ)知識(shí)Linux啟動(dòng)過程文件系統(tǒng)指文件存在的物理空間。在Linux系統(tǒng)中,每個(gè)分區(qū)都是一個(gè)文件系統(tǒng),都有自己的目錄層次結(jié)構(gòu)。Linux的最重要特征之一就是支持多種文件系統(tǒng),這樣它更加靈活,并可以和許多其它種操作系統(tǒng)共存。5基礎(chǔ)知識(shí)Linux文件系統(tǒng)VirtualFileSystem(虛擬文件系統(tǒng))使得Linux可以支持多個(gè)不同的文件系統(tǒng)。由于系統(tǒng)已將Linux文件系統(tǒng)的所有細(xì)節(jié)進(jìn)行了轉(zhuǎn)換,所以Linux核心的其它部分及系統(tǒng)中運(yùn)行的程序?qū)⒖吹浇y(tǒng)一的文件系統(tǒng)。Linux的虛擬文件系統(tǒng)允許用戶同時(shí)能透明地安裝許多不同的文件系統(tǒng)。虛擬文件系統(tǒng)是為L(zhǎng)inux用戶提供快速且高效的文件訪問服務(wù)而設(shè)計(jì)的。5基礎(chǔ)知識(shí)Linux文件系統(tǒng)Linux系統(tǒng)核心可以支持十多種文件系統(tǒng)類型:JFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC、romfs等。5基礎(chǔ)知識(shí)常用Linux文件系統(tǒng)406實(shí)驗(yàn)過程安裝Vmware安裝Linux配置交叉編譯環(huán)境配置內(nèi)核編譯Linux內(nèi)核及文件系統(tǒng)下載映像文件運(yùn)行嵌入式Linux系統(tǒng)41主機(jī):RedLinux目標(biāo)機(jī):S3C2440安裝Linux安裝交叉編譯器配置Linux內(nèi)核編譯內(nèi)核zImage啟動(dòng)U-BOOT下載映像文件運(yùn)行Linux42解壓交叉編譯工具鏈43拷貝交叉編譯工具鏈44修改環(huán)境變量45修改環(huán)境變量46運(yùn)行文件查看環(huán)境變量4748修改虛擬機(jī)的IP地址,防止和windows系統(tǒng)的ip沖突495051關(guān)閉防火墻52535455測(cè)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年獵頭服務(wù)定制合同
- 2024年主題公園招商合同范本3篇
- 2024年學(xué)生托管服務(wù)與心理咨詢服務(wù)合作協(xié)議3篇
- 餐廳年度工作計(jì)劃11篇
- 安防風(fēng)險(xiǎn)評(píng)估報(bào)告
- 政治教師工作計(jì)劃
- 英文感謝信模板錦集10篇
- 幼兒園安全教育心得體會(huì)
- 大學(xué)個(gè)人學(xué)習(xí)規(guī)劃范文7篇
- 城南舊事的觀后感350字
- 教師教學(xué)事故檢討書
- 鐵工電〔2023〕54號(hào)國(guó)鐵集團(tuán)關(guān)于印發(fā)《普速鐵路工務(wù)安全規(guī)則》的通知
- 事業(yè)單位工作人員處分暫行規(guī)定2012
- CJJ 169-2012城鎮(zhèn)道路路面設(shè)計(jì)規(guī)范
- 現(xiàn)代機(jī)械工程圖學(xué) 課件 第10章-裝配圖
- 新概念英語第一冊(cè)1-72課測(cè)試題
- 天貓售后工作總結(jié)
- 國(guó)賽一等獎(jiǎng)經(jīng)驗(yàn)分享
- 2024年試驗(yàn)箱行業(yè)未來三年發(fā)展洞察報(bào)告
- 江西省萍鄉(xiāng)市2023-2024學(xué)年高一上學(xué)期期末生物試題
- 《性格決定命運(yùn)》課件
評(píng)論
0/150
提交評(píng)論