LV02-03-网络环境-03-NFS环境搭建
本文主要网络环境的搭建——NFS环境的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
PC端开发环境 | Windows | Windows11 |
Ubuntu | Ubuntu20.04.6的64位版本(一开始使用的是16.04版本,后来进行了升级) | |
VMware® Workstation 17 Pro | 17.0.0 build-20800274 | |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) | |
Win32DiskImager | Win32DiskImager v1.0 | |
Linux开发板环境 | Linux开发板 | 正点原子 i.MX6ULL Linux 阿尔法开发板 |
uboot | NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03) | |
linux内核 | linux-4.15(NXP官方提供) |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | https://www.arm.com/ | ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档 |
https://www.nxp.com.cn/ | NXP官方网站 | |
https://www.nxpic.org.cn/ | NXP 官方社区 | |
https://u-boot.readthedocs.io/en/latest/ | u-boot官网 | |
https://www.kernel.org/ | linux内核官网 |
点击查看相关文件下载
分类 | 网址 | 说明 |
NXP | https://github.com/nxp-imx | NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库 |
https://elixir.bootlin.com/linux/latest/source | 在线阅读linux kernel源码 | |
nxp-imx/linux-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP linux内核仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
nxp-imx/uboot-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP u-boot仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
I.MX6ULL | i.MX 6ULL Applications Processors for Industrial Products | I.MX6ULL 芯片手册(datasheet,可以在线查看) |
i.MX 6ULL Applications ProcessorReference Manual | I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网) |
前边我们已经可以实现开发板、windows和linux开发板互相ping通了,接下来我们了解一下在ubuntu搭建NFS环境。
一、 NFS 环境搭建
1. NFS 简介
NFS ( Network File System ,网络文件系统),是由 SUN 公司研制的 UNIX 表示层协议( presentation layer protocol ),基于 UDP/IP ,使用 nfs 能够在不同计算机之间通过网络进行文件共享,能使使用者访问网络上别处的文件就像在使用自己的计算机一样。我们可以在 Ubuntu 上制作开发板的根文件系统,然后使用 NFS 来加载根文件系统到开发板的 DDR 上。
NFS 可以将远程的计算机磁盘挂载到本地,像本地磁盘一样操作,文件还是在服务器中,只是服务器将文件共享给了客户端,客户端实际并没有这些文件。就像我们使用的网盘一样,文件在网盘中,在本地的电脑中实际并不存在,但是我们可以查看这些文件。
2. NFS 搭建
2.1 查看是否已安装
在终端执行以下命令:
1 | dpkg -s nfs-kernel-server |
若是没有安装的话则会有以下提醒:
1 | dpkg-query: 系统没有安装软件包 nfs-kernel-server,因而没有相关的信息 |
2.2 安装 NFS
在终端执行以下命令:
1 | sudo apt-get install nfs-kernel-server |
2.3 NFS 共享目录
接下来我们创建一个目录用于 NFS 共享服务:
1 | sudo mkdir -p /home/sumu/4nfs |
2.4 NFS 服务配置
在终端执行以下命令打开相关配置文件:
1 | sudo vi /etc/exports |
然后在文件的尾部添加以下内容:
1 | /home/sumu/4nfs *(rw,sync,no_subtree_check,no_root_squash) |
/home/sumu/4nfs 是 nfs 服务器的工作目录,即客户端要访问的文件需要放到该目录下。
* 表示允许所有的网络段访问。
rw 表示访问者具有可读写权限。
sync 表示将缓存写入设备中,可以说是同步缓存的意思。
no_subtree_check 如果共享 /usr/bin 之类的子目录时, NFS 不检查父目录的权限(默认)
no_root_squash 表示访问者具有 root 权限。
【注意】
(1) ubuntu17.10 之后的版本 nfs 默认只支持协议 3 和 4 ,但后续我们使用的 uboot(2013.01) 默认使用协议 2 ,所以需要在 /etc/default/nfs-kernel-server 文件末尾加一句如下内容:
1 | RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog" |
然后重启 nfs 服务即可。
(2)配置文件权限的 () 里面不能有空格。
2.5 重启 NFS 服务
在终端执行以下命令:
1 | sudo /etc/init.d/nfs-kernel-server restart |
【注意】在有的资料中看到以后每次重新打开 ubuntu 若要使用 nfs 都需要重启,在这里记录一下,后边遇到问题,可以首先尝试该种方法。
2.6 本地挂载与卸载共享目录
- 挂载
1 | sudo mount -t nfs localhost:/home/sumu/4nfs /mnt/nfs_temp/ |
- 卸载
1 | sudo umount /mnt/nfs_temp/ |
2.7 查看 NFS 共享目录
在终端执行以下命令:
1 | showmount -e |
若是前边配置没有问题,则会显示如下信息:
1 | Export list for vm: |
点击查看可能出现的问题
执行这个命令的时候可能会有如下提示:
1 | Command 'showmount' not found, but can be installed with: |
此时我们按照提示安装相关服务即可:
1 | sudo apt install nfs-common |
2.8 检查 NFS 是否启动
1 | sudo systemctl status nfs-server |
若 NFS 服务已经启动,则会有以下提示信息:
1 | ● nfs-server.service - NFS server and services |
二、NFS功能测试
1. ubuntu本地测试
1.1 在共享目录创建测试文件
1 | cd /home/sumu/4nfs # 进入到服务器工作目录 |
创建的文件内容如下:
1 |
|
1.2 挂载NFS共享目录
1 | cd ~ # 回到家目录 |
若显示有 test.c文件,且内容如下:
那么表示我们的 NFS 服务安装配置成功。
2. linux开发板测试
开发板中是正点原子出厂系统,肯定是有tftp功能的,但是其实我们经常会再uboot中使用tftp下载linux内核镜像,然后启动内核,一般来说官方的uboot和linux都应该是支持的。
2.1 开发板ip配置
按照上一节《LV02-03-网络环境-01-网络开发环境搭建》配置好uboot、开发板、windows的IP,使其三者可以互相ping通。三者的IP如下:
1 | 开发板 IP : 192.168.10.109 |
2.2 挂载共享目录到开发板
一般来说我们搭建 NFS 环境也是为了能将文件从 Ubuntu 传输到我们的 linux 开发板,当我们配置好 Linux 开发板和 ubuntu 的网络环境,两者之间互相可以 ping 通的时候,我们可以这样来实现文件的传输。
查看NFS服务器的共享目录:
1 | showmount -e 192.168.10.108 |
然后在开发板的终端中执行:
1 | mkdir -p ~/nfs_temp # 创建临时挂载目录 |
这样我们便可以将 ubuntu 中的 Ubuntu_NFS_dir 目录也就是 NFS 共享目录下的文件挂载到 Linux 开发板的 ~/nfs_temp/ 中,我们可以直接在 ~/nfs_temp/ 中拷贝我们需要的文件。例如我们在终端执行:
1 | mkdir -p ~/nfs_temp |
若是挂载成功,那么便会有以下信息:
中间有一次目录中什么也没有是因为我之前挂载过,但是吧目录删掉了,也把服务器的文件删了,重新添加就好了。
3. windows挂载测试
3.1 启动windows的NFS服务
- (1)【控制面板】→【程序】→【启用或者关闭Windows功能】
- (2)【勾选NFS服务】→【确定】
- (3)重启系统
3.2 挂载nfs目录
- (1)【打开文件资源管理器】→【映射网络驱动器】
- (2)【选择驱动器编号】→【输入地址】
地址的格式为:
1 | \\<ubuntu_IP>\<nfs_dir_path> |
- (3)若是成功挂载则会有如下显示:
我们打开看一下就会发现有如下文件: