搭建NFS(网络文件系统),用于开发板与PC Linux之间文件传输,便于开发调试。
一、网络准备
由于NFS是网络文件系统,是使用网络进行通讯的,最终要实现客户端能访问服务端,所以必须先确保两者的网络是互通的。
1、确保PC Linux与开发板的网络是在同一个网段内
如PC Linux与开发板都连接在同一个路由器或热点。
例:
将PC Linux与开发板连接到同一个WiFi,分别查看两者的IP。
PC Linux IP地址:
开发板IP地址:
所以可知PC Linux与开发板是连接到同一个WiFi,都是使用192.168.0.x网段的IP。
2、确保PC Linux与开发板能相互ping通
例:
1)相互ping测试
PC Linux ping开发板
开发板ping PC Linux
以上可知,PC Linux与开发板相互ping是通的,到此,网络准备阶段完成。
二、服务端搭建
我们使用PC Linux作为NFS服务端,所以需要先在PC Linux上搭建NFS服务端。
1、安装服务
使用apt安装NFS相关的一些服务工具:
sudo apt install nfs-common
sudo apt install nfs-kernel-server
2、修改配置文件
sudo vi /etc/exports
在文末增加如下内容:
/home *(rw,sync,no_root_squash)
各段表达的意思如下,根据实际进行修改
例:
此例,我们设置的共享目录是/home,可根据自身需要设置不同的共享目录。
3、重启NFS服务端
sudo /etc/init.d/nfs-kernel-server restart
例:
4、服务端挂载测试
以上步骤,我们已经搭建了NFS服务端,但是还不能确定是否已经成功搭建服务端,我们可以使用服务端自己挂载自己,来测试服务端是否搭建成功,只有确保这一步是成功的,开发板的NFS客户端才能挂载到这个服务端。
1)服务端自己挂载自己:
sudo mount -t nfs -o nolock IP:/home /mnt
或
sudo mount -t nfs -o nolock localhost:/home /mnt
注释:
IP是服务端IP,/home是/etc/export文件中指定的共享目录
/mnt表示将服务端共享目录挂载到本地的/mnt目录,可修改为其它目录
例:
我们是使用PC Linux作为NFS服务端,其IP为192.168.0.106。我们将/etc/export文件中指定的共享目录/home挂载到本地的/mnt目录:
2)查看:
查看挂接目录是否有共享目录下的内容
例:
此例,我们的挂接目录是/mnt,共享目录是/home,所以查看/mnt目录下是否有和/home一样的内容:
3)取消挂载测试目录
sudo umount 挂载目录
例:
此例中,我们的挂接目录是/mnt,而且上述步骤已经成功挂接共享目录,现在我们要取消共享目录的挂载:
三、客户端搭建
我们使用开发板作为NFS客户端,要实现开发板通过NFS挂载PC Linux的NFS共享目录。
1、要确保开发板的使用的内核已经开启了NFS服务
如果开发板的使用的内核未开启了NFS服务,可以在内核源码中使用“make menuconfig”命令进入配置界面,找到“Network File Systems”选项,配置NFS的相关选项,然后使用“make uImage”重新编译内核。
2、挂载NFS服务端的共享目录
mount -t nfs -o nolock serverIP:/home /mnt
注释:
serverIP是服务端IP,/home是/etc/export文件中指定的共享目录
/mnt表示将服务端共享目录挂载到开发板的/mnt目录,可修改为其它目录
例:
使用ls /mnt/查看到挂接目录下已经有服务端共享目录/home的内容。
至此,开发板已经通过NFS服务挂载到PC Linux共享目录,两者可以通过共享目录作为双方文件传输的中转站,或者将共享目录当做开发板的一个普通目录进行操作,类似将一个U盘挂载到开发板上使用。