开发板通过NFS获取Ubuntu上的hello程序,说明Ubuntu是服务端,开发板是客户端,客户端去服务端获取信息,首先需要两端都各自安装了NFS。
首先,查看开发板的IP地址,发现没有IP。
检查发现,因为我没有将电脑的网络和开发板的网络连到一起,后来用转换器将其连到一起就能识别到IP了。
但是开发板的IP不能和UbuntuIP ping通,Ubuntu网卡设置的网络地址转换(NAT),与开发板IP地址不在一个网段,所以Ubuntu添加了网卡2,设置网络为桥接网络,这样PC 、Ubuntu、开发板三者的IP地址就在一个网段了。(用词不是那么规范和专业,看看解决方法就行)
一、Ubuntu安装NFS服务端
安装nfs服务端:
sudo apt-get install nfs-kernel-server -y
安装完服务端后,需要配置挂载路径及其属性:
打开文件:
sudo vi /etc/exports
在/etc/exports文件中添加挂载路径:
/home/tata/nfs_rootfs *(sync,insecure,no_root_squash,rw)
启动nfs服务:
sudo /etc/init.d/nfs-kernel-server start
校验nfs配置:
showmount -e
理论上,安装完NFS服务端之后,开发板就可以通过NFS网络获取Ubuntu里的hello程序。但是,其实Ubuntu可以既有NFS服务端,又有NFS客户端的。所以我们可以先在Ubuntu上用客户端与服务端通信,看是否有问题。
二、Ubuntu安装NFS客户端
安装nfs-common:
sudo apt-get install nfs-common -y
创建客户端路径:
mkdir /home/tata/data/nfs
挂载服务端数据到客户端:
sudo mount -t nfs -o nolock,nfsvers=3,vers=3 10.170.108.31:/home/tata/nfs_rootfs/ /home/tata/data/nfs/
其中,10.170.108.31是Ubuntu的IP地址。
上面其实就挂载成功了,挂载成功的效果就是,在服务端目录(/home/tata/nfs_rootfs)下创建一个文件,去客户端路径(/home/tata/data/nfs)下查看发现也有这个文件。
那么说明现在Ubuntu上NFS服务是没有问题,可以使用的。
接下来可以在开发板上挂载Ubuntu的NFS服务端目录,实现开发板和Ubuntu之间的通信。
三、开发板与Ubuntu之间的NFS网络搭建
将Ubuntu上NFS服务端目录挂载到开发板上的/mnt目录下:
mount -t nfs -o nolock,nfsvers=3,vers=3 10.170.108.31:/home/tata/nfs_rootfs /mnt
这样将Ubuntu上的hello程序放到/home/tata/nfs_rootfs目录下,在板子上的/mnt目录下也可以找到hello程序了。