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)'