建立ARM+Linux運行環境

http://blog.csdn.net/dinitial/archive/2009/02/22/3923447.aspx

 

前一個階段主要是在Windowsxp下,通過ADS1.2、H-JTAG和DNW來對代碼進行編輯和調試。現在轉到Linux下,利用RedHat9.0+虛擬機作爲開發環境,這裏將這兩天來對環境的配置及其遇到的問題總結一下。

 

       開發板爲GEC2410,在Linux下的環境搭建相對於Windows來說要麻煩一些。原先再Windows下,利用廣嵌提供的Bootloader(GEC2410_BIOS_320240.bin)、kernel(zImage-gec2410-linux-2.6.8.tar.bz2)、fs(gec2410_demo.cramfs),能夠直接燒寫運行,可是將bootloader換成vivi後,對廣嵌所提供的內核通過xmodem下載後卻不能引導,於是換成用SBC2410學習套件中所提供的源碼來燒寫,包括vivi-bootloader(boot.tgz),經過裁剪的Linux內核(matrix5-kernel.tgz),根文件系統(root-for-nfs-v5.tgz)。下面開始下載安裝:

 

1.       安裝Linux下燒寫工具Jflash:

建立friendly-arm工作目錄,以後所有的Linux想過工具都安裝到此目錄

$ mkdir /friendly-arm

$ mkdir /friendly-arm/Jflash

$ tar xzvf Jflash.tgz –C /friendly-arm/Jflash

$ cd /friendly-arm/Jlash可發現可執行文件Jflash-s3c2410,以後可通過它來對bootloader進行燒寫;

 

2.       安裝交叉編譯工具:arm-linux-2.95.3.tgz  arm-linux-3.4.1.

    下載地址:

      http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

      http://ftp.snapgear.org:9981/pub/snapgear/tools/arm-linux/

對於vivi-bootloader的編譯較高版本的交叉編譯器不能編譯,具體是不能識別某個符號。所以對於vivi-bootloader的編譯最好使用2.95.3版本。

$ mkdir /usr/local/arm/2.95.3

$ tar zxvf arm-linux-2.95.3 –C /usr/local/arm/2.95.3

添加環境變量:

修改 /etc/profile,將/usr/local/arm/2.95.3/bin 添加進環境變量.

重新載入該文件配置:$ source /etc/profile

對於arm-linux-3.4.1的安裝方法同上.

 

3.       編譯並燒寫vivi-bootloader

       $ tar zxvf boot.tgz –C /friendly-arm

       $ cd /friendly-arm/vivi

       默認配置就行了,並保存退出:make menuconfig

       編譯 Make

       之後在當前目錄下生成vivi二進制映像文件,可通過Jlash將它燒寫到Nandflash.

 

4.       編譯和配置內核

$ tar zxvf matrix5-kernel.tgz –C /friendly-arm

默認配置,$make menuconfig

編譯,$make zImage

最後生成內核映像文件位於arch/arm/boot目錄.

 

5.       安裝用於作爲網絡文件系統(nfs)的root目錄

$ tar zxvf root-for-nfs-v5.tgz –C /friendly-arm

通過修改/etc/exprots指定根文件共享目錄:

將“ /friendly-arm/root  *(rw,sync,no_root_Squash) ”加入該文件.

啓動網絡文件系統(nfs)服務,  $ /etc/init.d/nfs restart

 

6.通過minicom終端將內核映像zImage通過xmodem下載到開發板上,注意內核的分區應大於zImage文件:

vivi> load  flash  kernel  x

注意:在下載的時候,如果發生超時不能下載的情況,應將xmodem_initial_timeout 和

xmodem_timeout 設置足夠大.

 

7.       在vivi模式下設置參數:

     vivi> param set linux_cmd_line "console=ttyS0 root=/dev/nfs nfsroot=192.168.0.1:/friendly-arm/root      ip=192.168.0.69:192.168.0.1:192.168.0.1:255.255.255.0:matrix4.arm9.net:eth0:off"

         保存

     vivi> param save

 

8. 在下次啓動的時候,可通過命令要重新mount 文件 /etc/exports中的內容:

      exports [-aruv]

      -a    全部mount或umount文件/etc/exports中的內容

      -r     重新mount文件/etc/exports中的共享內容

      -u   umount目錄

      -v    在export的時候,將詳細的信息輸出到屏幕上

 

9. 關於exports文件中一些選項的含義:

選項                                                 說明

ro                            該主機對該共享目錄有隻讀權限

rw                            該主機對該共享目錄有讀寫權限

root_squash          客戶機用root用戶訪問該共享文件夾時,將root用戶映射成匿名用戶

no_root_squash    客戶機用root訪問該共享文件夾時,不映射root用戶

all_squash             客戶機上的任何用戶訪問該共享目錄時都映射成匿名用戶

anonuid                 將客戶機上的用戶映射成指定的本地用戶ID的用戶

anongid                 將客戶機上的用戶映射成屬於指定的本地用戶組ID

aync                       資料同步寫入到內存與硬盤中

async                     資料會先暫存於內存中,而非直接寫入硬盤

       insecure                允許從這臺機器過來的非授權訪問


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/dinitial/archive/2009/02/22/3923447.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章