Firefly AIO-3399ProC开发板与PC端搭建NFS远程挂载环境


前言

实验室所用的Firefly AIO-3399ProC开发板在搭建交叉编译环境前,需要在开发板端和PC端部署NFS远程挂载环境,本文记录下搭建过程,以供本人和各位参考。


一、NFS介绍

网络文件系统,英文为Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
NFS 允许计算的客户-服务器模型。服务器实施共享文件系统,以及客户端所连接的存储。客户端实施用户接口来共享文件系统,并加载到本地文件空间当中。
通过在开发板和PC端部署NFS远程挂载环境,可以很方便地在两者间传输文件。

二、NFS服务安装配置过程

注:部分操作配置参考此文

2.1 开发板端安装配置NFS服务

  • 安装NFS相关组件
sudo apt-get install nfs-kernel-server -y
  • 在开发板中创建并配置NFS共享文件夹
#创建共享文件夹
sudo mkdir  /mnt/nfs
#修改文件夹的用户访问权限
sudo chown -R firefly /mnt/nfs/
#查看修改后的NFS文件夹权限
ll /mnt/nfs/
total 3
drwxr-xr-x  3 root    root    1024 May 12  2020 ./
drwxr-xr-x 22 root    root    1024 Mar 12 13:13 ../
drwxr-xr-x 20 firefly firefly 1024 Mar 15 10:22 firefly/

  • 设置共享文件夹的访问权限
    修改主机 /etc/exports 文件,在该文件中添加如下代码
    /mnt/nfs *(rw,sync,no_root_squash)
    该行代码的说明如下:
    /mnt/nfs 表示所设定的共享文件,这里可以任意改,
    *表示任意网段的下位机都可以连接到此文件夹
    (rw,sync,no_root_squash) //表示一些权限
    rw 可读写的权限
    ro 只读的权限
    no_root_squash NFS 客户端分享目录使用者的权限,即如果客户端使用的是 root 用户,那么对于这个共享的目录而言,该客户端就具有 root 的权限,若是以NFS挂载根文件系统时,必须设置此项
    sync 资料同步写入到内存与硬盘当中
    async 资料会先暂存于内存当中,而非直接写入硬盘
sudo vim /etc/exports
# /etc/exports: the access control list for filesystems which may
 be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(
ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_c
heck)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/mnt/nfs  *(rw,sync,no_root_squash)

  • 重启NFS相关服务
#停止NFS服务
sudo /etc/init.d/nfs-kernel-server stop
# 启动NFS服务
sudo /etc/init.d/nfs-kernel-server start
# 重新启动NFS服务
sudo /etc/init.d/nfs-kernel-server restart

  • 查看系统中创建的共享文件夹
firefly@firefly:~$ showmount -e
Export list for firefly:
/mnt/nfs *
  • 查看开发板的网络配置
 ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.126  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ecfd:ead1:e1:e900  prefixlen 64  scopeid 0x20<link>
        ether 7a:10:c5:77:34:a8  txqueuelen 1000  (Ethernet)
        RX packets 165358  bytes 15182215 (15.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 721900  bytes 1018945203 (1.0 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 24  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 235  bytes 17298 (17.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 235  bytes 17298 (17.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether cc:4b:73:8a:85:ff  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可看到此时开发板的固定IP地址为192.168.1.126。

至此开发板端的NFS配置完成

2.2 PC端安装配置NFS服务

  • 安装NFS服务
 sudo apt-get install nfs-common -y
  • 创建NFS共享文件夹
 sudo mkdir  /mnt/nfs
#修改文件夹的用户访问权限
 sudo chown -R user /mnt/nfs
 #查看修改后的NFS文件夹权限
ll /mnt/nfs/
总用量 13
drwxr-xr-x  4 root root 4096 3月  15 10:25 ./
drwxr-xr-x 25 root root 4096 3月   5 14:01 ../
drwxr-xr-x  2 root root 4096 11月 28 19:55 hgfs/
drwxr-xr-x  2 user root 1024 3月  15 10:19 nfs/
  • 测试PC端与开发板网络是否相通
 #在PC端ping开发板的IP地址
 ping 192.168.1.126
 PING 192.168.1.126 (192.168.1.126) 56(84) bytes of data.
64 bytes from 192.168.1.126: icmp_seq=1 ttl=64 time=0.674 ms
64 bytes from 192.168.1.126: icmp_seq=2 ttl=64 time=0.626 ms
64 bytes from 192.168.1.126: icmp_seq=3 ttl=64 time=0.703 ms
64 bytes from 192.168.1.126: icmp_seq=4 ttl=64 time=0.665 ms

  • 在PC端挂载开发板的NFS共享文件夹
 sudo mount -t nfs -o nolock 192.168.1.126:/mnt/nfs /mnt/nfs
  • 设置开机自动挂载开发板共享的NFS文件夹
    修改/etc/文件夹下的fstab文件,按实际IP地址及文件夹目录添加
    nfs-server-ip:/nfsdir /mnt nfs rw 0 0
 sudo vim /etc/fstab
 # /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=92a17988-3b1d-4bd0-8d30-bf0a8ac93146 /               ext4    errors=remount-ro 0       1
/swapfile                                 none            swap    sw              0       0

192.168.1.126:/mnt/nfs      /mnt/nfs       nfs    rw    0     0

2.3 测试开发板和PC端是否可以通过NFS文件夹共享文件

#开发板端
cp /home/firefly/work_3399.zip /mnt/nfs/
#PC端
ls /mnt/nfs
work_3399.zip

#PC端
mv /mnt/nfs/work_3399.zip ./work.zip
#开发板端
ls /mnt/nfs
work.zip

在这里插入图片描述
NFS支持TCP和UDP协议

通过上列代码测试文件传输及重命名,可知PC端和开发板端可进行文件传输,至此NFS远程挂载环境搭建完成。

总结

本文总结了ARM开发板和PC端搭建远程挂载环境的过程,方便后续搭建交叉编译环境。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值