close

呼,打了真久,終於完成了!本來是想將嵌入式系統的開發設定,一步一步地寫在網誌上的,不過....還是等我有空吧!(其實是太混了!)

以下的方式,是屬於開發中的較常用的模式,利用NFS 掛載根檔案系統。

=====================================

 

嵌入式系統開發環境設置

一、安裝套件:minicomnfs-kernel-server

sudo apt-get install minicom

sudo apt-get install nfs-kernel-server

 

二、Minicom 設置

輸入指令$ minicom -s

接著,便會進入minicom設置畫面。

1.請選擇第三個“序列埠設定”、按“A”,然後 用刪除鍵刪除到底,之後輸入“/dev/ttyS0”,完成後按“Enter“

(註:ttyS0這個部分視個人的主機上的port 而定,我是以USB RS232 port,故我所使用的為/dev/ttyUSB0”

2.在相同畫面下按“F”,取消硬體Flow控制。

接著,按“Enter”鍵離開,之後選擇“儲存設定為dfl”,接著便可離開minicom 設定畫面。

 

三、NFS 設定

設定exports

輸入指令$ sudo nano /etc/exports

exports檔是設定你的本機對NFS的組態設定,而我所用的是將嵌入式平台透過NFS從本機端掛在根檔案系統(root File System),因此在exports檔的最下面我是設定為:

/data/target *(rw,no_root_squash,no_all_squash,sync)

 

將本機端下的 /data/target 資料夾設為根檔案系統的目錄資料夾。

設定完成後,以“Ctrl” + “ o ” 寫入,“Ctrl” + “ x ” 離開。

 

四、安裝toolchain

將光碟上的toolchain-edk6446-v3.2.sh 複製到本機上的/opt資料夾下

接著,輸入指令來安裝$ sudo ./toolchain-edk6446-v3.2.sh

安裝完成之後,在 /opt資料夾下,便會產生 arm-unknown-linux-gnueabi/ 的資料夾

接著,設定環境變數。設定環境變數的方法很多,可以用setenvexport …等指令來設定,也可以寫入/root/.bashrc/etc/profile/etc/environment…等。我是設定在/etc/environment中。

指令$ sudo nano /etc/environment

檔案開啟後,輸入內容:

PATH的地方,新增

PATH="/opt/arm-unknown-linuxgnueabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

完成後,儲檔離開

 

接著強制讓環境變數啟動,輸入指令

source /etc/environment

接著,你可以測試一下是否設定完成,在cmd模式下,輸入 arm- 然後利用 [Tab]鍵的指令補全功能來看是否有 arm-unknown-linuxgnueabi- 這一系列的編譯指令可以用。

arm-unknown-linux-gnueabi-addr2line arm-unknown-linux-gnueabi-gcov

arm-unknown-linux-gnueabi-ar arm-unknown-linux-gnueabi-ld

arm-unknown-linux-gnueabi-as arm-unknown-linux-gnueabi-nm

arm-unknown-linux-gnueabi-c++ arm-unknown-linux-gnueabi-objcopy

arm-unknown-linux-gnueabi-c++filt arm-unknown-linux-gnueabi-objdump

arm-unknown-linux-gnueabi-cpp arm-unknown-linux-gnueabi-ranlib

arm-unknown-linux-gnueabi-g++ arm-unknown-linux-gnueabi-readelf

arm-unknown-linux-gnueabi-gcc arm-unknown-linux-gnueabi-size

arm-unknown-linux-gnueabi-gcc-4.1.2 arm-unknown-linux-gnueabi-strings

arm-unknown-linux-gnueabi-gccbug arm-unknown-linux-gnueabi-strip

基本上,會有上面那些指令的出現,如果出現就代表OK了!

 

五、安裝File System

光碟上有提供一個開發版的根檔案系統的 .sh檔,真貼心!這部分主要是用於開發版利用 NFS掛載本機端的根檔案系統所需設置的。

先建立檔案的目錄:

指令$ mkdir -p /data

之後,將光碟上的rootfs-edk6446-v3.2.sh檔案複製到剛剛所建的資料夾下,之後,就可以來夾裝它了!

指令$ sudo ./rootfs-edk6446-v3.2.sh

安裝完成之後,便會出現一個 /target 資料夾。

 

六、連線測試

RJ45網路線、RS232線連接完成,接上電源後就會自動開機了(因為它沒有開關= =)

1啟動本機端的NFS服務。

指令$ /etc/init.d/nfs-kernel-server start

2進入minicom 模式。

指令$ minicom

這時候,按下開發版上的reset 鍵,讓系統重置。之後會跑出數字倒數畫面,在這個狀態下按下任何一個按鍵,便可進入 bootloader 下,開發板用的是 u-boot。因為要設定以NFS掛載,所以必須先進入u-boot設定環境變數。

3設定u-boot環境變數。

進入u-boot後,打上

setenv bootargs noinitrd ip=192.168.1.200 root=/dev/nfs rw nfsroot=192.168.1.100:/data/target,nolock console=ttyS0,115200n8 mem=120M

之接按Enter

將設定的環境變數,寫入Flash中。

指令$ saveenv

 

註:設定啟動的環境變數。上面可以知道它是從192.168.1.100主機下掛載根檔案系統。因此,主機端的 IP也必須和此設定一樣!

 

4 設定本機端IP

上述的步驟完成之後,利用ifconfig 指令,設定網卡 IP

指令$ sudo ifconfig eth0 192.168.1.100

完成網卡設定之後,再次按下開發版的重置鍵,沒有問題的話,就可以開機成功了!開機成功的話,就可以看到登入畫面了。

 

註:若在開機時畫面卡在掛載根檔案系統時,請開另一個command line ,去看網卡的ip是否跑掉,若設定跑掉,則必須再做一次網卡的設定。

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 maxron 的頭像
    maxron

    Zero_Maxima---水能淡性是吾友 竹解虛心是我師 ---

    maxron 發表在 痞客邦 留言(2) 人氣()