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

Linux NFS/TFTP文件系统挂载

开发环境

Ubuntu 24.04
windows10

VMware Workstation 16 Player

Ubuntu 虚拟机 IP: 192.168.10.100
电脑网口的 IP: 192.168.10.200
开发板 IP 地址: 192.168.10.10

本地源码编译

参考
【正点原子】STM32MP1嵌入式Linux驱动开发指南V2.0.pdf
【正点原子】STM32MP157网络环境TFTP&NFS搭建手册V1.3.2.pdf
参考手册网站

内核网络配置

setenv ipaddr 192.168.10.10  
setenv gatewayip 192.168.10.1  
setenv netmask 255.255.255.0  
setenv serverip 192.168.10.100
setenv ethaddr b8:ae:1d:01:01:00  
saveenv

TFTP内核挂载

1. 安装 xinetd

sudo apt-get install xinetd

查询/etc/下是否存在 xinetd.conf 文件,没有的话则自己新建一个

ls /etc/xinetd.conf
sudo vi /etc/xinetd.conf

修改 xinetd.conf 文件内容如下:

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{

# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info

}

includedir /etc/xinetd.d

2. 创建TFTP 目录

mkdir -p /home/hsc/3519/tftpboot 
sudo chmod 777 /home/hsc/3519/tftpboot 

3.安装 tftp-hpa 服务

sudo apt-get install tftp-hpa tftpd-hpa

打开 tftpd-hpa 配置文件,修改 tftp 目录为 TFTP 服务器工作目录

sudo vi /etc/default/tftpd-hpa

在这里插入图片描述
创建/etc/ xinetd.d/tftp 文件, 配置/etc/ xinetd.d/tftp 文件,将 tftp 路径设置为自己的 tftp 路径

sudo vi /etc/xinetd.d/tftp -p
server tftp
{
        socket_type = dgram
        wait = yes
        disable = no
        user = root
        protocol = udp
        server = /usr/sbin/in.tftpd
        server_args = -s /home/hsc/3519/tftpboot -c
        #log_on_success += PID HOST DURATION
        #log_on_failure += HOST
        per_source = 11
        cps =100 2
        flags =IPv4
}

![[Pasted image 20241223173305.png]]
重启 tftpd-hpa xinetd 服务
在这里插入图片描述

sudo service tftpd-hpa restart
sudo service xinetd restart

4.配置uboot IP

setenv ipaddr 192.168.10.10  
setenv gatewayip 192.168.10.1  
setenv netmask 255.255.255.0  
setenv serverip 192.168.10.100
setenv ethaddr b8:ae:1d:01:01:00  
saveenv

5.挂载内核

将内核和设备树打包在一起挂载

setenv bootcmd 'mmc read 0 0x40010000 0x68800 0x800; ipcboot bl31 0x40010000; tftp 0x44000000 uImage_dtb; ipcboot uimgfdt 0x44000000'

将内核和设备树分开挂载

setenv bootcmd 'mmc read 0 0x40010000 0x68800 0x800; ipcboot bl31 0x40010000; tftp 0x44000000 uImage; tftp 0x44BDE040 hi3519dv500-demb-emmc.dtb; ipcboot uimgfdt 0x44000000'

恢复默认emmc挂载

setenv bootcmd 'mmc read 0 0x40010000 0x68800 0x800;ipcboot bl31 0x40010000;mmc read 0 0x44000000 0x800 0x8000;ipcboot uimgfdt 0x44000000'

NFS文件系统挂载

1. 安装 NFS 服务

sudo apt-get install nfs-kernel-server

2. 创建NFS 共享目录

sudo mkdir /home/hsc/3519/nfs
sudo chmod 777 /home/hsc/3519/nfs

3. 配置 NFS 服务

sudo vi /etc/exports

进入 /etc/exports 文件,在最后添加如下内容

/home/hsc/3519/nfs *(rw,sync,no_root_squash)

4.重启 NFS 服务器

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

查看 NFS 共享目录

showmount -e

![[Pasted image 20241223174459.png]]

5挂载共享目录

配置文件系统ip

ifconfig eth0 192.168.10.10

创建文件夹进行挂载

mkdir getnfs
mount -t nfs -o nolock,nfsvers=3 192.168.10.100:/home/hsc/3519/nfs /getnfs/
mount -t nfs -o nolock,nfsvers=3 192.168.10.100:/home/hsc/share /getnfs/

6.共享文件系统

配置uboot启动文件系统地址

setenv bootargs 'mem=128M quiet console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/nfs nfsroot=192.168.10.100:/home/hsc/3519/nfs/rootfs,proto=tcp rw ip=192.168.10.10:192.168.10.100:192.168.10.1:255.255.255.0'

恢复默认状态

setenv bootargs 'mem=128M quiet console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(boot_image.bin),16M(uImage),96M(rootfs.ext4),96M(appfs.ext4),1M(bl31.bin),1M(rawparam),1M(rawparambak),1M(resImage),-(storage)'
http://www.dtcms.com/a/61699.html

相关文章:

  • okhttp源码解析
  • OkHttp3 详解及开发实例—官方原版(二)
  • 【WPF】Slider滑动方法(INotifyPropertyChanged、ValueChanged )响应速度对比分析
  • Nest.js全栈开发终极实践:TypeORM+微服务+Docker构建高可用企业级应用
  • vue3学习-3(逻辑复用)
  • 边缘计算的业务种类划分
  • tcc编译器教程6 进一步学习编译gmake源代码
  • ‌Visual Studio Code(VS Code)支持的编程语言
  • C#里最快添加log4net的日志输出
  • scala的集合
  • ROS实践(二)构建Gazebo机器人模型文件urdf
  • PgSql 操作技巧
  • 做到哪一步才算精通SQL
  • WordPress使用(3)
  • kali linux web扫描工具
  • 第七章:go 切片、空接口来存储任意类型的数据
  • 【redis】string类型相关操作:SET、GET、MSET、MGET、SETNX、SETEX、PSETEX
  • 1-001:MySQL的存储引擎有哪些?它们之间有什么区别?
  • doris:阿里云 MaxCompute
  • 菜鸟开发之MySQL常见字段值处理
  • 代码社区开源协议
  • QWEN2.5_0.5 微调生成文件目录
  • 重构及封装
  • 【高并发】高速将图片提交到flask、fastapi等主流服务框架
  • 【学习笔记】【AI医生】2-4 项目详细分析及DeepSeek适用场景
  • QT系列教程(18) MVC结构之QItemSelectionModel模型介绍
  • 使用 MyBatis-Plus 实现数据库的多租户管理
  • NineData 社区版正式上线,支持一键本地化部署
  • Git前言(版本控制)
  • 深度学习系列79:Text2sql调研