当前位置: 首页 > news >正文

ARM_Linux的NFS网络文件系统的搭建

介绍:

NFS是network filesystem的简称,可以不同的主机通过网络访问远端的NFS服务器共享出来的文件,这样主机通过网络访问NFS服务器,我们就可以在开发板上通过网络访问主机的文件。

为什么要使用NFS网络文件呐?

1、传送速度快,学习过stm等单片机知道可以通过串口的方式进行下载,但是串口的传输速率有限(以9600波特率为例,1s传输9600bit也就是1200个字节),当工程文件非常大的时候,串口传输就显得十分吃力。但是网口的速度一般都为1000Mb/s,有较大的信息吞吐量,传输速率也快。

2、提高调试的效率,有些时候需要多次的调试开发板的文件系统内的文件内的某个应用程序,这就需要进行多次的编译拷贝等操作,当我们前期调试的时候,我们可以再VM虚拟机等服务器上的ubuntu的nfs目录下的文件系统进行远程调试,提高调试效率。

使用方式:

PC机端:

1、安装服务:

//如果虚拟机中没有该功能需要安装

sudo apt-get install nfs-kernel-server

2、在虚拟机/home/book目录下创建目录nfs_roots

mkdir /home/book/nfs_roots

3、创建共享目录,修改/etc/exports文件末尾

sudo vi /etc/exports

或者

sudo gedit /etc/exports

在文件末尾加入下面一行:

/home/book/nfs_roots  *(rw,sync,no_root_squash)

这样就可以将主机的/home/book/nfs_roots目录当成共享目录

4、启动NFS服务器,重启 nfs-kernel-server 服务:

sudo /etc/init.d/nfs-kernel-server restart

开发板挂在ubuntu的NFS目录

这里我使用的开发板是韦东山老师的iM6ULL_pro,配置起来比较方便因为卫东山老师都已经配置好了,只需要确保开发板可以ping通之后在开发板上执行下边的命令就可以挂载NFS:

mount -t nfs -o nolock,vers=3 IP地址:/home/book/nfs_rootfs /mnt

1、将ubuntu虚拟机的IP地址设置为静态地址: 192.168.1.76

2、确保通过网线将开发板与 PC 机连接好,并在 PC 机上开启了 NFS 服务

3、设置开发板的 IP 与 PC 机的 IP 在同一网段,如:

PC 机 IP :192.168.1.75

目标板 IP:192.168.1.203

Network Marsk: 255.255.255.0

Broadcast IP: 192.168.1.255

这里可以将开发板的IP也设置为静态的

修改配置文件设置IP,修改一次即可无需重复配置,

vi /etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.1.203
        netmask 255.255.255.0
        gateway 192.168.1.1

⚫ 按下键盘ESC,然后输入执行 :wq保存并退出,
⚫ 执行/etc/init.d/S40network restart 重启网络服务。

重启开发板后使用ifconfig查看IP端口的配置

4、测试网络

在开发板上 ping 主机,在超级终端运行如下命令:

ping 192.168.1.75

在主机上以同样的方式 ping 开发板,如果主机和开发板可以互相 ping 通,则说明网络连接正常

5、挂载主机 NFS 服务器(在开发板上操作)

mount -o nolock 192.168.1.76:/home/book/nfs_roots  /mnt/

cd /mnt/

挂载正确后,可以在开发板的/mnt 目录下看到虚拟机ubuntu的根目录

注意:本文只是大体介绍了NFS的概念和使用方式,针对于不同的开发板使用NFS的原理都是相同的

http://www.lryc.cn/news/285001.html

相关文章:

  • vscode配置web开发环境(WampServer)
  • 00-Rust前言
  • 3.conda的使用
  • IPv6自动隧道---6to4中继
  • 低代码开发:解锁数字化转型新维度
  • 写一个定时备份数据库的脚本,且只保留最近3天
  • java常见面试题:请详细解释如何在Java EE应用中添加EJB
  • 视频监控需求记录
  • Self-RAG:通过自我反思学习检索、生成和批判
  • C++基于多态的职工管理系统(附代码下载)
  • Java安全 CC链1分析
  • Miracast手机高清投屏到电视(免费)
  • 【elementUI】el-select相关问题
  • 【蓝桥杯日记】复盘第一篇——顺序结构
  • 使用 MinIO 和 PostgreSQL 简化数据事件
  • 苹果电脑(Mac)的node版本安装以及升降级
  • WCP知识分享平台的容器化部署
  • 乐意购项目前端开发 #4
  • 最安全的飞行器——飞行汽车
  • java验证ftp地址是否可用
  • 多线程(看这一篇就够了,超详细,满满的干货)
  • 爬虫进阶之selenium模拟浏览器
  • props传值
  • IaC基础设施即代码:Terraform 使用for_each 创建DNS资源副本
  • dubbo入门案例!!!
  • sm2和aes加解密
  • cv2.findContours报错解决
  • RHEL - 更新升级软件或系统
  • JNPF低代码开发平台总体架构介绍
  • axios的传参方式