版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章嵌入式Linux開發(fā)環(huán)境的搭建目標掌握嵌入式交叉編譯環(huán)境的搭建學(xué)會配置Linux下的minicom和windows下的超級終端學(xué)會編譯Linux內(nèi)核一、嵌入式交叉編譯環(huán)境的搭建交叉編譯:就是在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼。編譯最主要的工作就是將程序轉(zhuǎn)化成運行該程序的cpu所能識別的機器代碼。交叉編譯器完整的安裝一般涉及到多個軟件的安裝,包括binutils、gcc、glibc等軟件;下載地址:ftp:///pub/交叉編譯環(huán)境的建立cross-2.95.3.tar.bz2適用于Linux2.4內(nèi)核:///適用于Linux2.6內(nèi)核:///交叉編譯環(huán)境的建立安裝步驟:〔1〕下載放到Windows下的任意盤中〔C盤〕〔2〕重啟機器轉(zhuǎn)到Linux下,并用普通用戶身份登錄?!?〕翻開“終端〞,切換到超級用戶模式下。su-root〔4〕查看所在的Windows下對應(yīng)的分區(qū)的格式,并記下其文件設(shè)備名稱,如“/dev/hdsa1〞等;fdisk–l〔5〕使用mkdir命令,在/mnt新建子目錄作為掛載點Mkdir/mnt/windows〔6〕掛載Windows相應(yīng)的分區(qū)mount–tvfat/dev/had*/mnt/windows交叉編譯環(huán)境的建立〔7〕進入掛載目錄,查看是否確實掛載上。cd/mnt/windowsls(8)在/usr/local下建一名為arm的目錄mkdir/usr/local/arm交叉編譯環(huán)境的建立(9)將復(fù)制到剛剛新建立的目錄中。cp/mnt/windows/arm-linux-gcc-3.3.2.tar.bz2/usr/local/arm(10)將當前工作目錄轉(zhuǎn)到“/usr/local/arm〞下cd/usr/local/arm(11)解壓縮該軟件tar–jxvf交叉編譯環(huán)境的建立(12)將此目錄下的/bin目錄添加到環(huán)境變量中去。exportPATH=/usr/local/arm/3.3.2/bin:$PATH(13)查看該路徑是否已經(jīng)添加到環(huán)境變量中。echo$PATH交叉編譯環(huán)境的建立二、超級終端和Minicom配置及使用1、超級終端:〔1〕Windows下“開始〞->〞附件〞->〞通訊〞->〞超級終端〞,在“名稱〞處可隨意輸入該連接的名稱?!?〕在“連接時使用〞的方式改為“COM1〞,即通過串口1
〔3〕設(shè)置串口連接參數(shù)。每塊開發(fā)板的連接參數(shù)有可能會有差異,其中的具體數(shù)據(jù)在開發(fā)商提供的用戶手冊中有說明。比方:遠峰的YF2410采用的波特率:115200,數(shù)據(jù)為8位,無奇偶校驗位,停止位1,無硬件流;〔4〕根本配置完成,“單擊〞確定,如果把開發(fā)板的串口線和PC機相連,在開發(fā)板上電后,就會顯示超級終端的信息。2、Minicom從internet上得到一個LinuxKernel的軟件包請寫出將其編譯安裝的過程。
linux的內(nèi)核編譯
1.編譯內(nèi)核概述編譯內(nèi)核的原因:(1)新內(nèi)核提供更好的硬件支持能力。新內(nèi)核有某些特殊的優(yōu)點,例如,對多處理器〔SMP〕更好的支持,或者是支持USB。新內(nèi)核修正了一些BUG。(2)你自己定制的內(nèi)核去除了多余的元素,因此它更快,更穩(wěn)定?!沧詈笠粋€原因是最普遍的〕編譯內(nèi)核包含兩大項內(nèi)容,即配置內(nèi)核和編譯內(nèi)核2。編譯前的準備〔1〕了解自己系統(tǒng)的硬件配置情況,比方CPU的類型、主板芯片、顯卡和聲卡的型號等〔2〕首先需要將內(nèi)核源碼下載到/usr/src/目錄下面,然后運行命令tarxzvf,解壓內(nèi)核,這時會建立Linux-2.4.23內(nèi)核源代碼樹?!踩绻阍诎惭b系統(tǒng)的時候,已經(jīng)安裝了內(nèi)核源代碼,而且打算編譯的是當前的內(nèi)核源代碼,那么不需要下載了?!?/p>
linux的內(nèi)核編譯
3.編譯內(nèi)核第一步:配置內(nèi)核
linux的內(nèi)核編譯
利用命令cd/usr/src/linux,進入linux內(nèi)核源代碼目錄。一、在開始配置內(nèi)核之前,首先需要通過下面的命令去除所有的臨時文件、中間件和配置文件。對于一個剛從網(wǎng)上下載的內(nèi)核來說,它肯定是干凈的,這么做只會多此一舉。但是這是一個良好習(xí)慣,而且不會有壞結(jié)果。命令:#makemrproper二、配置內(nèi)核選項,比較常用的有:makemenuconfig一個文本模式、簡單的菜單模式的配置界面。makexconfig基于Tcl/Tk的X圖形配置界面。
linux的內(nèi)核編譯
linux的內(nèi)核編譯
Makemenuconfig配置界面三、根據(jù)自己的需要,進行各個選擇和子選項的配置。對每一個內(nèi)核選項,可以有三個選擇:不包括〔N〕,build-in〔Y〕,和模塊化支持〔M〕。內(nèi)核的配置選項很多,這里就主要選項進行簡要說明,使大家能根據(jù)自己的情況,進行內(nèi)核定制。如果某些項把握不準,可以參考documentation/Configure.help文件,也可在為網(wǎng)絡(luò)上搜索一些文章。
linux的內(nèi)核編譯
1.Loadablemodulesupport〔可加載模塊支持〕其中“Enableloadablemodulesupport〞選項可讓內(nèi)核支持模塊;“Moduleunloading〞選項可以讓用戶卸載不再使用的模塊,如果不選的話用戶將不能卸載任何模塊;“Moduleversioningsupport〔EXPERIMENTAL〕〞選項允許用戶可以使用其它版本內(nèi)核中編譯的模塊,不過并不可靠,所以一般不選擇它;“Automatickernelmoduleloading〞選項允許內(nèi)核自動調(diào)用“modprobe〞命令來加載需要的模塊。模塊是一小段代碼,編譯后可在系統(tǒng)內(nèi)核運行時被動態(tài)地參加內(nèi)核,從而為內(nèi)核增加一些特性或?qū)δ撤N硬件進行支持。一般一些不常用到的驅(qū)動或特性可以編譯為模塊以縮小內(nèi)核的體積。在運行時可以使用“modprobe〞命令把模塊加載到內(nèi)核中去〔在不需要時還可以卸載它〕。
linux的內(nèi)核編譯
2.Setversioninfomationonallsymbolsformodules〔CONFIG_MODVERSIONS〕是有關(guān)內(nèi)核模塊版本控制的選項。如果用戶打算開發(fā)內(nèi)核模塊代碼〔包括當前內(nèi)核源碼樹中之外的任何模塊代碼〕,就開啟這個設(shè)置。一般的用戶可以關(guān)閉。
linux的內(nèi)核編譯
3.〔Pentium-III/Celeron〔Coppermine〕Processorfamily用來選擇CPU類型。它允許內(nèi)核使用高級處理器內(nèi)部的特殊指令。當然,如果用戶的CPU是80386,就沒必要選擇P4。但是如果實在不知該怎么選擇,就選386。這時如果用戶使用高級的CPU,內(nèi)核的運行速度會比它應(yīng)有的速度慢,但至少它能夠運行。建議使用Help和/proc/cpuinfo獲得更多的幫助。
linux的內(nèi)核編譯
4.HighMemorySupport〔CONFIG_NOHIGHMEM〕使內(nèi)核支持大內(nèi)存。通常情況下內(nèi)核只支持1GB內(nèi)存〔實際情況是896MB,它與vmalloc〔〕的實現(xiàn)有關(guān),這超出了我們的討論范圍〕。如果用戶的內(nèi)存數(shù)量超過了896MB,請選擇內(nèi)核對4GB內(nèi)存的支持,甚至64GB內(nèi)存的支持。
linux的內(nèi)核編譯
5.Symmetricmulti-processingsupport〔CONFIG_SMP〕使內(nèi)核支持多處理器。如果用戶有多于一個CPU,那么一定要選這項。6.MaximumnumberofCPUs〔2-32〕用以選擇處理器數(shù)量。對于單CPU用戶來說,選多少都沒有意義。
linux的內(nèi)核編譯
7.Generalsetup表示通用配置。這里可設(shè)置內(nèi)核對虛擬內(nèi)存的支持和為SystemV的進程提供通信機制;通過“Sysctlsupport〞選項可以動態(tài)地更改一些核心參數(shù)與變量,而不需要重新啟動系統(tǒng)8.Filesystems〔文件系統(tǒng)〕這里的內(nèi)容很多,建議在缺省的根底上進行修改。一般需要DOSFAT(FAT16、FAT32)、VFAT,EXT3、NTFS和ISO9660(標準光盤使用的文件系統(tǒng))支持。
linux的內(nèi)核編譯
9.Powermanagementoptions(ACPI、APM)是高級電源管理。要注意ACPI與APM不能同時使用。如果同時配置了這兩者,那么在系統(tǒng)啟動時,假設(shè)發(fā)現(xiàn)一個可工作的ACPI設(shè)備,那么APM將被關(guān)閉,ACPI會被加載.如果想讓Linux支持高級電源管理,例如軟關(guān)機、系統(tǒng)休眠等,需要選擇“PowerManagementsupport〞選項;“SoftwareSuspend〔EXPERIMENTAL〕〞選項可以掛起計算機〔類似WindowsXP中的休眠〕,這個功能不需要高級電源管理的支持;“Processor〞選項可讓處理器在空閑時節(jié)省電能,應(yīng)該選上;“ThermalZone〞選項在系統(tǒng)溫度過高時,及時調(diào)整系統(tǒng)的工作狀態(tài),以保護CPU〔需要硬件的支持〕。
linux的內(nèi)核編譯
10.Busoptions〔PCI、PCMCIA、EISA、MCA和ISA〕用以設(shè)置系統(tǒng)總線。根據(jù)主板參數(shù)自己進行選擇。針對PCI總線的是“PCIsupport〞選項,下面還有ISA和EISA子項,一般都是需要的;“Supportforhot-pluggabledevices〞選項是對熱插拔設(shè)備的支持;“PCMCIA/CardBussupport〞選項支持PCMCIA。11.Executablefileformats表示可執(zhí)行文件格式,一般全要選上
linux的內(nèi)核編譯
12.DeviceDrivers用來選擇設(shè)備驅(qū)動程序。聲卡、顯卡、網(wǎng)卡和電視卡等驅(qū)動都在這里選擇。其中“PlugandPlaysupport〞選項支持即插即用;“Blockdevices〞選項支持塊設(shè)備;“SCSIdevicesupport〞選項支持SCSI設(shè)備;“Multi-devicesupport〔RAIDandLVM〕〞選項支持RAID和邏輯卷;“Networkingsupport〞選項支持網(wǎng)絡(luò),包括網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)設(shè)備,協(xié)議中肯定要“TCP/IP〞項,根據(jù)自己的網(wǎng)卡選擇相應(yīng)的設(shè)備;“USBSupport〞選項該項很重要,平常用的優(yōu)盤就是一種USB設(shè)備
linux的內(nèi)核編譯
四、實質(zhì):執(zhí)行了“make〞之后,系統(tǒng)會在include/linux目錄下生成一個autoconf.h文件。例如,在配置內(nèi)核選項時選擇支持NTFS文件系統(tǒng),并把它編譯進了內(nèi)核,那么在.config中就會生成“CONFIG_NTFS_FS=y〞這項,相應(yīng)的在include/linux/autoconf.h中會生成“#defineCONFIG_NTFS_FS1〞這項。因此所有與NTFS文件系統(tǒng)相關(guān)的C源文件都會包含include/config/ntfs/fs.h這個頭文件。
linux的內(nèi)核編譯
編譯內(nèi)核第二步:編譯內(nèi)核編譯內(nèi)核的軟件環(huán)境是kbuild系統(tǒng),它泛指構(gòu)建一完整并能夠運行的Linux內(nèi)核所需要的一切資源。這些資源包括構(gòu)建程序、腳本、中間件、配置文件和Makefile。依次輸入下面命令,進行編譯過程:makedep;makeclean;makebzImage;makeinstallmakemodules;makemodules_install
linux的內(nèi)核編譯
makedep:kbuild調(diào)用中間件scripts/mkdep來生成描述與相關(guān)核心文件形成依賴關(guān)系的.h文件〔絕大多數(shù)〕列表。這個列表保存在.depend中。用戶即使不執(zhí)行這一步,kbuild也會自動執(zhí)行的。makeclean:這是去除先前編譯產(chǎn)生的諸如.o目標文件等中間文件makebzImage:bzImage構(gòu)建大內(nèi)核鏡像makeinstall:安裝內(nèi)核
linux的內(nèi)核編譯
makemodules:編譯所有被配置為模塊的內(nèi)核組件:makemodules_install:把所有編譯好的內(nèi)核模塊按照功能拷貝到目錄下。
linux的內(nèi)核編譯
啟動新的內(nèi)核配置內(nèi)核和編譯內(nèi)核兩個步驟完成之后,只是得到了新的bzImage文件、initrd-2.6.0.img和System.map文件。為了讓新的內(nèi)核發(fā)揮作用,必須采取一定的措施,以便讓下次計算機啟動linux系統(tǒng)的時候,可以使用新的內(nèi)核。當然,可以覆蓋掉現(xiàn)有的舊的內(nèi)核,但是為了保證系統(tǒng)的穩(wěn)定性,一般要保存舊的內(nèi)核。一般這個工作是由bootloader完成的。
linux的內(nèi)核啟動
利用lilo需要修改lilo的配置文件,lilo.conf文件將看起來如下:boot=/dev/hdadelay=20vga=normalroot=/dev/hda1read-onlyimage=/boot/vmlinuz1label=linuximage=/boot/vmlinuz2label=newlinux然后運行l(wèi)ilo命令就可以了。
linux的內(nèi)核啟動
利用grub需要修改grub的配置文件。根據(jù)發(fā)行版的不同,通常GRUB配置文件會在/etc/grub.conf、/boot/grub/menu.lst或/boot/grub/grub.conf三個地方。配置完成,重新啟動。
linux的內(nèi)核編譯
linux的內(nèi)核啟動
內(nèi)核源代碼的各個目錄的功能介紹1.Documentation這個目錄下面沒有內(nèi)核代碼,只有一套有用的文檔。但是這些文檔的質(zhì)量不一。有一局部內(nèi)核文檔,例如文件系統(tǒng),在該目錄下有相當優(yōu)秀而且相當完整的文檔;而另外一局部內(nèi)核,例如進程調(diào)度,那么根本就沒有文檔。但是在這里你可以不時地發(fā)現(xiàn)自己所最需要的東西。
linux的內(nèi)核編譯
內(nèi)核源代碼的各個目錄的功能介紹2.archarch目錄下的所有子目錄中都是體系結(jié)構(gòu)相關(guān)的代碼。每個體系結(jié)構(gòu)特有的子目錄下都又至少包含三個子目錄:kernel,存放支持體系結(jié)構(gòu)特有的諸如信號處理和SMP之類特征的實現(xiàn);
lib,存放高速的體系結(jié)構(gòu)特有的諸如strlen和memcpy之類的通用函數(shù)的實現(xiàn);
mm,存放體系結(jié)構(gòu)特有的內(nèi)存管理程序的實現(xiàn)。
linux的內(nèi)核編譯
內(nèi)核源代碼的各個目錄的功能介紹3.drivers這個目錄是內(nèi)核中非常大的一塊。實際上,drivers目錄下包含的代碼占整個內(nèi)核發(fā)行版本代碼的一半以上。它包括顯卡、網(wǎng)卡、SCSI適配器、軟盤驅(qū)動器、PCI設(shè)備和其他任何你可以說出的Linux支持的外圍設(shè)備的軟件驅(qū)動程序。drivers目錄下的一些子目錄是平臺特有的,例如,zorro子目錄中包含有和Zorro總線通訊的代碼。而Zorro總線只在Amiga中使用過,因此這些代碼必然是Amiga特有的。而其他一些子目錄,例如pci子目錄,那么至少是局部平臺無關(guān)的。
linux的內(nèi)核編譯
內(nèi)核源代碼的各個目錄的功能介紹4.fsLinux支持的所有文件系統(tǒng)在fs目錄下面都有一個對應(yīng)的子目錄。一個文件系統(tǒng)是存儲設(shè)備和需要訪問存儲設(shè)備的進程之間的媒介。文件系統(tǒng)可能是本地的物理上可訪問的存儲設(shè)備,例如硬盤或CD-ROM驅(qū)動器;在這兩種情況下將分別使用ext2和isofs文件系統(tǒng)。文件系統(tǒng)也可能是可以通過網(wǎng)絡(luò)訪問的存儲設(shè)備,這種情況下使用的文件系統(tǒng)是NFS。
linux的內(nèi)核編譯
內(nèi)核源代
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版工業(yè)地皮購置與交易全程稅務(wù)籌劃合同3篇
- 二零二五年教育培訓(xùn)機構(gòu)兼職教師雇傭協(xié)議書3篇
- 蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院《電液控制工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版生態(tài)環(huán)保型建筑材料銷售合同3篇
- 二零二五年度定制化餐盒包裝解決方案合同3篇
- 2025年度高新技術(shù)企業(yè)研發(fā)項目財務(wù)擔保合同會計處理細則3篇
- 2024版茶樓活動策劃合同2篇
- 二零二五年服裝店導(dǎo)購員培訓(xùn)與激勵合同范本3篇
- 山西鐵道職業(yè)技術(shù)學(xué)院《矯正社會工作》2023-2024學(xué)年第一學(xué)期期末試卷
- 廈門海洋職業(yè)技術(shù)學(xué)院《創(chuàng)意表現(xiàn)圖案》2023-2024學(xué)年第一學(xué)期期末試卷
- 公路工程施工現(xiàn)場安全檢查手冊
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 禮品(禮金)上交登記臺賬
- 北師大版七年級數(shù)學(xué)上冊教案(全冊完整版)教學(xué)設(shè)計含教學(xué)反思
- 2023高中物理步步高大一輪 第五章 第1講 萬有引力定律及應(yīng)用
- 青少年軟件編程(Scratch)練習(xí)題及答案
- 浙江省公務(wù)員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學(xué)
- 全統(tǒng)定額工程量計算規(guī)則1994
評論
0/150
提交評論