准备阶段:
1.主机和开发板可以ping通
如果用的是vmware则是以下步骤
配置成这样就可以
互ping若可以ping通则OK(确保在同一局域网下)
sudo apt install net-tools
(安装ifconfig可查询网卡信息)
2.在开发主机上开启NFS服务
Ubuntu 系统默认没有安装 NFS 服务,需要使用如下命令安装 NFS 服务端软件:
# 以下命令在主机上运行
sudo apt install nfs-kernel-server
在配置 NFS 时需要使用到用户 uid 和组 gid,可使用 id 命令查看,在开发主机上的终端输入如下 命令:
# 以下命令在主机上运行
id
安装 NFS 服务后,会新增一个/etc/exports 文件(即/etc 目录下名字为 exports 的文件),NFS 服务 根据它的配置来运行,其默认内容可通过命令 cat /etc/exports 查看,
使用 vim 打开/etc/exports 文件命令如下:
# 以下命令在主机上运行,可用 gedit 替换 vim
sudo vim /etc/exports
在/etc/exports 文件末尾添加如下语句并保存,注意如下语句写到/etc/exports 文件是在同一行。
/home/embedfire/workdir 192.168.0.0/24(rw,sync,all_squash,anonuid=998,anongid=998,no_subtree_check)
注意具体的配置需要根据自己的实验环境进行配置,请理解如下说明根据自己的实验环境进行 修改:
• /home/embedfire/workdir:要共享的开发主机目录,注意使用空格与后面的配置隔开。
• 192.168.0.0/24: 配 置 谁 可 以 访 问, 其 中 的/24 是 掩 码, 此 处 表 示 24 个 1, 即 11111111.11111111.11111111.00000000,即掩码是 255.255.255.0。结合前面 192.168.0.0 表 示此处配置 IP 为 192.168.0.* 的主机均可以访问该目录,即局域网上的所有主机。
• 若局域网是其它网段,请参考此处的配置,不能直接用星号表示,如欲配置 192.168.1.* 的 局域网下所有机器都可以访问,则配置为 192.168.1.0/24。
• 这个配置域也可以直接写可访问的主机名,如把“192.168.0.0/24”替换为开发板主机名 “imx6ull14x14evk”,则仅该开发板能访问共享的目录。
• rw: 表示客户机的权限,rw 表示可读写,具体的权限还受文件系统的 rwx 及用户身份影响。
• sync:资料同步写入到内存与硬盘中。
• anonuid=998:将客户机上的用户映射成指定的本地用户 ID 的用户,此处 998 是开发主机 embedfire 用户的 uid,此处请根据具体的主机用户 uid 进行配置。
• anongid=998:将客户机上的用户映射成属于指定的本地用户组 ID,此处 998 是开发主机 embedfire 用户组 gid,此处请根据具体的主机用户组 gid 进行配置。
• no_subtree_check:不检查子目录权限,默认配置。 本配置中的 anonuid 和 anongid 把客户机的用户映射成本地 uid/gid 为 998 的用户,即开发主机 的 embedfire,那么当在开发板上使用与开发主机不同的用户访问 NFS 共享目录时,都会具有 embedfire 的权限,方便互相访问。如开发板上的 root 用户创建文件,在开发主机上会被认为是 embe dfire 创建的;在开发主机上仅 embedfire 能读写的文件,在开发板上的 root 或其它用户也能 对该文件进行读写(被当成了 embedfire)。当然这并不是一种安全的访问设置方式,不过这用在 我们的开发中是非常方便的配置。
为 了 确 保 共 享 的 配 置 有 效, 我 们 还 需 要 创 建 共 享 的 目 录, 在 本 例 子 中 共 享 的 目 录 为/home/embedfire/workdir。
# 以下命令在主机上运行
mkdir /home/embedfire/workdir
修改完/etc/exports 文件并保存后,可使用 exportfs 命令更新配置:
# 以下命令在主机上运行
sudo exportfs -arv
使用 showmount –e 可查看当前 NFS 服务器的加载情况,具体见下图。
# 以下命令在主机上运行
showmount -e
若还不行则重启一下nfs服务
|
3.开发板安装nfs服务
开发主机开启 NFS 服务后,我们还需要在开发板安装 NFS 客户端,来让开发板使用 NFS 服务。 执行安装 NFS 客户端命令:
sudo apt install nfs-common -y
查看 NFS 服务器共享目录 在开发板上执行“showmount -e +“NFS 服务器 IP””命令。
注意在不同网络环境下,NFS 服务器 IP 可能不一样,以实际情况为准。
showmount -e 192.168.0.219
如下图:
使用 mount 命令挂载 NFS 服务器的共享目录到开发板/mnt 目录下:
注意: 需要把下面的 192.168.0.219 设置为用户实际网络环境下的 NFS 服务器 IP
# 以下命令在开发板上运行
sudo mount -t nfs 192.168.0.219:/home/embedfire/workdir /mnt
以上命令使用的各个参数如下:
• -t nfs:指定挂载的文件系统格式为 nfs。
• 192.168.0.219:指定 NFS 服务器的 IP 地址。
• /home/embedfire/workdir:指定 NFS 服务器的共享目录。
• /mnt:本地挂载目录,即要把 NFS 服务器的共享目录映射到开发板的/mnt 目录下。 若挂载成功,终端不会有输出,Linux 的哲学思想是“没有消息便是好消息”。
如下图:
mount -t nfs -o nolock 192.168.0.219:/home/embedfire/app /mnt