【嵌入式linux】(第四步):安裝NFS服務(wù),并掛載到開發(fā)板
掃描二維碼
隨時隨地手機看文章
1.前言
? 由于嵌入式linux開發(fā)大多數(shù)使用的是交叉編譯環(huán)境,難免很頻繁的將文件在開發(fā)板和PC環(huán)境之間傳遞,最方便的當然是網(wǎng)絡(luò)傳遞了,可以使用FTP,以及掛載NFS兩種方式了,顯然后者更為方便了。
2.NFS服務(wù)安裝
?? Ubuntu上默認是沒有安裝NFS服務(wù)器的,首先要安裝NFS服務(wù)程序:
????????????????????? sudo apt-get install nfs-kernel-server
????????? (安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap)
3.NFS服務(wù)配置
? 我只配置了/etc/exports這個文件
?? NFS掛載目錄及權(quán)限由/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:讀/寫權(quán)限,只讀權(quán)限的參數(shù)為ro;
????? sync:數(shù)據(jù)同步寫入內(nèi)存和硬盤,也可以使用async,此時數(shù)據(jù)會先暫存于內(nèi)存中,而不立即寫入硬盤。
????? no_root_squash:NFS 服務(wù)器共享目錄用戶的屬性,如果用戶是 root,那么對于這個共享目錄來說就具有 root 的權(quán)限。
????重啟nfs服務(wù)? sudo /etc/init.d/nfs-kernel-server restart?
配置NFS后一定要重啟NFS服務(wù)。
4.掛載目錄到開發(fā)板
?查看PC端IP地址,終端中輸入 ifconfig?? ,比如我的IP是10.254.1.104
?
同樣方法查看開發(fā)板的IP,但是一般情況下開發(fā)板的IP不在同一個網(wǎng)段,就需要修改了
在開發(fā)板的串口終端中輸入? ifconfig eth0 10.254.1.108 netmask 255.255.255.0 up? ,我這里是將IP改為了10.254.1.108,這個按照你的實際情況修改
互相ping一下,看看是否聯(lián)通了
PC -> OK6410
OK6410 -> PC
在開發(fā)板的終端中輸入 mount -n -o nolock 10.254.1.104:/home/cfan/nfs6410/ /mnt/? ,這個看自己的實際掛載目錄進行修改,但是前面的目錄一定要和PC端的一樣,我這里是將PC的/home/cfan/nfs6410/ 目錄掛載到開發(fā)板的 mnt/目錄下
PC端
開發(fā)板端查看
這樣以后就可以在PC端開發(fā),直接在開發(fā)板上面運行了,只要把文件復制到共享的目錄中就可以了。
5.開發(fā)板啟動自動設(shè)置
? 大家的開發(fā)板是不是每次重啟后IP都變了,還有就是每次都要掛載NFS是不是覺得很麻煩呢,我有個簡單的方法,就是修改開發(fā)板的/etc/init.d/rcS這個啟動文件。
在開發(fā)板的終端中輸入 : 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 保存并退出。
重啟一下開發(fā)板看看,是不是已經(jīng)自動掛載了NFS了。
PC端如果是用路由器DHCP分配IP,建議將IP固定,否則IP換了后開發(fā)板也無法連接到PC機的,路由器的靜態(tài)IP綁定里面可以設(shè)置的。