【嵌入式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
同樣方法檢視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