1. 程式人生 > >Linux開發環境搭建與使用——ubuntu掛載到開發板某個目錄

Linux開發環境搭建與使用——ubuntu掛載到開發板某個目錄

由於嵌入式Linux開發大多數使用的是交叉編譯環境,難免很頻繁的將檔案在開發板和PC環境( 如ubuntu )之間傳遞,最方便的方法為掛載NFS。

網路檔案系統NFS( Network File System )是一種將遠端主機上的目錄經網路掛載到本地主機的一種機制,如將ubuntu家目錄 /home 掛載到開發板的 /tmp 目錄。

說到掛載,大家可能覺得很專業,很抽象。我們把U盤插到電腦上,我們可以說,U盤掛載到電腦上,這樣我們在電腦上能夠直接看到U盤的內容。同樣的,我們將ubuntu家目錄 /home 掛載到開發板的 /tmp 目錄,那麼我們在開發板/tmp 目錄能夠看到ubuntu家目錄 /home 的東西,這個開發板的 /tmp目錄相當於ubuntu的家目錄 /home 。

測試環境如下:

開發板型號:s5pv210

Linux系統(安裝在虛擬機器VMware player): ubuntu-12.04


ubuntu環境的配置(在PC ubuntu上操作):

1、NFS服務安裝

sudo apt-get install nfs-kernel-server  nfs-common


2、NFS服務配置

在 /etc/exports的最後加一句話: /home  *(rw,sync,no_root_squash)

讓/home家目錄具備以下的屬性:

rw:讀/寫許可權,只讀許可權的引數為ro;
sync:資料同步寫入記憶體和硬碟,也可以使用async,此時資料會先暫存於記憶體中,而不立即寫入硬碟。
no_root_squash:NFS伺服器共享目錄使用者的屬性,如果使用者是 root,那麼對於這個共享目錄來說就具有 root 的許可權。

具體操作如下:



3、重啟NFS伺服器

sudo service nfs-kernel-server restart


4、在PC上測試NFS伺服器是否安裝成功

我們把 ubuntu 的家目錄 \home\edu 掛載到本機的 \tmp目錄,最終,如果我們在/tmp目錄,看到的東西是 ubuntu 家目錄 \home\edu 的東西,那說明掛載成功。

sudo mount -o nolock 10.221.20.17:/home/edu  /tmp

10.221.20.17 為需要掛載目錄的ip,這裡是ubuntu的ip


先進入家目錄,檢視內容:


再進入 /tmp 目錄,檢視內容,和家目錄的內容一樣,掛載成功:


ubuntu的家目錄/home/edu 掛載到開發的/tmp目錄:

如果沒有區域網網路,我們需要通過一根網線,一端連開發板,一端連PC機,人為組成一個區域網。


接著,我們分別給ubuntu和開發板設定一個同一網段的ip,網段相同,主機ip不能相同,否則,會導致ip衝突。


1、設定PC機ubuntu的ip(在PC機ubuntu進行相應操作)

2、設定開發板的ip(在開發板終端進行相應操作)

在終端裡敲:ifconfig eth0 10.221.20.123 netmask 255.255.255.0

注意,eth0 的 “0” 為數字 “0”

檢視:ifconfig

測試能否拼通ubuntu: ping 10.221.20.17 , 敲:ctrl + c 即可中斷連線



如果能平通,上圖就是平通的情況,說明,開發板和PC機的ubuntu是在同一個區域網內。

3、在開發板上寫相應掛載命令(在開發板終端進行相應操作)

mount -o nolock,wsize=1024,rsize=1024 10.221.20.17:/home/edu  /tmp

10.221.20.17:為需要掛載目錄的ip,這裡是PC機上ubuntu的ip

然後,進入/tmp目錄,檢視一下內容,如果看到的是ubuntu的/home/edu目錄的內容,說明掛載成功。


4、寫個掛載指令碼( 開發板操作 )

開發板每次重啟後,上面寫的設定ip,掛載命令都會失效,於是,我們又要重複“3、在開發板上寫相應掛載命令(在開發板終端進行相應操作)”的操作,這樣會很麻煩,所以,我們接下來在開發板 /home 目錄 寫個掛載指令碼,以後開啟開發板,人為執行這個掛載指令碼即可實現掛載功能。

a)在開發板的/home目錄,新建一個指令碼:vi mount_nfs.sh


b) 在指令碼 mount_nfs.sh 寫如下內容,然後儲存

ifconfig eth0 10.221.20.123 netmask 255.255.255.0

mount -o nolock,wsize=1024,rsize=1024 10.221.20.17:/home/edu  /tmp


c) 給指令碼新增許可權:chmod 777 mount_nfs.sh


d) 重啟開發板,進入/home,執行指令碼,測試是否掛載成功