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

【北京迅为】iTOP-4412全能版使用手册-第二十章 搭建和测试NFS服务器

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、陀螺仪、CAN总线、RS485总线、500万摄像头等模块,稳定运行Android 4.0.3/Android 4.4操作,系统通用Linux-3.0.15+Qt操作系统(QT支持5.7版本),Ubuntu版本:12.04,接口智能分配 方便好用。


第二十章 搭建和测试NFS服务器

除了前面介绍的 TFTP 可以通过网络在虚拟机 Ubuntu 和开发板之间传输文件,还有一种方法NFS网络共享目录。

要实现 NFS 网络文件系统,需要将安装有虚拟机 Ubuntu 的 PC 机和路由器相连,开发板也需要和路由器相连,PC 和开发板连接的路由器应该是同一台路由器,这样才能确保它们在同一个局域网,确保 PC 上虚拟机 Ubuntu 系统和开发板之间的网络是连通的。安装虚拟机Ubuntu 的 PC 机和开发板,最好能够都通过网线和路由器相连

有的用户,安装虚拟机 Ubuntu 的机器使用无线和路由器相连,或者台式机使用无线和路由器相连,作者做过多次尝试,无论怎么做,都很难实现 NFS 功能。如果条件允许,用户最好采用将安装虚拟机 Ubuntu 的机器和开发板都通过有线网和同一台路由器相连;如果开发环境实在不允许,用户又对 NFS 不熟悉,最好先在有路由器的环境实现 NFS 之后,再使用无线,您需要根据自己网络的实际情况来尝试实现 NFS。

20.1 搭建NFS服务器

完成 NFS 网络文件系统,需要在虚拟机 Ubuntu 上搭建 NFS 服务器,这一节介绍如何搭建 NFS 服务器。

搭建 NFS 服务器,需要在在虚拟机 Ubuntu 上安装 Ubuntu NFS 服务,安装 NFS 服务,需要一个软件包,软件包可以使用 apt 命令下载(当然,首先要保证虚拟机 Ubuntu 可以上网)。在 Ubuntu root 用户下输入“apt-get install nfs-kernel-server”命令安装Ubuntu NFS 服务,如下图。

在安装过程中会提示”是否继续安装”的信息,输入”y”,如下图。 

然后按回车,会继续安装。安装完成,如下图。 

为了确保确实可以安装成功,再次执行“apt-get install nfs-kernel-server”命令,如下图。 

由上图可知,这次更新软件,说明安装已经成功。继续搭建 NFS 服务器。在/etc/export 文件的最后一行添加:

/home/minilinux/ *(rw,sync,no_root_squash)

如下图,

 

下面讲解一下上面输入的内容都代表什么意思:

/home/minilinux/:要共享的目录;

*:代表允许所有的网络段访问;

rw:是可读写权限;

sync:是资料同步写入内存和硬盘;

no_root_squash:是 Ubuntu nfs 客户端分享目录使用者的权限,如果客户端使用的是root 用户,那么对于该共享目录而言,该客户端就具有 root 权限;

这里需要注意的是,“/home/minilinux/”是服务器要挂载的目录,这个目录在默认的虚拟机 Ubuntu 下是没有的,需要用户手动新建。进入/home 目录,使用命令“mkdir minilinux”即可新建。用户可以选择新建其它目录,这也是允许的,但是后续的操作中会用到“/home/minilinux/”目录,如果你对 NFS 不是很熟悉,那么请务必建立“/home/minilinux/”目录。

请注意:如果使用的是Ubuntu12.04系统则执行这一步重启。
接下来重启 portmap 服务,输入“/etc/init.d/portmap restart”命令。
请注意:如果使用的是Ubuntu14.04或者Ubuntu16.02系统则执行这一步重启。
接下来重启 portmap 服务,输入“/etc/init.d/rpcbind restart”命令,作者使用的是Ubuntu12系统,运行结果如下图

 

然后重启 nfs 服务,输入“/etc/init.d/nfs-kernel-server restart”命令,运行结果如下图。

 

至此,Ubuntu nfs 服务器端的配置完成。

20.2 测试NFS服务器

完成前面的搭建服务器工作之后,可以在虚拟机 Ubuntu 本机上验证这个服务器安装和配置是否成功。本节介绍如何测试 NFS 服务器是否正常。

在虚拟机 Ubuntu 控制台输入“mount -t nfs localhost:/home/minilinux /mnt”命令,这个命令可以把/home/minilinux 挂载到/mnt 目录下。记着使用“df”命令查看是否挂载成功,如下图。

 

可以看到上图中最后一行就是挂载的 nfs 文件系统,这说明 Ubuntu nfs 服务器端搭建成功了。如果没有这一行,或者在使用“mount -t nfs localhost:/home/minilinux /mnt”报错,请返回到上一节检查是否有哪一步操作遗漏。

20.3 实现NFS共享目录

请注意,如果是精英版用户,无论内核使用是迅为光盘资料中提供的 zImage 镜像,还是自己编译的镜像。请确保,光盘的内容是更新之后的,在 2019 年 11 月之前购买的用户,多半需要更新光盘资料,否则本章内容无法实现!用户打开自己下载的光盘资料到“06_源码_uboot 和 kernel”,找到“iTop4412_Kernel_3.0_XXX.tar.gz”内核源码压缩包,压缩包名称中 XXX 部分表示日期,如果压缩包的日期在 20191007 之前,请务必下载最新的资料,如果压缩包的日期是 20191007 或者之后的,不用更新。

如果用户“iTop4412_Kernel_3.0_XXX.tar.gz”内核源码压缩包的 XXX 为 20180604, 只需要更两部分内容即可。更新的内容为“06_源码_uboot 和kernel/iTop4412_Kernel_3.0_20191007.tar.gz”压缩包和“04_镜像_QT 文件系统

/zImage”目录中的全部内容,以及光盘中的用户手册。

如果用户自己编译,则需要使用新的内核源码编译之后烧写到开发板;如果用户暂时想使用我们的镜像,请将“04_镜像_QT 文件系统/zImage”中的内核镜像烧写到开发板中。

如果用户使用的是全能版 V4.0 版本,用户使用目前的光盘资料就可以。

开发板网络配置

开发板网口需要使用网线和路由器相连,安装虚拟机 Ubuntu 的 PC 也需要使用和路由器相连,路由器需要是同一个,这样才能让开发板的网络和虚拟机的网络在同一网段。

除了硬件连接,软件方面也需要配置,确保配置正确。

 首先查看一下 NFS 服务器的 ip,也就是虚拟机 Ubuntu 的 IP,如下图所示,使用“ifconfig”命令,可以查看到作者虚拟机 Ubuntu 的 IP 为 192.168.2.232。

接着在开发板串口控制台输入命令“ifconfig”,如下图所示。 

如上图查看到作者开发板的 IP 为 192.168.2.232,虚拟机 Ubuntu 的 IP 为192.168.2.232,子网掩码都为 255.255.255.0,明显不在同一网段。要确保网络连通,除了连接同一台路由器之外,还需要根据虚拟机 Ubuntu 的网络参数,配置开发板的 IP 地址、子网掩码,确认开发板网络和虚拟机 Ubuntu 的网络是在同一网段。

开发板串口控制台使用命令“vi /etc/eth0-setting”打开网络配置文件,将其中的 IP 等参数修改之后,确保在同一网段,网络配置文件打开之后默认如下图所示。

 

然后修改开发板的 ip,保存网络配置文件,退出编辑。在串口控制台上使用命令“reboot”重启开发板,这样可以使网络配置更新。

系统重启之后使用“ifconfig”查看开发板 ip,如下图。

 

由上图可知 ip 已经修改过来了,ping 一下服务器 ip,如下图所示,使用命令“ping 192.168.2.232 -c 3”,作者虚拟机 Ubuntu 的 IP 为 192.192.2.232,所以 ping 命令加这个IP,用户根据自己虚拟机 Ubuntu 的 IP,修改 IP 参数。

由上图可知,0%的丢包率,能够确认开发板和 ubuntu 服务器之间的网络是连通的。

上面这一步,开发板和虚拟机 Ubuntu 之间一定要确保 ping 通,否则后面步骤一定通不过。如果它们之间 ping 不通,重复本小节,检查一下是哪一步有遗漏。

挂载nfs 目录

前面 2 个重要步骤:“NFS 网络服务器在虚拟机安装和测试完成”和“开发板和虚拟机Ubuntu 能够 ping 通”完成之后,可以进行后续操作。

在开发板串口控制台,使用命令“mkdir /mnt/nfs”在/mnt 目录下新建一个 nfs 目录, 然后使用命令“mount -t nfs -o nolock 192.168.2.232:/home/minilinux /mnt/nfs”命令挂载到 nfs 服务器。命令中的红色部分为 IP 地址,用户需要修改为自己 Ubuntu 的 IP。

 

上图中“mount -t nfs...”这个长命令如果没有报错,那么就表明开发板已经成功挂载到虚拟机的 NFS 服务器上。

NFS 共享目录的使用介绍

挂载成功之后,进入虚拟机 Ubuntu 系统中的”/home/minilinux/”目录,如下图,新建一个 test 文件,test 文件中的内容为“hello nfs”。

 

接下来查看开发板上/mnt/nfs 的目录,如下图。 

由上图可知,开发板的/mnt/nfs 目录和虚拟机 Ubuntu 的/home/minilinux 目录,这两个目录中的内容可以保持同步,开发板和虚拟机 Ubuntu 之间要传输文件,可以通过这个目录来实现,非常方便。

至此,nfs 实验全部完成。

相关文章:

【北京迅为】iTOP-4412全能版使用手册-第二十章 搭建和测试NFS服务器

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...

【纯原生js】原生实现h5落地页面中的单选组件按钮及功能

h5端的按钮系统自带的一般都很丑&#xff0c;需要我们进行二次美化&#xff0c;比如单选按钮复选框之类的&#xff0c;那怎么对其进行html和css的改造&#xff1f; 实现效果 实现代码 <section id"tags"><h2>给景区添加标题</h2><label><…...

深入浅出:开发者如何快速上手Web3生态系统

Web3作为互联网的未来发展方向&#xff0c;正在逐步改变传统互联网架构&#xff0c;推动去中心化技术的发展。对于开发者而言&#xff0c;Web3代表着一个充满机遇与挑战的新领域&#xff0c;学习和掌握Web3的基本技术和工具&#xff0c;将为未来的项目开发提供强大的支持。那么…...

通过深度点图表示的隐式场实现肺树结构的高效解剖标注文献速递-生成式模型与transformer在医学影像中的应用

Title 题目 Efficient anatomical labeling of pulmonary tree structures via deeppoint-graph representation-based implicit fields 通过深度点图表示的隐式场实现肺树结构的高效解剖标注 01 文献速递介绍 近年来&#xff0c;肺部疾病&#xff08;Decramer等&#xff…...

数据结构 (17)广义表

前言 数据结构中的广义表&#xff08;Generalized List&#xff0c;又称列表Lists&#xff09;是一种重要的数据结构&#xff0c;它是对线性表的一种推广&#xff0c;放松了对表元素的原子限制&#xff0c;容许它们具有其自身的结构。 一、定义与表示 定义&#xff1a;广义表是…...

论文笔记 SliceGPT: Compress Large Language Models By Deleting Rows And Columns

欲买桂花同载酒&#xff0c;终不似&#xff0c;少年游。 数学知识 秩&#xff1a; 矩阵中最大线性无关的行/列向量数。行秩与列秩相等。 线性无关&#xff1a;对于N个向量而言&#xff0c;如果任取一个向量 v \textbf{v} v&#xff0c;不能被剩下的N-1个向量通过线性组合的方式…...

前端工具的选择和安装

选择和安装前端工具是前端开发过程中的重要步骤。现代前端开发需要一些工具来提高效率和协作能力。以下是一些常用的前端工具及其选择和安装指南。 1. 代码编辑器 选择一个好的代码编辑器可以显著提高开发效率。以下是几款流行的代码编辑器&#xff1a; Visual Studio Code (…...

Fantasy中定时器得驱动原理

一、服务器框架启动 public static async FTask Start(){// 启动ProcessStartProcess().Coroutine();await FTask.CompletedTask;while (true){ThreadScheduler.Update();Thread.Sleep(1);}} 二、主线程 Fantasy.ThreadScheduler.Update internal static void Update(){MainS…...

【反转链表】力扣 445. 两数相加 II

一、题目 二、思路 加法运算是从低位开始&#xff0c;向高位进位&#xff0c;因此需要将两个链表进行反转&#xff0c;再进行对齐后的相加操作。力扣 2. 两数相加 三、题解 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode …...

SpringBoot 项目中使用 spring-boot-starter-amqp 依赖实现 RabbitMQ

文章目录 前言1、application.yml2、RabbitMqConfig3、MqMessage4、MqMessageItem5、DirectMode6、StateConsumer&#xff1a;消费者7、InfoConsumer&#xff1a;消费者 前言 本文是工作之余的随手记&#xff0c;记录在工作期间使用 RabbitMQ 的笔记。 1、application.yml 使…...

Uniapp 安装安卓、IOS模拟器并调试

一、安装Android模拟器并调试 1. 下载并安装 Android Studio 首先下载 Mac 环境下的 Android Studio 的安装包&#xff0c;为dmg 格式。 下载完将Android Studio 向右拖拽到Applications中&#xff0c;接下来等待安装完成就OK啦&#xff01; 打开过程界面如下图所示&#xf…...

JavaScript 中的原型和原型链

JavaScript 中的原型和原型链也是一个相对较难理解透彻的知识点&#xff0c;下面结合详细例子来进行说明&#xff1a; 一、原型的概念 在 JavaScript 中&#xff0c;每个函数都有一个 prototype 属性&#xff0c;这个属性指向一个对象&#xff0c;这个对象就是所谓的 “原型对…...

数组变换(两倍)

数组变换 以最大元素为基准元素&#xff0c;判读其他元素能否通过 x 2 成为最大值&#xff01; 那么怎么判断呢&#xff1a; max % arr[i] 0arr[i] * 2 ^n max int x 2 ^ n max / arr[i] 3.只需判断 这个 x 是不是 2 的 n 次放就可以了&#xff01; 判断 是否为 2 的 n 次 …...

GBN协议、SR协议

1、回退N步&#xff08;Go-Back-N,GBN&#xff09;协议&#xff1a; 总结&#xff1a; GBN协议的特点&#xff1a; &#xff08;1&#xff09;累计确认机制&#xff1a;当发送方收到ACKn时&#xff0c;表明接收方已正确接收序号为n以及序号小于n的所有分组&#xff0c;发送窗…...

三维扫描检测仪3d扫描测量尺寸-自动蓝光测量

在现代工业及生产过程中&#xff0c;精确、高效的尺寸检测是保证产品质量、提升生产效率的关键因素。 红、蓝光测量&#xff0c;以其高精度、高效率和非接触式的特点&#xff0c;在工业及生产中发挥着越来越重要的作用。蓝光测量技术利用蓝色激光光源&#xff0c;通过扫描被测…...

大模型翻译能力评测

1. 背景介绍 随着自然语言处理技术的飞速发展&#xff0c;机器翻译已经成为一个重要的研究领域。近年来&#xff0c;基于大模型的语言模型在机器翻译任务上取得了显著的进展。这些大模型通常具有数亿甚至数千亿的参数&#xff0c;能够更好地理解和生成自然语言。 但是&#xf…...

MySQL隐式转换造成索引失效

一、什么是 MySQL 的隐式转换&#xff1f; MySQL 在执行查询语句时&#xff0c;有时候会自动帮我们进行数据类型的转换&#xff0c;这个过程就是隐式转换。比如说&#xff0c;我们在一个 INT 类型的字段上进行查询&#xff0c;但是传入的查询条件却是字符串类型的值&#xff0c…...

SuperMap Objects组件式GIS开发技术浅析

引言 随着GIS应用领域的扩展&#xff0c;GIS开发工作日显重要。一般地&#xff0c;从平台和模式上划分&#xff0c;GIS二次开发主要有三种实现方式&#xff1a;独立开发、单纯二次开发和集成二次开发。上述的GIS应用开发方式各有利弊&#xff0c;其中集成二次开发既可以充分利…...

多组数输入a+b:JAVA

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 输入描述: 输入包含多组数据&#xff0c;每组数据输入一行&#xff0c;包含两个整数 输出描述: 对于每组数据输出一行包含一个整数表示两个整数的和 代码: import java.util.Scanner; pu…...

R语言结构方程模型(SEM)在生态学领域中的应用

目录 专题一、R/Rstudio简介及入门 专题二、结构方程模型&#xff08;SEM&#xff09;介绍 专题三&#xff1a;R语言SEM分析入门&#xff1a;lavaan VS piecewiseSEM 专题四&#xff1a;SEM全局估计&#xff08;lavaan&#xff09;在生态学领域高阶应用 专题五&#xff1…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...