建立ARM+Linux運行環(huán)境
開發(fā)板為GEC2410,在Linux下的環(huán)境搭建相對于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),經(jīng)過裁剪的Linux內核(matrix5-kernel.tgz),根文件系統(tǒng)(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可發(fā)現(xiàn)可執(zhí)行文件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
添加環(huán)境變量:
修改 /etc/profile,將/usr/local/arm/2.95.3/bin 添加進環(huán)境變量.
重新載入該文件配置:$ 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. 安裝用于作為網(wǎng)絡文件系統(tǒng)(nfs)的root目錄
$ tar zxvf root-for-nfs-v5.tgz –C /friendly-arm
通過修改/etc/exprots指定根文件共享目錄:
將“ /friendly-arm/root *(rw,sync,no_root_Squash) ”加入該文件.
啟動網(wǎng)絡文件系統(tǒng)(nfs)服務, $ /etc/init.d/nfs restart
6.通過minicom終端將內核映像zImage通過xmodem下載到開發(fā)板上,注意內核的分區(qū)應大于zImage文件:
vivi> load flash kernel x
注意:在下載的時候,如果發(fā)生超時不能下載的情況,應將xmodem_initial_timeout 和
xmodem_timeout 設置足夠大.
7. 在vivi模式下設置參數(shù):
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 允許從這臺機器過來的非授權訪問
評論