前言
使用的开发板为韦东山老师的 IMX6ULL
什么是 NFS 协议?
NFS 实现了一个跨越网络的文件访问功能,如下图可以简要说明其原理。
其整个架构为 Client-Server 架构,客户端和服务端通过 RPC 协议进行通信,RPC 协议可以简单的理解为一个基于 TCP 的应用层协议,它简化命令和数据的传输。
NFS 最大的特点是将服务端的文件系统目录树映射到客户端,而在客户端访问该 目录树与访问本地文件系统没有任何差别,客户端并不知道这个文件系统目录树 是本地的还是远在另外一台服务器
为什么要挂载 Ubuntu 的 nfs 目录?
我们有些时候需要多次调试开发板文件系统内的某个应用程序,这就需要多次进行编译拷贝等操作,所以我们在前期进行调试时可以直接让开发板使用 ubuntu 的 nfs 目录下文件系统来进行远程调试,用以提高调试效率,加快研发速度。
开发板挂载 Ubuntu 的 NFS 目录 步骤
1. 确定 ubuntu 的桥接网卡 IP
开发板要想访问 Ubuntu,要先确定 ubuntu 的桥接网卡的 IP
在 Ubuntu 终 端下使用 ifconfig 命令来查看 IP
2. 判断是否开权限了
输入命令
cat /etc/exports
目录 /home/book/ 可以给任何人使用
3. 判断是否安装并启动 NFS 服务
输入命令
ps -A | grep nfs
4. 在开发板上执行 mount nfs 命令
ubuntu 的 IP 是 192.168.5.11,确保开发板能 ping 通 ubuntu
在开发板上执行以下命令挂载 NFS
mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt
- -t type类型
- -o option选择
- vers version版本号
mount 命令用来挂载各种支持的文件系统协议到某个目录下。
mount 成功之后,开发板在/mnt 目录下读写文件时,实际上访问的就是 Ubuntu 中的/home/book/nfs_rootfs 目录,所以开发板和 Ubuntu 之间通过 NFS 可以很方便地共享文件。
在开发过程中,在 Ubuntu 中编译好程序后放入/home/book/nfs_rootfs 目录,开发板 mount nfs 后就可以直接通过/mnt 访问 Ubuntu 中的文件。