版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 PAGE63 / NUMPAGES632012屆畢業(yè)設(shè)計(jì)說明書模板 計(jì)算機(jī)信息與科學(xué)系 摘 要 伴隨HYPERLINK :/ lunwendaren /Category_65/Index.aspx計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)的發(fā)展,HYPERLINK :/ lunwendaren /Category_78/Index_1.aspx嵌入式系統(tǒng)逐漸成為IT行業(yè)人士關(guān)注的焦點(diǎn)。以HYPERLINK :/ lunwendaren /Category_78/Index_1.aspxARM架構(gòu)為主的HYPERLINK :/ lunwendaren /Category_78/Index_1.aspx嵌
2、入式處理器已經(jīng)成為市場主流。隨著HYPERLINK :/ lunwendaren /Category_78/Index_1.aspxARM技術(shù)的廣泛應(yīng)用, 建立面向HYPERLINK :/ lunwendaren /Category_78/Index_1.aspxARM構(gòu)架的HYPERLINK :/ lunwendaren /Category_78/Index_1.aspx嵌入式操作系統(tǒng)也就成為當(dāng)前研究的熱點(diǎn)問題。本文主要以HYPERLINK :/ lunwendaren /Category_78/Index_1.aspxARM9(Friendly Tiny210)芯片為例,對HYPERLIN
3、K :/ lunwendaren /Category_78/Index_1.aspxARM的原理,功能與HYPERLINK :/ lunwendaren /Category_78/Index_1.aspxARM的架構(gòu)做出分析。以與如何裁剪linux,并移植上傳到HYPERLINK :/ lunwendaren /Category_78/Index_1.aspx嵌入式設(shè)備中的操作過程。附部分原代碼。關(guān)鍵詞 :友善之臂Tiny210開發(fā)板;Bootloader :U-boot; Linux核; 文件系統(tǒng)。ABSTRACT The ceaseless development at computer
4、technology、semiconductor technology and electron technology. At the same time,the embedded system has been a point of attention.The embedded processor base on HYPERLINK :/ lunwendaren /Category_78/Index_1.aspxARM structure possesses madket mostly. Along with the broad applications of HYPERLINK :/ lu
5、nwendaren /Category_78/Index_1.aspxARM technology ,The problem turn to very important that research embedded operating system base on HYPERLINK :/ lunwendaren /Category_78/Index_1.aspxARM structure.The article analyse the elements、 function 、structure of ARM take an example of the ARM9 Friendly Tiny
6、210 CMOS chip,as well as how to construct Linux kernel and transplant to the hardware platform.at one time,has some program code.Keywords : Friendly Tiny210;Bootloader U-boot;Linux kernel ;Filesystem;目錄TOC o 1-3 h u HYPERLINK l _Toc32466 摘 要 PAGEREF _Toc32466 2 HYPERLINK l _Toc24489 第1章 Linux概述 PAGE
7、REF _Toc24489 5 HYPERLINK l _Toc24755 1.1 linux操作系統(tǒng)的誕生和發(fā)行版 PAGEREF _Toc24755 5 HYPERLINK l _Toc2325 1.1.1 linux系統(tǒng)的誕生 PAGEREF _Toc2325 5 HYPERLINK l _Toc2782 1.2 Linux應(yīng)用和特性 PAGEREF _Toc2782 9 HYPERLINK l _Toc23656 1.2.1 linux 的應(yīng)用 PAGEREF _Toc23656 9 HYPERLINK l _Toc19465 1.2.2 linux 的特性 PAGEREF _Toc1
8、9465 10 HYPERLINK l _Toc21911 第2章 Tiny210開發(fā)板 PAGEREF _Toc21911 12 HYPERLINK l _Toc24587 2.1 Tiny210 簡介 PAGEREF _Toc24587 12 HYPERLINK l _Toc31243 2.2 Tiny210硬件配置 PAGEREF _Toc31243 13 HYPERLINK l _Toc13284 2.2.1 cpu 處理器 PAGEREF _Toc13284 13 HYPERLINK l _Toc4855 2.2.2 DDR2 存 PAGEREF _Toc4855 13 HYPERL
9、INK l _Toc9044 2.2.3 接口資源 PAGEREF _Toc9044 13 HYPERLINK l _Toc12078 2.2.4 在板資源 PAGEREF _Toc12078 14 HYPERLINK l _Toc17345 2.2.5 PCB規(guī)格尺寸 PAGEREF _Toc17345 14 HYPERLINK l _Toc20687 2.2.6 軟件支持 PAGEREF _Toc20687 14 HYPERLINK l _Toc12224 第3章 移植前準(zhǔn)備 PAGEREF _Toc12224 15 HYPERLINK l _Toc3403 3.1軟件平臺的搭建 PAGE
10、REF _Toc3403 15 HYPERLINK l _Toc8067 3.1.1 虛擬機(jī)的安裝 PAGEREF _Toc8067 15 HYPERLINK l _Toc23175 3.1.2 ubuntu linux 的安裝 PAGEREF _Toc23175 15 HYPERLINK l _Toc15848 3.1.3 軟件包和源碼包的準(zhǔn)備和下載 PAGEREF _Toc15848 16 HYPERLINK l _Toc23085 第四章 linux 核 PAGEREF _Toc23085 17 HYPERLINK l _Toc26388 4.1 linux核的編譯 PAGEREF _T
11、oc26388 17 HYPERLINK l _Toc15466 4.1.1 解壓核 PAGEREF _Toc15466 17 HYPERLINK l _Toc9395 4.1.2 核的配置 PAGEREF _Toc9395 19 HYPERLINK l _Toc23975 4.1.3 生成核鏡像 PAGEREF _Toc23975 40 HYPERLINK l _Toc7503 第5章 根文件系統(tǒng) PAGEREF _Toc7503 41 HYPERLINK l _Toc7935 5.1 文件系統(tǒng)的制作 PAGEREF _Toc7935 41 HYPERLINK l _Toc5989 5.1.
12、1 busybox-1.17 PAGEREF _Toc5989 41 HYPERLINK l _Toc14213 5.1.2 busybox 配置 PAGEREF _Toc14213 41 HYPERLINK l _Toc30238 5.1.3 編譯busybox-1.17 PAGEREF _Toc30238 42 HYPERLINK l _Toc27798 5.2 創(chuàng)建根文件系統(tǒng)目錄和文件 PAGEREF _Toc27798 43 HYPERLINK l _Toc1240 5.2.1 創(chuàng)建目錄 PAGEREF _Toc1240 43 HYPERLINK l _Toc20931 5.2.2 創(chuàng)
13、建必要的文件 PAGEREF _Toc20931 44 HYPERLINK l _Toc20447 5.2.3 幾個必要文件的修改 PAGEREF _Toc20447 44第1章 Linux概述1.1 linux操作系統(tǒng)的誕生和發(fā)行版1.1.1 linux系統(tǒng)的誕生1981 年HYPERLINK :/baike.baidu /view/1937.htmIBM公司推出微型計(jì)算機(jī)IBM PC。在1981-1991 年間HYPERLINK :/baike.baidu /view/61797.htmMS-DOS操作系統(tǒng)一直是微機(jī)上操作系統(tǒng)的主宰。此時計(jì)算機(jī)硬件價格雖逐年下降,但軟件價格仍居高不下。當(dāng)時
14、Apple 的MACos 操作系統(tǒng)可以說是性能最好的,但是其天價沒人能夠輕易靠近。 到1991 年,GNU 計(jì)劃已經(jīng)開發(fā)出了許多HYPERLINK :/baike.baidu /view/1928598.htm工具軟件。最受期盼的Gnu C 編譯器已經(jīng)出現(xiàn),但還沒有開發(fā)出免費(fèi)的GNU 操作系統(tǒng)。即使是MINIX 也開始有了,需要購買才能得到源代碼。而GNU 的操作系統(tǒng)HURD 一直在開發(fā)之中,但并不能在幾年完成。對于Linus 來說,已經(jīng)不能等待了。從1991 年4 月份起,他開始醞釀并著手編制自己的操作系統(tǒng)。剛開始,他的目的很簡單,只是為了學(xué)習(xí)Intel 386 體系結(jié)構(gòu)保護(hù)模式運(yùn)行方式下的
15、編程技術(shù)。但后來Linux 的發(fā)展卻完全改變了初衷。 1991 年初,Linus 開始在一臺386sx 兼容微機(jī)上學(xué)習(xí)minix 操作系統(tǒng)。通過學(xué)習(xí),他逐漸不能滿足于minix 系統(tǒng)的現(xiàn)有性能,并開始醞釀開發(fā)一個新的免費(fèi)操作系統(tǒng)。根據(jù)Linux 在comp.os.minix 新聞組上發(fā)布的消息,我們可以知道他逐步從學(xué)習(xí)minix 系統(tǒng)到開發(fā)自己的Linux 的過程。從1991 年的4 月份開始,Linus 幾乎花了全部時間研究386-minix 系統(tǒng)(hack the kernel),并且嘗試著移植GNU 的軟件到該系統(tǒng)上(GNU gcc、bash、gdb 等)。并于4 月13 日在comp.
16、os.minix 上發(fā)布說自己已經(jīng)成功地將bash 移植到了minix 上,而且已經(jīng)愛不釋手、不能離開這個shell 軟件了。第一個與Linux 有關(guān)的消息是在1991 年7 月3 日在comp.os.minix 上發(fā)布的(當(dāng)然此時還不存在Linux 這個名稱,當(dāng)時Linus 的腦子里想的可能是FREAX ,F(xiàn)REAX 的英文含義是怪誕的、怪物、異想天開等)。其中透露了他正在進(jìn)行Linux 系統(tǒng)的開發(fā),并且在Linux 最初的時候已經(jīng)想到要實(shí)現(xiàn)與POSIX(UNIX 的國際標(biāo)準(zhǔn))的兼容問題了。在Linus 的下一發(fā)布的消息中(1991 年8 月25 日 comp.os.minix),他向所有m
17、inix 用戶詢問What would you like to see in minix?(你最想在minix 中見到什么?),在該消息中他首次透露出正在開發(fā)一個(免費(fèi)的)386(486)操作系統(tǒng),并且說只是興趣而已,代碼不會很大,也不會象GNU 的那樣專業(yè)。開發(fā)免費(fèi)操作系統(tǒng)這個想法從4 月份就開始醞釀了,希望大家反饋一些對于minix 系統(tǒng)中喜歡那些特色不喜歡什么等信息,由于實(shí)際的和其它一些原因,新開發(fā)的系統(tǒng)剛開始與minix 很象(并且使用了minix 的文件系統(tǒng))。并且已經(jīng)成功地將bash(1.08 版)和gcc(1.40 版)移植到了新系統(tǒng)上,而且再過幾個月就可以使用了。 最后,Lin
18、us 申明他開發(fā)的操作系統(tǒng)沒有使用一行minix 的源代碼;而且由于使用了386 的任務(wù)切換特性,所以該操作系統(tǒng)不好移植(沒有可移植性),并且只能使用AT 硬盤。對于Linux 的移植性問題,Linus 當(dāng)時并沒有考慮。但是目前Linux 幾乎可以運(yùn)行在任何一種硬件體系結(jié)構(gòu)上。在1991 年的10 月5 日,Linus 在comp.os.minix 新聞組上發(fā)布消息,正式向外宣布Linux 核系統(tǒng)的誕生(Free minix-like kernel sources for 386-AT)。這段消息可以稱為Linux 的誕生宣言,并且一直廣為流傳。因此10 月5 日對Linux 社區(qū)來說是一個特
19、殊的日子,許多后來Linux 的新版本發(fā)布時都選擇了這個日子。所以RedHat 公司選擇這個日子發(fā)布它的新系統(tǒng)也不是偶然的。 HYPERLINK :/baike.baidu /albums/1634/7331705/0/0.html林納斯本納第克特托瓦茲(Linus Benedict Torvalds)出生于芬蘭赫爾辛基市。他畢業(yè)于HYPERLINK :/baike.baidu /view/98713.htm赫爾辛基大學(xué)計(jì)算機(jī)科學(xué)系,1997年至2003年在美國加州硅谷任職于全美達(dá)公司(Transmeta Corporation)參與該公司芯片的code morph技術(shù)研發(fā)。后受聘于開源碼發(fā)展
20、實(shí)驗(yàn)室(OSDL : Open Source Development Labs,Inc),全力開發(fā)Linux核?,F(xiàn)任職于HYPERLINK :/baike.baidu /view/3044392.htmLinux基金會。Linux是一種自由和開放源碼的類Unix操作系統(tǒng)。目前存在著許多不同的Linux,但它們都使用了Linux核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,從手機(jī)、平板電腦、路由器和視頻游戲控制臺,到臺式計(jì)算機(jī)、大型機(jī)和超級計(jì)算機(jī)。Linux是一個領(lǐng)先的操作系統(tǒng),世界上運(yùn)算最快的10臺超級計(jì)算機(jī)運(yùn)行的都是Linux操作系統(tǒng)。嚴(yán)格來講,Linux這個詞本身只表示Linux核,但實(shí)際上
21、人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux核,并且使用GNU 工程各種工和數(shù)據(jù)庫的操作系統(tǒng)。Linux得名于計(jì)算機(jī)業(yè)余愛好者Linus Torvalds。1.1.2 Linux 發(fā)行版Linux發(fā)型版指的就是我們通常所說的“Linux操作系統(tǒng)”,它可能是由一個組織,公司或者個人發(fā)行的。Linux主要作為Linux發(fā)行版(通常被稱為distro)的一部分而使用。通常來講,一個Linux發(fā)行版包括Linux核,將整個軟件安裝到電腦上的一套安裝工具,各種GNU軟件,其他的一些自由軟件,在一些特定的Linux發(fā)行版中也有一些專有軟件。發(fā)行版為許多不同的目的而制作,包括對不同計(jì)算機(jī)結(jié)構(gòu)的支持,對
22、一個具體區(qū)域或語言的本地化,實(shí)時應(yīng)用,和嵌入式系統(tǒng)。目前,超過三百個發(fā)行版被積極的開發(fā),最普遍被使用的發(fā)行版有大約十二個。 一個典型的Linux發(fā)行版包括:Linux核心,一些GNU庫和工具,命令行shell,圖形界面的X窗口系統(tǒng)和相應(yīng)的桌面環(huán)境,如KDE或GNOME,并包含數(shù)千種從辦公包,編譯器,文本編輯器到科學(xué)工具的應(yīng)用軟件。 很多版本Linux發(fā)行版使用LiveCD,是不需要安裝就能使用的版本。主流的Linux發(fā)型版HYPERLINK :/baike.baidu /view/4236.htmUbuntu, HYPERLINK :/baike.baidu /view/40687.htmDe
23、bianGNU/Linux ,HYPERLINK :/baike.baidu /view/182182.htmFedora,HYPERLINK :/baike.baidu /view/66564.htmGentoo,HYPERLINK :/baike.baidu /view/435337.htmMandrivaLinux ,HYPERLINK :/baike.baidu /view/1215788.htmPCLinuxOS,HYPERLINK :/baike.baidu /view/10899.htmSlackwareLinux ,HYPERLINK :/baike.baidu /view/4
24、34219.htmopenSUSE,HYPERLINK :/baike.baidu /view/637227.htmArchLinux,HYPERLINK :/baike.baidu /view/587622.htmPuppylinux,HYPERLINK :/baike.baidu /view/66488.htmMint,HYPERLINK :/baike.baidu /view/26404.htmCentOS,HYPERLINK :/baike.baidu /view/1139590.htmRed Hat等。1.2 Linux應(yīng)用和特性1.2.1 linux 的應(yīng)用Linux主要被用作服務(wù)
25、器的操作系統(tǒng),因?yàn)樗牧畠r、靈活性與Unix背景。傳統(tǒng)上,以Linux為基礎(chǔ)的“HYPERLINK :/baike.baidu /view/365086.htmLAMP(Linux,Apache,MySQL,Perl/PHP/Python的組合)”技術(shù),除了已在開發(fā)者群體中廣泛流行,它亦是現(xiàn)時提供服務(wù)供應(yīng)商最常使用的平臺?;谄涞土杀九c高度可設(shè)置性,Linux常常被應(yīng)用于嵌入式系統(tǒng),例如機(jī)頂盒、移動與移動裝置等。在移動上,Linux已經(jīng)成為Symbian OS的主要競爭者;而在移動裝置上,則成為Windows CE與Palm OS外之另一個選擇。目前流行的TiVo數(shù)碼攝影機(jī)使用了經(jīng)過客制化后
26、的Linux。此外,有不少硬件式的網(wǎng)絡(luò)防火墻與路由器,例如部份LinkSys的產(chǎn)品,其部都是使用Linux來驅(qū)動、并采用了操作系統(tǒng)提供的防火墻與路由功能。 采用Linux的超級電腦亦愈來愈多,根據(jù)2008年11月的TOP500超級電腦列表,現(xiàn)時世上最快速的超級電腦使用Linux作為其操作系統(tǒng)。而在表列的500套系統(tǒng)里,采用Linux為操作系統(tǒng)的,占了439組(即87.8%)。 1.2.2 linux 的特性完全免費(fèi) Linux是一款免費(fèi)的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來自全世界的無數(shù)程序員參與了Linux的修
27、改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對其進(jìn)行改變。這讓Linux吸收了無數(shù)程序員的精華,不斷壯大。 完全兼容POSIX 1.0標(biāo)準(zhǔn) 這使得可以在Linux下通過相應(yīng)的模擬器運(yùn)行常見的DOS、Windows的程序。這為用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運(yùn)行,這一點(diǎn)就消除了他們的疑慮。 多用戶、多任務(wù)Linux支持多用戶,各個用戶對于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。多任務(wù)則是現(xiàn)在電腦最主要的一個特點(diǎn),Linux可以使多個程序同時并獨(dú)立地運(yùn)行。 良好的界面 Linux同時具有
28、字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應(yīng)的指令來進(jìn)行操作。它同時也提供了類似Windows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標(biāo)對其進(jìn)行操作。在X-Window環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。 豐富的網(wǎng)絡(luò)功能 Unix是在互聯(lián)網(wǎng)的基礎(chǔ)上繁榮起來的,Linux的網(wǎng)絡(luò)功能當(dāng)然不會遜色。它的網(wǎng)絡(luò)功能和其核緊密相連,在這方面Linux要優(yōu)于其他操作系統(tǒng)。在Linux中,用戶可以輕松實(shí)現(xiàn)網(wǎng)頁瀏覽、文件傳輸、遠(yuǎn)程登陸等網(wǎng)絡(luò)工作。并且可以作為服務(wù)器提供WWW、FTP、E-Mail等服務(wù)。 可靠的安全、穩(wěn)定性能 Linux采取了許多HYPER
29、LINK :/baike.baidu /view/2731002.htm安全技術(shù)措施,其中有對讀、寫進(jìn)行權(quán)限控制、審計(jì)跟蹤、核心授權(quán)等技術(shù),這些都為安全提供了保障。Linux由于需要應(yīng)用到網(wǎng)絡(luò)服務(wù)器,這對穩(wěn)定性也有比較高的要求,實(shí)際上Linux在這方面也十分出色。 支持多種平臺 Linux可以運(yùn)行在多種硬件平臺上,如具有x86、680 x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),可以運(yùn)行在掌上電腦、機(jī)頂盒或游戲機(jī)上。2001年1月份發(fā)布的Linux 2.4版核已經(jīng)能夠完全支持Intel 64位芯片架構(gòu)。同時Linux也支持多處理器技術(shù)。多個處理器同時工作,
30、使系統(tǒng)性能大大提高。第2章 Tiny210開發(fā)板2.1 Tiny210 簡介Tiny210是一款高性能的Cortex A8核心板,它由友善之臂設(shè)計(jì)、生產(chǎn)和發(fā)行銷售。它采用三星S5PV210作為主處理器,運(yùn)行主頻可高達(dá)1GHz。S5PV210部集成了PowerVR SGX540高性能圖形引擎,支持3D圖形流暢運(yùn)行,并可流暢播放1080P大尺寸視頻。Tiny210主要采用了2.0mm間距的雙排針,引出CPU大部分常用功能引腳,并力求和Tiny6410核心板三排引腳兼容(P1,P2,CON2);另外還根據(jù)S5PV210芯片的特性,分別引出了標(biāo)準(zhǔn)的miniHDMI接口,和1.0mm間距的貼片CON1座
31、(51Pin)。Tiny210板載512M DDR2存,可流暢運(yùn)行Android, Linux和WinCE6等高級操作系統(tǒng)。它非常適合開發(fā)高端物聯(lián)網(wǎng)終端,廣告多媒體終端,智能家居,高端監(jiān)控系統(tǒng),游戲機(jī)控制板等設(shè)備。2.2 Tiny210硬件配置2.2.1 cpu 處理器Samsung S5PV210,基于CortexTM-A8,運(yùn)行主頻1GHz置PowerVR SGX540高性能圖形引擎支持流暢的2D/3D圖形加速最高可支持1080p30fps硬件解碼視頻流暢播放,格式可為MPEG4, H.263等最高可支持1080p30fps硬件編碼(Mpeg-2/VC1)視頻輸入2.2.2 DDR2 存S
32、ize: 512MB32bit數(shù)據(jù)總線,單通道運(yùn)行頻率: 200MHz FLASH存儲 SLC NAND Flash: 256MB(標(biāo)配)/1GB2.2.3 接口資源2 x 60 Pin 2.0mm space DIP connector1 x 30 Pin 2.0mm space DIP connector1 x 51 Pin 1.0mm space SMD connector2.2.4 在板資源4 x User Leds(Green)1 x Power Led(Red)Supply Voltage from 2V to 6V(支持睡眠喚醒模式)2.2.5 PCB規(guī)格尺寸8層高密度電路板,采
33、用沉金工藝生產(chǎn)Size: 64 x 50 11(mm)2.2.6 軟件支持Superboot-210Android 2.3 + Linux-2.6.35Android 4.0WindowsCE6第3章 移植前準(zhǔn)備3.1軟件平臺的搭建3.1.1 虛擬機(jī)的安裝在有了硬件平臺的支持下(Tiny210開發(fā)板)開始進(jìn)行軟件平臺的搭建。在pc機(jī)上安裝一個虛擬機(jī),我選用的虛擬機(jī)是VMware Workstation 是一款功能強(qiáng)大的HYPERLINK :/baike.baidu /view/79807.htm桌面虛擬計(jì)算機(jī)軟件,提供用戶可在單一的桌面上同時運(yùn)行不同的操作系統(tǒng),和進(jìn)行開發(fā)、測試 、部署新的應(yīng)用
34、程序的最佳解決方案。VMware Workstation可在一部實(shí)體機(jī)器上模擬完整的網(wǎng)絡(luò)環(huán)境,以與可便于攜帶的虛擬機(jī)器,其更好的靈活性與先進(jìn)的技術(shù)勝過了市面上其他的虛擬計(jì)算機(jī)軟件。對于企業(yè)的 IT開發(fā)人員和系統(tǒng)管理員而言, VMware 在虛擬網(wǎng)路,實(shí)時HYPERLINK :/baike.baidu /view/16510.htm快照,拖曳共享文件夾,支持 PXE 等方面的特點(diǎn)使它成為必不可少的工具。3.1.2 ubuntu linux 的安裝在安裝了Vmware Workstation 的條件下,創(chuàng)建一個虛擬機(jī)給它分配20G的磁盤大小。512M的存空間。然后從網(wǎng)上下載ubuntu linux
35、 操作系統(tǒng)安裝包iso文件,我下載的是ubuntu 11.04的iso文件,該版本的linux核時3.0的,相對來說是版本比較高的核。在獲得ubuntu的iso文件后,在創(chuàng)建的虛擬機(jī)中安裝該linux操作系統(tǒng)。3.1.3 軟件包和源碼包的準(zhǔn)備和下載需要的軟件有交叉編譯器arm-linux-gcc ,我選用的交叉編譯器為Tiny210的開發(fā)自帶的交叉編譯器,該編譯器是4.0版本以上的,正是由于我即將下載核源碼版本比較高,因此我們選用的交叉編譯器的版本也是相對來說比較高的。從 下載linux的核源代碼我下載的linux核源代碼為linux-.tar.gzBootloaderBoot Loader
36、是在HYPERLINK :/baike.baidu /view/880.htm操作系統(tǒng)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)核準(zhǔn)備好正確的環(huán)境。通常,Boot Loader 是嚴(yán)重地依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的 Boot Loader 幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫?Boot Loader 歸納出一些通用的概念來,以指導(dǎo)用戶特定的 Boot Loader 設(shè)計(jì)與實(shí)現(xiàn),我選擇的bootloader是U_boot;制作yaffes
37、根文件系統(tǒng)的軟件,makeyaffes工具 從網(wǎng)上下載相應(yīng)mktools 工具,將其解壓到ubuntu的根目錄。第四章 linux 核4.1 linux核的編譯4.1.1 解壓核 現(xiàn)在自己的當(dāng)前目錄,即家目錄下,解壓自己的核源代碼:具體的操作如下:tar xvzf linux-.ta.gz;解壓linux核源碼包,在當(dāng)前目錄下生成一相應(yīng)的目錄linux-Linux的核的目錄有以下整體分布情況?,F(xiàn)代的操作系統(tǒng)一般由進(jìn)程管理、存管理、文件系統(tǒng)、驅(qū)動程序和網(wǎng)絡(luò)等組成。Linux核源碼的各個目錄大致與此相對應(yīng),其組成如下(假設(shè)相對于Linux-2.6.35):/arch 目錄包括了所有和體系結(jié)構(gòu)相關(guān)的
38、核心代碼。它下面的每一個子目錄都代表一種Linux支持的體系結(jié)構(gòu),例如i386就是Intel CPU與與之相兼容體系結(jié)構(gòu)的子目錄。PC機(jī)一般都基于此目錄。/include 目錄包括編譯核心所需要的大部分頭文件,例如與平臺無關(guān)的頭文件在include/linux子目錄下。/init目錄包含核心的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼),有main.c和Version.c兩個文件。這是研究核心如何工作的好起點(diǎn)/mm 目錄包含了所有的存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的存管理代碼位于arch/*/mm目錄下。/drivers 目錄中是系統(tǒng)中所有的設(shè)備驅(qū)動程序。它又進(jìn)一步劃分成幾類設(shè)備驅(qū)動,每一種有對應(yīng)的子目
39、錄,如聲卡的驅(qū)動對應(yīng)于drivers/sound。/ipc目錄包含了核心進(jìn)程間的通信代碼/modules目錄存放了已建好的、可動態(tài)加載的模塊。/fs 目錄存放Linux支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄對應(yīng),如ext3文件系統(tǒng)對應(yīng)的就是ext3子目錄。/kernel 核管理的核心代碼放在這里。同時與處理器結(jié)構(gòu)相關(guān)代碼都放在arch/*/kernel目錄下。/net 目錄里是核心的網(wǎng)絡(luò)部分代碼,其每個子目錄對應(yīng)于網(wǎng)絡(luò)的一個方面。/lib 目錄包含了核心的庫代碼,不過與處理器結(jié)構(gòu)相關(guān)的庫代碼被放在arch/*/lib/目錄下。/scripts 目錄包含用于配置核心的腳本文件。/doc
40、umentation目錄下是一些文檔,是對每個目錄作用的具體說明。4.1.2 核的配置 進(jìn)入核源碼目錄,輸入命令:make mrproper 做配置前的清理; 核配置的主要有三種方式,make menuconfig : make xconfig : make config: Make menuconfig:基于文本選單的配置界面,字符終端下推薦使用。 Make xconfig:基于圖形窗口模式的配置界面,Xwindow下推薦使用. Make config: 基于文本的最為傳統(tǒng)的配置界面,不推薦使用. 目的都是生成一個.config文件,這三個命令中,make xconfig的界面最為友好,但個
41、人習(xí)慣使用make menuconfig, 就使用 make menuconfig。界面雖然比上面一個差點(diǎn),總比make config的要好多了。選擇相應(yīng)的配置時,有三種選擇,它們分別代表的含義如下:Y-將該功能編譯進(jìn)核 N-不將該功能編譯進(jìn)核 M-將該功能編譯成可以在需要時動態(tài)插入到核中的模塊。Make menuconfig: 開始配置下面根據(jù)解釋make menuconfig中出現(xiàn)的菜單的容。1、Code maturity level options:代碼成熟等級。1.1.prompt for development and/or incomplete code/drivers. 如果要試
42、驗(yàn)現(xiàn)在仍處于實(shí)驗(yàn)階段的功能,比如k d、IPv6等,就必須把該項(xiàng)選擇為Y了;否則可以把它選擇為N。在Linux的世界里,每天都有許多人為它發(fā)展支持的driver和加強(qiáng)它的核心。但是有些driver還沒進(jìn)入穩(wěn)定的階段。但其作者很歡迎其他人去測試這些driver并提出一些 bugs。這個問題是說,有一些drive還在做測試中,問您是否要選擇這些drive或支持的程序碼。如果鍵入Y,往后將會出現(xiàn)一些還在測試中的東西給您做選擇。(像Java的程序碼和PCI bridge),臺則就鍵入N。2、Loadable module support:對模塊的支持 模塊就像你特意插入核心中的某些東西,如果辦公室有一
43、個小網(wǎng)絡(luò)并且有時想用一下(但并不經(jīng)常),也許你想把網(wǎng)卡編譯成一個模塊。如果安裝啟動分區(qū)和網(wǎng)絡(luò),你需要網(wǎng)絡(luò)系統(tǒng)文件,和己經(jīng)編譯的網(wǎng)卡。為什么要使用模塊? 模塊化使核心變的更簡捷,它減少核心釋放大量的受保護(hù)的空間。模塊的安裝和卸載使用的空間是可重復(fù)分配利用的。如果你打開機(jī)器有90%以上的時間用到一個模塊,編譯它。運(yùn)用這類模塊是浪費(fèi)存的,原因是一旦你編譯了模塊它們同樣將占用大量的存,核心需要一些代碼來掛上模塊。記住,核心在保護(hù)空間運(yùn)行,但模塊并不是。這么說,并不經(jīng)常使用我的設(shè)備,把它編譯成只支持ext2,ide和elf。而一直使用的網(wǎng)卡,把其它的編譯成模塊:如a.out, java, floppy,
44、 iso9960, msdos, minix, vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它們許多只是在這或那用上那么幾分鐘。嚴(yán)格的說,這樣做會使核心增大許多而降低它的執(zhí)行速度。這時我們就可以把這些可能會用的驅(qū)動程序編譯成一個個的模塊,在需要用的時候才用insmod這個指令加入核心,不用的時候也能rmmod把它從核心移除,或是用lsmod察看目前所載入的模塊。2.1.Enable loadable module support. 該項(xiàng)選擇,動態(tài)加載核模塊。2.2.Set version information
45、 on all module symbols. 通常,我們更新核心版本之后,模塊耍重新的編譯。這個選項(xiàng)使您不必更新編譯模塊而能使用以前的模塊??梢圆贿x它。但如果您選y,則按照它的說明,您必須有g(shù)enksyms這個程序(可用whereis指令查看有無此程序)。2.3.Kernel module loader. 讓核在啟動時有自己裝入必需模塊的能力,建議選上。注意:在開機(jī)就會 mount 上來的 partition 的 FS 、device driver 記得要 compiler 進(jìn) kernel,不能把它弄成 modules。請不要夸到為了完全模組化而忘了把ext2fs和IDE dirver c
46、ompiler 進(jìn) kernel 里。經(jīng)驗(yàn)談:a.可加載模塊是指核代碼(kernel code)的一些片斷,比如驅(qū)動程序,當(dāng)編譯核的時候它們也被單獨(dú)編譯。因此,這些代碼不是核的一部分,但是當(dāng)你需要它的時候,它可以被加載并使用。通常的建議是如果可能,將核代碼編譯成可加載模塊,因?yàn)檫@樣可以使核更小,而且更穩(wěn)定。警告!千萬不要將文件系統(tǒng)(File System)部分的代碼編譯為可加載模塊,如果你犯了這個錯誤,將文件系統(tǒng)(File System)部分的代碼編譯為可加載模塊,結(jié)果將是核無法讀取它自己的文件系統(tǒng)。然后核無法加載它自己的配置文件一些很明顯是在正常啟動Linux時所必需的東西。我很少使用可加載
47、模塊:我喜歡我的核能夠直接和硬件對話,但這只是我自己的偏好。3.Processor type and features:處理器類型和特色。 3.1.Processor family. 它會對每種CPU做最佳化,讓它跑得快又好。一般來說,沒有選擇正確的CPU并不會有重大的影響(特別是選擇386 ,這樣編譯出來的核心也許會比較小但它的速度可能就會變慢了)。 3.2.High Memory Support.只有當(dāng)你的計(jì)算機(jī)有超過1GB存時才是必須的。多數(shù)計(jì)算機(jī)的存從64到512MB(并且擁有8到60GB硬盤空間),因此“High Memory Support”通常并不使用。 3.3.Math emu
48、lation.這項(xiàng)詢問是否需L1nux核心模擬數(shù)學(xué)浮點(diǎn)運(yùn)算器。如果有486Dx、AMD以與Pentium機(jī)器的話,這個選項(xiàng)就不必選了,因?yàn)樗鼈兌加薪ǖ母↑c(diǎn)運(yùn)算器。協(xié)處理器是在386時代的寵兒,現(xiàn)在早已不用了。不過,對于有建浮點(diǎn)運(yùn)算器的人來說,選了這個選項(xiàng)并不會因此讓建的浮點(diǎn)運(yùn)算器失效。但它會增大核心約45KB。 3.4.MTTR (memory type range register)support. 這項(xiàng)允許在PCI或者AGP總線眾進(jìn)行更快速的通訊。由于現(xiàn)在所有系統(tǒng)都將它們的顯卡接在PCI或AGP總線上,你通常需要選擇“MTRR”:無論如何,打開這個選項(xiàng)通常都是安全的即使你的機(jī)器沒有使用 P
49、CI或AGP總線的顯卡 3.5.Symmetric multi-processing support.選項(xiàng)保證核能夠以最佳方式加載多處理器。除非有多個CPU,否則就不用選了。 3.6.Mutiquad NUMA system.通常也需要多處理器,但它通常是關(guān)閉的。4、General setup:常規(guī)核選項(xiàng)。 4.1. Networking support. 核在沒有網(wǎng)絡(luò)支持選項(xiàng)的情況下甚至無法編譯。簡而言之:一定要打開“Networking support”選項(xiàng)。 4.2. PCI support.現(xiàn)在的所有系統(tǒng)都使用PCI總線,所以你應(yīng)該選擇相關(guān)選項(xiàng)。 4.3. PCI access mod
50、e.PCI存取模式??晒┻x擇的有BIOS、Direct和Any,選Any吧。 4.4. Support for hot-pluggabel devices.熱插拔設(shè)備支持。支持的不是太好,可不選。 4.5. PCMCIA/CardBus support;PCMCIA/CardBus support. 有PCMCIA就必選了。通常,臺式機(jī)和服務(wù)器等用的網(wǎng)卡均不支持PCMCIA標(biāo)準(zhǔn),PCMCIA是專門用在筆記本或PDA、數(shù)碼相機(jī)等便攜設(shè)備上的一種接口規(guī)(總線結(jié)構(gòu))。也就是筆記本網(wǎng)卡通常都支持PCMCIA規(guī),而臺式機(jī)網(wǎng)卡則不支持此規(guī)。PCMCIA是英文“PERSONAL COMPUTER MEMOR
51、Y CARD INTERNATIONAL ASSOCIATION”的縮寫。 4.6. System V IPC.如果將來想編譯dosemu(DOS模擬器),則這個選項(xiàng)一定要選,它是一個讓各個程序(process)同步且能彼此交換數(shù)據(jù)的函數(shù)庫和一些系統(tǒng)的調(diào)用,沒它,很多的程序?qū)o法執(zhí)行。 4.7. BSD Process Accounting. 4.8. Sysctl support. 除非你的存少的可憐,否則你應(yīng)該啟動這個功能,啟用該選項(xiàng)后核會大8K,但能讓你直接改變核的參數(shù)而不必重新開機(jī)。以上三項(xiàng)是有關(guān)進(jìn)程處理/IPC 調(diào)用的,主要就是System V和BSD兩種風(fēng)格。如果你不是使用BSD
52、,就按照缺省吧。 4.9. Kernel core (/proc/kcore/) format. 現(xiàn)在的Linux發(fā)行版以ELF格式作為它們的“核核心格式”。 4.10. Kernel support for A.OUT binaries:aout的執(zhí)行文件是比較古老的可執(zhí)行碼,用在比較早期的UNIX系統(tǒng)上。Linux最初也是使用這種碼來執(zhí)行程序,一直到ELF 格式的可執(zhí)行碼出來后,有愈來俞多的程序碼隨著ELF格式的優(yōu)點(diǎn)而變成了ELF的可執(zhí)碼。將來勢必完全取代aout格式的可執(zhí)行碼。但目前由于沿有許多的程序還沒有取代過來,所以只好選擇Y,等將來有一天,全部的程序都變成了ELF的天下時,那時再d
53、isable掉。 4.11. Power Management support.電源管理支持。 4.12. Advanced Power Management BIOS support.高級電源管理BIOS支持。這通常是用在筆記本電腦上的東西,如果您有APM的BIOS,支持省電的設(shè)備的(有電池的那種),那么您可以選上這項(xiàng),一般人這一項(xiàng)是選n,以避免一些可能會發(fā)生的問題。后有8個選項(xiàng)。ATX主板需要這兩個選項(xiàng)來自動關(guān)閉計(jì)算機(jī)(turn off the computer,包括關(guān)閉電源)。5.Memory Technology Devices (MTD):配置存儲設(shè)備。 5.1. Memory Te
54、chnology Devices (MTD) support.你需要這個選項(xiàng)來使Linux可以讀取閃存卡(Flash Card)之類的存儲器。6.Parallel port support:配置并口。如果不打算使用,就別選了。7.Plug and Play configuration:即插即用支持。 7.1. Plug and Playsupport. 7.2. ISA Plug & Play support.選項(xiàng)需要以即插即用模式運(yùn)行的ISA卡(ISA Card)。 例如AWE64聲卡。ISA總線(ISA bus)從來都沒有即插即用標(biāo)準(zhǔn),這增加了配置這些板卡的難度。8.Block devic
55、es:塊設(shè)備支持。 8.1. Normal PC floppy disk support.普通PC軟盤支持??蛇x擇這個選項(xiàng)作為可加載模塊 8.2. XT hard disk support.支持XT的古董硬盤。 8.3. Loopback device support.意思是說,可以將一個文件掛成一個文件系統(tǒng)。如果要燒光盤片的,那么您很有可能在把一個文件燒進(jìn)去之前,看看這個文件是否符合 IS09660的文件系統(tǒng)的容,是否符合您的需求。而且,可以對這個文件系統(tǒng)加以保護(hù)。不過,如果您想做到這點(diǎn)的話,您必須有最新的mount程序,版本是在2.5X版以上的。而且如果您希望對這個文件系統(tǒng)加上保護(hù),則您必
56、須有des.1.tar.gz 這個程序。注意:此處與網(wǎng)絡(luò)無關(guān)。9.Multiple devices driver support:多設(shè)備驅(qū)動支持。 9.1. Multiple devices driver support.普通Linux用戶通常不需要RAID(廉價冗余磁盤陣列)或者LVM支持。10.Networking options:網(wǎng)絡(luò)選項(xiàng)。10.Networking options:網(wǎng)絡(luò)選項(xiàng) 10.1. Packet Socket.選擇“Y”,你需要這個選項(xiàng)來與網(wǎng)卡進(jìn)行通信而不需要在核中實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議。 10.2. TCP/IP networking.選擇“Y”,核將支持TCP/IP協(xié)議。
57、 10.3. IP:multicasting.所謂的multicasting是群組廣播,它是用在視頻會議上的協(xié)議,經(jīng)驗(yàn)談:a. 我選擇了“Network packet filtering (replaces ipchains)”,因?yàn)槲沂褂昧薙uSE的標(biāo)準(zhǔn)防火墻(Standard Firewall)。防火墻可以保護(hù)你的機(jī)器不受來自外部Internet的攻擊至少當(dāng)你正確配置了防火墻的時候是如此。核級的防火墻保護(hù)顯然是十分優(yōu)越的。為了使防火墻能夠正常工作,SuSE Linux需要對ipchains的兼容支持(Backwards Support)。 因此,我為我的SuSE Linux打開了這個選項(xiàng)。
58、 如果你也在其他發(fā)行版中使用了防火墻,請參考它們的手冊。你需要“Unix domain sockets”來進(jìn)行網(wǎng)絡(luò),但也可以使用其他的東西: XWindow要自動使用Unix sockets,所以如果沒有打開這個選項(xiàng),XWindow將無法啟動。 通常這個選項(xiàng)是打開的。 “TCP/IP networking”選項(xiàng)包括了Internet和部網(wǎng)絡(luò)所需要的協(xié)議。通常你會希望激活TCP/IP支持。如果你不確定是否應(yīng)該打開一個選項(xiàng),參考一下幫助文檔。如果你還是不知道是否應(yīng)該打開它,一般來說,就把它打開,然后通過試用來決定是否保留。 將某些特定的選項(xiàng)編譯為模塊也是一個很好的辦法。11.Telephony S
59、upport:支持。 11.1.Linux Telephony Support.這個選項(xiàng)只有當(dāng)你在計(jì)算機(jī)中使用卡的時候才有用,比如在Internet上打。12.ATA/IDE/MFM/RLL support:配置對ATA,IDE,MFM和RLL的支持。 12.1. ATA/IDE/MFM/RLL support.幾乎每個人都需要這些協(xié)議,除非你的機(jī)器只有SCSI硬盤而沒有其他任何類型的硬盤。 12.2.Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support.選項(xiàng)是每個使用IDE/ATAPI界面的人都需要的。包括硬盤,磁帶機(jī),ZIP盤,光驅(qū)(CDR
60、OM)和刻錄機(jī)(CD-R(W)。 12.3. Include IDE/ATA-2 DISK support.選項(xiàng)在支持硬盤的時候需要。其它的就使用缺省的選項(xiàng)吧,如果你使用了比較特殊的設(shè)備,比如PCMCIA等,就到里面自己找相應(yīng)的選項(xiàng)吧。經(jīng)驗(yàn)談:a.如果你有ATAPI CDROM的話,應(yīng)該打開“include IDE/ATAPI CDROM support”選項(xiàng)。 ATAPI的CD-R(W)需要仿真為SCSI的才能被訪問。SCSI仿真可以用來訪問CDROM和CD-R(W)。如果你使用仿真SCSI的方式來訪問CDROM,你將會遇到問題,比如當(dāng)你掛載(mount)CD的時候出現(xiàn)錯誤信息(Error
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年物聯(lián)網(wǎng)設(shè)備管理系統(tǒng)開發(fā)合同2篇
- 二零二四年墻體廣告租賃合同涵蓋廣告位更新維護(hù)責(zé)任3篇
- 2025年房地產(chǎn)項(xiàng)目委托產(chǎn)權(quán)登記及過戶服務(wù)合同3篇
- 二零二五年度衛(wèi)生間清潔保養(yǎng)服務(wù)合同3篇
- 二零二五年房地產(chǎn)物業(yè)管理服務(wù)委托合同模板3篇
- 2025年度生態(tài)環(huán)保型建筑材料采購合同3篇
- 二零二五年服裝店庫存管理師聘用合同樣本3篇
- 2025年度網(wǎng)絡(luò)安全防護(hù)技術(shù)解決方案定制合同3篇
- 二零二五年度河堤施工環(huán)境保護(hù)與污染防治合同3篇
- 二零二五年度環(huán)保材料買賣合同規(guī)范文本2篇
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級英語下冊寒假提前學(xué)(含答案)
- 2024年突發(fā)事件新聞發(fā)布與輿論引導(dǎo)合同
- 地方政府信訪人員穩(wěn)控實(shí)施方案
- 小紅書推廣合同范例
- 商業(yè)咨詢報告范文模板
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 幼兒園籃球課培訓(xùn)
- AQ 6111-2023個體防護(hù)裝備安全管理規(guī)范知識培訓(xùn)
- 老干工作業(yè)務(wù)培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
評論
0/150
提交評論