当前位置: 首页 > 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)'

相关文章:

  • 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常见字段值处理
  • 黄仁勋:美国芯片管制完全错误,阻碍别人发展只会激励他们更努力
  • 济南一医院救护车未执行紧急任务时违规鸣笛
  • 国家发改委:安全是低空经济发展的首要前提,稳妥推进低空旅游、航空运动等发展
  • 抖音开展“AI起号”专项治理,整治利用AI生成低俗猎奇视频等
  • 释新闻|拜登确诊恶性前列腺癌,预后情况如何?
  • 解放日报:“感觉全世界人都在上海买买买”