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

下載本文檔

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

文檔簡介

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

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

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

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

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下新建一個文件夾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、過程中一度出現(xiàn)亂碼,壓縮不成功,通過查閱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ù)在做第四步的時候,出現(xiàn)如下

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

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

12、修改如下: ARCH= arm CROSS_COMPILE= arm-linux-B.make menuconfig根據(jù)需要選擇需要編譯的命令,選擇方法和kernel一樣,按空格鍵即可選擇,如下圖:(做到這里,真后悔當(dāng)初沒學(xué)好英語啊,這么多的選項全看蒙了,很多不知道什么意思)。C.保存退出之后,執(zhí)行make clean命令,然后執(zhí)行make 命令,等待一段時間編譯成功, 在_install文件夾下生成一系列文件以及文件夾;5.制作根文件系統(tǒng)A. 其中,PREFIX用于指定安裝目錄,如果不設(shè)置該選項,則默認(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)還缺少很多東西。下面我們通過創(chuàng)建系統(tǒng)所需要的目錄和文件來完善一下文件系統(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. 需要燒寫的文件:老師給的加上編譯過程中生成的9200loader.bin->boot.bin->u-boot.bin->uImage2638->rootfs.cramfsC. 連接實驗板,此處用到了SecureCRT(與超級終端類似),具體步驟如下:1.安裝串口轉(zhuǎn)usb線PL2303的驅(qū)動;(裝好之后在windows設(shè)備管理中找到端口號,我pc上是com3)2.打開SecureCRT新建一個連接,該連接參數(shù)設(shè)置如下: 3.連接,裸板連接上主機(jī)以后,在Secure

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

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

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論