在嵌入式linux板子上搭建NFS服务器

news2024/11/22 19:36:17

使用portmap+nfs-utils的工具在hi3536的linux系统上搭建nfs服务器,使用VM虚拟机中的ubuntu作为客户端挂载,进行文件的读写。

编译能够支持nfs server的内核

1.首先对linux内核进行修改,让linux内核支持nfs服务器的功能,修改方式是在内核目录arch/arm/configs目录下的hi3536d_defconfig文件添加如下图所示,再进行内核编译,并将内核下载板卡上。
在这里插入图片描述
另外一种方法就是运行make ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- menuconfig
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选上NFS server的这些,然后save保存后退出
然后再编译出内核make -j8 ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- uImage
在这里插入图片描述这样内核便编译出来了,uImage专门就是uboot可以识别的一种内核镜像
编译方法:

cp arch/arm/configs/hi3536_spinand_slave_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- uImage

portmap和nfs-utils下载地址
https://download.csdn.net/download/qq_40170041/87848683

交叉编译portmap

make CC=arm-hisiv400-linux-gcc clean
make CC=arm-hisiv400-linux-gcc

生成 portmap
在这里插入图片描述

交叉编译nfs-utils-2.5.1

./configure --prefix=$(pwd)/output/v400 CC=arm-hisiv400-linux-gcc --disable-nfsv4 --disable-ipv6 --disable-gss --disable-uuid --disable-mount --without-tcp-wrappers --disable-tirpc --host=arm-hisiv400-linux
make && make install

在这里插入图片描述
编译安装后

将交叉编译好的portmap和nfs-utils放入板卡

将rpc.statd, rpc.nfsd, rpc.mountd, exportfs放到板子的/usr/sbin目录下,将portmap放到板子的/sbin目录下

设置板子的共享文件夹

在板子的/etc/目录下新建一个exports文件,写入如下
在这里插入图片描述
/nfsd *(rw,fsid=0,no_subtree_check)
其中/nfsd就是共享文件夹,这个文件夹可以改变为想要共享的文件夹的名字。

/etc/services中保存了主机中所有网络服务的端口号,这里要加入支持nfs的默认端口,需要未使用的端口

在这里插入图片描述
将这两条写入/etc/services文件,必须要有这一步。

设置nfs server开机自启动

将S60nfs文件拷贝到板子的/etc/init.d
运行/etc/init.d/S60nfs restart
在这里插入图片描述
出现的错误都是文件不存在,这一块都是为了一些锁而创建的,不需要考虑。

挂载验证

在ubuntu下运行下面的命令,其中20.230是板子的IP
在这里插入图片描述
这样可以在/mnt/data目录下看到板子共享文件夹中的内容。

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

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

相关文章

通过yum:mysql5.6-msyql5.7-mysql8.0升级之路

一 前言 mysql的yum源 https://dev.mysql.com/downloads/repo/yum/ https://dev.mysql.com/get/mysq57-community-release-el7-7.noarch.rpm服务器信息 2c2g40GB [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# una…

如何进行测试优先级划分

一般测试的优先级是从这三种情况进行划分:新模块测试、回归测试和特殊功能测试。 1、新单元模块的测试优先级 新模块单元,内部业务逻辑测试,优先级第一。新模块单元与其他模块的集成测试优先级第二。 对于新模块的测试,应以完成单…

消息队列的使用

消息队列 概念: 消息队列是System V IPC对象的一种 消息队列的使用: 发送端: 1 申请Key 2打开/创建消息队列 msgget 3向消息队列发送消息 msgsnd 接收端: 1打开/创建消息队列 msgget 2从消息队列接收消息 msgrcv …

一个29岁软件测试工程师的7年,太真实了...

当前就业环境,裁员、失业消息满天飞,好像有一份工作就不错了,更别说高薪了。其实这只是一方面,而另一方面,各大企业依然求贤若渴,高技术人才依然紧缺,只要你技术过硬,拿个年包50w不是…

Jetpack Compose 的最佳处理运行时权限的方法

Jetpack Compose 的最佳处理运行时权限的方法 如果您的应用安装在运行Android 6.0(API级别23)或更高版本的设备上,则必须按照本指南中的步骤为用户请求运行时权限。 在Jetpack Compose中获取运行时权限有两种方法。 使用Activity Result使用…

算法与数据结构-复杂度分析

文章目录 什么是大 O 复杂度表示法为什么要用大 O 复杂度表示法如何分析一段代码的时间复杂度1、只关注循环执行次数最多的一段代码2、加法法则:总复杂度等于量级最大的那段代码的复杂度3、乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积 几种常…

计算机网络常见面试题

参考:小林coding 1.TCP/IP模型 2.说一下TCP的三次握手? 第一次握手:客户端向服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端向服务端发送的字段中包含标志位SYN=1,序列号seq=x。第一次握手前客户端的状态为CLOSE,第一次握手后客户端的状态为SYN-SENT。…

海外网红合作攻略:如何在转化率战场上脱颖而出

在当今社交媒体时代,与海外网红合作已成为企业推广产品与服务的重要途径之一。与海外网红合作不仅可以扩大品牌知名度,还能够吸引更多目标受众。然而,仅仅与网红合作并不能保证高转化率。本文Nox聚星将详细介绍几种有效的方法,帮助…

DDR跑不到速率,调整下PCB叠层就搞掂了?

高速先生成员--姜杰 关于DDR的案例,高速先生已经分享过很多期的文章了,有通过修改主控芯片的驱动解决问题的,有通过修改PCB走线的拓扑来解决问题的,也有通过调节端接电阻来解决问题的,相对于下面即将登场的解决方法而…

【Java|golang】2559. 统计范围内的元音字符串数

给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。 每个查询 queries[i] [li, ri] 会要求我们统计在 words 中下标在 li 到 ri 范围内(包含 这两个值)并且以元音开头和结尾的字符串的数目。 返回一个整数数组,其中…

Flutter学习一:安装配置

目录 1 官方文档 2 安装配置 2.1 第一步:下载配置Flutter 2.2 第二步:下载配置Android Studio 2.3 第三步:下载配置VScode 1 官方文档 在 Windows 操作系统上安装和配置 Flutter 开发环境 - Flutter 中文文档 - Flutter 中文开发者网站…

从一个励志故事,读懂网络工程师的职业规划

这个励志故事主人公的起点,是在伟创力的工厂打螺丝。 改变 他很早不上学了,出社会的时候学历和技能什么也没有,就只能去工厂打螺丝。他在伟创力的工厂打螺丝打了好多年,在接近30岁的时候,他哥跟他说:你不能…

黑客零基础从入门到精通学习成长路线(超多图、非常详细),看完这一篇就够了

前言 近几年,随着移动互联网、大数据、云计算、人工智能等新一代信息技术的快速发展,围绕网络和数据的服务与应用呈现爆发式增长,丰富的应用场景下暴露出越来越多的网络安全风险和问题。 但是,我国网络安全整体投入不高。网络安…

基于YOLOv7开发构建红外高空小目标检测识别分析系统

基于yolo系列的模型开发构建红外场景下的目标检测系统,在我之前的文章中已经有好几次实践了,感兴趣的话可以自行移步阅读: 《红外海洋目标检测实践,基于目标检测模型识别红外海洋目标》 《基于YOLO开发构建红外场景下无人机航拍…

【Java基础】简单参数和springboot方式形参传递法

一、知识点整理 1、Postman 2、在原始的web程序中获取请求参数需通过HttpServletRequest对象手动获取 二、操作步骤 1、参考链接1下载postman,并创建工作空间。 2、打开idea,新建项目,选择Spring Initializar,依赖库勾选Web下…

Locust接口性能测试

谈到性能测试工具,我们首先想到的是LoadRunner或JMeter。LoadRunner是非常有名的商业性能测试工具,功能非常强大。但现在一般不推荐使用该工具来进行性能测试,主要是使用也较为复杂,而且该工具体积比较大,需要付费且价…

temu,速卖通,国际站如何稳定安全的测评补单,提升权重不降权

随着互联网和电子商务的快速发展,越来越多的企业和个人通过测评,补单进行产品推广和销售。然而,在测评,补单过程中,如何稳定安全地进行,以提升权重而不降权,成为了许多经营者关注的重要问题。林…

day44_项目1

今日内容 零、 复习昨日 零、 复习昨日 一、web开发流程 1.公司部门的组成人事部门HR技术部门(研发部/IT部/java组/h5组/c组/ui组/产品)行政部门财务部门市场部门运营部门总经理老板/董事/CEO2.项目部人员的组成 各种开发人员: UI/前端/后端(java/c/Python/c/android/Object-c…

CTFShow-WEB入门篇--信息搜集详细Wp

CTFShow-WEB入门篇详细Wp 信息收集:web1:web2:web3:web4:web5:web6:web7:web8:web9:web10:web11:web12:web13:…

基于linux的程序库文件打包和调用的实现(二)——动态库文件打包和调用

随着技术的发展,基于linux项目的软件代码越发复杂,原来一个人可以完成的软件项目,现在可能需要多个人合作、多个部门合作、多个企业合作,每个人、每个部门、每个企业可能负责部分软件模块的开发。各个软件模块在调试过程由于涉及企…