嵌入式linux系統(tǒng)構(gòu)建_第1頁(yè)
嵌入式linux系統(tǒng)構(gòu)建_第2頁(yè)
嵌入式linux系統(tǒng)構(gòu)建_第3頁(yè)
嵌入式linux系統(tǒng)構(gòu)建_第4頁(yè)
嵌入式linux系統(tǒng)構(gòu)建_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、中國(guó)地質(zhì)大學(xué)(北京)實(shí) 驗(yàn) 報(bào) 告 課程名稱(chēng):嵌入式系統(tǒng) 實(shí)驗(yàn)名稱(chēng):嵌入式linux系統(tǒng)構(gòu)建 姓 名: xxxx 學(xué) 號(hào): 1010092229 班 級(jí): 10100922 指導(dǎo)教師: xxxxxxxxxx 評(píng) 分: 實(shí)驗(yàn)時(shí)間:實(shí)驗(yàn)題目:嵌入式linux系統(tǒng)構(gòu)建一、 實(shí)驗(yàn)?zāi)康?、了解ARM9嵌入式開(kāi)發(fā)板的基本結(jié)構(gòu);2、掌握l(shuí)inux交叉編譯環(huán)境的建立;3、掌握編譯和移植linux系統(tǒng)的基本方法;二、 實(shí)驗(yàn)器材 1. 安裝有windows 7或者xp系統(tǒng)的且能聯(lián)網(wǎng)的pc一臺(tái)(如直接裝linux,則可以省略步驟一);2. 采用Atmel公司基于ARM9架構(gòu)的處理器at91rm9200的開(kāi)發(fā)板一塊;

2、3. 網(wǎng)線(xiàn)一條,USB轉(zhuǎn)串口線(xiàn)PL2303一條,電源一只。三、 實(shí)驗(yàn)步驟安裝Ubuntu 11.10 鑒于對(duì)linux操作系統(tǒng)不是很熟悉,所以本次試驗(yàn)采用虛擬機(jī)的安裝方式,也即在Windows7環(huán)境下運(yùn)行Ubuntu。 1.安裝VMware 首先下載得到VMware8.0的安裝文件,安裝成功并破解后運(yùn)行VMware,如下圖所示: 2.新建linux虛擬機(jī) 點(diǎn)擊主界面“Create a New Virtual Machine”或直接使用菜單file新建,如沒(méi)有特殊需要?jiǎng)t選擇“typical”然后選擇Ubuntu 11.10的系統(tǒng)鏡像所在的路徑,然后填寫(xiě)虛擬機(jī)名以及Ubuntu用戶(hù)名及密碼,最后選

3、擇虛擬機(jī)安裝的路徑(默認(rèn)C盤(pán),建議不安裝在C盤(pán)),確認(rèn)之后打開(kāi)虛擬機(jī),之后則由VMware自動(dòng)安裝Ubuntu,安裝完成后如下圖: 輸入剛才設(shè)置的用戶(hù)名及密碼即可進(jìn)入并使用系統(tǒng)了,但此時(shí)為普通用戶(hù),權(quán)限有限。 3. 進(jìn)入超級(jí)用戶(hù) 在普通用戶(hù)界面下按快捷鍵Ctrl+Alt+T進(jìn)入終端,輸入命令sudo passwd root,系統(tǒng)提示輸入密碼,此時(shí)設(shè)置自己的密碼(注意,終端不會(huì)顯示輸入),確認(rèn)之后則超級(jí)用戶(hù)root密碼設(shè)置成功。在終端下輸入命令su,再輸入密碼則可進(jìn)入超級(jí)用戶(hù),此時(shí)符號(hào)由“$”變成“#”或者直接點(diǎn)擊右上角“Switch User Account”輸入用戶(hù)名“root”和密碼即可進(jìn)

4、入超級(jí)用戶(hù),進(jìn)入后如下圖:安裝交叉編譯器 搭建交叉編譯環(huán)境是嵌入式開(kāi)發(fā)的第一步,也是必備的一步。搭建交叉編譯環(huán)境的方法很多,不同的體系結(jié)構(gòu)、不同的操作內(nèi)容甚至是不同版本的內(nèi)核,都會(huì)用到不同的交叉編譯器,而且,有些交叉編譯器經(jīng)常會(huì)有部分的bug,這都會(huì)導(dǎo)致最后的代碼無(wú)法正常地運(yùn)行。因此,選擇合適的交叉編譯器對(duì)于嵌入式開(kāi)發(fā)是非常重要的。鑒于此,我們慎重選擇了arm-linux-gcc-2.95.3 ;arm-softfloat-linux-gnu-gcc;arm-linux-gcc-4.4.3三種編譯器,經(jīng)測(cè)試,這三種編譯器能夠編譯成功。1.下載交叉編譯工具如上所述,本實(shí)驗(yàn)需要三種交叉編譯工具,分

5、別是arm-linux-gcc-2.95.3 ; arm-softfloat-linux-gnu-gcc; arm-linux-gcc-4.4.3。arm-linux-gcc-2.95.3 用于編譯boot.bin; arm-softfloat-linux-gnu-gcc 用于編譯u-boot.bin; arm-linux-gcc-4.4.3 用于編譯linux-2.6.38 kernel和busybox-1.19.2;2.安裝細(xì)則 進(jìn)入終端, 在/usr/local下新建一個(gè)文件夾arm,命令為mkdir /usr/local/arm 安裝路徑 arm-linux-gcc-2.95.3 解壓

6、至/usr/local/arm/ (先拷貝到/usr/local/arm/目錄下再解壓) arm-softfloat-linux-gnu-gcc 解壓至/usr/local/arm/ (先拷貝到/usr/local/arm/目錄下再解壓) arm-linux-gcc-4.4.3 解壓至/ (先拷貝到/目錄下再解壓) 解壓命令為: tar -jxvf arm-softfloat-linux-gnu.tar.gz 工具目錄下的bin加到$PATH即可 在終端下輸入gedit /etc/profile 在profile文件末尾加上: export PATH=/usr/local/arm/2.95.3

7、/bin:$PATH export PATH=/usr/local/arm/arm-softfloat-linux-gnu/bin:$PATH export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin/:$PATH 設(shè)置好PATH后重啟ubuntu或直接在命令行執(zhí)行:source /etc/profile命令也可。 交叉編譯器安裝完成后如下圖所示:交叉編譯1. 編譯boot(用arm-linux-gcc-2.95.3編譯)下載并拷貝boot.tar.bz2到arm下,進(jìn)入arm文件夾(cd /usr/local/arm),解壓boot.tar.bz2得

8、到boot文件夾(tar -jxvf boot.tar.bz2)。進(jìn)入boot(cd boot)。修改文件用gedit命令。編譯后得到boot.bin。2. 編譯u-boot(用arm-softfloat-linux-gnu-gcc編譯) 下載并拷貝u-boot-1.3.4.tar.bz2到/home/at9200下,進(jìn)入/home/at9200 (cd /home/at9200)解壓得到u-boot-1.3.4文件夾(tar -jxvf u-boot-1.3.4.tar.bz2)。進(jìn)入u-boot-1.3.4(cd u-boot-1.3.4)。完成后產(chǎn)生u-boot.bin.gz文件。(壓縮

9、過(guò)程中一度出現(xiàn)亂碼,壓縮不成功,通過(guò)查閱gzip的help后,發(fā)現(xiàn)可能是參數(shù) -c的原因,用gzip -9 u-boot.bin則能壓縮成功)。3.編譯kernel(用arm-linux-gcc-4.4.3編譯)下載并拷貝linux-2.6.38.tar.bz2到/home/at9200下,進(jìn)入/home/at9200,解壓得到linux-2.6.38文件夾(tar -jxvf linux-2.6.38.tar.bz2),如需打補(bǔ)丁則需要用zcat命令。編譯步驟: 修改Makefile截圖:第四部既是配置內(nèi)核,是內(nèi)核編譯所有步驟中最重要的,它決定了生成的內(nèi)核的所有參數(shù)在做第四步的時(shí)候,出現(xiàn)如下

10、錯(cuò)誤: 后經(jīng)查閱,發(fā)現(xiàn)是編譯比較老的版本的u-boot時(shí)需要一個(gè)組件沒(méi)裝上,用命令apt-get install libncurses5-dev,安裝上該組件即可,進(jìn)入menuconfig界面如下:根據(jù)實(shí)際需要選擇需要編譯的部分,項(xiàng)目前面有“*”符號(hào)表示選中了。配置好后退出,然后執(zhí)行make命令,編譯器開(kāi)始編譯,等待一段時(shí)間如果不出錯(cuò)誤的話(huà)會(huì)在arch/arm/boot/生成zImage和Image 。然后用命令mkimage -e 0x20008040 -d arch/arm/boot/zImage uImage2638生成內(nèi)核鏡像文件uImage2638,但是執(zhí)行此命令時(shí)仍然需要安裝一個(gè)組

11、件,用命令apt-get install u-boot-tools安裝。查看生成的uImage2638,信息如下:4. 編譯busybox(用arm-linux-gcc-4.4.3編譯)下載并拷貝busybox-1.19.2.rar到/home/at9200下,并解壓(此處解壓rar文件仍然需要額外安裝組件,否則會(huì)出錯(cuò),命令為apt-get install rar),由于本人不知道解壓rar文件的命令參數(shù),故采用手動(dòng)解壓方法,用右鍵“extract here”選項(xiàng)。解壓后生成busybox-1.19.2文件夾,進(jìn)入該文件夾。編譯步驟:A. 修改Makefile(gedit Makefile)

12、修改如下: ARCH= arm CROSS_COMPILE= arm-linux-B.make menuconfig根據(jù)需要選擇需要編譯的命令,選擇方法和kernel一樣,按空格鍵即可選擇,如下圖:(做到這里,真后悔當(dāng)初沒(méi)學(xué)好英語(yǔ)啊,這么多的選項(xiàng)全看蒙了,很多不知道什么意思)。C.保存退出之后,執(zhí)行make clean命令,然后執(zhí)行make 命令,等待一段時(shí)間編譯成功, 在_install文件夾下生成一系列文件以及文件夾;5.制作根文件系統(tǒng)A. 其中,PREFIX用于指定安裝目錄,如果不設(shè)置該選項(xiàng),則默認(rèn)在當(dāng)前目錄下創(chuàng)建_install目錄。創(chuàng)建的安裝目錄的內(nèi)容如下所示:rootubuntu:

13、/home/at9200/busybox-1.19.2# ls bin linuxrc sbin usr從此可知,使用busybox軟件包所創(chuàng)建的文件系統(tǒng)還缺少很多東西。下面我們通過(guò)創(chuàng)建系統(tǒng)所需要的目錄和文件來(lái)完善一下文件系統(tǒng)的內(nèi)容。 rootubuntu:/home/at9200/busybox-1.19.2# mkdir mnt root var tmp proc boot etc lib rootubuntu:/home/at9200/busybox-1.19.2# mkdir /mnt/chenhongzhchC.mkcramfs rootfs rootfs.cramfs 將準(zhǔn)備好的根

14、文件系統(tǒng)打包生成rootfs.cramfs移植系統(tǒng)A. 需要的軟件:SecureCRT,tftpd32;B. 需要燒寫(xiě)的文件:老師給的加上編譯過(guò)程中生成的9200loader.bin->boot.bin->u-boot.bin->uImage2638->rootfs.cramfsC. 連接實(shí)驗(yàn)板,此處用到了SecureCRT(與超級(jí)終端類(lèi)似),具體步驟如下:1.安裝串口轉(zhuǎn)usb線(xiàn)PL2303的驅(qū)動(dòng);(裝好之后在windows設(shè)備管理中找到端口號(hào),我pc上是com3)2.打開(kāi)SecureCRT新建一個(gè)連接,該連接參數(shù)設(shè)置如下: 3.連接,裸板連接上主機(jī)以后,在Secure

15、CRT主界面上會(huì)連續(xù)出現(xiàn)CCC字樣:D.燒寫(xiě):* 以上過(guò)程需要配置tftpserver才能實(shí)現(xiàn),具體配置如下: 1.U-boot運(yùn)行起來(lái)之后,設(shè)置環(huán)境變量,setenv serverip 8;<-主機(jī)ip; setenv ipaddr 7;<-板子ip; saveenv; 2.打開(kāi)tftpd32.exe,將當(dāng)前目錄設(shè)置為需要燒寫(xiě)的文件所在目錄(需事先將所有需要用 tftp傳送的文件拷在該目錄下); 以上文件都按步驟燒寫(xiě)完成之后,重新啟動(dòng)板子,如果linux內(nèi)核和文件系統(tǒng)都啟動(dòng)成功,則整個(gè)linux系統(tǒng)移植完畢;如果沒(méi)啟動(dòng)成功則需要反復(fù)

16、檢查以上過(guò)程,直到成功為止。E.實(shí)驗(yàn)結(jié)果:?jiǎn)?dòng)過(guò)程:?jiǎn)?dòng)完畢:4 實(shí)驗(yàn)體會(huì)整個(gè)系統(tǒng)移植過(guò)程異常艱辛,主要包括四個(gè)步驟,安裝Ubuntu->安裝交叉編譯器->編譯->燒寫(xiě)。其中最主要也是最艱難的是編譯過(guò)程,需要編譯bootloader,kernel以及busybox,每個(gè)步驟都要修改Makefile,最主要的是修改編譯器版本。編譯kernel和busybox過(guò)程中一度出現(xiàn)很多錯(cuò)誤,有時(shí)是編譯器版本的問(wèn)題,有時(shí)是需要安裝額外的組件,有時(shí)是Makefile沒(méi)有修改正確,反正就是不通過(guò)。最終經(jīng)過(guò)很多次嘗試后總算都能編譯成功,但是燒寫(xiě)進(jìn)去后啟動(dòng)也出現(xiàn)失敗,原因未知。關(guān)于編譯kernel和busyb

溫馨提示

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

評(píng)論

0/150

提交評(píng)論