好吧,我承认这真是个纠结的题目。直到今日Google搜索的语言理解已经很只能了,我的英文也不算太差的,可还是没能搜到关于这个的太多帮助。
纠结的另一面,是我的开发环境。解释下。
主机:MacBook Pro (Mac OSX 10.7)。为ARM Linux开发板提供NFS服务。
开发板:ARM Linux。板上无Root filesystem,需要使用NFS.
好了,下面就是如何在主机和开发板两方面配置NFS的事了。
一),主机Mac上,启动NFS服务。
a, 编辑:sudo vi /etc/exports
增加一行:
/Users/docularxu/Downloads/mnt -maproot=root:wheel -network 192.168.0.0 -mask 255.255.255.0
其中,
/Users/docularxu/Downloads/mnt,是要通过NFS共享的文件目录。
-maproot=root:wheel,把client端的(就是ARM板)root用户映射为Mac OS上的root,client端的root组映射为Mac OS上的wheel (gid=0) 组。这个参数非常重要,否则会nfsroot链接失败。
-network 192.168.0.0 -mask 255.255.255.0,分别是子网网段,和网络掩码。
另外,文件夹的缺省NFS共享权限是 read/write. 所以就不必添加了。
)
sudo nfsd restart
或者,如果尚未启动,可以
sudo nfsd start
使用这两个命令检查已启动的NFS共享目录:
nfsd checkexports
showmount -e
另外,可以通过sudo nfsd stop停止NFS服务。
二),在ARM Linux 开发板上,设置 kernel 的 cmdline:
console=ttyS0,9600 earlyprintk rootfstype=nfsroot root=/dev/nfs rw nfsroot=192.168.0.108:/Users/docularxu/Downloads/mnt ip=192.168.0.150:192.168.0.108::255.255.255.0::eth0:on:192.168.0.1:8.8.8.8
其中nfsroot 和 ip 的配置方式和解释可参考kernel Documentations.
https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt
设置好这些内容,就可以NFS启动了。
三),如果想通过NFS共享其他的目录给Linux的话,可以参考这里:
https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt