1. 程式人生 > >【嵌入式Linux】ARM開發板通過NFS掛載Linux主機實現檔案共享

【嵌入式Linux】ARM開發板通過NFS掛載Linux主機實現檔案共享

一般在Linux主機上arm-linux-gcc編譯程式,然後將該生成的可執行檔案傳送給ARM開發板,ARM開發板再執行該檔案。

(主機Linux系統)--->(ARM開發板Linux系統)  傳送檔案的過程可以採用NFS,FTP等多種方法

採用NFS實現遠端掛載,ARM開發板可以直接執行主機上的程式,而不需要下載到開發板上,也是用的最多的方法


1,ARM開發板上電,啟動Linux

2,檢視開發板Linux核心是否支援NFS

      執行 cat /proc/filesystem

      若有一行為 nodev nfs,則開發板Linux

核心支援NFS,反之需要配置核心

      同樣方法檢視Linux主機核心是否支援NFS

3,配置主機共享目錄

      執行 gedit /etc/exports更改主機NFS配置

      在最後一行新增 /nfs_root *(rw,sync,no_root_squash)表示將主機 /nfs_root設定為共享目錄,所有Linux系統都可以掛載該目錄

      若新增 /nfs_root 192.168.1.100(rw,sync,no_root_squash)表示只有IP為192.168.1.100的Linux系統能掛載該目錄

4,主機啟動NFS服務

      sudo service nfs start 或者 sudo service nfs-kernel-server restart

5,ARM開發板掛載主機共享目錄

      開發板上執行 mount 192.168.1.139:/nfs_root /mnt

      其中,192.168.1.139是主機IP,/nfs_root是主機共享目錄,/mnt表示將該共享目錄掛載到ARM開發板/mnt目錄下

6,若未報錯,則掛載成功

      開發板上執行 ls /mnt

      可以看到ARM開發板/mnt下的內容與主機/nfs_root下內容一致

7,若報錯

rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).
rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).
lockd_up: makesock failed, error=-5
rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).

      可能是主機防火牆或者檔案鎖的原因。

      開發板上執行 mount -o nolock -t nfs192.168.1.139:/nfs_root /mnt

      重新掛載,成功。

8,若仍未成功,可根據報錯資訊檢視http://wenku.baidu.com/link?url=Ze35J5DwpLbZZKU59t4xDiHKrY4TRLLzsOrYp3jTJN1u3mXv10i99JP7FRVPSrECnLQiuQ2lFBRgB7Bo_2ld4vnhoohgrrqvTtDd-R0XOO7