歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 嵌入式Linux平台的NFS移植

嵌入式Linux平台的NFS移植

日期:2017/2/28 16:18:10   编辑:Linux教程

下載portmap以及nfs-utils源碼包,用交叉編譯器進行編譯:

configure portmap :./configure CC=交叉編譯器的路徑 --host=arm-linux

configure nfs-utils :./configure CC=XXXX --host=arm-linux --disable-gss

中間會遇到很多問題,缺少各種lib文件,解決方法是下載這些lib的源碼包,同樣用交叉編譯器編譯得到.a或者.so庫文件,放到工作目錄或者交叉編譯器的lib中。configure文件中的一些變量也需要修改,比如libwrap = -lwrap就應該改為libwrap=libwrap.a,最重要的是放對目錄。注意查看config.log文件的錯誤信息,比如libwrap缺少某個頭文件就應該將這個頭文件加入include文件夾中。

configure portmap之後,將portmap拷入嵌入式文件系統的/usr/local/bin/下即可使用portmap start啟動portmap服務。用rpcinfo -p 也可以看到portmap使用了111端口。

configure nfs之後,就開始:$make

$make DESTDIR=/home/jellyjar/arm-nfs install(注意不可以使用install strip,交叉編譯器無法刪除debug信息)

這之後在目標文件夾arm-nfs下生成如下結構的文件:

[email protected]:~/桌面/dragon_arm_nfs$ ls
sbin usr var
[email protected]:~/桌面/dragon_arm_nfs$ ls sbin
mount.nfs mount.nfs4 umount.nfs umount.nfs4
[email protected]:~/桌面/dragon_arm_nfs$ ls usr/sbin
exportfs rpcdebug rpc.mountd rpc.statd sm-notify nfsstat rpc.idmapd rpc.nfsd showmount start-statd

編譯的nfs源碼包與apt-get install下載的不一樣,aptget下載的dev包都是已經編譯好的,無法再次使用交叉編譯器編譯,。在嵌入式下,nfs的啟動很特殊。講dragon-arm-nfs文件拷貝入嵌入式linux文件系統後,執行如下一連串命令即可啟動nfs:

portmap start

切換到dragon_arm_nfs/usr/sbin下執行: ./rpc.statd

./rpc.nfsd(這2步可能不成功,按照錯誤提示添加/var/lib/nfs文件夾即可)

./rpc.mountd

與pc機上的nfs不同,可能是由於編譯器的關系,嵌入式nfs基於mount,但是mount 192.168.1.153:/nfs/nfsServer /home/nfsclient時mount無法自己調用nfs,必須到dragon_arm_nfs/sbin中使用mount.nfs來遠程掛載: ./mount.nfs 192.168.1.153:/nfs/nfsServer /home/nfsClient -w。此時到服務器端showmount -a,即可發現掛在成功啦!大功告成!

Copyright © Linux教程網 All Rights Reserved