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

news2024/12/27 0:45:47

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 实验全部完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2251807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python小黄人

文章目录 系列目录写在前面完整代码代码分析1. 初始化部分2. 身体部分3. 右眼睛部分4. 左眼睛部分5. 嘴巴部分6. 裤子部分7. 脚部部分8. 手部部分9. 头顶装饰部分10. 代码总结 写在后面 系列目录 序号直达链接爱心系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码…

操作系统 | 学习笔记 | 王道 | 2.2处理机调度

2.2 处理机调度 文章目录 2.2 处理机调度2.2.1 调度的概念2.2.2 调度的目标2.2.3 调度的实现2.2.4 典型的调度算法错题总结: 2.2.1 调度的概念 调度的基本概念 处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法(公平、高效的原则&…

算法与数据结构(1)

一:数据结构概论 数据结构分为初阶数据结构(主要由C语言实现)和高阶数据结构(由C实现) 初阶数据结构当中,我们会学到顺序表、链表、栈和队列、二叉树、常见排序算法等内容。 高阶数据结构当中&#xff0…

【Android】EventBus的使用及源码分析

文章目录 介绍优点基本用法线程模式POSTINGMAINMAIN_ORDEREDBACKGROUNDASYNC 黏性事件 源码注册getDefault()registerfindSubscriberMethods小结 postpostStickyunregister 介绍 优点 简化组件之间的通信 解耦事件发送者和接收者在 Activity、Fragment 和后台线程中表现良好避…

深度学习笔记——生成对抗网络GAN

本文详细介绍早期生成式AI的代表性模型:生成对抗网络GAN。 文章目录 一、基本结构生成器判别器 二、损失函数判别器生成器交替优化目标函数 三、GAN 的训练过程训练流程概述训练流程步骤1. 初始化参数和超参数2. 定义损失函数3. 训练过程的迭代判别器训练步骤生成器…

成都睿明智科技有限公司抖音电商服务的新引擎

在这个短视频风起云涌的时代,抖音不仅成为了人们休闲娱乐的首选,更是商家们竞相角逐的电商新蓝海。在这片充满机遇与挑战的海域中,成都睿明智科技有限公司如同一艘装备精良的航船,引领着众多企业向抖音电商的深水区进发。今天&…

51c视觉~YOLO~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12512597 1、Yolo8 1.1、检测PCB元件 技术世界正在以惊人的速度发展,而这种转变的核心是一个革命性的工具 — 计算机视觉。它最有趣的应用之一是电子印刷电路板 (PCB) 的检测和分析。本文…

Jenkins的使用

文章目录 一、Jenkins是什么\有什么用\与GitLab的对比二、Jenkins的安装与配置Jenkins的安装方式在Linux上安装Jenkins:在Windows上安装Jenkins:配置Jenkins: (可选)配置启动用户为root(一定要是root吗??…

图论入门教程:GTM173 Graph Theory

这是本图论的入门教材,Graph Theory Fifth Edition,隶属于著名的GTM系列,作者是Reinhard Diestel。这是本对新人友好的教材,之前本科上离散数学的课时,因为涉及到图论,而学校的课堂又太水让我心生不满&…

QT5 Creator (Mingw编译器) 调用VS2019 (阿里云 oss C++库) 报错的解决方法

方法就是不要用VS2019编译,要用MINgw32编译。 编译命令如下: cmake -G "MinGW Makefiles" ^-DCMAKE_MAKE_PROGRAMD:\qt\Tools\mingw810_32\bin\mingw32-make.exe ^-DCMAKE_C_COMPILERD:\qt\Tools\mingw810_32\bin\gcc.exe ^-DCMAKE_CXX_COMP…

反向传播、梯度下降与学习率:深度学习中的优化艺术

目录 反向传播:神经网络的学习机制 梯度下降:优化算法的基石 学习率:平衡速度与稳定性的关键 学习率的调整策略 固定学习率 学习率衰减 自适应学习率 梯度消失与梯度爆炸 结语 在深度学习的领域中,构建一个有效的神经网络…

论文笔记(五十九)A survey of robot manipulation in contact

A survey of robot manipulation in contact 文章概括摘要1. 引言解释柔顺性控制的概念:应用实例: 2. 需要接触操控的任务2.1 环境塑造2.2 工件对齐2.3 关节运动2.4 双臂接触操控 3. 接触操控中的控制3.1 力控制3.2 阻抗控制3.3 顺应控制 4. 接触操控中的…

881.救生艇

目录 题目过程 题目 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。 过程 cla…

【汇编】逻辑指令

文章目录 一、逻辑运算指令(一)各逻辑运算指令格式及操作(1)逻辑非指令 NOT(2)逻辑与指令 AND(3)逻辑或指令 OR(4)异或指令 XOR(5)测试…

网页开发的http基础知识

请求方式-GET:请求参数在请求行中,没有请求体,如:/brand/findAll?nameoPPo&status1。GET请求大小在浏览器中是有限制的请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的 HTTP请求&#xf…

如何做好一份技术文档

如何做好一份技术文档 以下是本人的一些微不足道的经验,希望可以与大家互相交流学习 方向一:技术文档的规划布局 确定整体架构 创建一份优秀技术文档的第一步是规划其整体架构。一个好的架构应能引导读者理解文档的内容,同时提供一个逻辑清…

Springboot——SseEmitter流式输出

文章目录 前言SseEmitter 简介测试demo注意点异常一 ResponseBodyEmitter is already set complete 前言 最近做AI类的开发,看到各大AI模型的输出方式都是采取的一种EventStream的方式实现。 不是通常的等接口处理完成后,一次性返回。 而是片段式的处理…

Java 虚拟机:承载 Java 生态的神奇魔盒

在软件开发的世界里,Java 虚拟机(JVM)就像一位智慧的管家,默默守护着 Java 生态系统的运行。它不仅让 Java 实现了"一次编写,到处运行"的梦想,更是成为了多种编程语言的运行平台。让我们一起走进…

sqlmap详细使用

SQLmap使用详解 SQLmap(常规)使用步骤 1、查询注入点 python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id12、查询所有数据库 python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id1 --dbs3、查询当前数据库 python sqlmap.py -u htt…

【Linux】Linux2.6内核进程调度队列与调度原理

目录 一、进程管理中的部分概念二、寄存器三、进程切换四、Linux2.6内核进程调度队列与调度原理结尾 一、进程管理中的部分概念 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务&#…