1.前言
由於嵌入式linux開發大多數使用的是交叉編譯環境,難免很頻繁的將檔案在開發板和PC環境之間傳遞,最方便的當然是網路傳遞了,可以使用FTP,以及掛載NFS兩種方式了,顯然後者更為方便了。
2.NFS服務安裝
Ubuntu上預設是沒有安裝NFS伺服器的,首先要安裝NFS服務程式:
sudo apt-get install nfs-kernel-server
(安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap)
3.NFS服務配置
我只配置了/etc/exports這個檔案
NFS掛載目錄及許可權由/etc/exports檔案定義。
sudo gedit /etc/exports
比如我是將我的 /home/cfan/nfs6410 目錄讓10.254.1.*的IP共用, 則在該檔案末尾添加下列語句:
/home/cfan/nfs6410 10.254.1.*(rw,sync,no_root_squash)
然後儲存退出。
/home/cfan/nfs6410 就表示共用目錄,當然,你可以隨便換成自己喜歡的目錄。
10.254.1.*:前面三位是你主機(NFS用戶端)的ip地址(本機終端ifconfig命令就可以獲得原生ip地址)。
rw:讀/寫入權限,唯讀許可權的參數為ro;
sync:資料同步寫入記憶體和硬碟,也可以使用async,此時資料會先暫存於記憶體中,而不立即寫入硬碟。
no_root_squash:NFS 伺服器共用目錄使用者的屬性,如果使用者是 root,那麼對於這個共用目錄來說就具有 root 的許可權。
重啟nfs服務 sudo /etc/init.d/nfs-kernel-server restart
配置NFS後一定要重啟NFS服務。
4.掛載目錄到開發板
查看PC端IP地址,終端中輸入 ifconfig ,比如我的IP是10.254.1.104
同樣方法查看開發板的IP,但是一般情況下開發板的IP不在同一個網段,就需要修改了
在開發板的串口終端中輸入 ifconfig eth0 10.254.1.108 netmask 255.255.255.0 up ,我這裡是將IP改為了10.254.1.108,這個按照你的實際情況修改
互相ping一下,看看是否聯通了
PC -> OK6410
OK6410 -> PC
在開發板的終端中輸入 mount -n -o nolock 10.254.1.104:/home/cfan/nfs6410/ /mnt/ ,這個看自己的實際掛載目錄進行修改,但是前面的目錄一定要和PC端的一樣,我這裡是將PC的/home/cfan/nfs6410/ 目錄掛載到開發板的 mnt/目錄下
PC端
開發板端查看
這樣以後就可以在PC端開發,直接在開發板上面運行了,只要把檔案複製到共用的目錄中就可以了。
5.開發板啟動自動化佈建
大家的開發板是不是每次重啟後IP都變了,還有就是每次都要掛載NFS是不是覺得很麻煩呢,我有個簡單的方法,就是修改開發板的/etc/init.d/rcS這個開機檔案。
在開發板的終端中輸入 : vi /etc/init.d/rcS
在中的位置添加剛剛在上面用到的兩條命令
ifconfig eth0 10.254.1.108 netmask 255.255.255.0 up
mount -n -o nolock 10.254.1.104:/home/cfan/nfs6410/ /mnt/
不會使用VI的最好先查查怎麼用,只要幾個簡單的命令就可以了,
比如 i ,進入文本編輯模式
esc 退出文本編輯模式
:wq 儲存並退出。
重啟一下開發板看看,是不是已經自動掛載了NFS了。
PC端如果是用路由器DHCP分配IP,建議將IP固定,否則IP換了後開發板也無法串連到PC機的,路由器的靜態IP綁定裡面可以設定的。