實驗二(內核移植)修改版_第1頁
實驗二(內核移植)修改版_第2頁
實驗二(內核移植)修改版_第3頁
實驗二(內核移植)修改版_第4頁
實驗二(內核移植)修改版_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2023/2/1實驗二Linux內核的編譯與

文件系統(tǒng)的構建2提綱13245基礎知識實驗目的實驗內容預備知識實驗設備6實驗過程7實驗報告要求31實驗目的掌握交叉編譯環(huán)境的設置掌握嵌入式Linux內核編譯方法掌握嵌入式Linux文件系統(tǒng)編譯方法掌握嵌入式Linux文件加載及啟動的方法42實驗內容設置嵌入式Linux的交叉編譯環(huán)境編譯Linux內核及文件系統(tǒng)加載、運行嵌入式Linux系統(tǒng)53預備知識掌握虛擬機及Linux系統(tǒng)的安裝方法掌握Linux系統(tǒng)的常用命令掌握vi編輯器的使用方法掌握make工具的使用方法掌握Linux內核的構成掌握Busybox文件的用途64實驗設備JXARM9-2440教學實驗箱ADT2000仿真器和ADTIDE集成開發(fā)環(huán)境串口連接線、網絡連接線75基礎知識Linux映像由內核(kernel)和文件系統(tǒng)(fs)組成。可將kernel和fs統(tǒng)一編譯到一個映像(image)文件中,也可以將kernel和fs獨立地放置于不同的映像文件中(燒寫到FLASH的不同區(qū)域),這需要通過修改Makefile文件和內核中的文件系統(tǒng)加載代碼實現(xiàn)。本系統(tǒng)中kernel和fs分別位于不同的映像文件中。分別為(ramdisk.gz和zImage)。Linux支持壓縮核心(zImage),它是對原核心映像文件(linux.bin)進行壓縮,并在壓縮后的文件頭部添加一段解壓縮代碼。在zImage運行時,先運行這段解壓縮代碼將程序解壓縮到Linux核心運行地址,完成后,跳轉到核心運行。Linux開發(fā)過程BOOTLOADER開發(fā)Linux開發(fā)環(huán)境建立Linux內核移植應用程序開發(fā)5基礎知識引導Linux燒寫Linux內核映像和文件系統(tǒng)初始化硬件5基礎知識支持Linux開發(fā)的BOOTLOADERGNU的交叉編譯器,包括以下組件:1.Gcc交叉編譯器,即在宿主機上開發(fā)編譯目標上可運行的二進制文件;2.Binutils輔助工具,包括objdump、objcopy等;3.Gdb調試器。對于ARM可以采用如下兩個版本的編譯器:arm-elf-arm-linux-5基礎知識GNU交叉編譯(GNU'sNotUnix)arm-linux-gcc GNUC編譯器arm-linux-ld 連接器arm-linux-as 編譯gcc輸出的匯編文件arm-linux-objdump 顯示目標文件信息arm-linux-objcopy 復制目標文件內容arm-linux-ar 建立、修改、提取歸檔文件5基礎知識arm-linux-交叉編譯器(推薦使用)Windows環(huán)境+CygwinWindows環(huán)境+VMWare虛擬機(安裝RedHat9.0)Linux環(huán)境,推薦RedHat9.0單機模式(一臺計算機)雙機模式(兩臺計算機)Windows+Linux5基礎知識Linux開發(fā)環(huán)境建立必須采用支持GDB的調試器(如ADT1000A)才能進行調試,否則只能通過BOOTLOADER進行簡單的程序燒寫運行等調試信息的打印可以通過串口完成,使用linux下的minicom超級終端程序(類似于Windows上的超級終端工具)接收并顯示目標板傳送的打印信息Linux串口驅動完成后,可以通過內核打印函數(shù)printk向串口打印信息,這是Linux內核調試過程中最有效的手段5基礎知識在linux環(huán)境下進行Linux開發(fā)Linux內核配置和編譯等在Cygwin環(huán)境下運行,程序編輯和調試都在Windows環(huán)境下進行,必須采用支持Windows下進行l(wèi)inux調試的調試器(如ADT1000A)才能進行調試,否則只能通過BOOTLOADER進行簡單的程序燒寫運行等調試信息的打印可以通過串口完成,使用Windows上的超級終端工具接收并顯示目標板傳送的打印信息Cygwin是運行于Windows中的一個應用程序,它可以使得Linux環(huán)境下的應用程序可以在Cygwin環(huán)境下進行編譯,即可以在Windows進行編譯。5基礎知識在Windows+Cygwin環(huán)境下進行Linux開發(fā)如果需要使用在Windows環(huán)境下調試的調試器,可通過在VMWare中安裝linux虛擬機,在虛擬機中進行編輯、編譯Linux,然后通過網絡(ftp、nfs、ssh)等手段傳送到Windows中,進行調試,這樣編譯和調試可以分別在linux和windows環(huán)境下但是是在一臺電腦中完成,它的缺點是系統(tǒng)要求較高,運行速度慢。也可以在兩臺電腦中分別安裝linux和windows,分別實現(xiàn)編譯和調試。VMWare是運行于Windows中的一個應用程序,是一個虛擬機,可以在其上安裝多個操作系統(tǒng),相當于在Windows上安裝一個虛擬的操作系統(tǒng)。5基礎知識在Windows+VMWare虛擬機環(huán)境下進行Linux開發(fā)Linux內核的移植可以分為板級移植和片級移植。對于Linux發(fā)行版本中已經支持的CPU通常只需要針對板級硬件進行適當?shù)男薷募纯桑@種移植叫做板級移植。而對于Linux發(fā)行版本中沒有支持的CPU則需要添加相應CPU的內核移植,這種移植叫做片級移植。片級移植相對板級移植來說要復雜許多,本系統(tǒng)采用的Linux發(fā)行版本中已經包含S3C2440XARM920T處理器的移植包,因此,只需要在其上進行Linux板級移植的基本過程和方法。5基礎知識Linux內核移植linuxDocumentationarchdriversfsincludeinitmmlibnetscript幫助文檔體系結構相關源代碼驅動程序文件系統(tǒng)頭文件kernel初始化Linux內存管理常用函數(shù)網絡協(xié)議源代碼腳本文件5基礎知識Linux內核的目錄結構armbootkernellibmach-s3c2440vmlinux.lds壓縮內核啟動引導代碼內核起始代碼常用函數(shù)s3c2440平臺相關代碼核心的連接腳本文件與架構和平臺相關的源代碼都放在arch目錄下,對于ARM的Linux,包含于arch目錄下的arm子目錄中。5基礎知識Linux內核的arch目錄配置內核編譯內核下載、運行、調試內核5基礎知識Linux內核移植配置Linux內核makeconfigmakemenuconfigmakexconfig5基礎知識配置Linux內核系統(tǒng)及其存儲器配置網絡支持顯示器支持觸摸屏支持5基礎知識Linux常用配置選項在‘SystemType’菜單中中進行配置選擇系統(tǒng)類型處理器型號選擇處理器其它特性(USB支持等)5基礎知識系統(tǒng)及其存儲器配置在’Networkingoptions’以及’Networkdevicesupport’中進行配置選擇支持TCP/IP協(xié)議5基礎知識網絡支持在’Networkdevicesupport’配置中,添加選項’Networkdevicesupport’,并在’Ethernet(10or100Mbit)’中選擇’OtherISAcards’,如下圖所示選擇NE2000/NE1000support采用RTL8019網卡芯片,為NE2000兼容網卡芯片,因此,選擇該網卡5基礎知識網絡支持在’Characterdevices’以及’Consoledrivers’中進行配置。在’Characterdevices’配置中,添加選項’Virtualterminal’配置,如下圖所示。Virtualterminal支持5基礎知識顯示器支持在’Consoledrivers’中添加’SupportFramebufferdevices’配置采用256色STN顯示器,因此必須選擇8bpp支持5基礎知識顯示器支持在’Characterdevices’的’SupportS3C2440TouchScreen’子菜單中進行配置選擇s3c2440觸摸屏支持5基礎知識觸摸屏支持編譯Linux內核建立依賴關系

makedep編譯內核 make編譯內核

makezImage編譯壓縮核心zImage編譯生成的Linux映像文件zImage通常保存在arch/arm/boot/目錄下5基礎知識編譯Linux內核通過調試器下載內核并運行通過BOOTLOADER下載內核到SDRAM中運行通過BOOTLOADER將內核燒寫到FLASH中,然后運行Linux5基礎知識下載、運行和調試內核在Linux開發(fā)中,由于可能沒有標準鍵盤和顯示器支持,因此,通常通過串口將顯示信息發(fā)送到主機,由主機端超級終端工具接收,以完成顯示功能。同時在超級終端中可以輸入數(shù)據(jù),然后由Linux接收,以完成標準鍵盤功能。調試過程中也可以通過串口將調試信息打印到超級終端,這是Linux最有效和最簡單的方法。5基礎知識Linux調試手段對于板級移植,內核移植主要包括如下幾個部分:內核配置,包括板級包配置,如S3C44B0X-MBA44體系結構相關代碼修改,根據(jù)板級包的配置,修改相應的體系結構相關代碼,包括:壓縮核心啟動代碼:linux/arch/arm/boot/內核啟動代碼:linux/arch/arm/kernel/板級相關代碼:linux/arch/arm/mach-s3c2440/5基礎知識Linux內核移植主要過程對于板級移植,內核移植主要包括如下幾個部分:連接腳本核心連接腳本:linux/arch/arm/vmlinux.lds壓縮核心連接腳本:linux/arch/arm/boot/compressed/linux.lds5基礎知識Linux內核移植主要過程加載文件系統(tǒng)ramdisk編寫驅動程序 驅動程序目錄:linux/drivers/

網卡驅動程序:linux/drivers/net/ne.c LCD驅動程序:linux/drivers/video/s3c2440fb.c

觸摸屏驅動程序:linux/drivers/char/s3c2440-ts.c5基礎知識Linux內核移植主要過程解壓縮核心核心打印信息內核命令行存儲器5基礎知識Linux啟動過程IIC總線初始化FrameBuffer顯示初始化5基礎知識Linux啟動過程Linux控制臺5基礎知識Linux啟動過程文件系統(tǒng)指文件存在的物理空間。在Linux系統(tǒng)中,每個分區(qū)都是一個文件系統(tǒng),都有自己的目錄層次結構。Linux的最重要特征之一就是支持多種文件系統(tǒng),這樣它更加靈活,并可以和許多其它種操作系統(tǒng)共存。5基礎知識Linux文件系統(tǒng)VirtualFileSystem(虛擬文件系統(tǒng))使得Linux可以支持多個不同的文件系統(tǒng)。由于系統(tǒng)已將Linux文件系統(tǒng)的所有細節(jié)進行了轉換,所以Linux核心的其它部分及系統(tǒng)中運行的程序將看到統(tǒng)一的文件系統(tǒng)。Linux的虛擬文件系統(tǒng)允許用戶同時能透明地安裝許多不同的文件系統(tǒng)。虛擬文件系統(tǒng)是為Linux用戶提供快速且高效的文件訪問服務而設計的。5基礎知識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基礎知識常用Linux文件系統(tǒng)406實驗過程安裝Vmware安裝Linux配置交叉編譯環(huán)境配置內核編譯Linux內核及文件系統(tǒng)下載映像文件運行嵌入式Linux系統(tǒng)41主機:RedLinux目標機:S3C2440安裝Linux安裝交叉編譯器配置Linux內核編譯內核zImage啟動U-BOOT下載映像文件運行Linux42解壓交叉編譯工具鏈43拷貝交叉編譯工具鏈44修改環(huán)境變量45修改環(huán)境變量46運行文件查看環(huán)境變量4748修改虛擬機的IP地址,防止和windows系統(tǒng)的ip沖突495051關閉防火墻52535455測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論